V4L/DVB (7372): cx88: Add IR support for Pixelview MPEG 8000GT
authorMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 22 Apr 2008 17:46:01 +0000 (14:46 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:07:51 +0000 (14:07 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/common/ir-keymaps.c
drivers/media/video/cx88/cx88-input.c
include/media/ir-common.h

index 107565c47274c475870480aa2a5b69a0d450c980..35793185630bccbb219765745eaaabf23a8abe8e 100644 (file)
@@ -212,6 +212,51 @@ IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
 
 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
 
+/*
+   Mauro Carvalho Chehab <mchehab@infradead.org>
+   present on PV MPEG 8000GT
+ */
+IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE] = {
+       [0x3c] = KEY_PAUSE,             /* Timeshift */
+       [0x12] = KEY_POWER,
+
+       [0x3d] = KEY_1,
+       [0x38] = KEY_2,
+       [0x18] = KEY_3,
+       [0x35] = KEY_4,
+       [0x39] = KEY_5,
+       [0x15] = KEY_6,
+       [0x36] = KEY_7,
+       [0x3a] = KEY_8,
+       [0x1e] = KEY_9,
+       [0x3e] = KEY_0,
+
+       [0x1c] = KEY_AGAIN,             /* LOOP */
+       [0x3f] = KEY_MEDIA,             /* Source */
+       [0x1f] = KEY_LAST,              /* +100 */
+       [0x1b] = KEY_MUTE,
+
+       [0x17] = KEY_CHANNELDOWN,
+       [0x16] = KEY_CHANNELUP,
+       [0x10] = KEY_VOLUMEUP,
+       [0x14] = KEY_VOLUMEDOWN,
+       [0x13] = KEY_ZOOM,
+
+       [0x19] = KEY_SHUFFLE,           /* SNAPSHOT */
+       [0x1a] = KEY_SEARCH,            /* scan */
+
+       [0x37] = KEY_REWIND,            /* << */
+       [0x32] = KEY_RECORD,            /* o (red) */
+       [0x33] = KEY_FORWARD,           /* >> */
+       [0x11] = KEY_STOP,              /* square */
+       [0x3b] = KEY_PLAY,              /* > */
+       [0x30] = KEY_PLAYPAUSE,         /* || */
+
+       [0x31] = KEY_TV,
+       [0x34] = KEY_RADIO,
+};
+EXPORT_SYMBOL_GPL(ir_codes_pixelview_new);
+
 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
        [ 0x00 ] = KEY_0,
        [ 0x01 ] = KEY_1,
index d2e42c77b5a8c716955979bf4528f8988388af82..6b25b8c9bb6d95d53be359d2b4db95d6f1f5aa19 100644 (file)
@@ -258,6 +258,13 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
                ir->mask_keyup = 0x80;
                ir->polling = 1; /* ms */
                break;
+       case CX88_BOARD_PROLINK_PV_8000GT:
+               ir_codes = ir_codes_pixelview_new;
+               ir->gpio_addr = MO_GP1_IO;
+               ir->mask_keycode = 0x3f;
+               ir->mask_keyup = 0x80;
+               ir->polling = 1; /* ms */
+               break;
        case CX88_BOARD_KWORLD_LTV883:
                ir_codes = ir_codes_pixelview;
                ir->gpio_addr = MO_GP1_IO;
index a4274203f25298ca78aafece33c91bf8de40bfc5..20f1afe2140e6e70fdc10e9cc5676008cda6fa07 100644 (file)
@@ -107,6 +107,7 @@ extern IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE];
 extern IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE];