Path: blob/master/drivers/media/rc/keymaps/rc-hauppauge.c
15112 views
/* rc-hauppauge.c - Keytable for Hauppauge Remote Controllers1*2* keymap imported from ir-keymaps.c3*4* This map currently contains the code for four different RCs:5* - New Hauppauge Gray;6* - Old Hauppauge Gray (with a golden screen for media keys);7* - Hauppauge Black;8* - DSR-0112 remote bundled with Haupauge MiniStick.9*10* Copyright (c) 2010-2011 by Mauro Carvalho Chehab <[email protected]>11*12* This program is free software; you can redistribute it and/or modify13* it under the terms of the GNU General Public License as published by14* the Free Software Foundation; either version 2 of the License, or15* (at your option) any later version.16*/1718#include <media/rc-map.h>1920/*21* Hauppauge:the newer, gray remotes (seems there are multiple22* slightly different versions), shipped with cx88+ivtv cards.23*24* This table contains the complete RC5 code, instead of just the data part25*/2627static struct rc_map_table rc5_hauppauge_new[] = {28/*29* Remote Controller Hauppauge Gray found on modern devices30* Keycodes start with address = 0x1e31*/3233{ 0x1e3b, KEY_SELECT }, /* GO / house symbol */34{ 0x1e3d, KEY_POWER2 }, /* system power (green button) */3536{ 0x1e1c, KEY_TV },37{ 0x1e18, KEY_VIDEO }, /* Videos */38{ 0x1e19, KEY_AUDIO }, /* Music */39{ 0x1e1a, KEY_CAMERA }, /* Pictures */4041{ 0x1e1b, KEY_EPG }, /* Guide */42{ 0x1e0c, KEY_RADIO },4344{ 0x1e14, KEY_UP },45{ 0x1e15, KEY_DOWN },46{ 0x1e16, KEY_LEFT },47{ 0x1e17, KEY_RIGHT },48{ 0x1e25, KEY_OK }, /* OK */4950{ 0x1e1f, KEY_EXIT }, /* back/exit */51{ 0x1e0d, KEY_MENU },5253{ 0x1e10, KEY_VOLUMEUP },54{ 0x1e11, KEY_VOLUMEDOWN },5556{ 0x1e12, KEY_PREVIOUS }, /* previous channel */57{ 0x1e0f, KEY_MUTE },5859{ 0x1e20, KEY_CHANNELUP }, /* channel / program + */60{ 0x1e21, KEY_CHANNELDOWN }, /* channel / program - */6162{ 0x1e37, KEY_RECORD }, /* recording */63{ 0x1e36, KEY_STOP },6465{ 0x1e32, KEY_REWIND }, /* backward << */66{ 0x1e35, KEY_PLAY },67{ 0x1e34, KEY_FASTFORWARD }, /* forward >> */6869{ 0x1e24, KEY_PREVIOUSSONG }, /* replay |< */70{ 0x1e30, KEY_PAUSE }, /* pause */71{ 0x1e1e, KEY_NEXTSONG }, /* skip >| */7273{ 0x1e01, KEY_1 },74{ 0x1e02, KEY_2 },75{ 0x1e03, KEY_3 },7677{ 0x1e04, KEY_4 },78{ 0x1e05, KEY_5 },79{ 0x1e06, KEY_6 },8081{ 0x1e07, KEY_7 },82{ 0x1e08, KEY_8 },83{ 0x1e09, KEY_9 },8485{ 0x1e0a, KEY_TEXT }, /* keypad asterisk as well */86{ 0x1e00, KEY_0 },87{ 0x1e0e, KEY_SUBTITLE }, /* also the Pound key (#) */8889{ 0x1e0b, KEY_RED }, /* red button */90{ 0x1e2e, KEY_GREEN }, /* green button */91{ 0x1e38, KEY_YELLOW }, /* yellow key */92{ 0x1e29, KEY_BLUE }, /* blue key */9394/*95* Old Remote Controller Hauppauge Gray with a golden screen96* Keycodes start with address = 0x1f97*/98{ 0x1f3d, KEY_POWER2 }, /* system power (green button) */99{ 0x1f3b, KEY_SELECT }, /* GO */100101/* Keys 0 to 9 */102{ 0x1f00, KEY_0 },103{ 0x1f01, KEY_1 },104{ 0x1f02, KEY_2 },105{ 0x1f03, KEY_3 },106{ 0x1f04, KEY_4 },107{ 0x1f05, KEY_5 },108{ 0x1f06, KEY_6 },109{ 0x1f07, KEY_7 },110{ 0x1f08, KEY_8 },111{ 0x1f09, KEY_9 },112113{ 0x1f1f, KEY_EXIT }, /* back/exit */114{ 0x1f0d, KEY_MENU },115116{ 0x1f10, KEY_VOLUMEUP },117{ 0x1f11, KEY_VOLUMEDOWN },118{ 0x1f20, KEY_CHANNELUP }, /* channel / program + */119{ 0x1f21, KEY_CHANNELDOWN }, /* channel / program - */120{ 0x1f25, KEY_ENTER }, /* OK */121122{ 0x1f0b, KEY_RED }, /* red button */123{ 0x1f2e, KEY_GREEN }, /* green button */124{ 0x1f38, KEY_YELLOW }, /* yellow key */125{ 0x1f29, KEY_BLUE }, /* blue key */126127{ 0x1f0f, KEY_MUTE },128{ 0x1f0c, KEY_RADIO }, /* There's no indicator on this key */129{ 0x1f3c, KEY_ZOOM }, /* full */130131{ 0x1f32, KEY_REWIND }, /* backward << */132{ 0x1f35, KEY_PLAY },133{ 0x1f34, KEY_FASTFORWARD }, /* forward >> */134135{ 0x1f37, KEY_RECORD }, /* recording */136{ 0x1f36, KEY_STOP },137{ 0x1f30, KEY_PAUSE }, /* pause */138139{ 0x1f24, KEY_PREVIOUSSONG }, /* replay |< */140{ 0x1f1e, KEY_NEXTSONG }, /* skip >| */141142/*143* Keycodes for DSR-0112 remote bundled with Haupauge MiniStick144* Keycodes start with address = 0x1d145*/146{ 0x1d00, KEY_0 },147{ 0x1d01, KEY_1 },148{ 0x1d02, KEY_2 },149{ 0x1d03, KEY_3 },150{ 0x1d04, KEY_4 },151{ 0x1d05, KEY_5 },152{ 0x1d06, KEY_6 },153{ 0x1d07, KEY_7 },154{ 0x1d08, KEY_8 },155{ 0x1d09, KEY_9 },156{ 0x1d0a, KEY_TEXT },157{ 0x1d0d, KEY_MENU },158{ 0x1d0f, KEY_MUTE },159{ 0x1d10, KEY_VOLUMEUP },160{ 0x1d11, KEY_VOLUMEDOWN },161{ 0x1d12, KEY_PREVIOUS }, /* Prev.Ch .. ??? */162{ 0x1d14, KEY_UP },163{ 0x1d15, KEY_DOWN },164{ 0x1d16, KEY_LEFT },165{ 0x1d17, KEY_RIGHT },166{ 0x1d1c, KEY_TV },167{ 0x1d1e, KEY_NEXT }, /* >| */168{ 0x1d1f, KEY_EXIT },169{ 0x1d20, KEY_CHANNELUP },170{ 0x1d21, KEY_CHANNELDOWN },171{ 0x1d24, KEY_LAST }, /* <| */172{ 0x1d25, KEY_OK },173{ 0x1d30, KEY_PAUSE },174{ 0x1d32, KEY_REWIND },175{ 0x1d34, KEY_FASTFORWARD },176{ 0x1d35, KEY_PLAY },177{ 0x1d36, KEY_STOP },178{ 0x1d37, KEY_RECORD },179{ 0x1d3b, KEY_GOTO },180{ 0x1d3d, KEY_POWER },181{ 0x1d3f, KEY_HOME },182183/*184* Keycodes for the old Black Remote Controller185* This one also uses RC-5 protocol186* Keycodes start with address = 0x00187*/188{ 0x001f, KEY_TV },189{ 0x0020, KEY_CHANNELUP },190{ 0x000c, KEY_RADIO },191192{ 0x0011, KEY_VOLUMEDOWN },193{ 0x002e, KEY_ZOOM }, /* full screen */194{ 0x0010, KEY_VOLUMEUP },195196{ 0x000d, KEY_MUTE },197{ 0x0021, KEY_CHANNELDOWN },198{ 0x0022, KEY_VIDEO }, /* source */199200{ 0x0001, KEY_1 },201{ 0x0002, KEY_2 },202{ 0x0003, KEY_3 },203204{ 0x0004, KEY_4 },205{ 0x0005, KEY_5 },206{ 0x0006, KEY_6 },207208{ 0x0007, KEY_7 },209{ 0x0008, KEY_8 },210{ 0x0009, KEY_9 },211212{ 0x001e, KEY_RED }, /* Reserved */213{ 0x0000, KEY_0 },214{ 0x0026, KEY_SLEEP }, /* Minimize */215};216217static struct rc_map_list rc5_hauppauge_new_map = {218.map = {219.scan = rc5_hauppauge_new,220.size = ARRAY_SIZE(rc5_hauppauge_new),221.rc_type = RC_TYPE_RC5,222.name = RC_MAP_HAUPPAUGE,223}224};225226static int __init init_rc_map_rc5_hauppauge_new(void)227{228return rc_map_register(&rc5_hauppauge_new_map);229}230231static void __exit exit_rc_map_rc5_hauppauge_new(void)232{233rc_map_unregister(&rc5_hauppauge_new_map);234}235236module_init(init_rc_map_rc5_hauppauge_new)237module_exit(exit_rc_map_rc5_hauppauge_new)238239MODULE_LICENSE("GPL");240MODULE_AUTHOR("Mauro Carvalho Chehab <[email protected]>");241242243