V4L/DVB (13057): af9015: add MSI DIGIVOX mini III remote
authorAntti Palosaari <crope@iki.fi>
Mon, 21 Sep 2009 23:52:44 +0000 (20:52 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Dec 2009 20:40:06 +0000 (18:40 -0200)
Support for MSI DIGIVOX mini III remote.
Thanks to Aleksandr V. Piskunov <aleksandr.v.piskunov@gmail.com>
Thanks to Roman <lists@hasnoname.de>

Cc: Aleksandr V. Piskunov <aleksandr.v.piskunov@gmail.com>
Cc: Roman <lists@hasnoname.de>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/af9015.c
drivers/media/dvb/dvb-usb/af9015.h

index 7a885264e86b2a83b0ba72b4076b315d24cc1f16..5c898b07ae1e2aca2c608a18ec2d91590098d497 100644 (file)
@@ -868,6 +868,16 @@ static int af9015_read_config(struct usb_device *udev)
                                af9015_config.ir_table_size =
                                  ARRAY_SIZE(af9015_ir_table_avermedia);
                                break;
+                       case USB_VID_MSI_2:
+                               af9015_properties[i].rc_key_map =
+                                 af9015_rc_keys_msi_digivox_iii;
+                               af9015_properties[i].rc_key_map_size =
+                                 ARRAY_SIZE(af9015_rc_keys_msi_digivox_iii);
+                               af9015_config.ir_table =
+                                 af9015_ir_table_msi_digivox_iii;
+                               af9015_config.ir_table_size =
+                                 ARRAY_SIZE(af9015_ir_table_msi_digivox_iii);
+                               break;
                        }
                }
        }
index c1e2b7d1d41211a3bd5450de11cdf46f8b0f693a..e237c4a0702d25ce071c87caf84e5e0e4b954a1e 100644 (file)
@@ -779,4 +779,75 @@ static u8 af9015_ir_table_trekstor[] = {
        0x00, 0xff, 0x84, 0x7b, 0x27, 0x07, 0x00,
 };
 
