1 /* 2 3 4 Keytables for supported remote controls. This file is part of 5 video4linux. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 21 */ 22 #include <linux/module.h> 23 24 #include <linux/input.h> 25 #include <media/ir-common.h> 26 27 /* empty keytable, can be used as placeholder for not-yet created keytables */ 28 IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE] = { 29 [ 0x2a ] = KEY_COFFEE, 30 }; 31 32 EXPORT_SYMBOL_GPL(ir_codes_empty); 33 34 /* Michal Majchrowicz <mmajchrowicz@gmail.com> */ 35 IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = { 36 /* numeric */ 37 [ 0x00 ] = KEY_0, 38 [ 0x01 ] = KEY_1, 39 [ 0x02 ] = KEY_2, 40 [ 0x03 ] = KEY_3, 41 [ 0x04 ] = KEY_4, 42 [ 0x05 ] = KEY_5, 43 [ 0x06 ] = KEY_6, 44 [ 0x07 ] = KEY_7, 45 [ 0x08 ] = KEY_8, 46 [ 0x09 ] = KEY_9, 47 48 [ 0x5c ] = KEY_POWER, /* power */ 49 [ 0x20 ] = KEY_F, /* full screen */ 50 [ 0x0f ] = KEY_BACKSPACE, /* recall */ 51 [ 0x1b ] = KEY_ENTER, /* mute */ 52 [ 0x41 ] = KEY_RECORD, /* record */ 53 [ 0x43 ] = KEY_STOP, /* stop */ 54 [ 0x16 ] = KEY_S, 55 [ 0x1a ] = KEY_Q, /* off */ 56 [ 0x2e ] = KEY_RED, 57 [ 0x1f ] = KEY_DOWN, /* channel - */ 58 [ 0x1c ] = KEY_UP, /* channel + */ 59 [ 0x10 ] = KEY_LEFT, /* volume - */ 60 [ 0x1e ] = KEY_RIGHT, /* volume + */ 61 [ 0x14 ] = KEY_F1, 62 }; 63 64 EXPORT_SYMBOL_GPL(ir_codes_proteus_2309); 65 /* Matt Jesson <dvb@jesson.eclipse.co.uk */ 66 IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = { 67 [ 0x28 ] = KEY_0, //'0' / 'enter' 68 [ 0x22 ] = KEY_1, //'1' 69 [ 0x12 ] = KEY_2, //'2' / 'up arrow' 70 [ 0x32 ] = KEY_3, //'3' 71 [ 0x24 ] = KEY_4, //'4' / 'left arrow' 72 [ 0x14 ] = KEY_5, //'5' 73 [ 0x34 ] = KEY_6, //'6' / 'right arrow' 74 [ 0x26 ] = KEY_7, //'7' 75 [ 0x16 ] = KEY_8, //'8' / 'down arrow' 76 [ 0x36 ] = KEY_9, //'9' 77 78 [ 0x20 ] = KEY_LIST, // 'source' 79 [ 0x10 ] = KEY_TEXT, // 'teletext' 80 [ 0x00 ] = KEY_POWER, // 'power' 81 [ 0x04 ] = KEY_AUDIO, // 'audio' 82 [ 0x06 ] = KEY_ZOOM, // 'full screen' 83 [ 0x18 ] = KEY_VIDEO, // 'display' 84 [ 0x38 ] = KEY_SEARCH, // 'loop' 85 [ 0x08 ] = KEY_INFO, // 'preview' 86 [ 0x2a ] = KEY_REWIND, // 'backward <<' 87 [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>' 88 [ 0x3a ] = KEY_RECORD, // 'capture' 89 [ 0x0a ] = KEY_MUTE, // 'mute' 90 [ 0x2c ] = KEY_RECORD, // 'record' 91 [ 0x1c ] = KEY_PAUSE, // 'pause' 92 [ 0x3c ] = KEY_STOP, // 'stop' 93 [ 0x0c ] = KEY_PLAY, // 'play' 94 [ 0x2e ] = KEY_RED, // 'red' 95 [ 0x01 ] = KEY_BLUE, // 'blue' / 'cancel' 96 [ 0x0e ] = KEY_YELLOW, // 'yellow' / 'ok' 97 [ 0x21 ] = KEY_GREEN, // 'green' 98 [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -' 99 [ 0x31 ] = KEY_CHANNELUP, // 'channel +' 100 [ 0x1e ] = KEY_VOLUMEDOWN, // 'volume -' 101 [ 0x3e ] = KEY_VOLUMEUP, // 'volume +' 102 }; 103 104 EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt); 105 106 /* Mauro Carvalho Chehab <mchehab@infradead.org> */ 107 IR_KEYTAB_TYPE ir_codes_avermedia_m135a[IR_KEYTAB_SIZE] = { 108 [0x00] = KEY_POWER2, 109 [0x2e] = KEY_DOT, /* '.' */ 110 [0x01] = KEY_MODE, /* TV/FM */ 111 112 [0x05] = KEY_1, 113 [0x06] = KEY_2, 114 [0x07] = KEY_3, 115 [0x09] = KEY_4, 116 [0x0a] = KEY_5, 117 [0x0b] = KEY_6, 118 [0x0d] = KEY_7, 119 [0x0e] = KEY_8, 120 [0x0f] = KEY_9, 121 [0x11] = KEY_0, 122 123 [0x13] = KEY_RIGHT, /* -> */ 124 [0x12] = KEY_LEFT, /* <- */ 125 126 [0x17] = KEY_SLEEP, /* Capturar Imagem */ 127 [0x10] = KEY_SHUFFLE, /* Amostra */ 128 129 /* FIXME: The keys bellow aren't ok */ 130 131 [0x43] = KEY_CHANNELUP, 132 [0x42] = KEY_CHANNELDOWN, 133 [0x1f] = KEY_VOLUMEUP, 134 [0x1e] = KEY_VOLUMEDOWN, 135 [0x0c] = KEY_ENTER, 136 137 [0x14] = KEY_MUTE, 138 [0x08] = KEY_AUDIO, 139 140 [0x03] = KEY_TEXT, 141 [0x04] = KEY_EPG, 142 [0x2b] = KEY_TV2, /* TV2 */ 143 144 [0x1d] = KEY_RED, 145 [0x1c] = KEY_YELLOW, 146 [0x41] = KEY_GREEN, 147 [0x40] = KEY_BLUE, 148 149 [0x1a] = KEY_PLAYPAUSE, 150 [0x19] = KEY_RECORD, 151 [0x18] = KEY_PLAY, 152 [0x1b] = KEY_STOP, 153 }; 154 EXPORT_SYMBOL_GPL(ir_codes_avermedia_m135a); 155 156 /* Attila Kondoros <attila.kondoros@chello.hu> */ 157 IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = { 158 159 [ 0x01 ] = KEY_1, 160 [ 0x02 ] = KEY_2, 161 [ 0x03 ] = KEY_3, 162 [ 0x04 ] = KEY_4, 163 [ 0x05 ] = KEY_5, 164 [ 0x06 ] = KEY_6, 165 [ 0x07 ] = KEY_7, 166 [ 0x08 ] = KEY_8, 167 [ 0x09 ] = KEY_9, 168 [ 0x00 ] = KEY_0, 169 [ 0x17 ] = KEY_LAST, // +100 170 [ 0x0a ] = KEY_LIST, // recall 171 172 173 [ 0x1c ] = KEY_TUNER, // TV/FM 174 [ 0x15 ] = KEY_SEARCH, // scan 175 [ 0x12 ] = KEY_POWER, // power 176 [ 0x1f ] = KEY_VOLUMEDOWN, // vol up 177 [ 0x1b ] = KEY_VOLUMEUP, // vol down 178 [ 0x1e ] = KEY_CHANNELDOWN, // chn up 179 [ 0x1a ] = KEY_CHANNELUP, // chn down 180 181 [ 0x11 ] = KEY_VIDEO, // video 182 [ 0x0f ] = KEY_ZOOM, // full screen 183 [ 0x13 ] = KEY_MUTE, // mute/unmute 184 [ 0x10 ] = KEY_TEXT, // min 185 186 [ 0x0d ] = KEY_STOP, // freeze 187 [ 0x0e ] = KEY_RECORD, // record 188 [ 0x1d ] = KEY_PLAYPAUSE, // stop 189 [ 0x19 ] = KEY_PLAY, // play 190 191 [ 0x16 ] = KEY_GOTO, // osd 192 [ 0x14 ] = KEY_REFRESH, // default 193 [ 0x0c ] = KEY_KPPLUS, // fine tune >>>> 194 [ 0x18 ] = KEY_KPMINUS // fine tune <<<< 195 }; 196 197 EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp); 198 199 /* ---------------------------------------------------------------------- */ 200 201 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = { 202 203 [ 0x1e ] = KEY_POWER, // power 204 [ 0x07 ] = KEY_MEDIA, // source 205 [ 0x1c ] = KEY_SEARCH, // scan 206 207 /* FIXME: duplicate keycodes? 208 * 209 * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>> 210 * The GPIO values are 211 * 6397fb for both "Scan <" and "CH -", 212 * 639ffb for "Scan >" and "CH+", 213 * 6384fb for "Tune <" and "<<<", 214 * 638cfb for "Tune >" and ">>>", regardless of the mask. 215 * 216 * [ 0x17 ] = KEY_BACK, // fm scan << 217 * [ 0x1f ] = KEY_FORWARD, // fm scan >> 218 * 219 * [ 0x04 ] = KEY_LEFT, // fm tuning < 220 * [ 0x0c ] = KEY_RIGHT, // fm tuning > 221 * 222 * For now, these four keys are disabled. Pressing them will generate 223 * the CH+/CH-/<<</>>> events 224 */ 225 226 [ 0x03 ] = KEY_TUNER, // TV/FM 227 228 [ 0x00 ] = KEY_RECORD, 229 [ 0x08 ] = KEY_STOP, 230 [ 0x11 ] = KEY_PLAY, 231 232 [ 0x1a ] = KEY_PLAYPAUSE, // freeze 233 [ 0x19 ] = KEY_ZOOM, // zoom 234 [ 0x0f ] = KEY_TEXT, // min 235 236 [ 0x01 ] = KEY_1, 237 [ 0x0b ] = KEY_2, 238 [ 0x1b ] = KEY_3, 239 [ 0x05 ] = KEY_4, 240 [ 0x09 ] = KEY_5, 241 [ 0x15 ] = KEY_6, 242 [ 0x06 ] = KEY_7, 243 [ 0x0a ] = KEY_8, 244 [ 0x12 ] = KEY_9, 245 [ 0x02 ] = KEY_0, 246 [ 0x10 ] = KEY_LAST, // +100 247 [ 0x13 ] = KEY_LIST, // recall 248 249 [ 0x1f ] = KEY_CHANNELUP, // chn down 250 [ 0x17 ] = KEY_CHANNELDOWN, // chn up 251 [ 0x16 ] = KEY_VOLUMEUP, // vol down 252 [ 0x14 ] = KEY_VOLUMEDOWN, // vol up 253 254 [ 0x04 ] = KEY_KPMINUS, // <<< 255 [ 0x0e ] = KEY_SETUP, // function 256 [ 0x0c ] = KEY_KPPLUS, // >>> 257 258 [ 0x0d ] = KEY_GOTO, // mts 259 [ 0x1d ] = KEY_REFRESH, // reset 260 [ 0x18 ] = KEY_MUTE // mute/unmute 261 }; 262 263 EXPORT_SYMBOL_GPL(ir_codes_pixelview); 264 265 /* 266 Mauro Carvalho Chehab <mchehab@infradead.org> 267 present on PV MPEG 8000GT 268 */ 269 IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE] = { 270 [0x3c] = KEY_PAUSE, /* Timeshift */ 271 [0x12] = KEY_POWER, 272 273 [0x3d] = KEY_1, 274 [0x38] = KEY_2, 275 [0x18] = KEY_3, 276 [0x35] = KEY_4, 277 [0x39] = KEY_5, 278 [0x15] = KEY_6, 279 [0x36] = KEY_7, 280 [0x3a] = KEY_8, 281 [0x1e] = KEY_9, 282 [0x3e] = KEY_0, 283 284 [0x1c] = KEY_AGAIN, /* LOOP */ 285 [0x3f] = KEY_MEDIA, /* Source */ 286 [0x1f] = KEY_LAST, /* +100 */ 287 [0x1b] = KEY_MUTE, 288 289 [0x17] = KEY_CHANNELDOWN, 290 [0x16] = KEY_CHANNELUP, 291 [0x10] = KEY_VOLUMEUP, 292 [0x14] = KEY_VOLUMEDOWN, 293 [0x13] = KEY_ZOOM, 294 295 [0x19] = KEY_SHUFFLE, /* SNAPSHOT */ 296 [0x1a] = KEY_SEARCH, /* scan */ 297 298 [0x37] = KEY_REWIND, /* << */ 299 [0x32] = KEY_RECORD, /* o (red) */ 300 [0x33] = KEY_FORWARD, /* >> */ 301 [0x11] = KEY_STOP, /* square */ 302 [0x3b] = KEY_PLAY, /* > */ 303 [0x30] = KEY_PLAYPAUSE, /* || */ 304 305 [0x31] = KEY_TV, 306 [0x34] = KEY_RADIO, 307 }; 308 EXPORT_SYMBOL_GPL(ir_codes_pixelview_new); 309 310 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = { 311 [ 0x00 ] = KEY_0, 312 [ 0x01 ] = KEY_1, 313 [ 0x02 ] = KEY_2, 314 [ 0x03 ] = KEY_3, 315 [ 0x04 ] = KEY_4, 316 [ 0x05 ] = KEY_5, 317 [ 0x06 ] = KEY_6, 318 [ 0x07 ] = KEY_7, 319 [ 0x08 ] = KEY_8, 320 [ 0x09 ] = KEY_9, 321 [ 0x0a ] = KEY_TV, 322 [ 0x0b ] = KEY_AUX, 323 [ 0x0c ] = KEY_DVD, 324 [ 0x0d ] = KEY_POWER, 325 [ 0x0e ] = KEY_MHP, /* labelled 'Picture' */ 326 [ 0x0f ] = KEY_AUDIO, 327 [ 0x10 ] = KEY_INFO, 328 [ 0x11 ] = KEY_F13, /* 16:9 */ 329 [ 0x12 ] = KEY_F14, /* 14:9 */ 330 [ 0x13 ] = KEY_EPG, 331 [ 0x14 ] = KEY_EXIT, 332 [ 0x15 ] = KEY_MENU, 333 [ 0x16 ] = KEY_UP, 334 [ 0x17 ] = KEY_DOWN, 335 [ 0x18 ] = KEY_LEFT, 336 [ 0x19 ] = KEY_RIGHT, 337 [ 0x1a ] = KEY_ENTER, 338 [ 0x1b ] = KEY_CHANNELUP, 339 [ 0x1c ] = KEY_CHANNELDOWN, 340 [ 0x1d ] = KEY_VOLUMEUP, 341 [ 0x1e ] = KEY_VOLUMEDOWN, 342 [ 0x1f ] = KEY_RED, 343 [ 0x20 ] = KEY_GREEN, 344 [ 0x21 ] = KEY_YELLOW, 345 [ 0x22 ] = KEY_BLUE, 346 [ 0x23 ] = KEY_SUBTITLE, 347 [ 0x24 ] = KEY_F15, /* AD */ 348 [ 0x25 ] = KEY_TEXT, 349 [ 0x26 ] = KEY_MUTE, 350 [ 0x27 ] = KEY_REWIND, 351 [ 0x28 ] = KEY_STOP, 352 [ 0x29 ] = KEY_PLAY, 353 [ 0x2a ] = KEY_FASTFORWARD, 354 [ 0x2b ] = KEY_F16, /* chapter */ 355 [ 0x2c ] = KEY_PAUSE, 356 [ 0x2d ] = KEY_PLAY, 357 [ 0x2e ] = KEY_RECORD, 358 [ 0x2f ] = KEY_F17, /* picture in picture */ 359 [ 0x30 ] = KEY_KPPLUS, /* zoom in */ 360 [ 0x31 ] = KEY_KPMINUS, /* zoom out */ 361 [ 0x32 ] = KEY_F18, /* capture */ 362 [ 0x33 ] = KEY_F19, /* web */ 363 [ 0x34 ] = KEY_EMAIL, 364 [ 0x35 ] = KEY_PHONE, 365 [ 0x36 ] = KEY_PC 366 }; 367 368 EXPORT_SYMBOL_GPL(ir_codes_nebula); 369 370 /* DigitalNow DNTV Live DVB-T Remote */ 371 IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = { 372 [ 0x00 ] = KEY_ESC, /* 'go up a level?' */ 373 /* Keys 0 to 9 */ 374 [ 0x0a ] = KEY_0, 375 [ 0x01 ] = KEY_1, 376 [ 0x02 ] = KEY_2, 377 [ 0x03 ] = KEY_3, 378 [ 0x04 ] = KEY_4, 379 [ 0x05 ] = KEY_5, 380 [ 0x06 ] = KEY_6, 381 [ 0x07 ] = KEY_7, 382 [ 0x08 ] = KEY_8, 383 [ 0x09 ] = KEY_9, 384 385 [ 0x0b ] = KEY_TUNER, /* tv/fm */ 386 [ 0x0c ] = KEY_SEARCH, /* scan */ 387 [ 0x0d ] = KEY_STOP, 388 [ 0x0e ] = KEY_PAUSE, 389 [ 0x0f ] = KEY_LIST, /* source */ 390 391 [ 0x10 ] = KEY_MUTE, 392 [ 0x11 ] = KEY_REWIND, /* backward << */ 393 [ 0x12 ] = KEY_POWER, 394 [ 0x13 ] = KEY_S, /* snap */ 395 [ 0x14 ] = KEY_AUDIO, /* stereo */ 396 [ 0x15 ] = KEY_CLEAR, /* reset */ 397 [ 0x16 ] = KEY_PLAY, 398 [ 0x17 ] = KEY_ENTER, 399 [ 0x18 ] = KEY_ZOOM, /* full screen */ 400 [ 0x19 ] = KEY_FASTFORWARD, /* forward >> */ 401 [ 0x1a ] = KEY_CHANNELUP, 402 [ 0x1b ] = KEY_VOLUMEUP, 403 [ 0x1c ] = KEY_INFO, /* preview */ 404 [ 0x1d ] = KEY_RECORD, /* record */ 405 [ 0x1e ] = KEY_CHANNELDOWN, 406 [ 0x1f ] = KEY_VOLUMEDOWN, 407 }; 408 409 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t); 410 411 /* ---------------------------------------------------------------------- */ 412 413 /* IO-DATA BCTV7E Remote */ 414 IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = { 415 [ 0x40 ] = KEY_TV, 416 [ 0x20 ] = KEY_RADIO, /* FM */ 417 [ 0x60 ] = KEY_EPG, 418 [ 0x00 ] = KEY_POWER, 419 420 /* Keys 0 to 9 */ 421 [ 0x44 ] = KEY_0, /* 10 */ 422 [ 0x50 ] = KEY_1, 423 [ 0x30 ] = KEY_2, 424 [ 0x70 ] = KEY_3, 425 [ 0x48 ] = KEY_4, 426 [ 0x28 ] = KEY_5, 427 [ 0x68 ] = KEY_6, 428 [ 0x58 ] = KEY_7, 429 [ 0x38 ] = KEY_8, 430 [ 0x78 ] = KEY_9, 431 432 [ 0x10 ] = KEY_L, /* Live */ 433 [ 0x08 ] = KEY_T, /* Time Shift */ 434 435 [ 0x18 ] = KEY_PLAYPAUSE, /* Play */ 436 437 [ 0x24 ] = KEY_ENTER, /* 11 */ 438 [ 0x64 ] = KEY_ESC, /* 12 */ 439 [ 0x04 ] = KEY_M, /* Multi */ 440 441 [ 0x54 ] = KEY_VIDEO, 442 [ 0x34 ] = KEY_CHANNELUP, 443 [ 0x74 ] = KEY_VOLUMEUP, 444 [ 0x14 ] = KEY_MUTE, 445 446 [ 0x4c ] = KEY_S, /* SVIDEO */ 447 [ 0x2c ] = KEY_CHANNELDOWN, 448 [ 0x6c ] = KEY_VOLUMEDOWN, 449 [ 0x0c ] = KEY_ZOOM, 450 451 [ 0x5c ] = KEY_PAUSE, 452 [ 0x3c ] = KEY_C, /* || (red) */ 453 [ 0x7c ] = KEY_RECORD, /* recording */ 454 [ 0x1c ] = KEY_STOP, 455 456 [ 0x41 ] = KEY_REWIND, /* backward << */ 457 [ 0x21 ] = KEY_PLAY, 458 [ 0x61 ] = KEY_FASTFORWARD, /* forward >> */ 459 [ 0x01 ] = KEY_NEXT, /* skip >| */ 460 }; 461 462 EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e); 463 464 /* ---------------------------------------------------------------------- */ 465 466 /* ADS Tech Instant TV DVB-T PCI Remote */ 467 IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = { 468 /* Keys 0 to 9 */ 469 [ 0x4d ] = KEY_0, 470 [ 0x57 ] = KEY_1, 471 [ 0x4f ] = KEY_2, 472 [ 0x53 ] = KEY_3, 473 [ 0x56 ] = KEY_4, 474 [ 0x4e ] = KEY_5, 475 [ 0x5e ] = KEY_6, 476 [ 0x54 ] = KEY_7, 477 [ 0x4c ] = KEY_8, 478 [ 0x5c ] = KEY_9, 479 480 [ 0x5b ] = KEY_POWER, 481 [ 0x5f ] = KEY_MUTE, 482 [ 0x55 ] = KEY_GOTO, 483 [ 0x5d ] = KEY_SEARCH, 484 [ 0x17 ] = KEY_EPG, /* Guide */ 485 [ 0x1f ] = KEY_MENU, 486 [ 0x0f ] = KEY_UP, 487 [ 0x46 ] = KEY_DOWN, 488 [ 0x16 ] = KEY_LEFT, 489 [ 0x1e ] = KEY_RIGHT, 490 [ 0x0e ] = KEY_SELECT, /* Enter */ 491 [ 0x5a ] = KEY_INFO, 492 [ 0x52 ] = KEY_EXIT, 493 [ 0x59 ] = KEY_PREVIOUS, 494 [ 0x51 ] = KEY_NEXT, 495 [ 0x58 ] = KEY_REWIND, 496 [ 0x50 ] = KEY_FORWARD, 497 [ 0x44 ] = KEY_PLAYPAUSE, 498 [ 0x07 ] = KEY_STOP, 499 [ 0x1b ] = KEY_RECORD, 500 [ 0x13 ] = KEY_TUNER, /* Live */ 501 [ 0x0a ] = KEY_A, 502 [ 0x12 ] = KEY_B, 503 [ 0x03 ] = KEY_PROG1, /* 1 */ 504 [ 0x01 ] = KEY_PROG2, /* 2 */ 505 [ 0x00 ] = KEY_PROG3, /* 3 */ 506 [ 0x06 ] = KEY_DVD, 507 [ 0x48 ] = KEY_AUX, /* Photo */ 508 [ 0x40 ] = KEY_VIDEO, 509 [ 0x19 ] = KEY_AUDIO, /* Music */ 510 [ 0x0b ] = KEY_CHANNELUP, 511 [ 0x08 ] = KEY_CHANNELDOWN, 512 [ 0x15 ] = KEY_VOLUMEUP, 513 [ 0x1c ] = KEY_VOLUMEDOWN, 514 }; 515 516 EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci); 517 518 /* ---------------------------------------------------------------------- */ 519 520 /* MSI TV@nywhere MASTER remote */ 521 522 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = { 523 /* Keys 0 to 9 */ 524 [ 0x00 ] = KEY_0, 525 [ 0x01 ] = KEY_1, 526 [ 0x02 ] = KEY_2, 527 [ 0x03 ] = KEY_3, 528 [ 0x04 ] = KEY_4, 529 [ 0x05 ] = KEY_5, 530 [ 0x06 ] = KEY_6, 531 [ 0x07 ] = KEY_7, 532 [ 0x08 ] = KEY_8, 533 [ 0x09 ] = KEY_9, 534 535 [ 0x0c ] = KEY_MUTE, 536 [ 0x0f ] = KEY_SCREEN, /* Full Screen */ 537 [ 0x10 ] = KEY_F, /* Funtion */ 538 [ 0x11 ] = KEY_T, /* Time shift */ 539 [ 0x12 ] = KEY_POWER, 540 [ 0x13 ] = KEY_MEDIA, /* MTS */ 541 [ 0x14 ] = KEY_SLOW, 542 [ 0x16 ] = KEY_REWIND, /* backward << */ 543 [ 0x17 ] = KEY_ENTER, /* Return */ 544 [ 0x18 ] = KEY_FASTFORWARD, /* forward >> */ 545 [ 0x1a ] = KEY_CHANNELUP, 546 [ 0x1b ] = KEY_VOLUMEUP, 547 [ 0x1e ] = KEY_CHANNELDOWN, 548 [ 0x1f ] = KEY_VOLUMEDOWN, 549 }; 550 551 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere); 552 553 /* ---------------------------------------------------------------------- */ 554 555 /* 556 Keycodes for remote on the MSI TV@nywhere Plus. The controller IC on the card 557 is marked "KS003". The controller is I2C at address 0x30, but does not seem 558 to respond to probes until a read is performed from a valid device. 559 I don't know why... 560 561 Note: This remote may be of similar or identical design to the 562 Pixelview remote (?). The raw codes and duplicate button codes 563 appear to be the same. 564 565 Henry Wong <henry@stuffedcow.net> 566 Some changes to formatting and keycodes by Mark Schultz <n9xmj@yahoo.com> 567 568 */ 569 570 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere_plus[IR_KEYTAB_SIZE] = { 571 572 /* ---- Remote Button Layout ---- 573 574 POWER SOURCE SCAN MUTE 575 TV/FM 1 2 3 576 |> 4 5 6 577 <| 7 8 9 578 ^^UP 0 + RECALL 579 vvDN RECORD STOP PLAY 580 581 MINIMIZE ZOOM 582 583 CH+ 584 VOL- VOL+ 585 CH- 586 587 SNAPSHOT MTS 588 589 << FUNC >> RESET 590 */ 591 592 [0x01] = KEY_KP1, /* 1 */ 593 [0x0b] = KEY_KP2, /* 2 */ 594 [0x1b] = KEY_KP3, /* 3 */ 595 [0x05] = KEY_KP4, /* 4 */ 596 [0x09] = KEY_KP5, /* 5 */ 597 [0x15] = KEY_KP6, /* 6 */ 598 [0x06] = KEY_KP7, /* 7 */ 599 [0x0a] = KEY_KP8, /* 8 */ 600 [0x12] = KEY_KP9, /* 9 */ 601 [0x02] = KEY_KP0, /* 0 */ 602 [0x10] = KEY_KPPLUS, /* + */ 603 [0x13] = KEY_AGAIN, /* Recall */ 604 605 [0x1e] = KEY_POWER, /* Power */ 606 [0x07] = KEY_TUNER, /* Source */ 607 [0x1c] = KEY_SEARCH, /* Scan */ 608 [0x18] = KEY_MUTE, /* Mute */ 609 610 [0x03] = KEY_RADIO, /* TV/FM */ 611 /* The next four keys are duplicates that appear to send the 612 same IR code as Ch+, Ch-, >>, and << . The raw code assigned 613 to them is the actual code + 0x20 - they will never be 614 detected as such unless some way is discovered to distinguish 615 these buttons from those that have the same code. */ 616 [0x3f] = KEY_RIGHT, /* |> and Ch+ */ 617 [0x37] = KEY_LEFT, /* <| and Ch- */ 618 [0x2c] = KEY_UP, /* ^^Up and >> */ 619 [0x24] = KEY_DOWN, /* vvDn and << */ 620 621 [0x00] = KEY_RECORD, /* Record */ 622 [0x08] = KEY_STOP, /* Stop */ 623 [0x11] = KEY_PLAY, /* Play */ 624 625 [0x0f] = KEY_CLOSE, /* Minimize */ 626 [0x19] = KEY_ZOOM, /* Zoom */ 627 [0x1a] = KEY_SHUFFLE, /* Snapshot */ 628 [0x0d] = KEY_LANGUAGE, /* MTS */ 629 630 [0x14] = KEY_VOLUMEDOWN, /* Vol- */ 631 [0x16] = KEY_VOLUMEUP, /* Vol+ */ 632 [0x17] = KEY_CHANNELDOWN, /* Ch- */ 633 [0x1f] = KEY_CHANNELUP, /* Ch+ */ 634 635 [0x04] = KEY_REWIND, /* << */ 636 [0x0e] = KEY_MENU, /* Function */ 637 [0x0c] = KEY_FASTFORWARD, /* >> */ 638 [0x1d] = KEY_RESTART, /* Reset */ 639 }; 640 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere_plus); 641 642 /* ---------------------------------------------------------------------- */ 643 644 /* Cinergy 1400 DVB-T */ 645 IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = { 646 [ 0x01 ] = KEY_POWER, 647 [ 0x02 ] = KEY_1, 648 [ 0x03 ] = KEY_2, 649 [ 0x04 ] = KEY_3, 650 [ 0x05 ] = KEY_4, 651 [ 0x06 ] = KEY_5, 652 [ 0x07 ] = KEY_6, 653 [ 0x08 ] = KEY_7, 654 [ 0x09 ] = KEY_8, 655 [ 0x0a ] = KEY_9, 656 [ 0x0c ] = KEY_0, 657 658 [ 0x0b ] = KEY_VIDEO, 659 [ 0x0d ] = KEY_REFRESH, 660 [ 0x0e ] = KEY_SELECT, 661 [ 0x0f ] = KEY_EPG, 662 [ 0x10 ] = KEY_UP, 663 [ 0x11 ] = KEY_LEFT, 664 [ 0x12 ] = KEY_OK, 665 [ 0x13 ] = KEY_RIGHT, 666 [ 0x14 ] = KEY_DOWN, 667 [ 0x15 ] = KEY_TEXT, 668 [ 0x16 ] = KEY_INFO, 669 670 [ 0x17 ] = KEY_RED, 671 [ 0x18 ] = KEY_GREEN, 672 [ 0x19 ] = KEY_YELLOW, 673 [ 0x1a ] = KEY_BLUE, 674 675 [ 0x1b ] = KEY_CHANNELUP, 676 [ 0x1c ] = KEY_VOLUMEUP, 677 [ 0x1d ] = KEY_MUTE, 678 [ 0x1e ] = KEY_VOLUMEDOWN, 679 [ 0x1f ] = KEY_CHANNELDOWN, 680 681 [ 0x40 ] = KEY_PAUSE, 682 [ 0x4c ] = KEY_PLAY, 683 [ 0x58 ] = KEY_RECORD, 684 [ 0x54 ] = KEY_PREVIOUS, 685 [ 0x48 ] = KEY_STOP, 686 [ 0x5c ] = KEY_NEXT, 687 }; 688 689 EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400); 690 691 /* ---------------------------------------------------------------------- */ 692 693 /* AVERTV STUDIO 303 Remote */ 694 IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = { 695 [ 0x2a ] = KEY_1, 696 [ 0x32 ] = KEY_2, 697 [ 0x3a ] = KEY_3, 698 [ 0x4a ] = KEY_4, 699 [ 0x52 ] = KEY_5, 700 [ 0x5a ] = KEY_6, 701 [ 0x6a ] = KEY_7, 702 [ 0x72 ] = KEY_8, 703 [ 0x7a ] = KEY_9, 704 [ 0x0e ] = KEY_0, 705 706 [ 0x02 ] = KEY_POWER, 707 [ 0x22 ] = KEY_VIDEO, 708 [ 0x42 ] = KEY_AUDIO, 709 [ 0x62 ] = KEY_ZOOM, 710 [ 0x0a ] = KEY_TV, 711 [ 0x12 ] = KEY_CD, 712 [ 0x1a ] = KEY_TEXT, 713 714 [ 0x16 ] = KEY_SUBTITLE, 715 [ 0x1e ] = KEY_REWIND, 716 [ 0x06 ] = KEY_PRINT, 717 718 [ 0x2e ] = KEY_SEARCH, 719 [ 0x36 ] = KEY_SLEEP, 720 [ 0x3e ] = KEY_SHUFFLE, 721 [ 0x26 ] = KEY_MUTE, 722 723 [ 0x4e ] = KEY_RECORD, 724 [ 0x56 ] = KEY_PAUSE, 725 [ 0x5e ] = KEY_STOP, 726 [ 0x46 ] = KEY_PLAY, 727 728 [ 0x6e ] = KEY_RED, 729 [ 0x0b ] = KEY_GREEN, 730 [ 0x66 ] = KEY_YELLOW, 731 [ 0x03 ] = KEY_BLUE, 732 733 [ 0x76 ] = KEY_LEFT, 734 [ 0x7e ] = KEY_RIGHT, 735 [ 0x13 ] = KEY_DOWN, 736 [ 0x1b ] = KEY_UP, 737 }; 738 739 EXPORT_SYMBOL_GPL(ir_codes_avertv_303); 740 741 /* ---------------------------------------------------------------------- */ 742 743 /* DigitalNow DNTV Live! DVB-T Pro Remote */ 744 IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = { 745 [ 0x16 ] = KEY_POWER, 746 [ 0x5b ] = KEY_HOME, 747 748 [ 0x55 ] = KEY_TV, /* live tv */ 749 [ 0x58 ] = KEY_TUNER, /* digital Radio */ 750 [ 0x5a ] = KEY_RADIO, /* FM radio */ 751 [ 0x59 ] = KEY_DVD, /* dvd menu */ 752 [ 0x03 ] = KEY_1, 753 [ 0x01 ] = KEY_2, 754 [ 0x06 ] = KEY_3, 755 [ 0x09 ] = KEY_4, 756 [ 0x1d ] = KEY_5, 757 [ 0x1f ] = KEY_6, 758 [ 0x0d ] = KEY_7, 759 [ 0x19 ] = KEY_8, 760 [ 0x1b ] = KEY_9, 761 [ 0x0c ] = KEY_CANCEL, 762 [ 0x15 ] = KEY_0, 763 [ 0x4a ] = KEY_CLEAR, 764 [ 0x13 ] = KEY_BACK, 765 [ 0x00 ] = KEY_TAB, 766 [ 0x4b ] = KEY_UP, 767 [ 0x4e ] = KEY_LEFT, 768 [ 0x4f ] = KEY_OK, 769 [ 0x52 ] = KEY_RIGHT, 770 [ 0x51 ] = KEY_DOWN, 771 [ 0x1e ] = KEY_VOLUMEUP, 772 [ 0x0a ] = KEY_VOLUMEDOWN, 773 [ 0x02 ] = KEY_CHANNELDOWN, 774 [ 0x05 ] = KEY_CHANNELUP, 775 [ 0x11 ] = KEY_RECORD, 776 [ 0x14 ] = KEY_PLAY, 777 [ 0x4c ] = KEY_PAUSE, 778 [ 0x1a ] = KEY_STOP, 779 [ 0x40 ] = KEY_REWIND, 780 [ 0x12 ] = KEY_FASTFORWARD, 781 [ 0x41 ] = KEY_PREVIOUSSONG, /* replay |< */ 782 [ 0x42 ] = KEY_NEXTSONG, /* skip >| */ 783 [ 0x54 ] = KEY_CAMERA, /* capture */ 784 [ 0x50 ] = KEY_LANGUAGE, /* sap */ 785 [ 0x47 ] = KEY_TV2, /* pip */ 786 [ 0x4d ] = KEY_SCREEN, 787 [ 0x43 ] = KEY_SUBTITLE, 788 [ 0x10 ] = KEY_MUTE, 789 [ 0x49 ] = KEY_AUDIO, /* l/r */ 790 [ 0x07 ] = KEY_SLEEP, 791 [ 0x08 ] = KEY_VIDEO, /* a/v */ 792 [ 0x0e ] = KEY_PREVIOUS, /* recall */ 793 [ 0x45 ] = KEY_ZOOM, /* zoom + */ 794 [ 0x46 ] = KEY_ANGLE, /* zoom - */ 795 [ 0x56 ] = KEY_RED, 796 [ 0x57 ] = KEY_GREEN, 797 [ 0x5c ] = KEY_YELLOW, 798 [ 0x5d ] = KEY_BLUE, 799 }; 800 801 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvbt_pro); 802 803 IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE] = { 804 [ 0x01 ] = KEY_CHANNEL, 805 [ 0x02 ] = KEY_SELECT, 806 [ 0x03 ] = KEY_MUTE, 807 [ 0x04 ] = KEY_POWER, 808 [ 0x05 ] = KEY_1, 809 [ 0x06 ] = KEY_2, 810 [ 0x07 ] = KEY_3, 811 [ 0x08 ] = KEY_CHANNELUP, 812 [ 0x09 ] = KEY_4, 813 [ 0x0a ] = KEY_5, 814 [ 0x0b ] = KEY_6, 815 [ 0x0c ] = KEY_CHANNELDOWN, 816 [ 0x0d ] = KEY_7, 817 [ 0x0e ] = KEY_8, 818 [ 0x0f ] = KEY_9, 819 [ 0x10 ] = KEY_VOLUMEUP, 820 [ 0x11 ] = KEY_0, 821 [ 0x12 ] = KEY_MENU, 822 [ 0x13 ] = KEY_PRINT, 823 [ 0x14 ] = KEY_VOLUMEDOWN, 824 [ 0x16 ] = KEY_PAUSE, 825 [ 0x18 ] = KEY_RECORD, 826 [ 0x19 ] = KEY_REWIND, 827 [ 0x1a ] = KEY_PLAY, 828 [ 0x1b ] = KEY_FORWARD, 829 [ 0x1c ] = KEY_BACKSPACE, 830 [ 0x1e ] = KEY_STOP, 831 [ 0x40 ] = KEY_ZOOM, 832 }; 833 834 EXPORT_SYMBOL_GPL(ir_codes_em_terratec); 835 836 IR_KEYTAB_TYPE ir_codes_pinnacle_grey[IR_KEYTAB_SIZE] = { 837 [ 0x3a ] = KEY_0, 838 [ 0x31 ] = KEY_1, 839 [ 0x32 ] = KEY_2, 840 [ 0x33 ] = KEY_3, 841 [ 0x34 ] = KEY_4, 842 [ 0x35 ] = KEY_5, 843 [ 0x36 ] = KEY_6, 844 [ 0x37 ] = KEY_7, 845 [ 0x38 ] = KEY_8, 846 [ 0x39 ] = KEY_9, 847 848 [ 0x2f ] = KEY_POWER, 849 850 [ 0x2e ] = KEY_P, 851 [ 0x1f ] = KEY_L, 852 [ 0x2b ] = KEY_I, 853 854 [ 0x2d ] = KEY_SCREEN, 855 [ 0x1e ] = KEY_ZOOM, 856 [ 0x1b ] = KEY_VOLUMEUP, 857 [ 0x0f ] = KEY_VOLUMEDOWN, 858 [ 0x17 ] = KEY_CHANNELUP, 859 [ 0x1c ] = KEY_CHANNELDOWN, 860 [ 0x25 ] = KEY_INFO, 861 862 [ 0x3c ] = KEY_MUTE, 863 864 [ 0x3d ] = KEY_LEFT, 865 [ 0x3b ] = KEY_RIGHT, 866 867 [ 0x3f ] = KEY_UP, 868 [ 0x3e ] = KEY_DOWN, 869 [ 0x1a ] = KEY_ENTER, 870 871 [ 0x1d ] = KEY_MENU, 872 [ 0x19 ] = KEY_AGAIN, 873 [ 0x16 ] = KEY_PREVIOUSSONG, 874 [ 0x13 ] = KEY_NEXTSONG, 875 [ 0x15 ] = KEY_PAUSE, 876 [ 0x0e ] = KEY_REWIND, 877 [ 0x0d ] = KEY_PLAY, 878 [ 0x0b ] = KEY_STOP, 879 [ 0x07 ] = KEY_FORWARD, 880 [ 0x27 ] = KEY_RECORD, 881 [ 0x26 ] = KEY_TUNER, 882 [ 0x29 ] = KEY_TEXT, 883 [ 0x2a ] = KEY_MEDIA, 884 [ 0x18 ] = KEY_EPG, 885 }; 886 887 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_grey); 888 889 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = { 890 [ 0x0f ] = KEY_0, 891 [ 0x03 ] = KEY_1, 892 [ 0x04 ] = KEY_2, 893 [ 0x05 ] = KEY_3, 894 [ 0x07 ] = KEY_4, 895 [ 0x08 ] = KEY_5, 896 [ 0x09 ] = KEY_6, 897 [ 0x0b ] = KEY_7, 898 [ 0x0c ] = KEY_8, 899 [ 0x0d ] = KEY_9, 900 901 [ 0x0e ] = KEY_MODE, // Air/Cable 902 [ 0x11 ] = KEY_VIDEO, // Video 903 [ 0x15 ] = KEY_AUDIO, // Audio 904 [ 0x00 ] = KEY_POWER, // Power 905 [ 0x18 ] = KEY_TUNER, // AV Source 906 [ 0x02 ] = KEY_ZOOM, // Fullscreen 907 [ 0x1a ] = KEY_LANGUAGE, // Stereo 908 [ 0x1b ] = KEY_MUTE, // Mute 909 [ 0x14 ] = KEY_VOLUMEUP, // Volume + 910 [ 0x17 ] = KEY_VOLUMEDOWN, // Volume - 911 [ 0x12 ] = KEY_CHANNELUP, // Channel + 912 [ 0x13 ] = KEY_CHANNELDOWN, // Channel - 913 [ 0x06 ] = KEY_AGAIN, // Recall 914 [ 0x10 ] = KEY_ENTER, // Enter 915 916 [ 0x19 ] = KEY_BACK, // Rewind ( <<< ) 917 [ 0x1f ] = KEY_FORWARD, // Forward ( >>> ) 918 [ 0x0a ] = KEY_ANGLE, // (no label, may be used as the PAUSE button) 919 }; 920 921 EXPORT_SYMBOL_GPL(ir_codes_flyvideo); 922 923 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = { 924 [ 0x01 ] = KEY_ZOOM, // Full Screen 925 [ 0x00 ] = KEY_POWER, // Power 926 927 [ 0x03 ] = KEY_1, 928 [ 0x04 ] = KEY_2, 929 [ 0x05 ] = KEY_3, 930 [ 0x07 ] = KEY_4, 931 [ 0x08 ] = KEY_5, 932 [ 0x09 ] = KEY_6, 933 [ 0x0b ] = KEY_7, 934 [ 0x0c ] = KEY_8, 935 [ 0x0d ] = KEY_9, 936 [ 0x06 ] = KEY_AGAIN, // Recall 937 [ 0x0f ] = KEY_0, 938 [ 0x10 ] = KEY_MUTE, // Mute 939 [ 0x02 ] = KEY_RADIO, // TV/Radio 940 [ 0x1b ] = KEY_LANGUAGE, // SAP (Second Audio Program) 941 942 [ 0x14 ] = KEY_VOLUMEUP, // VOL+ 943 [ 0x17 ] = KEY_VOLUMEDOWN, // VOL- 944 [ 0x12 ] = KEY_CHANNELUP, // CH+ 945 [ 0x13 ] = KEY_CHANNELDOWN, // CH- 946 [ 0x1d ] = KEY_ENTER, // Enter 947 948 [ 0x1a ] = KEY_MODE, // PIP 949 [ 0x18 ] = KEY_TUNER, // Source 950 951 [ 0x1e ] = KEY_RECORD, // Record/Pause 952 [ 0x15 ] = KEY_ANGLE, // Swap (no label on key) 953 [ 0x1c ] = KEY_PAUSE, // Timeshift/Pause 954 [ 0x19 ] = KEY_BACK, // Rewind << 955 [ 0x0a ] = KEY_PLAYPAUSE, // Play/Pause 956 [ 0x1f ] = KEY_FORWARD, // Forward >> 957 [ 0x16 ] = KEY_PREVIOUS, // Back |<< 958 [ 0x11 ] = KEY_STOP, // Stop 959 [ 0x0e ] = KEY_NEXT, // End >>| 960 }; 961 962 EXPORT_SYMBOL_GPL(ir_codes_flydvb); 963 964 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = { 965 [ 0x00 ] = KEY_0, 966 [ 0x01 ] = KEY_1, 967 [ 0x02 ] = KEY_2, 968 [ 0x03 ] = KEY_3, 969 [ 0x04 ] = KEY_4, 970 [ 0x05 ] = KEY_5, 971 [ 0x06 ] = KEY_6, 972 [ 0x07 ] = KEY_7, 973 [ 0x08 ] = KEY_8, 974 [ 0x09 ] = KEY_9, 975 976 [ 0x0a ] = KEY_POWER, 977 [ 0x0b ] = KEY_PROG1, // app 978 [ 0x0c ] = KEY_ZOOM, // zoom/fullscreen 979 [ 0x0d ] = KEY_CHANNELUP, // channel 980 [ 0x0e ] = KEY_CHANNELDOWN, // channel- 981 [ 0x0f ] = KEY_VOLUMEUP, 982 [ 0x10 ] = KEY_VOLUMEDOWN, 983 [ 0x11 ] = KEY_TUNER, // AV 984 [ 0x12 ] = KEY_NUMLOCK, // -/-- 985 [ 0x13 ] = KEY_AUDIO, // audio 986 [ 0x14 ] = KEY_MUTE, 987 [ 0x15 ] = KEY_UP, 988 [ 0x16 ] = KEY_DOWN, 989 [ 0x17 ] = KEY_LEFT, 990 [ 0x18 ] = KEY_RIGHT, 991 [ 0x19 ] = BTN_LEFT, 992 [ 0x1a ] = BTN_RIGHT, 993 [ 0x1b ] = KEY_WWW, // text 994 [ 0x1c ] = KEY_REWIND, 995 [ 0x1d ] = KEY_FORWARD, 996 [ 0x1e ] = KEY_RECORD, 997 [ 0x1f ] = KEY_PLAY, 998 [ 0x20 ] = KEY_PREVIOUSSONG, 999 [ 0x21 ] = KEY_NEXTSONG, 1000 [ 0x22 ] = KEY_PAUSE, 1001 [ 0x23 ] = KEY_STOP, 1002 }; 1003 1004 EXPORT_SYMBOL_GPL(ir_codes_cinergy); 1005 1006 /* Alfons Geser <a.geser@cox.net> 1007 * updates from Job D. R. Borges <jobdrb@ig.com.br> */ 1008 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = { 1009 [ 0x12 ] = KEY_POWER, 1010 [ 0x01 ] = KEY_TV, // DVR 1011 [ 0x15 ] = KEY_DVD, // DVD 1012 [ 0x17 ] = KEY_AUDIO, // music 1013 // DVR mode / DVD mode / music mode 1014 1015 [ 0x1b ] = KEY_MUTE, // mute 1016 [ 0x02 ] = KEY_LANGUAGE, // MTS/SAP / audio / autoseek 1017 [ 0x1e ] = KEY_SUBTITLE, // closed captioning / subtitle / seek 1018 [ 0x16 ] = KEY_ZOOM, // full screen 1019 [ 0x1c ] = KEY_VIDEO, // video source / eject / delall 1020 [ 0x1d ] = KEY_RESTART, // playback / angle / del 1021 [ 0x2f ] = KEY_SEARCH, // scan / menu / playlist 1022 [ 0x30 ] = KEY_CHANNEL, // CH surfing / bookmark / memo 1023 1024 [ 0x31 ] = KEY_HELP, // help 1025 [ 0x32 ] = KEY_MODE, // num/memo 1026 [ 0x33 ] = KEY_ESC, // cancel 1027 1028 [ 0x0c ] = KEY_UP, // up 1029 [ 0x10 ] = KEY_DOWN, // down 1030 [ 0x08 ] = KEY_LEFT, // left 1031 [ 0x04 ] = KEY_RIGHT, // right 1032 [ 0x03 ] = KEY_SELECT, // select 1033 1034 [ 0x1f ] = KEY_REWIND, // rewind 1035 [ 0x20 ] = KEY_PLAYPAUSE, // play/pause 1036 [ 0x29 ] = KEY_FORWARD, // forward 1037 [ 0x14 ] = KEY_AGAIN, // repeat 1038 [ 0x2b ] = KEY_RECORD, // recording 1039 [ 0x2c ] = KEY_STOP, // stop 1040 [ 0x2d ] = KEY_PLAY, // play 1041 [ 0x2e ] = KEY_SHUFFLE, // snapshot / shuffle 1042 1043 [ 0x00 ] = KEY_0, 1044 [ 0x05 ] = KEY_1, 1045 [ 0x06 ] = KEY_2, 1046 [ 0x07 ] = KEY_3, 1047 [ 0x09 ] = KEY_4, 1048 [ 0x0a ] = KEY_5, 1049 [ 0x0b ] = KEY_6, 1050 [ 0x0d ] = KEY_7, 1051 [ 0x0e ] = KEY_8, 1052 [ 0x0f ] = KEY_9, 1053 1054 [ 0x2a ] = KEY_VOLUMEUP, 1055 [ 0x11 ] = KEY_VOLUMEDOWN, 1056 [ 0x18 ] = KEY_CHANNELUP, // CH.tracking up 1057 [ 0x19 ] = KEY_CHANNELDOWN, // CH.tracking down 1058 1059 [ 0x13 ] = KEY_ENTER, // enter 1060 [ 0x21 ] = KEY_DOT, // . (decimal dot) 1061 }; 1062 1063 EXPORT_SYMBOL_GPL(ir_codes_eztv); 1064 1065 /* Alex Hermann <gaaf@gmx.net> */ 1066 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = { 1067 [ 0x28 ] = KEY_1, 1068 [ 0x18 ] = KEY_2, 1069 [ 0x38 ] = KEY_3, 1070 [ 0x24 ] = KEY_4, 1071 [ 0x14 ] = KEY_5, 1072 [ 0x34 ] = KEY_6, 1073 [ 0x2c ] = KEY_7, 1074 [ 0x1c ] = KEY_8, 1075 [ 0x3c ] = KEY_9, 1076 [ 0x22 ] = KEY_0, 1077 1078 [ 0x20 ] = KEY_TV, /* TV/FM */ 1079 [ 0x10 ] = KEY_CD, /* CD */ 1080 [ 0x30 ] = KEY_TEXT, /* TELETEXT */ 1081 [ 0x00 ] = KEY_POWER, /* POWER */ 1082 1083 [ 0x08 ] = KEY_VIDEO, /* VIDEO */ 1084 [ 0x04 ] = KEY_AUDIO, /* AUDIO */ 1085 [ 0x0c ] = KEY_ZOOM, /* FULL SCREEN */ 1086 1087 [ 0x12 ] = KEY_SUBTITLE, /* DISPLAY */ 1088 [ 0x32 ] = KEY_REWIND, /* LOOP */ 1089 [ 0x02 ] = KEY_PRINT, /* PREVIEW */ 1090 1091 [ 0x2a ] = KEY_SEARCH, /* AUTOSCAN */ 1092 [ 0x1a ] = KEY_SLEEP, /* FREEZE */ 1093 [ 0x3a ] = KEY_SHUFFLE, /* SNAPSHOT */ 1094 [ 0x0a ] = KEY_MUTE, /* MUTE */ 1095 1096 [ 0x26 ] = KEY_RECORD, /* RECORD */ 1097 [ 0x16 ] = KEY_PAUSE, /* PAUSE */ 1098 [ 0x36 ] = KEY_STOP, /* STOP */ 1099 [ 0x06 ] = KEY_PLAY, /* PLAY */ 1100 1101 [ 0x2e ] = KEY_RED, /* RED */ 1102 [ 0x21 ] = KEY_GREEN, /* GREEN */ 1103 [ 0x0e ] = KEY_YELLOW, /* YELLOW */ 1104 [ 0x01 ] = KEY_BLUE, /* BLUE */ 1105 1106 [ 0x1e ] = KEY_VOLUMEDOWN, /* VOLUME- */ 1107 [ 0x3e ] = KEY_VOLUMEUP, /* VOLUME+ */ 1108 [ 0x11 ] = KEY_CHANNELDOWN, /* CHANNEL/PAGE- */ 1109 [ 0x31 ] = KEY_CHANNELUP /* CHANNEL/PAGE+ */ 1110 }; 1111 1112 EXPORT_SYMBOL_GPL(ir_codes_avermedia); 1113 1114 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = { 1115 [ 0x14 ] = KEY_MUTE, 1116 [ 0x24 ] = KEY_ZOOM, 1117 1118 [ 0x01 ] = KEY_DVD, 1119 [ 0x23 ] = KEY_RADIO, 1120 [ 0x00 ] = KEY_TV, 1121 1122 [ 0x0a ] = KEY_REWIND, 1123 [ 0x08 ] = KEY_PLAYPAUSE, 1124 [ 0x0f ] = KEY_FORWARD, 1125 1126 [ 0x02 ] = KEY_PREVIOUS, 1127 [ 0x07 ] = KEY_STOP, 1128 [ 0x06 ] = KEY_NEXT, 1129 1130 [ 0x0c ] = KEY_UP, 1131 [ 0x0e ] = KEY_DOWN, 1132 [ 0x0b ] = KEY_LEFT, 1133 [ 0x0d ] = KEY_RIGHT, 1134 [ 0x11 ] = KEY_OK, 1135 1136 [ 0x03 ] = KEY_MENU, 1137 [ 0x09 ] = KEY_SETUP, 1138 [ 0x05 ] = KEY_VIDEO, 1139 [ 0x22 ] = KEY_CHANNEL, 1140 1141 [ 0x12 ] = KEY_VOLUMEUP, 1142 [ 0x15 ] = KEY_VOLUMEDOWN, 1143 [ 0x10 ] = KEY_CHANNELUP, 1144 [ 0x13 ] = KEY_CHANNELDOWN, 1145 1146 [ 0x04 ] = KEY_RECORD, 1147 1148 [ 0x16 ] = KEY_1, 1149 [ 0x17 ] = KEY_2, 1150 [ 0x18 ] = KEY_3, 1151 [ 0x19 ] = KEY_4, 1152 [ 0x1a ] = KEY_5, 1153 [ 0x1b ] = KEY_6, 1154 [ 0x1c ] = KEY_7, 1155 [ 0x1d ] = KEY_8, 1156 [ 0x1e ] = KEY_9, 1157 [ 0x1f ] = KEY_0, 1158 1159 [ 0x20 ] = KEY_LANGUAGE, 1160 [ 0x21 ] = KEY_SLEEP, 1161 }; 1162 1163 EXPORT_SYMBOL_GPL(ir_codes_videomate_tv_pvr); 1164 1165 /* Michael Tokarev <mjt@tls.msk.ru> 1166 http://www.corpit.ru/mjt/beholdTV/remote_control.jpg 1167 keytable is used by MANLI MTV00[ 0x0c ] and BeholdTV 40[13] at 1168 least, and probably other cards too. 1169 The "ascii-art picture" below (in comments, first row 1170 is the keycode in hex, and subsequent row(s) shows 1171 the button labels (several variants when appropriate) 1172 helps to descide which keycodes to assign to the buttons. 1173 */ 1174 IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = { 1175 1176 /* 0x1c 0x12 * 1177 * FUNCTION POWER * 1178 * FM (|) * 1179 * */ 1180 [ 0x1c ] = KEY_RADIO, /*XXX*/ 1181 [ 0x12 ] = KEY_POWER, 1182 1183 /* 0x01 0x02 0x03 * 1184 * 1 2 3 * 1185 * * 1186 * 0x04 0x05 0x06 * 1187 * 4 5 6 * 1188 * * 1189 * 0x07 0x08 0x09 * 1190 * 7 8 9 * 1191 * */ 1192 [ 0x01 ] = KEY_1, 1193 [ 0x02 ] = KEY_2, 1194 [ 0x03 ] = KEY_3, 1195 [ 0x04 ] = KEY_4, 1196 [ 0x05 ] = KEY_5, 1197 [ 0x06 ] = KEY_6, 1198 [ 0x07 ] = KEY_7, 1199 [ 0x08 ] = KEY_8, 1200 [ 0x09 ] = KEY_9, 1201 1202 /* 0x0a 0x00 0x17 * 1203 * RECALL 0 +100 * 1204 * PLUS * 1205 * */ 1206 [ 0x0a ] = KEY_AGAIN, /*XXX KEY_REWIND? */ 1207 [ 0x00 ] = KEY_0, 1208 [ 0x17 ] = KEY_DIGITS, /*XXX*/ 1209 1210 /* 0x14 0x10 * 1211 * MENU INFO * 1212 * OSD */ 1213 [ 0x14 ] = KEY_MENU, 1214 [ 0x10 ] = KEY_INFO, 1215 1216 /* 0x0b * 1217 * Up * 1218 * * 1219 * 0x18 0x16 0x0c * 1220 * Left Ok Right * 1221 * * 1222 * 0x015 * 1223 * Down * 1224 * */ 1225 [ 0x0b ] = KEY_UP, /*XXX KEY_SCROLLUP? */ 1226 [ 0x18 ] = KEY_LEFT, /*XXX KEY_BACK? */ 1227 [ 0x16 ] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */ 1228 [ 0x0c ] = KEY_RIGHT, /*XXX KEY_FORWARD? */ 1229 [ 0x15 ] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */ 1230 1231 /* 0x11 0x0d * 1232 * TV/AV MODE * 1233 * SOURCE STEREO * 1234 * */ 1235 [ 0x11 ] = KEY_TV, /*XXX*/ 1236 [ 0x0d ] = KEY_MODE, /*XXX there's no KEY_STEREO */ 1237 1238 /* 0x0f 0x1b 0x1a * 1239 * AUDIO Vol+ Chan+ * 1240 * TIMESHIFT??? * 1241 * * 1242 * 0x0e 0x1f 0x1e * 1243 * SLEEP Vol- Chan- * 1244 * */ 1245 [ 0x0f ] = KEY_AUDIO, 1246 [ 0x1b ] = KEY_VOLUMEUP, 1247 [ 0x1a ] = KEY_CHANNELUP, 1248 [ 0x0e ] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */ 1249 [ 0x1f ] = KEY_VOLUMEDOWN, 1250 [ 0x1e ] = KEY_CHANNELDOWN, 1251 1252 /* 0x13 0x19 * 1253 * MUTE SNAPSHOT* 1254 * */ 1255 [ 0x13 ] = KEY_MUTE, 1256 [ 0x19 ] = KEY_RECORD, /*XXX*/ 1257 1258 // 0x1d unused ? 1259 }; 1260 1261 EXPORT_SYMBOL_GPL(ir_codes_manli); 1262 1263 /* Mike Baikov <mike@baikov.com> */ 1264 IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = { 1265 1266 [ 0x11 ] = KEY_POWER, 1267 [ 0x35 ] = KEY_TV, 1268 [ 0x1b ] = KEY_0, 1269 [ 0x29 ] = KEY_1, 1270 [ 0x19 ] = KEY_2, 1271 [ 0x39 ] = KEY_3, 1272 [ 0x1f ] = KEY_4, 1273 [ 0x2c ] = KEY_5, 1274 [ 0x21 ] = KEY_6, 1275 [ 0x24 ] = KEY_7, 1276 [ 0x18 ] = KEY_8, 1277 [ 0x2b ] = KEY_9, 1278 [ 0x3b ] = KEY_AGAIN, /* LOOP */ 1279 [ 0x06 ] = KEY_AUDIO, 1280 [ 0x31 ] = KEY_PRINT, /* PREVIEW */ 1281 [ 0x3e ] = KEY_VIDEO, 1282 [ 0x10 ] = KEY_CHANNELUP, 1283 [ 0x20 ] = KEY_CHANNELDOWN, 1284 [ 0x0c ] = KEY_VOLUMEDOWN, 1285 [ 0x28 ] = KEY_VOLUMEUP, 1286 [ 0x08 ] = KEY_MUTE, 1287 [ 0x26 ] = KEY_SEARCH, /*SCAN*/ 1288 [ 0x3f ] = KEY_SHUFFLE, /* SNAPSHOT */ 1289 [ 0x12 ] = KEY_RECORD, 1290 [ 0x32 ] = KEY_STOP, 1291 [ 0x3c ] = KEY_PLAY, 1292 [ 0x1d ] = KEY_REWIND, 1293 [ 0x2d ] = KEY_PAUSE, 1294 [ 0x0d ] = KEY_FORWARD, 1295 [ 0x05 ] = KEY_ZOOM, /*FULL*/ 1296 1297 [ 0x2a ] = KEY_F21, /* LIVE TIMESHIFT */ 1298 [ 0x0e ] = KEY_F22, /* MIN TIMESHIFT */ 1299 [ 0x1e ] = KEY_F23, /* TIMESHIFT */ 1300 [ 0x38 ] = KEY_F24, /* NORMAL TIMESHIFT */ 1301 }; 1302 1303 EXPORT_SYMBOL_GPL(ir_codes_gotview7135); 1304 1305 IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = { 1306 [ 0x03 ] = KEY_POWER, 1307 [ 0x6f ] = KEY_MUTE, 1308 [ 0x10 ] = KEY_BACKSPACE, /* Recall */ 1309 1310 [ 0x11 ] = KEY_0, 1311 [ 0x04 ] = KEY_1, 1312 [ 0x05 ] = KEY_2, 1313 [ 0x06 ] = KEY_3, 1314 [ 0x08 ] = KEY_4, 1315 [ 0x09 ] = KEY_5, 1316 [ 0x0a ] = KEY_6, 1317 [ 0x0c ] = KEY_7, 1318 [ 0x0d ] = KEY_8, 1319 [ 0x0e ] = KEY_9, 1320 [ 0x12 ] = KEY_DOT, /* 100+ */ 1321 1322 [ 0x07 ] = KEY_VOLUMEUP, 1323 [ 0x0b ] = KEY_VOLUMEDOWN, 1324 [ 0x1a ] = KEY_KPPLUS, 1325 [ 0x18 ] = KEY_KPMINUS, 1326 [ 0x15 ] = KEY_UP, 1327 [ 0x1d ] = KEY_DOWN, 1328 [ 0x0f ] = KEY_CHANNELUP, 1329 [ 0x13 ] = KEY_CHANNELDOWN, 1330 [ 0x48 ] = KEY_ZOOM, 1331 1332 [ 0x1b ] = KEY_VIDEO, /* Video source */ 1333 [ 0x49 ] = KEY_LANGUAGE, /* MTS Select */ 1334 [ 0x19 ] = KEY_SEARCH, /* Auto Scan */ 1335 1336 [ 0x4b ] = KEY_RECORD, 1337 [ 0x46 ] = KEY_PLAY, 1338 [ 0x45 ] = KEY_PAUSE, /* Pause */ 1339 [ 0x44 ] = KEY_STOP, 1340 [ 0x40 ] = KEY_FORWARD, /* Forward ? */ 1341 [ 0x42 ] = KEY_REWIND, /* Backward ? */ 1342 1343 }; 1344 1345 EXPORT_SYMBOL_GPL(ir_codes_purpletv); 1346 1347 /* Mapping for the 28 key remote control as seen at 1348 http://www.sednacomputer.com/photo/cardbus-tv.jpg 1349 Pavel Mihaylov <bin@bash.info> 1350 Also for the remote bundled with Kozumi KTV-01C card */ 1351 IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = { 1352 [ 0x00 ] = KEY_0, 1353 [ 0x01 ] = KEY_1, 1354 [ 0x02 ] = KEY_2, 1355 [ 0x03 ] = KEY_3, 1356 [ 0x04 ] = KEY_4, 1357 [ 0x05 ] = KEY_5, 1358 [ 0x06 ] = KEY_6, 1359 [ 0x07 ] = KEY_7, 1360 [ 0x08 ] = KEY_8, 1361 [ 0x09 ] = KEY_9, 1362 1363 [ 0x0a ] = KEY_AGAIN, /* Recall */ 1364 [ 0x0b ] = KEY_CHANNELUP, 1365 [ 0x0c ] = KEY_VOLUMEUP, 1366 [ 0x0d ] = KEY_MODE, /* Stereo */ 1367 [ 0x0e ] = KEY_STOP, 1368 [ 0x0f ] = KEY_PREVIOUSSONG, 1369 [ 0x10 ] = KEY_ZOOM, 1370 [ 0x11 ] = KEY_TUNER, /* Source */ 1371 [ 0x12 ] = KEY_POWER, 1372 [ 0x13 ] = KEY_MUTE, 1373 [ 0x15 ] = KEY_CHANNELDOWN, 1374 [ 0x18 ] = KEY_VOLUMEDOWN, 1375 [ 0x19 ] = KEY_SHUFFLE, /* Snapshot */ 1376 [ 0x1a ] = KEY_NEXTSONG, 1377 [ 0x1b ] = KEY_TEXT, /* Time Shift */ 1378 [ 0x1c ] = KEY_RADIO, /* FM Radio */ 1379 [ 0x1d ] = KEY_RECORD, 1380 [ 0x1e ] = KEY_PAUSE, 1381 /* additional codes for Kozumi's remote */ 1382 [0x14] = KEY_INFO, /* OSD */ 1383 [0x16] = KEY_OK, /* OK */ 1384 [0x17] = KEY_DIGITS, /* Plus */ 1385 [0x1f] = KEY_PLAY, /* Play */ 1386 }; 1387 1388 EXPORT_SYMBOL_GPL(ir_codes_pctv_sedna); 1389 1390 /* Mark Phalan <phalanm@o2.ie> */ 1391 IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = { 1392 [ 0x00 ] = KEY_0, 1393 [ 0x01 ] = KEY_1, 1394 [ 0x02 ] = KEY_2, 1395 [ 0x03 ] = KEY_3, 1396 [ 0x04 ] = KEY_4, 1397 [ 0x05 ] = KEY_5, 1398 [ 0x06 ] = KEY_6, 1399 [ 0x07 ] = KEY_7, 1400 [ 0x08 ] = KEY_8, 1401 [ 0x09 ] = KEY_9, 1402 1403 [ 0x12 ] = KEY_POWER, 1404 [ 0x10 ] = KEY_MUTE, 1405 [ 0x1f ] = KEY_VOLUMEDOWN, 1406 [ 0x1b ] = KEY_VOLUMEUP, 1407 [ 0x1a ] = KEY_CHANNELUP, 1408 [ 0x1e ] = KEY_CHANNELDOWN, 1409 [ 0x0e ] = KEY_PAGEUP, 1410 [ 0x1d ] = KEY_PAGEDOWN, 1411 [ 0x13 ] = KEY_SOUND, 1412 1413 [ 0x18 ] = KEY_KPPLUSMINUS, /* CH +/- */ 1414 [ 0x16 ] = KEY_SUBTITLE, /* CC */ 1415 [ 0x0d ] = KEY_TEXT, /* TTX */ 1416 [ 0x0b ] = KEY_TV, /* AIR/CBL */ 1417 [ 0x11 ] = KEY_PC, /* PC/TV */ 1418 [ 0x17 ] = KEY_OK, /* CH RTN */ 1419 [ 0x19 ] = KEY_MODE, /* FUNC */ 1420 [ 0x0c ] = KEY_SEARCH, /* AUTOSCAN */ 1421 1422 /* Not sure what to do with these ones! */ 1423 [ 0x0f ] = KEY_SELECT, /* SOURCE */ 1424 [ 0x0a ] = KEY_KPPLUS, /* +100 */ 1425 [ 0x14 ] = KEY_EQUAL, /* SYNC */ 1426 [ 0x1c ] = KEY_MEDIA, /* PC/TV */ 1427 }; 1428 1429 EXPORT_SYMBOL_GPL(ir_codes_pv951); 1430 1431 /* generic RC5 keytable */ 1432 /* see http://users.pandora.be/nenya/electronics/rc5/codes00.htm */ 1433 /* used by old (black) Hauppauge remotes */ 1434 IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE] = { 1435 /* Keys 0 to 9 */ 1436 [ 0x00 ] = KEY_0, 1437 [ 0x01 ] = KEY_1, 1438 [ 0x02 ] = KEY_2, 1439 [ 0x03 ] = KEY_3, 1440 [ 0x04 ] = KEY_4, 1441 [ 0x05 ] = KEY_5, 1442 [ 0x06 ] = KEY_6, 1443 [ 0x07 ] = KEY_7, 1444 [ 0x08 ] = KEY_8, 1445 [ 0x09 ] = KEY_9, 1446 1447 [ 0x0b ] = KEY_CHANNEL, /* channel / program (japan: 11) */ 1448 [ 0x0c ] = KEY_POWER, /* standby */ 1449 [ 0x0d ] = KEY_MUTE, /* mute / demute */ 1450 [ 0x0f ] = KEY_TV, /* display */ 1451 [ 0x10 ] = KEY_VOLUMEUP, 1452 [ 0x11 ] = KEY_VOLUMEDOWN, 1453 [ 0x12 ] = KEY_BRIGHTNESSUP, 1454 [ 0x13 ] = KEY_BRIGHTNESSDOWN, 1455 [ 0x1e ] = KEY_SEARCH, /* search + */ 1456 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */ 1457 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */ 1458 [ 0x22 ] = KEY_CHANNEL, /* alt / channel */ 1459 [ 0x23 ] = KEY_LANGUAGE, /* 1st / 2nd language */ 1460 [ 0x26 ] = KEY_SLEEP, /* sleeptimer */ 1461 [ 0x2e ] = KEY_MENU, /* 2nd controls (USA: menu) */ 1462 [ 0x30 ] = KEY_PAUSE, 1463 [ 0x32 ] = KEY_REWIND, 1464 [ 0x33 ] = KEY_GOTO, 1465 [ 0x35 ] = KEY_PLAY, 1466 [ 0x36 ] = KEY_STOP, 1467 [ 0x37 ] = KEY_RECORD, /* recording */ 1468 [ 0x3c ] = KEY_TEXT, /* teletext submode (Japan: 12) */ 1469 [ 0x3d ] = KEY_SUSPEND, /* system standby */ 1470 1471 }; 1472 1473 EXPORT_SYMBOL_GPL(ir_codes_rc5_tv); 1474 1475 /* Table for Leadtek Winfast Remote Controls - used by both bttv and cx88 */ 1476 IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = { 1477 /* Keys 0 to 9 */ 1478 [ 0x12 ] = KEY_0, 1479 [ 0x05 ] = KEY_1, 1480 [ 0x06 ] = KEY_2, 1481 [ 0x07 ] = KEY_3, 1482 [ 0x09 ] = KEY_4, 1483 [ 0x0a ] = KEY_5, 1484 [ 0x0b ] = KEY_6, 1485 [ 0x0d ] = KEY_7, 1486 [ 0x0e ] = KEY_8, 1487 [ 0x0f ] = KEY_9, 1488 1489 [ 0x00 ] = KEY_POWER, 1490 [ 0x1b ] = KEY_AUDIO, /* Audio Source */ 1491 [ 0x02 ] = KEY_TUNER, /* TV/FM, not on Y0400052 */ 1492 [ 0x1e ] = KEY_VIDEO, /* Video Source */ 1493 [ 0x16 ] = KEY_INFO, /* Display information */ 1494 [ 0x04 ] = KEY_VOLUMEUP, 1495 [ 0x08 ] = KEY_VOLUMEDOWN, 1496 [ 0x0c ] = KEY_CHANNELUP, 1497 [ 0x10 ] = KEY_CHANNELDOWN, 1498 [ 0x03 ] = KEY_ZOOM, /* fullscreen */ 1499 [ 0x1f ] = KEY_TEXT, /* closed caption/teletext */ 1500 [ 0x20 ] = KEY_SLEEP, 1501 [ 0x29 ] = KEY_CLEAR, /* boss key */ 1502 [ 0x14 ] = KEY_MUTE, 1503 [ 0x2b ] = KEY_RED, 1504 [ 0x2c ] = KEY_GREEN, 1505 [ 0x2d ] = KEY_YELLOW, 1506 [ 0x2e ] = KEY_BLUE, 1507 [ 0x18 ] = KEY_KPPLUS, /* fine tune + , not on Y040052 */ 1508 [ 0x19 ] = KEY_KPMINUS, /* fine tune - , not on Y040052 */ 1509 [ 0x2a ] = KEY_MEDIA, /* PIP (Picture in picture */ 1510 [ 0x21 ] = KEY_DOT, 1511 [ 0x13 ] = KEY_ENTER, 1512 [ 0x11 ] = KEY_LAST, /* Recall (last channel */ 1513 [ 0x22 ] = KEY_PREVIOUS, 1514 [ 0x23 ] = KEY_PLAYPAUSE, 1515 [ 0x24 ] = KEY_NEXT, 1516 [ 0x25 ] = KEY_ARCHIVE, /* Time Shifting */ 1517 [ 0x26 ] = KEY_STOP, 1518 [ 0x27 ] = KEY_RECORD, 1519 [ 0x28 ] = KEY_SAVE, /* Screenshot */ 1520 [ 0x2f ] = KEY_MENU, 1521 [ 0x30 ] = KEY_CANCEL, 1522 [ 0x31 ] = KEY_CHANNEL, /* Channel Surf */ 1523 [ 0x32 ] = KEY_SUBTITLE, 1524 [ 0x33 ] = KEY_LANGUAGE, 1525 [ 0x34 ] = KEY_REWIND, 1526 [ 0x35 ] = KEY_FASTFORWARD, 1527 [ 0x36 ] = KEY_TV, 1528 [ 0x37 ] = KEY_RADIO, /* FM */ 1529 [ 0x38 ] = KEY_DVD, 1530 1531 [ 0x3e ] = KEY_F21, /* MCE +VOL, on Y04G0033 */ 1532 [ 0x3a ] = KEY_F22, /* MCE -VOL, on Y04G0033 */ 1533 [ 0x3b ] = KEY_F23, /* MCE +CH, on Y04G0033 */ 1534 [ 0x3f ] = KEY_F24 /* MCE -CH, on Y04G0033 */ 1535 }; 1536 1537 EXPORT_SYMBOL_GPL(ir_codes_winfast); 1538 1539 IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = { 1540 [ 0x59 ] = KEY_MUTE, 1541 [ 0x4a ] = KEY_POWER, 1542 1543 [ 0x18 ] = KEY_TEXT, 1544 [ 0x26 ] = KEY_TV, 1545 [ 0x3d ] = KEY_PRINT, 1546 1547 [ 0x48 ] = KEY_RED, 1548 [ 0x04 ] = KEY_GREEN, 1549 [ 0x11 ] = KEY_YELLOW, 1550 [ 0x00 ] = KEY_BLUE, 1551 1552 [ 0x2d ] = KEY_VOLUMEUP, 1553 [ 0x1e ] = KEY_VOLUMEDOWN, 1554 1555 [ 0x49 ] = KEY_MENU, 1556 1557 [ 0x16 ] = KEY_CHANNELUP, 1558 [ 0x17 ] = KEY_CHANNELDOWN, 1559 1560 [ 0x20 ] = KEY_UP, 1561 [ 0x21 ] = KEY_DOWN, 1562 [ 0x22 ] = KEY_LEFT, 1563 [ 0x23 ] = KEY_RIGHT, 1564 [ 0x0d ] = KEY_SELECT, 1565 1566 1567 1568 [ 0x08 ] = KEY_BACK, 1569 [ 0x07 ] = KEY_REFRESH, 1570 1571 [ 0x2f ] = KEY_ZOOM, 1572 [ 0x29 ] = KEY_RECORD, 1573 1574 [ 0x4b ] = KEY_PAUSE, 1575 [ 0x4d ] = KEY_REWIND, 1576 [ 0x2e ] = KEY_PLAY, 1577 [ 0x4e ] = KEY_FORWARD, 1578 [ 0x53 ] = KEY_PREVIOUS, 1579 [ 0x4c ] = KEY_STOP, 1580 [ 0x54 ] = KEY_NEXT, 1581 1582 [ 0x69 ] = KEY_0, 1583 [ 0x6a ] = KEY_1, 1584 [ 0x6b ] = KEY_2, 1585 [ 0x6c ] = KEY_3, 1586 [ 0x6d ] = KEY_4, 1587 [ 0x6e ] = KEY_5, 1588 [ 0x6f ] = KEY_6, 1589 [ 0x70 ] = KEY_7, 1590 [ 0x71 ] = KEY_8, 1591 [ 0x72 ] = KEY_9, 1592 1593 [ 0x74 ] = KEY_CHANNEL, 1594 [ 0x0a ] = KEY_BACKSPACE, 1595 }; 1596 1597 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_color); 1598 1599 /* Hauppauge: the newer, gray remotes (seems there are multiple 1600 * slightly different versions), shipped with cx88+ivtv cards. 1601 * almost rc5 coding, but some non-standard keys */ 1602 IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = { 1603 /* Keys 0 to 9 */ 1604 [ 0x00 ] = KEY_0, 1605 [ 0x01 ] = KEY_1, 1606 [ 0x02 ] = KEY_2, 1607 [ 0x03 ] = KEY_3, 1608 [ 0x04 ] = KEY_4, 1609 [ 0x05 ] = KEY_5, 1610 [ 0x06 ] = KEY_6, 1611 [ 0x07 ] = KEY_7, 1612 [ 0x08 ] = KEY_8, 1613 [ 0x09 ] = KEY_9, 1614 1615 [ 0x0a ] = KEY_TEXT, /* keypad asterisk as well */ 1616 [ 0x0b ] = KEY_RED, /* red button */ 1617 [ 0x0c ] = KEY_RADIO, 1618 [ 0x0d ] = KEY_MENU, 1619 [ 0x0e ] = KEY_SUBTITLE, /* also the # key */ 1620 [ 0x0f ] = KEY_MUTE, 1621 [ 0x10 ] = KEY_VOLUMEUP, 1622 [ 0x11 ] = KEY_VOLUMEDOWN, 1623 [ 0x12 ] = KEY_PREVIOUS, /* previous channel */ 1624 [ 0x14 ] = KEY_UP, 1625 [ 0x15 ] = KEY_DOWN, 1626 [ 0x16 ] = KEY_LEFT, 1627 [ 0x17 ] = KEY_RIGHT, 1628 [ 0x18 ] = KEY_VIDEO, /* Videos */ 1629 [ 0x19 ] = KEY_AUDIO, /* Music */ 1630 /* 0x1a: Pictures - presume this means 1631 "Multimedia Home Platform" - 1632 no "PICTURES" key in input.h 1633 */ 1634 [ 0x1a ] = KEY_MHP, 1635 1636 [ 0x1b ] = KEY_EPG, /* Guide */ 1637 [ 0x1c ] = KEY_TV, 1638 [ 0x1e ] = KEY_NEXTSONG, /* skip >| */ 1639 [ 0x1f ] = KEY_EXIT, /* back/exit */ 1640 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */ 1641 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */ 1642 [ 0x22 ] = KEY_CHANNEL, /* source (old black remote) */ 1643 [ 0x24 ] = KEY_PREVIOUSSONG, /* replay |< */ 1644 [ 0x25 ] = KEY_ENTER, /* OK */ 1645 [ 0x26 ] = KEY_SLEEP, /* minimize (old black remote) */ 1646 [ 0x29 ] = KEY_BLUE, /* blue key */ 1647 [ 0x2e ] = KEY_GREEN, /* green button */ 1648 [ 0x30 ] = KEY_PAUSE, /* pause */ 1649 [ 0x32 ] = KEY_REWIND, /* backward << */ 1650 [ 0x34 ] = KEY_FASTFORWARD, /* forward >> */ 1651 [ 0x35 ] = KEY_PLAY, 1652 [ 0x36 ] = KEY_STOP, 1653 [ 0x37 ] = KEY_RECORD, /* recording */ 1654 [ 0x38 ] = KEY_YELLOW, /* yellow key */ 1655 [ 0x3b ] = KEY_SELECT, /* top right button */ 1656 [ 0x3c ] = KEY_ZOOM, /* full */ 1657 [ 0x3d ] = KEY_POWER, /* system power (green button) */ 1658 }; 1659 1660 EXPORT_SYMBOL_GPL(ir_codes_hauppauge_new); 1661 1662 IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = { 1663 [ 0x1d ] = KEY_SWITCHVIDEOMODE, /* switch inputs */ 1664 [ 0x2a ] = KEY_FRONT, 1665 1666 [ 0x3e ] = KEY_1, 1667 [ 0x02 ] = KEY_2, 1668 [ 0x06 ] = KEY_3, 1669 [ 0x0a ] = KEY_4, 1670 [ 0x0e ] = KEY_5, 1671 [ 0x12 ] = KEY_6, 1672 [ 0x16 ] = KEY_7, 1673 [ 0x1a ] = KEY_8, 1674 [ 0x1e ] = KEY_9, 1675 [ 0x3a ] = KEY_0, 1676 [ 0x22 ] = KEY_NUMLOCK, /* -/-- */ 1677 [ 0x20 ] = KEY_REFRESH, 1678 1679 [ 0x03 ] = KEY_BRIGHTNESSDOWN, 1680 [ 0x28 ] = KEY_AUDIO, 1681 [ 0x3c ] = KEY_UP, 1682 [ 0x3f ] = KEY_LEFT, 1683 [ 0x2e ] = KEY_MUTE, 1684 [ 0x3b ] = KEY_RIGHT, 1685 [ 0x00 ] = KEY_DOWN, 1686 [ 0x07 ] = KEY_BRIGHTNESSUP, 1687 [ 0x2c ] = KEY_TEXT, 1688 1689 [ 0x37 ] = KEY_RECORD, 1690 [ 0x17 ] = KEY_PLAY, 1691 [ 0x13 ] = KEY_PAUSE, 1692 [ 0x26 ] = KEY_STOP, 1693 [ 0x18 ] = KEY_FASTFORWARD, 1694 [ 0x14 ] = KEY_REWIND, 1695 [ 0x33 ] = KEY_ZOOM, 1696 [ 0x32 ] = KEY_KEYBOARD, 1697 [ 0x30 ] = KEY_GOTO, /* Pointing arrow */ 1698 [ 0x36 ] = KEY_MACRO, /* Maximize/Minimize (yellow) */ 1699 [ 0x0b ] = KEY_RADIO, 1700 [ 0x10 ] = KEY_POWER, 1701 1702 }; 1703 1704 EXPORT_SYMBOL_GPL(ir_codes_npgtech); 1705 1706 /* Norwood Micro (non-Pro) TV Tuner 1707 By Peter Naulls <peter@chocky.org> 1708 Key comments are the functions given in the manual */ 1709 IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE] = { 1710 /* Keys 0 to 9 */ 1711 [ 0x20 ] = KEY_0, 1712 [ 0x21 ] = KEY_1, 1713 [ 0x22 ] = KEY_2, 1714 [ 0x23 ] = KEY_3, 1715 [ 0x24 ] = KEY_4, 1716 [ 0x25 ] = KEY_5, 1717 [ 0x26 ] = KEY_6, 1718 [ 0x27 ] = KEY_7, 1719 [ 0x28 ] = KEY_8, 1720 [ 0x29 ] = KEY_9, 1721 1722 [ 0x78 ] = KEY_TUNER, /* Video Source */ 1723 [ 0x2c ] = KEY_EXIT, /* Open/Close software */ 1724 [ 0x2a ] = KEY_SELECT, /* 2 Digit Select */ 1725 [ 0x69 ] = KEY_AGAIN, /* Recall */ 1726 1727 [ 0x32 ] = KEY_BRIGHTNESSUP, /* Brightness increase */ 1728 [ 0x33 ] = KEY_BRIGHTNESSDOWN, /* Brightness decrease */ 1729 [ 0x6b ] = KEY_KPPLUS, /* (not named >>>>>) */ 1730 [ 0x6c ] = KEY_KPMINUS, /* (not named <<<<<) */ 1731 1732 [ 0x2d ] = KEY_MUTE, /* Mute */ 1733 [ 0x30 ] = KEY_VOLUMEUP, /* Volume up */ 1734 [ 0x31 ] = KEY_VOLUMEDOWN, /* Volume down */ 1735 [ 0x60 ] = KEY_CHANNELUP, /* Channel up */ 1736 [ 0x61 ] = KEY_CHANNELDOWN, /* Channel down */ 1737 1738 [ 0x3f ] = KEY_RECORD, /* Record */ 1739 [ 0x37 ] = KEY_PLAY, /* Play */ 1740 [ 0x36 ] = KEY_PAUSE, /* Pause */ 1741 [ 0x2b ] = KEY_STOP, /* Stop */ 1742 [ 0x67 ] = KEY_FASTFORWARD, /* Foward */ 1743 [ 0x66 ] = KEY_REWIND, /* Rewind */ 1744 [ 0x3e ] = KEY_SEARCH, /* Auto Scan */ 1745 [ 0x2e ] = KEY_CAMERA, /* Capture Video */ 1746 [ 0x6d ] = KEY_MENU, /* Show/Hide Control */ 1747 [ 0x2f ] = KEY_ZOOM, /* Full Screen */ 1748 [ 0x34 ] = KEY_RADIO, /* FM */ 1749 [ 0x65 ] = KEY_POWER, /* Computer power */ 1750 }; 1751 1752 EXPORT_SYMBOL_GPL(ir_codes_norwood); 1753 1754 /* From reading the following remotes: 1755 * Zenith Universal 7 / TV Mode 807 / VCR Mode 837 1756 * Hauppauge (from NOVA-CI-s box product) 1757 * This is a "middle of the road" approach, differences are noted 1758 */ 1759 IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE] = { 1760 [ 0x00 ] = KEY_0, 1761 [ 0x01 ] = KEY_1, 1762 [ 0x02 ] = KEY_2, 1763 [ 0x03 ] = KEY_3, 1764 [ 0x04 ] = KEY_4, 1765 [ 0x05 ] = KEY_5, 1766 [ 0x06 ] = KEY_6, 1767 [ 0x07 ] = KEY_7, 1768 [ 0x08 ] = KEY_8, 1769 [ 0x09 ] = KEY_9, 1770 [ 0x0a ] = KEY_ENTER, 1771 [ 0x0b ] = KEY_RED, 1772 [ 0x0c ] = KEY_POWER, /* RADIO on Hauppauge */ 1773 [ 0x0d ] = KEY_MUTE, 1774 [ 0x0f ] = KEY_A, /* TV on Hauppauge */ 1775 [ 0x10 ] = KEY_VOLUMEUP, 1776 [ 0x11 ] = KEY_VOLUMEDOWN, 1777 [ 0x14 ] = KEY_B, 1778 [ 0x1c ] = KEY_UP, 1779 [ 0x1d ] = KEY_DOWN, 1780 [ 0x1e ] = KEY_OPTION, /* RESERVED on Hauppauge */ 1781 [ 0x1f ] = KEY_BREAK, 1782 [ 0x20 ] = KEY_CHANNELUP, 1783 [ 0x21 ] = KEY_CHANNELDOWN, 1784 [ 0x22 ] = KEY_PREVIOUS, /* Prev. Ch on Zenith, SOURCE on Hauppauge */ 1785 [ 0x24 ] = KEY_RESTART, 1786 [ 0x25 ] = KEY_OK, 1787 [ 0x26 ] = KEY_CYCLEWINDOWS, /* MINIMIZE on Hauppauge */ 1788 [ 0x28 ] = KEY_ENTER, /* VCR mode on Zenith */ 1789 [ 0x29 ] = KEY_PAUSE, 1790 [ 0x2b ] = KEY_RIGHT, 1791 [ 0x2c ] = KEY_LEFT, 1792 [ 0x2e ] = KEY_MENU, /* FULL SCREEN on Hauppauge */ 1793 [ 0x30 ] = KEY_SLOW, 1794 [ 0x31 ] = KEY_PREVIOUS, /* VCR mode on Zenith */ 1795 [ 0x32 ] = KEY_REWIND, 1796 [ 0x34 ] = KEY_FASTFORWARD, 1797 [ 0x35 ] = KEY_PLAY, 1798 [ 0x36 ] = KEY_STOP, 1799 [ 0x37 ] = KEY_RECORD, 1800 [ 0x38 ] = KEY_TUNER, /* TV/VCR on Zenith */ 1801 [ 0x3a ] = KEY_C, 1802 [ 0x3c ] = KEY_EXIT, 1803 [ 0x3d ] = KEY_POWER2, 1804 [ 0x3e ] = KEY_TUNER, 1805 }; 1806 1807 EXPORT_SYMBOL_GPL(ir_codes_budget_ci_old); 1808 1809 /* 1810 * Marc Fargas <telenieko@telenieko.com> 1811 * this is the remote control that comes with the asus p7131 1812 * which has a label saying is "Model PC-39" 1813 */ 1814 IR_KEYTAB_TYPE ir_codes_asus_pc39[IR_KEYTAB_SIZE] = { 1815 /* Keys 0 to 9 */ 1816 [ 0x15 ] = KEY_0, 1817 [ 0x29 ] = KEY_1, 1818 [ 0x2d ] = KEY_2, 1819 [ 0x2b ] = KEY_3, 1820 [ 0x09 ] = KEY_4, 1821 [ 0x0d ] = KEY_5, 1822 [ 0x0b ] = KEY_6, 1823 [ 0x31 ] = KEY_7, 1824 [ 0x35 ] = KEY_8, 1825 [ 0x33 ] = KEY_9, 1826 1827 [ 0x3e ] = KEY_RADIO, /* radio */ 1828 [ 0x03 ] = KEY_MENU, /* dvd/menu */ 1829 [ 0x2a ] = KEY_VOLUMEUP, 1830 [ 0x19 ] = KEY_VOLUMEDOWN, 1831 [ 0x37 ] = KEY_UP, 1832 [ 0x3b ] = KEY_DOWN, 1833 [ 0x27 ] = KEY_LEFT, 1834 [ 0x2f ] = KEY_RIGHT, 1835 [ 0x25 ] = KEY_VIDEO, /* video */ 1836 [ 0x39 ] = KEY_AUDIO, /* music */ 1837 1838 [ 0x21 ] = KEY_TV, /* tv */ 1839 [ 0x1d ] = KEY_EXIT, /* back */ 1840 [ 0x0a ] = KEY_CHANNELUP, /* channel / program + */ 1841 [ 0x1b ] = KEY_CHANNELDOWN, /* channel / program - */ 1842 [ 0x1a ] = KEY_ENTER, /* enter */ 1843 1844 [ 0x06 ] = KEY_PAUSE, /* play/pause */ 1845 [ 0x1e ] = KEY_PREVIOUS, /* rew */ 1846 [ 0x26 ] = KEY_NEXT, /* forward */ 1847 [ 0x0e ] = KEY_REWIND, /* backward << */ 1848 [ 0x3a ] = KEY_FASTFORWARD, /* forward >> */ 1849 [ 0x36 ] = KEY_STOP, 1850 [ 0x2e ] = KEY_RECORD, /* recording */ 1851 [ 0x16 ] = KEY_POWER, /* the button that reads "close" */ 1852 1853 [ 0x11 ] = KEY_ZOOM, /* full screen */ 1854 [ 0x13 ] = KEY_MACRO, /* recall */ 1855 [ 0x23 ] = KEY_HOME, /* home */ 1856 [ 0x05 ] = KEY_PVR, /* picture */ 1857 [ 0x3d ] = KEY_MUTE, /* mute */ 1858 [ 0x01 ] = KEY_DVD, /* dvd */ 1859 }; 1860 1861 EXPORT_SYMBOL_GPL(ir_codes_asus_pc39); 1862 1863 1864 /* Encore ENLTV-FM - black plastic, white front cover with white glowing buttons 1865 Juan Pablo Sormani <sorman@gmail.com> */ 1866 IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE] = { 1867 1868 /* Power button does nothing, neither in Windows app, 1869 although it sends data (used for BIOS wakeup?) */ 1870 [ 0x0d ] = KEY_MUTE, 1871 1872 [ 0x1e ] = KEY_TV, 1873 [ 0x00 ] = KEY_VIDEO, 1874 [ 0x01 ] = KEY_AUDIO, /* music */ 1875 [ 0x02 ] = KEY_MHP, /* picture */ 1876 1877 [ 0x1f ] = KEY_1, 1878 [ 0x03 ] = KEY_2, 1879 [ 0x04 ] = KEY_3, 1880 [ 0x05 ] = KEY_4, 1881 [ 0x1c ] = KEY_5, 1882 [ 0x06 ] = KEY_6, 1883 [ 0x07 ] = KEY_7, 1884 [ 0x08 ] = KEY_8, 1885 [ 0x1d ] = KEY_9, 1886 [ 0x0a ] = KEY_0, 1887 1888 [ 0x09 ] = KEY_LIST, /* -/-- */ 1889 [ 0x0b ] = KEY_LAST, /* recall */ 1890 1891 [ 0x14 ] = KEY_HOME, /* win start menu */ 1892 [ 0x15 ] = KEY_EXIT, /* exit */ 1893 [ 0x16 ] = KEY_UP, 1894 [ 0x12 ] = KEY_DOWN, 1895 [ 0x0c ] = KEY_RIGHT, 1896 [ 0x17 ] = KEY_LEFT, 1897 1898 [ 0x18 ] = KEY_ENTER, /* OK */ 1899 1900 [ 0x0e ] = KEY_ESC, 1901 [ 0x13 ] = KEY_D, /* desktop */ 1902 [ 0x11 ] = KEY_TAB, 1903 [ 0x19 ] = KEY_SWITCHVIDEOMODE, /* switch */ 1904 1905 [ 0x1a ] = KEY_MENU, 1906 [ 0x1b ] = KEY_ZOOM, /* fullscreen */ 1907 [ 0x44 ] = KEY_TIME, /* time shift */ 1908 [ 0x40 ] = KEY_MODE, /* source */ 1909 1910 [ 0x5a ] = KEY_RECORD, 1911 [ 0x42 ] = KEY_PLAY, /* play/pause */ 1912 [ 0x45 ] = KEY_STOP, 1913 [ 0x43 ] = KEY_CAMERA, /* camera icon */ 1914 1915 [ 0x48 ] = KEY_REWIND, 1916 [ 0x4a ] = KEY_FASTFORWARD, 1917 [ 0x49 ] = KEY_PREVIOUS, 1918 [ 0x4b ] = KEY_NEXT, 1919 1920 [ 0x4c ] = KEY_FAVORITES, /* tv wall */ 1921 [ 0x4d ] = KEY_SOUND, /* DVD sound */ 1922 [ 0x4e ] = KEY_LANGUAGE, /* DVD lang */ 1923 [ 0x4f ] = KEY_TEXT, /* DVD text */ 1924 1925 [ 0x50 ] = KEY_SLEEP, /* shutdown */ 1926 [ 0x51 ] = KEY_MODE, /* stereo > main */ 1927 [ 0x52 ] = KEY_SELECT, /* stereo > sap */ 1928 [ 0x53 ] = KEY_PROG1, /* teletext */ 1929 1930 1931 [ 0x59 ] = KEY_RED, /* AP1 */ 1932 [ 0x41 ] = KEY_GREEN, /* AP2 */ 1933 [ 0x47 ] = KEY_YELLOW, /* AP3 */ 1934 [ 0x57 ] = KEY_BLUE, /* AP4 */ 1935 }; 1936 EXPORT_SYMBOL_GPL(ir_codes_encore_enltv); 1937 1938 /* Encore ENLTV2-FM - silver plastic - "Wand Media" written at the botton 1939 Mauro Carvalho Chehab <mchehab@infradead.org> */ 1940 IR_KEYTAB_TYPE ir_codes_encore_enltv2[IR_KEYTAB_SIZE] = { 1941 [0x4c] = KEY_POWER2, 1942 [0x4a] = KEY_TUNER, 1943 [0x40] = KEY_1, 1944 [0x60] = KEY_2, 1945 [0x50] = KEY_3, 1946 [0x70] = KEY_4, 1947 [0x48] = KEY_5, 1948 [0x68] = KEY_6, 1949 [0x58] = KEY_7, 1950 [0x78] = KEY_8, 1951 [0x44] = KEY_9, 1952 [0x54] = KEY_0, 1953 1954 [0x64] = KEY_LAST, /* +100 */ 1955 [0x4e] = KEY_AGAIN, /* Recall */ 1956 1957 [0x6c] = KEY_SWITCHVIDEOMODE, /* Video Source */ 1958 [0x5e] = KEY_MENU, 1959 [0x56] = KEY_SCREEN, 1960 [0x7a] = KEY_SETUP, 1961 1962 [0x46] = KEY_MUTE, 1963 [0x5c] = KEY_MODE, /* Stereo */ 1964 [0x74] = KEY_INFO, 1965 [0x7c] = KEY_CLEAR, 1966 1967 [0x55] = KEY_UP, 1968 [0x49] = KEY_DOWN, 1969 [0x7e] = KEY_LEFT, 1970 [0x59] = KEY_RIGHT, 1971 [0x6a] = KEY_ENTER, 1972 1973 [0x42] = KEY_VOLUMEUP, 1974 [0x62] = KEY_VOLUMEDOWN, 1975 [0x52] = KEY_CHANNELUP, 1976 [0x72] = KEY_CHANNELDOWN, 1977 1978 [0x41] = KEY_RECORD, 1979 [0x51] = KEY_SHUFFLE, /* Snapshot */ 1980 [0x75] = KEY_TIME, /* Timeshift */ 1981 [0x71] = KEY_TV2, /* PIP */ 1982 1983 [0x45] = KEY_REWIND, 1984 [0x6f] = KEY_PAUSE, 1985 [0x7d] = KEY_FORWARD, 1986 [0x79] = KEY_STOP, 1987 }; 1988 EXPORT_SYMBOL_GPL(ir_codes_encore_enltv2); 1989 1990 /* for the Technotrend 1500 bundled remotes (grey and black): */ 1991 IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE] = { 1992 [ 0x01 ] = KEY_POWER, 1993 [ 0x02 ] = KEY_SHUFFLE, /* ? double-arrow key */ 1994 [ 0x03 ] = KEY_1, 1995 [ 0x04 ] = KEY_2, 1996 [ 0x05 ] = KEY_3, 1997 [ 0x06 ] = KEY_4, 1998 [ 0x07 ] = KEY_5, 1999 [ 0x08 ] = KEY_6, 2000 [ 0x09 ] = KEY_7, 2001 [ 0x0a ] = KEY_8, 2002 [ 0x0b ] = KEY_9, 2003 [ 0x0c ] = KEY_0, 2004 [ 0x0d ] = KEY_UP, 2005 [ 0x0e ] = KEY_LEFT, 2006 [ 0x0f ] = KEY_OK, 2007 [ 0x10 ] = KEY_RIGHT, 2008 [ 0x11 ] = KEY_DOWN, 2009 [ 0x12 ] = KEY_INFO, 2010 [ 0x13 ] = KEY_EXIT, 2011 [ 0x14 ] = KEY_RED, 2012 [ 0x15 ] = KEY_GREEN, 2013 [ 0x16 ] = KEY_YELLOW, 2014 [ 0x17 ] = KEY_BLUE, 2015 [ 0x18 ] = KEY_MUTE, 2016 [ 0x19 ] = KEY_TEXT, 2017 [ 0x1a ] = KEY_MODE, /* ? TV/Radio */ 2018 [ 0x21 ] = KEY_OPTION, 2019 [ 0x22 ] = KEY_EPG, 2020 [ 0x23 ] = KEY_CHANNELUP, 2021 [ 0x24 ] = KEY_CHANNELDOWN, 2022 [ 0x25 ] = KEY_VOLUMEUP, 2023 [ 0x26 ] = KEY_VOLUMEDOWN, 2024 [ 0x27 ] = KEY_SETUP, 2025 [ 0x3a ] = KEY_RECORD, /* these keys are only in the black remote */ 2026 [ 0x3b ] = KEY_PLAY, 2027 [ 0x3c ] = KEY_STOP, 2028 [ 0x3d ] = KEY_REWIND, 2029 [ 0x3e ] = KEY_PAUSE, 2030 [ 0x3f ] = KEY_FORWARD, 2031 }; 2032 2033 EXPORT_SYMBOL_GPL(ir_codes_tt_1500); 2034 2035 /* DViCO FUSION HDTV MCE remote */ 2036 IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE] = { 2037 2038 [ 0x0b ] = KEY_1, 2039 [ 0x17 ] = KEY_2, 2040 [ 0x1b ] = KEY_3, 2041 [ 0x07 ] = KEY_4, 2042 [ 0x50 ] = KEY_5, 2043 [ 0x54 ] = KEY_6, 2044 [ 0x48 ] = KEY_7, 2045 [ 0x4c ] = KEY_8, 2046 [ 0x58 ] = KEY_9, 2047 [ 0x03 ] = KEY_0, 2048 2049 [ 0x5e ] = KEY_OK, 2050 [ 0x51 ] = KEY_UP, 2051 [ 0x53 ] = KEY_DOWN, 2052 [ 0x5b ] = KEY_LEFT, 2053 [ 0x5f ] = KEY_RIGHT, 2054 2055 [ 0x02 ] = KEY_TV, /* Labeled DTV on remote */ 2056 [ 0x0e ] = KEY_MP3, 2057 [ 0x1a ] = KEY_DVD, 2058 [ 0x1e ] = KEY_FAVORITES, /* Labeled CPF on remote */ 2059 [ 0x16 ] = KEY_SETUP, 2060 [ 0x46 ] = KEY_POWER2, /* TV On/Off button on remote */ 2061 [ 0x0a ] = KEY_EPG, /* Labeled Guide on remote */ 2062 2063 [ 0x49 ] = KEY_BACK, 2064 [ 0x59 ] = KEY_INFO, /* Labeled MORE on remote */ 2065 [ 0x4d ] = KEY_MENU, /* Labeled DVDMENU on remote */ 2066 [ 0x55 ] = KEY_CYCLEWINDOWS, /* Labeled ALT-TAB on remote */ 2067 2068 [ 0x0f ] = KEY_PREVIOUSSONG, /* Labeled |<< REPLAY on remote */ 2069 [ 0x12 ] = KEY_NEXTSONG, /* Labeled >>| SKIP on remote */ 2070 [ 0x42 ] = KEY_ENTER, /* Labeled START with a green 2071 * MS windows logo on remote */ 2072 2073 [ 0x15 ] = KEY_VOLUMEUP, 2074 [ 0x05 ] = KEY_VOLUMEDOWN, 2075 [ 0x11 ] = KEY_CHANNELUP, 2076 [ 0x09 ] = KEY_CHANNELDOWN, 2077 2078 [ 0x52 ] = KEY_CAMERA, 2079 [ 0x5a ] = KEY_TUNER, 2080 [ 0x19 ] = KEY_OPEN, 2081 2082 [ 0x13 ] = KEY_MODE, /* 4:3 16:9 select */ 2083 [ 0x1f ] = KEY_ZOOM, 2084 2085 [ 0x43 ] = KEY_REWIND, 2086 [ 0x47 ] = KEY_PLAYPAUSE, 2087 [ 0x4f ] = KEY_FASTFORWARD, 2088 [ 0x57 ] = KEY_MUTE, 2089 [ 0x0d ] = KEY_STOP, 2090 [ 0x01 ] = KEY_RECORD, 2091 [ 0x4e ] = KEY_POWER, 2092 }; 2093 2094 EXPORT_SYMBOL_GPL(ir_codes_fusionhdtv_mce); 2095 2096 /* Pinnacle PCTV HD 800i mini remote */ 2097 IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE] = { 2098 2099 [0x0f] = KEY_1, 2100 [0x15] = KEY_2, 2101 [0x10] = KEY_3, 2102 [0x18] = KEY_4, 2103 [0x1b] = KEY_5, 2104 [0x1e] = KEY_6, 2105 [0x11] = KEY_7, 2106 [0x21] = KEY_8, 2107 [0x12] = KEY_9, 2108 [0x27] = KEY_0, 2109 2110 [0x24] = KEY_ZOOM, 2111 [0x2a] = KEY_SUBTITLE, 2112 2113 [0x00] = KEY_MUTE, 2114 [0x01] = KEY_ENTER, /* Pinnacle Logo */ 2115 [0x39] = KEY_POWER, 2116 2117 [0x03] = KEY_VOLUMEUP, 2118 [0x09] = KEY_VOLUMEDOWN, 2119 [0x06] = KEY_CHANNELUP, 2120 [0x0c] = KEY_CHANNELDOWN, 2121 2122 [0x2d] = KEY_REWIND, 2123 [0x30] = KEY_PLAYPAUSE, 2124 [0x33] = KEY_FASTFORWARD, 2125 [0x3c] = KEY_STOP, 2126 [0x36] = KEY_RECORD, 2127 [0x3f] = KEY_EPG, /* Labeled "?" */ 2128 }; 2129 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_pctv_hd); 2130 2131 /* 2132 * Igor Kuznetsov <igk72@ya.ru> 2133 * Andrey J. Melnikov <temnota@kmv.ru> 2134 * 2135 * Keytable is used by BeholdTV 60x series, M6 series at 2136 * least, and probably other cards too. 2137 * The "ascii-art picture" below (in comments, first row 2138 * is the keycode in hex, and subsequent row(s) shows 2139 * the button labels (several variants when appropriate) 2140 * helps to descide which keycodes to assign to the buttons. 2141 */ 2142 IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = { 2143 2144 /* 0x1c 0x12 * 2145 * TV/FM POWER * 2146 * */ 2147 [ 0x1c ] = KEY_TUNER, /*XXX KEY_TV KEY_RADIO */ 2148 [ 0x12 ] = KEY_POWER, 2149 2150 /* 0x01 0x02 0x03 * 2151 * 1 2 3 * 2152 * * 2153 * 0x04 0x05 0x06 * 2154 * 4 5 6 * 2155 * * 2156 * 0x07 0x08 0x09 * 2157 * 7 8 9 * 2158 * */ 2159 [ 0x01 ] = KEY_1, 2160 [ 0x02 ] = KEY_2, 2161 [ 0x03 ] = KEY_3, 2162 [ 0x04 ] = KEY_4, 2163 [ 0x05 ] = KEY_5, 2164 [ 0x06 ] = KEY_6, 2165 [ 0x07 ] = KEY_7, 2166 [ 0x08 ] = KEY_8, 2167 [ 0x09 ] = KEY_9, 2168 2169 /* 0x0a 0x00 0x17 * 2170 * RECALL 0 MODE * 2171 * */ 2172 [ 0x0a ] = KEY_AGAIN, 2173 [ 0x00 ] = KEY_0, 2174 [ 0x17 ] = KEY_MODE, 2175 2176 /* 0x14 0x10 * 2177 * ASPECT FULLSCREEN * 2178 * */ 2179 [ 0x14 ] = KEY_SCREEN, 2180 [ 0x10 ] = KEY_ZOOM, 2181 2182 /* 0x0b * 2183 * Up * 2184 * * 2185 * 0x18 0x16 0x0c * 2186 * Left Ok Right * 2187 * * 2188 * 0x015 * 2189 * Down * 2190 * */ 2191 [ 0x0b ] = KEY_CHANNELUP, /*XXX KEY_UP */ 2192 [ 0x18 ] = KEY_VOLUMEDOWN, /*XXX KEY_LEFT */ 2193 [ 0x16 ] = KEY_OK, /*XXX KEY_ENTER */ 2194 [ 0x0c ] = KEY_VOLUMEUP, /*XXX KEY_RIGHT */ 2195 [ 0x15 ] = KEY_CHANNELDOWN, /*XXX KEY_DOWN */ 2196 2197 /* 0x11 0x0d * 2198 * MUTE INFO * 2199 * */ 2200 [ 0x11 ] = KEY_MUTE, 2201 [ 0x0d ] = KEY_INFO, 2202 2203 /* 0x0f 0x1b 0x1a * 2204 * RECORD PLAY/PAUSE STOP * 2205 * * 2206 * 0x0e 0x1f 0x1e * 2207 *TELETEXT AUDIO SOURCE * 2208 * RED YELLOW * 2209 * */ 2210 [ 0x0f ] = KEY_RECORD, 2211 [ 0x1b ] = KEY_PLAYPAUSE, 2212 [ 0x1a ] = KEY_STOP, 2213 [ 0x0e ] = KEY_TEXT, 2214 [ 0x1f ] = KEY_RED, /*XXX KEY_AUDIO */ 2215 [ 0x1e ] = KEY_YELLOW, /*XXX KEY_SOURCE */ 2216 2217 /* 0x1d 0x13 0x19 * 2218 * SLEEP PREVIEW DVB * 2219 * GREEN BLUE * 2220 * */ 2221 [ 0x1d ] = KEY_SLEEP, 2222 [ 0x13 ] = KEY_GREEN, 2223 [ 0x19 ] = KEY_BLUE, /*XXX KEY_SAT */ 2224 2225 /* 0x58 0x5c * 2226 * FREEZE SNAPSHOT * 2227 * */ 2228 [ 0x58 ] = KEY_SLOW, 2229 [ 0x5c ] = KEY_SAVE, 2230 2231 }; 2232 2233 EXPORT_SYMBOL_GPL(ir_codes_behold); 2234 2235 /* Beholder Intl. Ltd. 2008 2236 * Dmitry Belimov d.belimov@google.com 2237 * Keytable is used by BeholdTV Columbus 2238 * The "ascii-art picture" below (in comments, first row 2239 * is the keycode in hex, and subsequent row(s) shows 2240 * the button labels (several variants when appropriate) 2241 * helps to descide which keycodes to assign to the buttons. 2242 */ 2243 IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE] = { 2244 2245 /* 0x13 0x11 0x1C 0x12 * 2246 * Mute Source TV/FM Power * 2247 * */ 2248 2249 [0x13] = KEY_MUTE, 2250 [0x11] = KEY_PROPS, 2251 [0x1C] = KEY_TUNER, /* KEY_TV/KEY_RADIO */ 2252 [0x12] = KEY_POWER, 2253 2254 /* 0x01 0x02 0x03 0x0D * 2255 * 1 2 3 Stereo * 2256 * * 2257 * 0x04 0x05 0x06 0x19 * 2258 * 4 5 6 Snapshot * 2259 * * 2260 * 0x07 0x08 0x09 0x10 * 2261 * 7 8 9 Zoom * 2262 * */ 2263 [0x01] = KEY_1, 2264 [0x02] = KEY_2, 2265 [0x03] = KEY_3, 2266 [0x0D] = KEY_SETUP, /* Setup key */ 2267 [0x04] = KEY_4, 2268 [0x05] = KEY_5, 2269 [0x06] = KEY_6, 2270 [0x19] = KEY_BOOKMARKS, /* Snapshot key */ 2271 [0x07] = KEY_7, 2272 [0x08] = KEY_8, 2273 [0x09] = KEY_9, 2274 [0x10] = KEY_ZOOM, 2275 2276 /* 0x0A 0x00 0x0B 0x0C * 2277 * RECALL 0 ChannelUp VolumeUp * 2278 * */ 2279 [0x0A] = KEY_AGAIN, 2280 [0x00] = KEY_0, 2281 [0x0B] = KEY_CHANNELUP, 2282 [0x0C] = KEY_VOLUMEUP, 2283 2284 /* 0x1B 0x1D 0x15 0x18 * 2285 * Timeshift Record ChannelDown VolumeDown * 2286 * */ 2287 2288 [0x1B] = KEY_REWIND, 2289 [0x1D] = KEY_RECORD, 2290 [0x15] = KEY_CHANNELDOWN, 2291 [0x18] = KEY_VOLUMEDOWN, 2292 2293 /* 0x0E 0x1E 0x0F 0x1A * 2294 * Stop Pause Previouse Next * 2295 * */ 2296 2297 [0x0E] = KEY_STOP, 2298 [0x1E] = KEY_PAUSE, 2299 [0x0F] = KEY_PREVIOUS, 2300 [0x1A] = KEY_NEXT, 2301 2302 }; 2303 EXPORT_SYMBOL_GPL(ir_codes_behold_columbus); 2304 2305 /* 2306 * Remote control for the Genius TVGO A11MCE 2307 * Adrian Pardini <pardo.bsso@gmail.com> 2308 */ 2309 IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE] = { 2310 /* Keys 0 to 9 */ 2311 [0x48] = KEY_0, 2312 [0x09] = KEY_1, 2313 [0x1d] = KEY_2, 2314 [0x1f] = KEY_3, 2315 [0x19] = KEY_4, 2316 [0x1b] = KEY_5, 2317 [0x11] = KEY_6, 2318 [0x17] = KEY_7, 2319 [0x12] = KEY_8, 2320 [0x16] = KEY_9, 2321 2322 [0x54] = KEY_RECORD, /* recording */ 2323 [0x06] = KEY_MUTE, /* mute */ 2324 [0x10] = KEY_POWER, 2325 [0x40] = KEY_LAST, /* recall */ 2326 [0x4c] = KEY_CHANNELUP, /* channel / program + */ 2327 [0x00] = KEY_CHANNELDOWN, /* channel / program - */ 2328 [0x0d] = KEY_VOLUMEUP, 2329 [0x15] = KEY_VOLUMEDOWN, 2330 [0x4d] = KEY_OK, /* also labeled as Pause */ 2331 [0x1c] = KEY_ZOOM, /* full screen and Stop*/ 2332 [0x02] = KEY_MODE, /* AV Source or Rewind*/ 2333 [0x04] = KEY_LIST, /* -/-- */ 2334 /* small arrows above numbers */ 2335 [0x1a] = KEY_NEXT, /* also Fast Forward */ 2336 [0x0e] = KEY_PREVIOUS, /* also Rewind */ 2337 /* these are in a rather non standard layout and have 2338 an alternate name written */ 2339 [0x1e] = KEY_UP, /* Video Setting */ 2340 [0x0a] = KEY_DOWN, /* Video Default */ 2341 [0x05] = KEY_LEFT, /* Snapshot */ 2342 [0x0c] = KEY_RIGHT, /* Hide Panel */ 2343 /* Four buttons without label */ 2344 [0x49] = KEY_RED, 2345 [0x0b] = KEY_GREEN, 2346 [0x13] = KEY_YELLOW, 2347 [0x50] = KEY_BLUE, 2348 }; 2349 EXPORT_SYMBOL_GPL(ir_codes_genius_tvgo_a11mce); 2350 2351 /* 2352 * Remote control for Powercolor Real Angel 330 2353 * Daniel Fraga <fragabr@gmail.com> 2354 */ 2355 IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE] = { 2356 [0x38] = KEY_SWITCHVIDEOMODE, /* switch inputs */ 2357 [0x0c] = KEY_MEDIA, /* Turn ON/OFF App */ 2358 [0x00] = KEY_0, 2359 [0x01] = KEY_1, 2360 [0x02] = KEY_2, 2361 [0x03] = KEY_3, 2362 [0x04] = KEY_4, 2363 [0x05] = KEY_5, 2364 [0x06] = KEY_6, 2365 [0x07] = KEY_7, 2366 [0x08] = KEY_8, 2367 [0x09] = KEY_9, 2368 [0x0a] = KEY_DIGITS, /* single, double, tripple digit */ 2369 [0x29] = KEY_PREVIOUS, /* previous channel */ 2370 [0x12] = KEY_BRIGHTNESSUP, 2371 [0x13] = KEY_BRIGHTNESSDOWN, 2372 [0x2b] = KEY_MODE, /* stereo/mono */ 2373 [0x2c] = KEY_TEXT, /* teletext */ 2374 [0x20] = KEY_UP, /* channel up */ 2375 [0x21] = KEY_DOWN, /* channel down */ 2376 [0x10] = KEY_RIGHT, /* volume up */ 2377 [0x11] = KEY_LEFT, /* volume down */ 2378 [0x0d] = KEY_MUTE, 2379 [0x1f] = KEY_RECORD, 2380 [0x17] = KEY_PLAY, 2381 [0x16] = KEY_PAUSE, 2382 [0x0b] = KEY_STOP, 2383 [0x27] = KEY_FASTFORWARD, 2384 [0x26] = KEY_REWIND, 2385 [0x1e] = KEY_SEARCH, /* autoscan */ 2386 [0x0e] = KEY_SHUFFLE, /* snapshot */ 2387 [0x2d] = KEY_SETUP, 2388 [0x0f] = KEY_SCREEN, /* full screen */ 2389 [0x14] = KEY_RADIO, /* FM radio */ 2390 [0x25] = KEY_POWER, /* power */ 2391 }; 2392 EXPORT_SYMBOL_GPL(ir_codes_powercolor_real_angel); 2393 2394 /* Kworld Plus TV Analog Lite PCI IR 2395 Mauro Carvalho Chehab <mchehab@infradead.org> 2396 */ 2397 IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE] = { 2398 [0x0c] = KEY_PROG1, /* Kworld key */ 2399 [0x16] = KEY_CLOSECD, /* -> ) */ 2400 [0x1d] = KEY_POWER2, 2401 2402 [0x00] = KEY_1, 2403 [0x01] = KEY_2, 2404 [0x02] = KEY_3, /* Two keys have the same code: 3 and left */ 2405 [0x03] = KEY_4, /* Two keys have the same code: 3 and right */ 2406 [0x04] = KEY_5, 2407 [0x05] = KEY_6, 2408 [0x06] = KEY_7, 2409 [0x07] = KEY_8, 2410 [0x08] = KEY_9, 2411 [0x0a] = KEY_0, 2412 2413 [0x09] = KEY_AGAIN, 2414 [0x14] = KEY_MUTE, 2415 2416 [0x20] = KEY_UP, 2417 [0x21] = KEY_DOWN, 2418 [0x0b] = KEY_ENTER, 2419 2420 [0x10] = KEY_CHANNELUP, 2421 [0x11] = KEY_CHANNELDOWN, 2422 2423 /* Couldn't map key left/key right since those 2424 conflict with '3' and '4' scancodes 2425 I dunno what the original driver does 2426 */ 2427 2428 [0x13] = KEY_VOLUMEUP, 2429 [0x12] = KEY_VOLUMEDOWN, 2430 2431 /* The lower part of the IR 2432 There are several duplicated keycodes there. 2433 Most of them conflict with digits. 2434 Add mappings just to the unused scancodes. 2435 Somehow, the original driver has a way to know, 2436 but this doesn't seem to be on some GPIO. 2437 Also, it is not related to the time between keyup 2438 and keydown. 2439 */ 2440 [0x19] = KEY_PAUSE, /* Timeshift */ 2441 [0x1a] = KEY_STOP, 2442 [0x1b] = KEY_RECORD, 2443 2444 [0x22] = KEY_TEXT, 2445 2446 [0x15] = KEY_AUDIO, /* ((*)) */ 2447 [0x0f] = KEY_ZOOM, 2448 [0x1c] = KEY_SHUFFLE, /* snapshot */ 2449 2450 [0x18] = KEY_RED, /* B */ 2451 [0x23] = KEY_GREEN, /* C */ 2452 }; 2453 EXPORT_SYMBOL_GPL(ir_codes_kworld_plus_tv_analog); 2454 2455 IR_KEYTAB_TYPE ir_codes_avermedia_a16d[IR_KEYTAB_SIZE] = { 2456 [0x20] = KEY_LIST, 2457 [0x00] = KEY_POWER, 2458 [0x28] = KEY_1, 2459 [0x18] = KEY_2, 2460 [0x38] = KEY_3, 2461 [0x24] = KEY_4, 2462 [0x14] = KEY_5, 2463 [0x34] = KEY_6, 2464 [0x2c] = KEY_7, 2465 [0x1c] = KEY_8, 2466 [0x3c] = KEY_9, 2467 [0x12] = KEY_SUBTITLE, 2468 [0x22] = KEY_0, 2469 [0x32] = KEY_REWIND, 2470 [0x3a] = KEY_SHUFFLE, 2471 [0x02] = KEY_PRINT, 2472 [0x11] = KEY_CHANNELDOWN, 2473 [0x31] = KEY_CHANNELUP, 2474 [0x0c] = KEY_ZOOM, 2475 [0x1e] = KEY_VOLUMEDOWN, 2476 [0x3e] = KEY_VOLUMEUP, 2477 [0x0a] = KEY_MUTE, 2478 [0x04] = KEY_AUDIO, 2479 [0x26] = KEY_RECORD, 2480 [0x06] = KEY_PLAY, 2481 [0x36] = KEY_STOP, 2482 [0x16] = KEY_PAUSE, 2483 [0x2e] = KEY_REWIND, 2484 [0x0e] = KEY_FASTFORWARD, 2485 [0x30] = KEY_TEXT, 2486 [0x21] = KEY_GREEN, 2487 [0x01] = KEY_BLUE, 2488 [0x08] = KEY_EPG, 2489 [0x2a] = KEY_MENU, 2490 }; 2491 EXPORT_SYMBOL_GPL(ir_codes_avermedia_a16d); 2492 2493 /* Encore ENLTV-FM v5.3 2494 Mauro Carvalho Chehab <mchehab@infradead.org> 2495 */ 2496 IR_KEYTAB_TYPE ir_codes_encore_enltv_fm53[IR_KEYTAB_SIZE] = { 2497 [0x10] = KEY_POWER2, 2498 [0x06] = KEY_MUTE, 2499 2500 [0x09] = KEY_1, 2501 [0x1d] = KEY_2, 2502 [0x1f] = KEY_3, 2503 [0x19] = KEY_4, 2504 [0x1b] = KEY_5, 2505 [0x11] = KEY_6, 2506 [0x17] = KEY_7, 2507 [0x12] = KEY_8, 2508 [0x16] = KEY_9, 2509 [0x48] = KEY_0, 2510 2511 [0x04] = KEY_LIST, /* -/-- */ 2512 [0x40] = KEY_LAST, /* recall */ 2513 2514 [0x02] = KEY_MODE, /* TV/AV */ 2515 [0x05] = KEY_SHUFFLE, /* SNAPSHOT */ 2516 2517 [0x4c] = KEY_CHANNELUP, /* UP */ 2518 [0x00] = KEY_CHANNELDOWN, /* DOWN */ 2519 [0x0d] = KEY_VOLUMEUP, /* RIGHT */ 2520 [0x15] = KEY_VOLUMEDOWN, /* LEFT */ 2521 [0x49] = KEY_ENTER, /* OK */ 2522 2523 [0x54] = KEY_RECORD, 2524 [0x4d] = KEY_PLAY, /* pause */ 2525 2526 [0x1e] = KEY_UP, /* video setting */ 2527 [0x0e] = KEY_RIGHT, /* <- */ 2528 [0x1a] = KEY_LEFT, /* -> */ 2529 2530 [0x0a] = KEY_DOWN, /* video default */ 2531 [0x0c] = KEY_ZOOM, /* hide pannel */ 2532 [0x47] = KEY_SLEEP, /* shutdown */ 2533 }; 2534 EXPORT_SYMBOL_GPL(ir_codes_encore_enltv_fm53); 2535 2536 /* Zogis Real Audio 220 - 32 keys IR */ 2537 IR_KEYTAB_TYPE ir_codes_real_audio_220_32_keys[IR_KEYTAB_SIZE] = { 2538 [0x1c] = KEY_RADIO, 2539 [0x12] = KEY_POWER2, 2540 2541 [0x01] = KEY_1, 2542 [0x02] = KEY_2, 2543 [0x03] = KEY_3, 2544 [0x04] = KEY_4, 2545 [0x05] = KEY_5, 2546 [0x06] = KEY_6, 2547 [0x07] = KEY_7, 2548 [0x08] = KEY_8, 2549 [0x09] = KEY_9, 2550 [0x00] = KEY_0, 2551 2552 [0x0c] = KEY_VOLUMEUP, 2553 [0x18] = KEY_VOLUMEDOWN, 2554 [0x0b] = KEY_CHANNELUP, 2555 [0x15] = KEY_CHANNELDOWN, 2556 [0x16] = KEY_ENTER, 2557 2558 [0x11] = KEY_LIST, /* Source */ 2559 [0x0d] = KEY_AUDIO, /* stereo */ 2560 2561 [0x0f] = KEY_PREVIOUS, /* Prev */ 2562 [0x1b] = KEY_PAUSE, /* Timeshift */ 2563 [0x1a] = KEY_NEXT, /* Next */ 2564 2565 [0x0e] = KEY_STOP, 2566 [0x1f] = KEY_PLAY, 2567 [0x1e] = KEY_PLAYPAUSE, /* Pause */ 2568 2569 [0x1d] = KEY_RECORD, 2570 [0x13] = KEY_MUTE, 2571 [0x19] = KEY_SHUFFLE, /* Snapshot */ 2572 2573 }; 2574 EXPORT_SYMBOL_GPL(ir_codes_real_audio_220_32_keys); 2575 2576 /* ATI TV Wonder HD 600 USB 2577 Devin Heitmueller <devin.heitmueller@gmail.com> 2578 */ 2579 IR_KEYTAB_TYPE ir_codes_ati_tv_wonder_hd_600[IR_KEYTAB_SIZE] = { 2580 [0x00] = KEY_RECORD, /* Row 1 */ 2581 [0x01] = KEY_PLAYPAUSE, 2582 [0x02] = KEY_STOP, 2583 [0x03] = KEY_POWER, 2584 [0x04] = KEY_PREVIOUS, /* Row 2 */ 2585 [0x05] = KEY_REWIND, 2586 [0x06] = KEY_FORWARD, 2587 [0x07] = KEY_NEXT, 2588 [0x08] = KEY_EPG, /* Row 3 */ 2589 [0x09] = KEY_HOME, 2590 [0x0a] = KEY_MENU, 2591 [0x0b] = KEY_CHANNELUP, 2592 [0x0c] = KEY_BACK, /* Row 4 */ 2593 [0x0d] = KEY_UP, 2594 [0x0e] = KEY_INFO, 2595 [0x0f] = KEY_CHANNELDOWN, 2596 [0x10] = KEY_LEFT, /* Row 5 */ 2597 [0x11] = KEY_SELECT, 2598 [0x12] = KEY_RIGHT, 2599 [0x13] = KEY_VOLUMEUP, 2600 [0x14] = KEY_LAST, /* Row 6 */ 2601 [0x15] = KEY_DOWN, 2602 [0x16] = KEY_MUTE, 2603 [0x17] = KEY_VOLUMEDOWN, 2604 }; 2605 2606 EXPORT_SYMBOL_GPL(ir_codes_ati_tv_wonder_hd_600); 2607