summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-input.c
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2006-07-24 11:41:55 -0400
committerMichael Krufky <mkrufky@linuxtv.org>2006-07-24 11:41:55 -0400
commit56d40ce051f0d1ee88a7ab212aefd9b728f7ef4b (patch)
tree8a368f9686068e69e1a765a5bffed59bc28aa3d1 /linux/drivers/media/video/cx88/cx88-input.c
parentdb59f820f93562fa25bf5bee039df35dc162ebd6 (diff)
downloadmediapointer-dvb-s2-56d40ce051f0d1ee88a7ab212aefd9b728f7ef4b.tar.gz
mediapointer-dvb-s2-56d40ce051f0d1ee88a7ab212aefd9b728f7ef4b.tar.bz2
cx88: add support for Norwood PCI TV Tuner (non-pro)
From: Peter Naulls <peter@chocky.org> This patch adds support for Norwood PCI TV Tuner (non-pro) Signed-off-by: Peter Naulls <peter@chocky.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-input.c')
-rw-r--r--linux/drivers/media/video/cx88/cx88-input.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-input.c b/linux/drivers/media/video/cx88/cx88-input.c
index 72d76ab56..18165e7cb 100644
--- a/linux/drivers/media/video/cx88/cx88-input.c
+++ b/linux/drivers/media/video/cx88/cx88-input.c
@@ -108,7 +108,15 @@ static void cx88_ir_handle_key(struct cx88_IR *ir)
(gpio & ir->mask_keydown) ? " down" : "",
(gpio & ir->mask_keyup) ? " up" : "");
- if (ir->mask_keydown) {
+ if (ir->core->board == CX88_BOARD_NORWOOD_MICRO) {
+ u32 gpio_key = cx_read(MO_GP0_IO);
+
+ data = (data << 4) | ((gpio_key & 0xf0) >> 4);
+
+ ir_input_keydown(ir->input, &ir->ir, data, data);
+ ir_input_nokey(ir->input, &ir->ir);
+
+ } else if (ir->mask_keydown) {
/* bit set on keydown */
if (gpio & ir->mask_keydown) {
ir_input_keydown(ir->input, &ir->ir, data, data);
@@ -249,6 +257,13 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
ir_type = IR_TYPE_PD;
ir->sampling = 0xff00; /* address */
break;
+ case CX88_BOARD_NORWOOD_MICRO:
+ ir_codes = ir_codes_norwood;
+ ir->gpio_addr = MO_GP1_IO;
+ ir->mask_keycode = 0x0e;
+ ir->mask_keyup = 0x80;
+ ir->polling = 50; /* ms */
+ break;
case CX88_BOARD_NPGTECH_REALTV_TOP10FM:
ir_codes = ir_codes_npgtech;
ir->gpio_addr = MO_GP0_IO;