+/* MSI DIGIVOX mini III */
+static struct dvb_usb_rc_key af9015_rc_keys_msi_digivox_iii[] = {
+       { 0x0713, KEY_POWER },       /* [red power button] */
+       { 0x073b, KEY_VIDEO },       /* Source */
+       { 0x073e, KEY_ZOOM },        /* Zoom */
+       { 0x070b, KEY_POWER2 },      /* ShutDown */
+       { 0x071e, KEY_1 },
+       { 0x071f, KEY_2 },
+       { 0x0720, KEY_3 },
+       { 0x0721, KEY_4 },
+       { 0x0722, KEY_5 },
+       { 0x0723, KEY_6 },
+       { 0x0724, KEY_7 },
+       { 0x0725, KEY_8 },
+       { 0x0726, KEY_9 },
+       { 0x0727, KEY_0 },
+       { 0x0752, KEY_CHANNELUP },   /* CH+ */
+       { 0x0751, KEY_CHANNELDOWN }, /* CH- */
+       { 0x0750, KEY_VOLUMEUP },    /* Vol+ */
+       { 0x074f, KEY_VOLUMEDOWN },  /* Vol- */
+       { 0x0705, KEY_ESC },         /* [back up arrow] */
+       { 0x0708, KEY_OK },          /* [enter arrow] */
+       { 0x073f, KEY_RECORD },      /* Rec */
+       { 0x0716, KEY_STOP },        /* Stop */
+       { 0x072a, KEY_PLAY },        /* Play */
+       { 0x073c, KEY_MUTE },        /* Mute */
+       { 0x0718, KEY_UP },
+       { 0x0707, KEY_DOWN },
+       { 0x070f, KEY_LEFT },
+       { 0x0715, KEY_RIGHT },
+       { 0x0736, KEY_RED },
+       { 0x0737, KEY_GREEN },
+       { 0x072d, KEY_YELLOW },
+       { 0x072e, KEY_BLUE },
+};
+
+static u8 af9015_ir_table_msi_digivox_iii[] = {
+       0x61, 0xd6, 0x43, 0xbc, 0x13, 0x07, 0x00, /* KEY_POWER */
+       0x61, 0xd6, 0x01, 0xfe, 0x3b, 0x07, 0x00, /* KEY_VIDEO */
+       0x61, 0xd6, 0x0b, 0xf4, 0x3e, 0x07, 0x00, /* KEY_ZOOM */
+       0x61, 0xd6, 0x03, 0xfc, 0x0b, 0x07, 0x00, /* KEY_POWER2 */
+       0x61, 0xd6, 0x04, 0xfb, 0x1e, 0x07, 0x00, /* KEY_1 */
+       0x61, 0xd6, 0x08, 0xf7, 0x1f, 0x07, 0x00, /* KEY_2 */
+       0x61, 0xd6, 0x02, 0xfd, 0x20, 0x07, 0x00, /* KEY_3 */
+       0x61, 0xd6, 0x0f, 0xf0, 0x21, 0x07, 0x00, /* KEY_4 */
+       0x61, 0xd6, 0x05, 0xfa, 0x22, 0x07, 0x00, /* KEY_5 */
+       0x61, 0xd6, 0x06, 0xf9, 0x23, 0x07, 0x00, /* KEY_6 */
+       0x61, 0xd6, 0x0c, 0xf3, 0x24, 0x07, 0x00, /* KEY_7 */
+       0x61, 0xd6, 0x0d, 0xf2, 0x25, 0x07, 0x00, /* KEY_8 */
+       0x61, 0xd6, 0x0a, 0xf5, 0x26, 0x07, 0x00, /* KEY_9 */
+       0x61, 0xd6, 0x11, 0xee, 0x27, 0x07, 0x00, /* KEY_0 */
+       0x61, 0xd6, 0x09, 0xf6, 0x52, 0x07, 0x00, /* KEY_CHANNELUP */
+       0x61, 0xd6, 0x07, 0xf8, 0x51, 0x07, 0x00, /* KEY_CHANNELDOWN */
+       0x61, 0xd6, 0x0e, 0xf1, 0x50, 0x07, 0x00, /* KEY_VOLUMEUP */
+       0x61, 0xd6, 0x13, 0xec, 0x4f, 0x07, 0x00, /* KEY_VOLUMEDOWN */
+       0x61, 0xd6, 0x10, 0xef, 0x05, 0x07, 0x00, /* KEY_ESC */
+       0x61, 0xd6, 0x12, 0xed, 0x08, 0x07, 0x00, /* KEY_OK */
+       0x61, 0xd6, 0x14, 0xeb, 0x3f, 0x07, 0x00, /* KEY_RECORD */
+       0x61, 0xd6, 0x15, 0xea, 0x16, 0x07, 0x00, /* KEY_STOP */
+       0x61, 0xd6, 0x16, 0xe9, 0x2a, 0x07, 0x00, /* KEY_PLAY */
+       0x61, 0xd6, 0x17, 0xe8, 0x3c, 0x07, 0x00, /* KEY_MUTE */
+       0x61, 0xd6, 0x18, 0xe7, 0x18, 0x07, 0x00, /* KEY_UP */
+       0x61, 0xd6, 0x19, 0xe6, 0x07, 0x07, 0x00, /* KEY_DOWN */
+       0x61, 0xd6, 0x1a, 0xe5, 0x0f, 0x07, 0x00, /* KEY_LEFT */
+       0x61, 0xd6, 0x1b, 0xe4, 0x15, 0x07, 0x00, /* KEY_RIGHT */
+       0x61, 0xd6, 0x1c, 0xe3, 0x36, 0x07, 0x00, /* KEY_RED */
+       0x61, 0xd6, 0x1d, 0xe2, 0x37, 0x07, 0x00, /* KEY_GREEN */
+       0x61, 0xd6, 0x1e, 0xe1, 0x2d, 0x07, 0x00, /* KEY_YELLOW */
+       0x61, 0xd6, 0x1f, 0xe0, 0x2e, 0x07, 0x00, /* KEY_BLUE */
+};
+
 #endif