^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) // rc-hauppauge.c - Keytable for Hauppauge Remote Controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) //
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) // keymap imported from ir-keymaps.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) //
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) // This map currently contains the code for four different RCs:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) // - New Hauppauge Gray;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) // - Old Hauppauge Gray (with a golden screen for media keys);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) // - Hauppauge Black;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) // - DSR-0112 remote bundled with Haupauge MiniStick.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) //
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) // Copyright (c) 2010-2011 by Mauro Carvalho Chehab
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <media/rc-map.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include <linux/module.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * Hauppauge:the newer, gray remotes (seems there are multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) * slightly different versions), shipped with cx88+ivtv cards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) * This table contains the complete RC5 code, instead of just the data part
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) static struct rc_map_table rc5_hauppauge_new[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) * Remote Controller Hauppauge Gray found on modern devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) * Keycodes start with address = 0x1e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) { 0x1e3b, KEY_SELECT }, /* GO / house symbol */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) { 0x1e3d, KEY_POWER2 }, /* system power (green button) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) { 0x1e1c, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) { 0x1e18, KEY_VIDEO }, /* Videos */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) { 0x1e19, KEY_AUDIO }, /* Music */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) { 0x1e1a, KEY_CAMERA }, /* Pictures */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) { 0x1e1b, KEY_EPG }, /* Guide */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) { 0x1e0c, KEY_RADIO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) { 0x1e14, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) { 0x1e15, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) { 0x1e16, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) { 0x1e17, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) { 0x1e25, KEY_OK }, /* OK */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) { 0x1e1f, KEY_EXIT }, /* back/exit */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) { 0x1e0d, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) { 0x1e10, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) { 0x1e11, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) { 0x1e12, KEY_PREVIOUS }, /* previous channel */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) { 0x1e0f, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) { 0x1e20, KEY_CHANNELUP }, /* channel / program + */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) { 0x1e21, KEY_CHANNELDOWN }, /* channel / program - */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) { 0x1e37, KEY_RECORD }, /* recording */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) { 0x1e36, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) { 0x1e32, KEY_REWIND }, /* backward << */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) { 0x1e35, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) { 0x1e34, KEY_FASTFORWARD }, /* forward >> */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) { 0x1e24, KEY_PREVIOUSSONG }, /* replay |< */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) { 0x1e30, KEY_PAUSE }, /* pause */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) { 0x1e1e, KEY_NEXTSONG }, /* skip >| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) { 0x1e01, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) { 0x1e02, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) { 0x1e03, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) { 0x1e04, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) { 0x1e05, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) { 0x1e06, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) { 0x1e07, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) { 0x1e08, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) { 0x1e09, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) { 0x1e0a, KEY_TEXT }, /* keypad asterisk as well */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) { 0x1e00, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) { 0x1e0e, KEY_SUBTITLE }, /* also the Pound key (#) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) { 0x1e0b, KEY_RED }, /* red button */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) { 0x1e2e, KEY_GREEN }, /* green button */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) { 0x1e38, KEY_YELLOW }, /* yellow key */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) { 0x1e29, KEY_BLUE }, /* blue key */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) * Old Remote Controller Hauppauge Gray with a golden screen
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) * Keycodes start with address = 0x1f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) { 0x1f3d, KEY_POWER2 }, /* system power (green button) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) { 0x1f3b, KEY_SELECT }, /* GO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) /* Keys 0 to 9 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) { 0x1f00, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) { 0x1f01, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) { 0x1f02, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) { 0x1f03, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) { 0x1f04, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) { 0x1f05, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) { 0x1f06, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) { 0x1f07, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) { 0x1f08, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) { 0x1f09, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) { 0x1f1f, KEY_EXIT }, /* back/exit */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) { 0x1f0d, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) { 0x1f10, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) { 0x1f11, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) { 0x1f20, KEY_CHANNELUP }, /* channel / program + */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) { 0x1f21, KEY_CHANNELDOWN }, /* channel / program - */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) { 0x1f25, KEY_ENTER }, /* OK */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) { 0x1f0b, KEY_RED }, /* red button */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) { 0x1f2e, KEY_GREEN }, /* green button */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) { 0x1f38, KEY_YELLOW }, /* yellow key */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) { 0x1f29, KEY_BLUE }, /* blue key */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) { 0x1f0f, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) { 0x1f0c, KEY_RADIO }, /* There's no indicator on this key */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) { 0x1f3c, KEY_ZOOM }, /* full */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) { 0x1f32, KEY_REWIND }, /* backward << */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) { 0x1f35, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) { 0x1f34, KEY_FASTFORWARD }, /* forward >> */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) { 0x1f37, KEY_RECORD }, /* recording */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) { 0x1f36, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) { 0x1f30, KEY_PAUSE }, /* pause */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) { 0x1f24, KEY_PREVIOUSSONG }, /* replay |< */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) { 0x1f1e, KEY_NEXTSONG }, /* skip >| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) * Keycodes for DSR-0112 remote bundled with Haupauge MiniStick
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) * Keycodes start with address = 0x1d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) { 0x1d00, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) { 0x1d01, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) { 0x1d02, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) { 0x1d03, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) { 0x1d04, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) { 0x1d05, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) { 0x1d06, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) { 0x1d07, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) { 0x1d08, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) { 0x1d09, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) { 0x1d0a, KEY_TEXT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) { 0x1d0d, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) { 0x1d0f, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) { 0x1d10, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) { 0x1d11, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) { 0x1d12, KEY_PREVIOUS }, /* Prev.Ch .. ??? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) { 0x1d14, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) { 0x1d15, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) { 0x1d16, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) { 0x1d17, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) { 0x1d1c, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) { 0x1d1e, KEY_NEXT }, /* >| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) { 0x1d1f, KEY_EXIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) { 0x1d20, KEY_CHANNELUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) { 0x1d21, KEY_CHANNELDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) { 0x1d24, KEY_LAST }, /* <| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) { 0x1d25, KEY_OK },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) { 0x1d30, KEY_PAUSE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) { 0x1d32, KEY_REWIND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) { 0x1d34, KEY_FASTFORWARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) { 0x1d35, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) { 0x1d36, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) { 0x1d37, KEY_RECORD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) { 0x1d3b, KEY_GOTO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) { 0x1d3d, KEY_POWER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) { 0x1d3f, KEY_HOME },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) * Keycodes for PT# R-005 remote bundled with Haupauge HVR-930C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) * Keycodes start with address = 0x1c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) { 0x1c3b, KEY_GOTO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) { 0x1c3d, KEY_POWER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) { 0x1c14, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) { 0x1c15, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) { 0x1c16, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) { 0x1c17, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) { 0x1c25, KEY_OK },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) { 0x1c00, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) { 0x1c01, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) { 0x1c02, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) { 0x1c03, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) { 0x1c04, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) { 0x1c05, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) { 0x1c06, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) { 0x1c07, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) { 0x1c08, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) { 0x1c09, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) { 0x1c1f, KEY_EXIT }, /* BACK */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) { 0x1c0d, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) { 0x1c1c, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) { 0x1c10, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) { 0x1c11, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) { 0x1c20, KEY_CHANNELUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) { 0x1c21, KEY_CHANNELDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) { 0x1c0f, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) { 0x1c12, KEY_PREVIOUS }, /* Prev */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) { 0x1c36, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) { 0x1c37, KEY_RECORD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) { 0x1c24, KEY_LAST }, /* <| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) { 0x1c1e, KEY_NEXT }, /* >| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) { 0x1c0a, KEY_TEXT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) { 0x1c0e, KEY_SUBTITLE }, /* CC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) { 0x1c32, KEY_REWIND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) { 0x1c30, KEY_PAUSE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) { 0x1c35, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) { 0x1c34, KEY_FASTFORWARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) * Keycodes for the old Black Remote Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) * This one also uses RC-5 protocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) * Keycodes start with address = 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) { 0x000f, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) { 0x001f, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) { 0x0020, KEY_CHANNELUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) { 0x000c, KEY_RADIO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) { 0x0011, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) { 0x002e, KEY_ZOOM }, /* full screen */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) { 0x0010, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) { 0x000d, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) { 0x0021, KEY_CHANNELDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) { 0x0022, KEY_VIDEO }, /* source */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) { 0x0001, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) { 0x0002, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) { 0x0003, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) { 0x0004, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) { 0x0005, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) { 0x0006, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) { 0x0007, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) { 0x0008, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) { 0x0009, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) { 0x001e, KEY_RED }, /* Reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) { 0x0000, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) { 0x0026, KEY_SLEEP }, /* Minimize */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) static struct rc_map_list rc5_hauppauge_new_map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) .map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) .scan = rc5_hauppauge_new,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) .size = ARRAY_SIZE(rc5_hauppauge_new),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) .rc_proto = RC_PROTO_RC5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) .name = RC_MAP_HAUPPAUGE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) static int __init init_rc_map_rc5_hauppauge_new(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) return rc_map_register(&rc5_hauppauge_new_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) static void __exit exit_rc_map_rc5_hauppauge_new(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) rc_map_unregister(&rc5_hauppauge_new_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) module_init(init_rc_map_rc5_hauppauge_new)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) module_exit(exit_rc_map_rc5_hauppauge_new)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) MODULE_LICENSE("GPL");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) MODULE_AUTHOR("Mauro Carvalho Chehab");