4 Keytables for supported remote controls. This file is part of
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.
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.
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.
22 #include <linux/module.h>
23 #include <linux/moduleparam.h>
25 #include <linux/input.h>
26 #include <media/ir-common.h>
28 /* empty keytable, can be used as placeholder for not-yet created keytables */
29 IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE] = {
30 [ 0x2a ] = KEY_COFFEE,
33 EXPORT_SYMBOL_GPL(ir_codes_empty);
35 /* Michal Majchrowicz <mmajchrowicz@gmail.com> */
36 IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
49 [ 0x5c ] = KEY_POWER, /* power */
50 [ 0x20 ] = KEY_F, /* full screen */
51 [ 0x0f ] = KEY_BACKSPACE, /* recall */
52 [ 0x1b ] = KEY_ENTER, /* mute */
53 [ 0x41 ] = KEY_RECORD, /* record */
54 [ 0x43 ] = KEY_STOP, /* stop */
56 [ 0x1a ] = KEY_Q, /* off */
58 [ 0x1f ] = KEY_DOWN, /* channel - */
59 [ 0x1c ] = KEY_UP, /* channel + */
60 [ 0x10 ] = KEY_LEFT, /* volume - */
61 [ 0x1e ] = KEY_RIGHT, /* volume + */
65 EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);
66 /* Matt Jesson <dvb@jesson.eclipse.co.uk */
67 IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
68 [ 0x28 ] = KEY_0, //'0' / 'enter'
69 [ 0x22 ] = KEY_1, //'1'
70 [ 0x12 ] = KEY_2, //'2' / 'up arrow'
71 [ 0x32 ] = KEY_3, //'3'
72 [ 0x24 ] = KEY_4, //'4' / 'left arrow'
73 [ 0x14 ] = KEY_5, //'5'
74 [ 0x34 ] = KEY_6, //'6' / 'right arrow'
75 [ 0x26 ] = KEY_7, //'7'
76 [ 0x16 ] = KEY_8, //'8' / 'down arrow'
77 [ 0x36 ] = KEY_9, //'9'
79 [ 0x20 ] = KEY_LIST, // 'source'
80 [ 0x10 ] = KEY_TEXT, // 'teletext'
81 [ 0x00 ] = KEY_POWER, // 'power'
82 [ 0x04 ] = KEY_AUDIO, // 'audio'
83 [ 0x06 ] = KEY_ZOOM, // 'full screen'
84 [ 0x18 ] = KEY_VIDEO, // 'display'
85 [ 0x38 ] = KEY_SEARCH, // 'loop'
86 [ 0x08 ] = KEY_INFO, // 'preview'
87 [ 0x2a ] = KEY_REWIND, // 'backward <<'
88 [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'
89 [ 0x3a ] = KEY_RECORD, // 'capture'
90 [ 0x0a ] = KEY_MUTE, // 'mute'
91 [ 0x2c ] = KEY_RECORD, // 'record'
92 [ 0x1c ] = KEY_PAUSE, // 'pause'
93 [ 0x3c ] = KEY_STOP, // 'stop'
94 [ 0x0c ] = KEY_PLAY, // 'play'
95 [ 0x2e ] = KEY_RED, // 'red'
96 [ 0x01 ] = KEY_BLUE, // 'blue' / 'cancel'
97 [ 0x0e ] = KEY_YELLOW, // 'yellow' / 'ok'
98 [ 0x21 ] = KEY_GREEN, // 'green'
99 [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'
100 [ 0x31 ] = KEY_CHANNELUP, // 'channel +'
101 [ 0x1e ] = KEY_VOLUMEDOWN, // 'volume -'
102 [ 0x3e ] = KEY_VOLUMEUP, // 'volume +'
105 EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);
107 /* Attila Kondoros <attila.kondoros@chello.hu> */
108 IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {
120 [ 0x17 ] = KEY_LAST, // +100
121 [ 0x0a ] = KEY_LIST, // recall
124 [ 0x1c ] = KEY_TUNER, // TV/FM
125 [ 0x15 ] = KEY_SEARCH, // scan
126 [ 0x12 ] = KEY_POWER, // power
127 [ 0x1f ] = KEY_VOLUMEDOWN, // vol up
128 [ 0x1b ] = KEY_VOLUMEUP, // vol down
129 [ 0x1e ] = KEY_CHANNELDOWN, // chn up
130 [ 0x1a ] = KEY_CHANNELUP, // chn down
132 [ 0x11 ] = KEY_VIDEO, // video
133 [ 0x0f ] = KEY_ZOOM, // full screen
134 [ 0x13 ] = KEY_MUTE, // mute/unmute
135 [ 0x10 ] = KEY_TEXT, // min
137 [ 0x0d ] = KEY_STOP, // freeze
138 [ 0x0e ] = KEY_RECORD, // record
139 [ 0x1d ] = KEY_PLAYPAUSE, // stop
140 [ 0x19 ] = KEY_PLAY, // play
142 [ 0x16 ] = KEY_GOTO, // osd
143 [ 0x14 ] = KEY_REFRESH, // default
144 [ 0x0c ] = KEY_KPPLUS, // fine tune >>>>
145 [ 0x18 ] = KEY_KPMINUS // fine tune <<<<
148 EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp);
150 /* ---------------------------------------------------------------------- */
152 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
154 [ 0x1e ] = KEY_POWER, // power
155 [ 0x07 ] = KEY_MEDIA, // source
156 [ 0x1c ] = KEY_SEARCH, // scan
158 /* FIXME: duplicate keycodes?
160 * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
161 * The GPIO values are
162 * 6397fb for both "Scan <" and "CH -",
163 * 639ffb for "Scan >" and "CH+",
164 * 6384fb for "Tune <" and "<<<",
165 * 638cfb for "Tune >" and ">>>", regardless of the mask.
167 * [ 0x17 ] = KEY_BACK, // fm scan <<
168 * [ 0x1f ] = KEY_FORWARD, // fm scan >>
170 * [ 0x04 ] = KEY_LEFT, // fm tuning <
171 * [ 0x0c ] = KEY_RIGHT, // fm tuning >
173 * For now, these four keys are disabled. Pressing them will generate
174 * the CH+/CH-/<<</>>> events
177 [ 0x03 ] = KEY_TUNER, // TV/FM
179 [ 0x00 ] = KEY_RECORD,
183 [ 0x1a ] = KEY_PLAYPAUSE, // freeze
184 [ 0x19 ] = KEY_ZOOM, // zoom
185 [ 0x0f ] = KEY_TEXT, // min
197 [ 0x10 ] = KEY_LAST, // +100
198 [ 0x13 ] = KEY_LIST, // recall
200 [ 0x1f ] = KEY_CHANNELUP, // chn down
201 [ 0x17 ] = KEY_CHANNELDOWN, // chn up
202 [ 0x16 ] = KEY_VOLUMEUP, // vol down
203 [ 0x14 ] = KEY_VOLUMEDOWN, // vol up
205 [ 0x04 ] = KEY_KPMINUS, // <<<
206 [ 0x0e ] = KEY_SETUP, // function
207 [ 0x0c ] = KEY_KPPLUS, // >>>
209 [ 0x0d ] = KEY_GOTO, // mts
210 [ 0x1d ] = KEY_REFRESH, // reset
211 [ 0x18 ] = KEY_MUTE // mute/unmute
214 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
216 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
230 [ 0x0d ] = KEY_POWER,
231 [ 0x0e ] = KEY_MHP, /* labelled 'Picture' */
232 [ 0x0f ] = KEY_AUDIO,
234 [ 0x11 ] = KEY_F13, /* 16:9 */
235 [ 0x12 ] = KEY_F14, /* 14:9 */
242 [ 0x19 ] = KEY_RIGHT,
243 [ 0x1a ] = KEY_ENTER,
244 [ 0x1b ] = KEY_CHANNELUP,
245 [ 0x1c ] = KEY_CHANNELDOWN,
246 [ 0x1d ] = KEY_VOLUMEUP,
247 [ 0x1e ] = KEY_VOLUMEDOWN,
249 [ 0x20 ] = KEY_GREEN,
250 [ 0x21 ] = KEY_YELLOW,
252 [ 0x23 ] = KEY_SUBTITLE,
253 [ 0x24 ] = KEY_F15, /* AD */
256 [ 0x27 ] = KEY_REWIND,
259 [ 0x2a ] = KEY_FASTFORWARD,
260 [ 0x2b ] = KEY_F16, /* chapter */
261 [ 0x2c ] = KEY_PAUSE,
263 [ 0x2e ] = KEY_RECORD,
264 [ 0x2f ] = KEY_F17, /* picture in picture */
265 [ 0x30 ] = KEY_KPPLUS, /* zoom in */
266 [ 0x31 ] = KEY_KPMINUS, /* zoom out */
267 [ 0x32 ] = KEY_F18, /* capture */
268 [ 0x33 ] = KEY_F19, /* web */
269 [ 0x34 ] = KEY_EMAIL,
270 [ 0x35 ] = KEY_PHONE,
274 EXPORT_SYMBOL_GPL(ir_codes_nebula);
276 /* DigitalNow DNTV Live DVB-T Remote */
277 IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = {
278 [ 0x00 ] = KEY_ESC, /* 'go up a level?' */
291 [ 0x0b ] = KEY_TUNER, /* tv/fm */
292 [ 0x0c ] = KEY_SEARCH, /* scan */
294 [ 0x0e ] = KEY_PAUSE,
295 [ 0x0f ] = KEY_LIST, /* source */
298 [ 0x11 ] = KEY_REWIND, /* backward << */
299 [ 0x12 ] = KEY_POWER,
300 [ 0x13 ] = KEY_S, /* snap */
301 [ 0x14 ] = KEY_AUDIO, /* stereo */
302 [ 0x15 ] = KEY_CLEAR, /* reset */
304 [ 0x17 ] = KEY_ENTER,
305 [ 0x18 ] = KEY_ZOOM, /* full screen */
306 [ 0x19 ] = KEY_FASTFORWARD, /* forward >> */
307 [ 0x1a ] = KEY_CHANNELUP,
308 [ 0x1b ] = KEY_VOLUMEUP,
309 [ 0x1c ] = KEY_INFO, /* preview */
310 [ 0x1d ] = KEY_RECORD, /* record */
311 [ 0x1e ] = KEY_CHANNELDOWN,
312 [ 0x1f ] = KEY_VOLUMEDOWN,
315 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t);
317 /* ---------------------------------------------------------------------- */
319 /* IO-DATA BCTV7E Remote */
320 IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = {
322 [ 0x20 ] = KEY_RADIO, /* FM */
324 [ 0x00 ] = KEY_POWER,
327 [ 0x44 ] = KEY_0, /* 10 */
338 [ 0x10 ] = KEY_L, /* Live */
339 [ 0x08 ] = KEY_T, /* Time Shift */
341 [ 0x18 ] = KEY_PLAYPAUSE, /* Play */
343 [ 0x24 ] = KEY_ENTER, /* 11 */
344 [ 0x64 ] = KEY_ESC, /* 12 */
345 [ 0x04 ] = KEY_M, /* Multi */
347 [ 0x54 ] = KEY_VIDEO,
348 [ 0x34 ] = KEY_CHANNELUP,
349 [ 0x74 ] = KEY_VOLUMEUP,
352 [ 0x4c ] = KEY_S, /* SVIDEO */
353 [ 0x2c ] = KEY_CHANNELDOWN,
354 [ 0x6c ] = KEY_VOLUMEDOWN,
357 [ 0x5c ] = KEY_PAUSE,
358 [ 0x3c ] = KEY_C, /* || (red) */
359 [ 0x7c ] = KEY_RECORD, /* recording */
362 [ 0x41 ] = KEY_REWIND, /* backward << */
364 [ 0x61 ] = KEY_FASTFORWARD, /* forward >> */
365 [ 0x01 ] = KEY_NEXT, /* skip >| */
368 EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e);
370 /* ---------------------------------------------------------------------- */
372 /* ADS Tech Instant TV DVB-T PCI Remote */
373 IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = {
386 [ 0x5b ] = KEY_POWER,
389 [ 0x5d ] = KEY_SEARCH,
390 [ 0x17 ] = KEY_EPG, /* Guide */
395 [ 0x1e ] = KEY_RIGHT,
396 [ 0x0e ] = KEY_SELECT, /* Enter */
399 [ 0x59 ] = KEY_PREVIOUS,
401 [ 0x58 ] = KEY_REWIND,
402 [ 0x50 ] = KEY_FORWARD,
403 [ 0x44 ] = KEY_PLAYPAUSE,
405 [ 0x1b ] = KEY_RECORD,
406 [ 0x13 ] = KEY_TUNER, /* Live */
409 [ 0x03 ] = KEY_PROG1, /* 1 */
410 [ 0x01 ] = KEY_PROG2, /* 2 */
411 [ 0x00 ] = KEY_PROG3, /* 3 */
413 [ 0x48 ] = KEY_AUX, /* Photo */
414 [ 0x40 ] = KEY_VIDEO,
415 [ 0x19 ] = KEY_AUDIO, /* Music */
416 [ 0x0b ] = KEY_CHANNELUP,
417 [ 0x08 ] = KEY_CHANNELDOWN,
418 [ 0x15 ] = KEY_VOLUMEUP,
419 [ 0x1c ] = KEY_VOLUMEDOWN,
422 EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci);
424 /* ---------------------------------------------------------------------- */
426 /* MSI TV@nywhere remote */
427 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = {
441 [ 0x0f ] = KEY_SCREEN, /* Full Screen */
442 [ 0x10 ] = KEY_F, /* Funtion */
443 [ 0x11 ] = KEY_T, /* Time shift */
444 [ 0x12 ] = KEY_POWER,
445 [ 0x13 ] = KEY_MEDIA, /* MTS */
447 [ 0x16 ] = KEY_REWIND, /* backward << */
448 [ 0x17 ] = KEY_ENTER, /* Return */
449 [ 0x18 ] = KEY_FASTFORWARD, /* forward >> */
450 [ 0x1a ] = KEY_CHANNELUP,
451 [ 0x1b ] = KEY_VOLUMEUP,
452 [ 0x1e ] = KEY_CHANNELDOWN,
453 [ 0x1f ] = KEY_VOLUMEDOWN,
456 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere);
458 /* ---------------------------------------------------------------------- */
460 /* Cinergy 1400 DVB-T */
461 IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = {
462 [ 0x01 ] = KEY_POWER,
474 [ 0x0b ] = KEY_VIDEO,
475 [ 0x0d ] = KEY_REFRESH,
476 [ 0x0e ] = KEY_SELECT,
481 [ 0x13 ] = KEY_RIGHT,
487 [ 0x18 ] = KEY_GREEN,
488 [ 0x19 ] = KEY_YELLOW,
491 [ 0x1b ] = KEY_CHANNELUP,
492 [ 0x1c ] = KEY_VOLUMEUP,
494 [ 0x1e ] = KEY_VOLUMEDOWN,
495 [ 0x1f ] = KEY_CHANNELDOWN,
497 [ 0x40 ] = KEY_PAUSE,
499 [ 0x58 ] = KEY_RECORD,
500 [ 0x54 ] = KEY_PREVIOUS,
505 EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400);
507 /* ---------------------------------------------------------------------- */
509 /* AVERTV STUDIO 303 Remote */
510 IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = {
522 [ 0x02 ] = KEY_POWER,
523 [ 0x22 ] = KEY_VIDEO,
524 [ 0x42 ] = KEY_AUDIO,
530 [ 0x16 ] = KEY_SUBTITLE,
531 [ 0x1e ] = KEY_REWIND,
532 [ 0x06 ] = KEY_PRINT,
534 [ 0x2e ] = KEY_SEARCH,
535 [ 0x36 ] = KEY_SLEEP,
536 [ 0x3e ] = KEY_SHUFFLE,
539 [ 0x4e ] = KEY_RECORD,
540 [ 0x56 ] = KEY_PAUSE,
545 [ 0x0b ] = KEY_GREEN,
546 [ 0x66 ] = KEY_YELLOW,
550 [ 0x7e ] = KEY_RIGHT,
555 EXPORT_SYMBOL_GPL(ir_codes_avertv_303);
557 /* ---------------------------------------------------------------------- */
559 /* DigitalNow DNTV Live! DVB-T Pro Remote */
560 IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = {
561 [ 0x16 ] = KEY_POWER,
564 [ 0x55 ] = KEY_TV, /* live tv */
565 [ 0x58 ] = KEY_TUNER, /* digital Radio */
566 [ 0x5a ] = KEY_RADIO, /* FM radio */
567 [ 0x59 ] = KEY_DVD, /* dvd menu */
577 [ 0x0c ] = KEY_CANCEL,
579 [ 0x4a ] = KEY_CLEAR,
585 [ 0x52 ] = KEY_RIGHT,
587 [ 0x1e ] = KEY_VOLUMEUP,
588 [ 0x0a ] = KEY_VOLUMEDOWN,
589 [ 0x02 ] = KEY_CHANNELDOWN,
590 [ 0x05 ] = KEY_CHANNELUP,
591 [ 0x11 ] = KEY_RECORD,
593 [ 0x4c ] = KEY_PAUSE,
595 [ 0x40 ] = KEY_REWIND,
596 [ 0x12 ] = KEY_FASTFORWARD,
597 [ 0x41 ] = KEY_PREVIOUSSONG, /* replay |< */
598 [ 0x42 ] = KEY_NEXTSONG, /* skip >| */
599 [ 0x54 ] = KEY_CAMERA, /* capture */
600 [ 0x50 ] = KEY_LANGUAGE, /* sap */
601 [ 0x47 ] = KEY_TV2, /* pip */
602 [ 0x4d ] = KEY_SCREEN,
603 [ 0x43 ] = KEY_SUBTITLE,
605 [ 0x49 ] = KEY_AUDIO, /* l/r */
606 [ 0x07 ] = KEY_SLEEP,
607 [ 0x08 ] = KEY_VIDEO, /* a/v */
608 [ 0x0e ] = KEY_PREVIOUS, /* recall */
609 [ 0x45 ] = KEY_ZOOM, /* zoom + */
610 [ 0x46 ] = KEY_ANGLE, /* zoom - */
612 [ 0x57 ] = KEY_GREEN,
613 [ 0x5c ] = KEY_YELLOW,
617 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvbt_pro);
619 IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE] = {
620 [ 0x01 ] = KEY_CHANNEL,
621 [ 0x02 ] = KEY_SELECT,
623 [ 0x04 ] = KEY_POWER,
627 [ 0x08 ] = KEY_CHANNELUP,
631 [ 0x0c ] = KEY_CHANNELDOWN,
635 [ 0x10 ] = KEY_VOLUMEUP,
638 [ 0x13 ] = KEY_PRINT,
639 [ 0x14 ] = KEY_VOLUMEDOWN,
640 [ 0x16 ] = KEY_PAUSE,
641 [ 0x18 ] = KEY_RECORD,
642 [ 0x19 ] = KEY_REWIND,
644 [ 0x1b ] = KEY_FORWARD,
645 [ 0x1c ] = KEY_BACKSPACE,
650 EXPORT_SYMBOL_GPL(ir_codes_em_terratec);
652 IR_KEYTAB_TYPE ir_codes_pinnacle_grey[IR_KEYTAB_SIZE] = {
664 [ 0x2f ] = KEY_POWER,
672 [ 0x1b ] = KEY_VOLUMEUP,
673 [ 0x0f ] = KEY_VOLUMEDOWN,
674 [ 0x17 ] = KEY_CHANNELUP,
675 [ 0x1c ] = KEY_CHANNELDOWN,
681 [ 0x3b ] = KEY_RIGHT,
685 [ 0x1a ] = KEY_PAUSE,
689 [ 0x16 ] = KEY_REWIND,
690 [ 0x13 ] = KEY_FORWARD,
691 [ 0x15 ] = KEY_PAUSE,
692 [ 0x0e ] = KEY_REWIND,
695 [ 0x07 ] = KEY_FORWARD,
696 [ 0x27 ] = KEY_RECORD,
697 [ 0x26 ] = KEY_TUNER,
699 [ 0x2a ] = KEY_MEDIA,
703 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_grey);
705 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = {
717 [ 0x0e ] = KEY_MODE, // Air/Cable
718 [ 0x11 ] = KEY_VIDEO, // Video
719 [ 0x15 ] = KEY_AUDIO, // Audio
720 [ 0x00 ] = KEY_POWER, // Power
721 [ 0x18 ] = KEY_TUNER, // AV Source
722 [ 0x02 ] = KEY_ZOOM, // Fullscreen
723 [ 0x1a ] = KEY_LANGUAGE, // Stereo
724 [ 0x1b ] = KEY_MUTE, // Mute
725 [ 0x14 ] = KEY_VOLUMEUP, // Volume +
726 [ 0x17 ] = KEY_VOLUMEDOWN, // Volume -
727 [ 0x12 ] = KEY_CHANNELUP, // Channel +
728 [ 0x13 ] = KEY_CHANNELDOWN, // Channel -
729 [ 0x06 ] = KEY_AGAIN, // Recall
730 [ 0x10 ] = KEY_ENTER, // Enter
733 EXPORT_SYMBOL_GPL(ir_codes_flyvideo);
735 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = {
736 [ 0x01 ] = KEY_ZOOM, // Full Screen
737 [ 0x00 ] = KEY_POWER, // Power
748 [ 0x06 ] = KEY_AGAIN, // Recall
750 [ 0x10 ] = KEY_MUTE, // Mute
751 [ 0x02 ] = KEY_RADIO, // TV/Radio
752 [ 0x1b ] = KEY_LANGUAGE, // SAP (Second Audio Program)
754 [ 0x14 ] = KEY_VOLUMEUP, // VOL+
755 [ 0x17 ] = KEY_VOLUMEDOWN, // VOL-
756 [ 0x12 ] = KEY_CHANNELUP, // CH+
757 [ 0x13 ] = KEY_CHANNELDOWN, // CH-
758 [ 0x1d ] = KEY_ENTER, // Enter
760 [ 0x1a ] = KEY_MODE, // PIP
761 [ 0x18 ] = KEY_TUNER, // Source
763 [ 0x1e ] = KEY_RECORD, // Record/Pause
764 [ 0x15 ] = KEY_ANGLE, // Swap (no label on key)
765 [ 0x1c ] = KEY_PAUSE, // Timeshift/Pause
766 [ 0x19 ] = KEY_BACK, // Rewind <<
767 [ 0x0a ] = KEY_PLAYPAUSE, // Play/Pause
768 [ 0x1f ] = KEY_FORWARD, // Forward >>
769 [ 0x16 ] = KEY_PREVIOUS, // Back |<<
770 [ 0x11 ] = KEY_STOP, // Stop
771 [ 0x0e ] = KEY_NEXT, // End >>|
774 EXPORT_SYMBOL_GPL(ir_codes_flydvb);
776 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = {
788 [ 0x0a ] = KEY_POWER,
789 [ 0x0b ] = KEY_PROG1, // app
790 [ 0x0c ] = KEY_ZOOM, // zoom/fullscreen
791 [ 0x0d ] = KEY_CHANNELUP, // channel
792 [ 0x0e ] = KEY_CHANNELDOWN, // channel-
793 [ 0x0f ] = KEY_VOLUMEUP,
794 [ 0x10 ] = KEY_VOLUMEDOWN,
795 [ 0x11 ] = KEY_TUNER, // AV
796 [ 0x12 ] = KEY_NUMLOCK, // -/--
797 [ 0x13 ] = KEY_AUDIO, // audio
802 [ 0x18 ] = KEY_RIGHT,
804 [ 0x1a ] = BTN_RIGHT,
805 [ 0x1b ] = KEY_WWW, // text
806 [ 0x1c ] = KEY_REWIND,
807 [ 0x1d ] = KEY_FORWARD,
808 [ 0x1e ] = KEY_RECORD,
810 [ 0x20 ] = KEY_PREVIOUSSONG,
811 [ 0x21 ] = KEY_NEXTSONG,
812 [ 0x22 ] = KEY_PAUSE,
816 EXPORT_SYMBOL_GPL(ir_codes_cinergy);
818 /* Alfons Geser <a.geser@cox.net>
819 * updates from Job D. R. Borges <jobdrb@ig.com.br> */
820 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
821 [ 0x12 ] = KEY_POWER,
822 [ 0x01 ] = KEY_TV, // DVR
823 [ 0x15 ] = KEY_DVD, // DVD
824 [ 0x17 ] = KEY_AUDIO, // music
825 // DVR mode / DVD mode / music mode
827 [ 0x1b ] = KEY_MUTE, // mute
828 [ 0x02 ] = KEY_LANGUAGE, // MTS/SAP / audio / autoseek
829 [ 0x1e ] = KEY_SUBTITLE, // closed captioning / subtitle / seek
830 [ 0x16 ] = KEY_ZOOM, // full screen
831 [ 0x1c ] = KEY_VIDEO, // video source / eject / delall
832 [ 0x1d ] = KEY_RESTART, // playback / angle / del
833 [ 0x2f ] = KEY_SEARCH, // scan / menu / playlist
834 [ 0x30 ] = KEY_CHANNEL, // CH surfing / bookmark / memo
836 [ 0x31 ] = KEY_HELP, // help
837 [ 0x32 ] = KEY_MODE, // num/memo
838 [ 0x33 ] = KEY_ESC, // cancel
840 [ 0x0c ] = KEY_UP, // up
841 [ 0x10 ] = KEY_DOWN, // down
842 [ 0x08 ] = KEY_LEFT, // left
843 [ 0x04 ] = KEY_RIGHT, // right
844 [ 0x03 ] = KEY_SELECT, // select
846 [ 0x1f ] = KEY_REWIND, // rewind
847 [ 0x20 ] = KEY_PLAYPAUSE, // play/pause
848 [ 0x29 ] = KEY_FORWARD, // forward
849 [ 0x14 ] = KEY_AGAIN, // repeat
850 [ 0x2b ] = KEY_RECORD, // recording
851 [ 0x2c ] = KEY_STOP, // stop
852 [ 0x2d ] = KEY_PLAY, // play
853 [ 0x2e ] = KEY_SHUFFLE, // snapshot / shuffle
866 [ 0x2a ] = KEY_VOLUMEUP,
867 [ 0x11 ] = KEY_VOLUMEDOWN,
868 [ 0x18 ] = KEY_CHANNELUP, // CH.tracking up
869 [ 0x19 ] = KEY_CHANNELDOWN, // CH.tracking down
871 [ 0x13 ] = KEY_ENTER, // enter
872 [ 0x21 ] = KEY_DOT, // . (decimal dot)
875 EXPORT_SYMBOL_GPL(ir_codes_eztv);
877 /* Alex Hermann <gaaf@gmx.net> */
878 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
890 [ 0x20 ] = KEY_TV, /* TV/FM */
891 [ 0x10 ] = KEY_CD, /* CD */
892 [ 0x30 ] = KEY_TEXT, /* TELETEXT */
893 [ 0x00 ] = KEY_POWER, /* POWER */
895 [ 0x08 ] = KEY_VIDEO, /* VIDEO */
896 [ 0x04 ] = KEY_AUDIO, /* AUDIO */
897 [ 0x0c ] = KEY_ZOOM, /* FULL SCREEN */
899 [ 0x12 ] = KEY_SUBTITLE, /* DISPLAY */
900 [ 0x32 ] = KEY_REWIND, /* LOOP */
901 [ 0x02 ] = KEY_PRINT, /* PREVIEW */
903 [ 0x2a ] = KEY_SEARCH, /* AUTOSCAN */
904 [ 0x1a ] = KEY_SLEEP, /* FREEZE */
905 [ 0x3a ] = KEY_SHUFFLE, /* SNAPSHOT */
906 [ 0x0a ] = KEY_MUTE, /* MUTE */
908 [ 0x26 ] = KEY_RECORD, /* RECORD */
909 [ 0x16 ] = KEY_PAUSE, /* PAUSE */
910 [ 0x36 ] = KEY_STOP, /* STOP */
911 [ 0x06 ] = KEY_PLAY, /* PLAY */
913 [ 0x2e ] = KEY_RED, /* RED */
914 [ 0x21 ] = KEY_GREEN, /* GREEN */
915 [ 0x0e ] = KEY_YELLOW, /* YELLOW */
916 [ 0x01 ] = KEY_BLUE, /* BLUE */
918 [ 0x1e ] = KEY_VOLUMEDOWN, /* VOLUME- */
919 [ 0x3e ] = KEY_VOLUMEUP, /* VOLUME+ */
920 [ 0x11 ] = KEY_CHANNELDOWN, /* CHANNEL/PAGE- */
921 [ 0x31 ] = KEY_CHANNELUP /* CHANNEL/PAGE+ */
924 EXPORT_SYMBOL_GPL(ir_codes_avermedia);
926 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = {
931 [ 0x23 ] = KEY_RADIO,
934 [ 0x0a ] = KEY_REWIND,
935 [ 0x08 ] = KEY_PLAYPAUSE,
936 [ 0x0f ] = KEY_FORWARD,
938 [ 0x02 ] = KEY_PREVIOUS,
945 [ 0x0d ] = KEY_RIGHT,
949 [ 0x09 ] = KEY_SETUP,
950 [ 0x05 ] = KEY_VIDEO,
951 [ 0x22 ] = KEY_CHANNEL,
953 [ 0x12 ] = KEY_VOLUMEUP,
954 [ 0x15 ] = KEY_VOLUMEDOWN,
955 [ 0x10 ] = KEY_CHANNELUP,
956 [ 0x13 ] = KEY_CHANNELDOWN,
958 [ 0x04 ] = KEY_RECORD,
971 [ 0x20 ] = KEY_LANGUAGE,
972 [ 0x21 ] = KEY_SLEEP,
975 EXPORT_SYMBOL_GPL(ir_codes_videomate_tv_pvr);
977 /* Michael Tokarev <mjt@tls.msk.ru>
978 http://www.corpit.ru/mjt/beholdTV/remote_control.jpg
979 keytable is used by MANLI MTV00[ 0x0c ] and BeholdTV 40[13] at
980 least, and probably other cards too.
981 The "ascii-art picture" below (in comments, first row
982 is the keycode in hex, and subsequent row(s) shows
983 the button labels (several variants when appropriate)
984 helps to descide which keycodes to assign to the buttons.
986 IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
992 [ 0x1c ] = KEY_RADIO, /*XXX*/
993 [ 0x12 ] = KEY_POWER,
1018 [ 0x0a ] = KEY_AGAIN, /*XXX KEY_REWIND? */
1020 [ 0x17 ] = KEY_DIGITS, /*XXX*/
1025 [ 0x14 ] = KEY_MENU,
1026 [ 0x10 ] = KEY_INFO,
1037 [ 0x0b ] = KEY_UP, /*XXX KEY_SCROLLUP? */
1038 [ 0x18 ] = KEY_LEFT, /*XXX KEY_BACK? */
1039 [ 0x16 ] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */
1040 [ 0x0c ] = KEY_RIGHT, /*XXX KEY_FORWARD? */
1041 [ 0x15 ] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */
1047 [ 0x11 ] = KEY_TV, /*XXX*/
1048 [ 0x0d ] = KEY_MODE, /*XXX there's no KEY_STEREO */
1051 * AUDIO Vol+ Chan+ *
1055 * SLEEP Vol- Chan- *
1057 [ 0x0f ] = KEY_AUDIO,
1058 [ 0x1b ] = KEY_VOLUMEUP,
1059 [ 0x1a ] = KEY_CHANNELUP,
1060 [ 0x0e ] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */
1061 [ 0x1f ] = KEY_VOLUMEDOWN,
1062 [ 0x1e ] = KEY_CHANNELDOWN,
1067 [ 0x13 ] = KEY_MUTE,
1068 [ 0x19 ] = KEY_RECORD, /*XXX*/
1073 EXPORT_SYMBOL_GPL(ir_codes_manli);
1075 /* Mike Baikov <mike@baikov.com> */
1076 IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
1078 [ 0x21 ] = KEY_POWER,
1090 [ 0x73 ] = KEY_AGAIN, /* LOOP */
1091 [ 0x0a ] = KEY_AUDIO,
1092 [ 0x61 ] = KEY_PRINT, /* PREVIEW */
1093 [ 0x7a ] = KEY_VIDEO,
1094 [ 0x20 ] = KEY_CHANNELUP,
1095 [ 0x40 ] = KEY_CHANNELDOWN,
1096 [ 0x18 ] = KEY_VOLUMEDOWN,
1097 [ 0x50 ] = KEY_VOLUMEUP,
1098 [ 0x10 ] = KEY_MUTE,
1099 [ 0x4a ] = KEY_SEARCH,
1100 [ 0x7b ] = KEY_SHUFFLE, /* SNAPSHOT */
1101 [ 0x22 ] = KEY_RECORD,
1102 [ 0x62 ] = KEY_STOP,
1103 [ 0x78 ] = KEY_PLAY,
1104 [ 0x39 ] = KEY_REWIND,
1105 [ 0x59 ] = KEY_PAUSE,
1106 [ 0x19 ] = KEY_FORWARD,
1107 [ 0x09 ] = KEY_ZOOM,
1109 [ 0x52 ] = KEY_F21, /* LIVE TIMESHIFT */
1110 [ 0x1a ] = KEY_F22, /* MIN TIMESHIFT */
1111 [ 0x3a ] = KEY_F23, /* TIMESHIFT */
1112 [ 0x70 ] = KEY_F24, /* NORMAL TIMESHIFT */
1115 EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
1117 IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = {
1118 [ 0x03 ] = KEY_POWER,
1119 [ 0x6f ] = KEY_MUTE,
1120 [ 0x10 ] = KEY_BACKSPACE, /* Recall */
1132 [ 0x12 ] = KEY_DOT, /* 100+ */
1134 [ 0x07 ] = KEY_VOLUMEUP,
1135 [ 0x0b ] = KEY_VOLUMEDOWN,
1136 [ 0x1a ] = KEY_KPPLUS,
1137 [ 0x18 ] = KEY_KPMINUS,
1139 [ 0x1d ] = KEY_DOWN,
1140 [ 0x0f ] = KEY_CHANNELUP,
1141 [ 0x13 ] = KEY_CHANNELDOWN,
1142 [ 0x48 ] = KEY_ZOOM,
1144 [ 0x1b ] = KEY_VIDEO, /* Video source */
1145 [ 0x49 ] = KEY_LANGUAGE, /* MTS Select */
1146 [ 0x19 ] = KEY_SEARCH, /* Auto Scan */
1148 [ 0x4b ] = KEY_RECORD,
1149 [ 0x46 ] = KEY_PLAY,
1150 [ 0x45 ] = KEY_PAUSE, /* Pause */
1151 [ 0x44 ] = KEY_STOP,
1152 [ 0x40 ] = KEY_FORWARD, /* Forward ? */
1153 [ 0x42 ] = KEY_REWIND, /* Backward ? */
1157 EXPORT_SYMBOL_GPL(ir_codes_purpletv);
1159 /* Mapping for the 28 key remote control as seen at
1160 http://www.sednacomputer.com/photo/cardbus-tv.jpg
1161 Pavel Mihaylov <bin@bash.info> */
1162 IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = {
1174 [ 0x0a ] = KEY_AGAIN, /* Recall */
1175 [ 0x0b ] = KEY_CHANNELUP,
1176 [ 0x0c ] = KEY_VOLUMEUP,
1177 [ 0x0d ] = KEY_MODE, /* Stereo */
1178 [ 0x0e ] = KEY_STOP,
1179 [ 0x0f ] = KEY_PREVIOUSSONG,
1180 [ 0x10 ] = KEY_ZOOM,
1181 [ 0x11 ] = KEY_TUNER, /* Source */
1182 [ 0x12 ] = KEY_POWER,
1183 [ 0x13 ] = KEY_MUTE,
1184 [ 0x15 ] = KEY_CHANNELDOWN,
1185 [ 0x18 ] = KEY_VOLUMEDOWN,
1186 [ 0x19 ] = KEY_SHUFFLE, /* Snapshot */
1187 [ 0x1a ] = KEY_NEXTSONG,
1188 [ 0x1b ] = KEY_TEXT, /* Time Shift */
1189 [ 0x1c ] = KEY_RADIO, /* FM Radio */
1190 [ 0x1d ] = KEY_RECORD,
1191 [ 0x1e ] = KEY_PAUSE,
1194 EXPORT_SYMBOL_GPL(ir_codes_pctv_sedna);
1196 /* Mark Phalan <phalanm@o2.ie> */
1197 IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
1209 [ 0x12 ] = KEY_POWER,
1210 [ 0x10 ] = KEY_MUTE,
1211 [ 0x1f ] = KEY_VOLUMEDOWN,
1212 [ 0x1b ] = KEY_VOLUMEUP,
1213 [ 0x1a ] = KEY_CHANNELUP,
1214 [ 0x1e ] = KEY_CHANNELDOWN,
1215 [ 0x0e ] = KEY_PAGEUP,
1216 [ 0x1d ] = KEY_PAGEDOWN,
1217 [ 0x13 ] = KEY_SOUND,
1219 [ 0x18 ] = KEY_KPPLUSMINUS, /* CH +/- */
1220 [ 0x16 ] = KEY_SUBTITLE, /* CC */
1221 [ 0x0d ] = KEY_TEXT, /* TTX */
1222 [ 0x0b ] = KEY_TV, /* AIR/CBL */
1223 [ 0x11 ] = KEY_PC, /* PC/TV */
1224 [ 0x17 ] = KEY_OK, /* CH RTN */
1225 [ 0x19 ] = KEY_MODE, /* FUNC */
1226 [ 0x0c ] = KEY_SEARCH, /* AUTOSCAN */
1228 /* Not sure what to do with these ones! */
1229 [ 0x0f ] = KEY_SELECT, /* SOURCE */
1230 [ 0x0a ] = KEY_KPPLUS, /* +100 */
1231 [ 0x14 ] = KEY_EQUAL, /* SYNC */
1232 [ 0x1c ] = KEY_MEDIA, /* PC/TV */
1235 EXPORT_SYMBOL_GPL(ir_codes_pv951);
1237 /* generic RC5 keytable */
1238 /* see http://users.pandora.be/nenya/electronics/rc5/codes00.htm */
1239 /* used by old (black) Hauppauge remotes */
1240 IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE] = {
1253 [ 0x0b ] = KEY_CHANNEL, /* channel / program (japan: 11) */
1254 [ 0x0c ] = KEY_POWER, /* standby */
1255 [ 0x0d ] = KEY_MUTE, /* mute / demute */
1256 [ 0x0f ] = KEY_TV, /* display */
1257 [ 0x10 ] = KEY_VOLUMEUP,
1258 [ 0x11 ] = KEY_VOLUMEDOWN,
1259 [ 0x12 ] = KEY_BRIGHTNESSUP,
1260 [ 0x13 ] = KEY_BRIGHTNESSDOWN,
1261 [ 0x1e ] = KEY_SEARCH, /* search + */
1262 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1263 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1264 [ 0x22 ] = KEY_CHANNEL, /* alt / channel */
1265 [ 0x23 ] = KEY_LANGUAGE, /* 1st / 2nd language */
1266 [ 0x26 ] = KEY_SLEEP, /* sleeptimer */
1267 [ 0x2e ] = KEY_MENU, /* 2nd controls (USA: menu) */
1268 [ 0x30 ] = KEY_PAUSE,
1269 [ 0x32 ] = KEY_REWIND,
1270 [ 0x33 ] = KEY_GOTO,
1271 [ 0x35 ] = KEY_PLAY,
1272 [ 0x36 ] = KEY_STOP,
1273 [ 0x37 ] = KEY_RECORD, /* recording */
1274 [ 0x3c ] = KEY_TEXT, /* teletext submode (Japan: 12) */
1275 [ 0x3d ] = KEY_SUSPEND, /* system standby */
1279 EXPORT_SYMBOL_GPL(ir_codes_rc5_tv);
1281 /* Table for Leadtek Winfast Remote Controls - used by both bttv and cx88 */
1282 IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
1295 [ 0x00 ] = KEY_POWER,
1296 [ 0x1b ] = KEY_AUDIO, /* Audio Source */
1297 [ 0x02 ] = KEY_TUNER, /* TV/FM, not on Y0400052 */
1298 [ 0x1e ] = KEY_VIDEO, /* Video Source */
1299 [ 0x16 ] = KEY_INFO, /* Display information */
1300 [ 0x04 ] = KEY_VOLUMEUP,
1301 [ 0x08 ] = KEY_VOLUMEDOWN,
1302 [ 0x0c ] = KEY_CHANNELUP,
1303 [ 0x10 ] = KEY_CHANNELDOWN,
1304 [ 0x03 ] = KEY_ZOOM, /* fullscreen */
1305 [ 0x1f ] = KEY_TEXT, /* closed caption/teletext */
1306 [ 0x20 ] = KEY_SLEEP,
1307 [ 0x29 ] = KEY_CLEAR, /* boss key */
1308 [ 0x14 ] = KEY_MUTE,
1310 [ 0x2c ] = KEY_GREEN,
1311 [ 0x2d ] = KEY_YELLOW,
1312 [ 0x2e ] = KEY_BLUE,
1313 [ 0x18 ] = KEY_KPPLUS, /* fine tune + , not on Y040052 */
1314 [ 0x19 ] = KEY_KPMINUS, /* fine tune - , not on Y040052 */
1315 [ 0x2a ] = KEY_MEDIA, /* PIP (Picture in picture */
1317 [ 0x13 ] = KEY_ENTER,
1318 [ 0x11 ] = KEY_LAST, /* Recall (last channel */
1319 [ 0x22 ] = KEY_PREVIOUS,
1320 [ 0x23 ] = KEY_PLAYPAUSE,
1321 [ 0x24 ] = KEY_NEXT,
1322 [ 0x25 ] = KEY_ARCHIVE, /* Time Shifting */
1323 [ 0x26 ] = KEY_STOP,
1324 [ 0x27 ] = KEY_RECORD,
1325 [ 0x28 ] = KEY_SAVE, /* Screenshot */
1326 [ 0x2f ] = KEY_MENU,
1327 [ 0x30 ] = KEY_CANCEL,
1328 [ 0x31 ] = KEY_CHANNEL, /* Channel Surf */
1329 [ 0x32 ] = KEY_SUBTITLE,
1330 [ 0x33 ] = KEY_LANGUAGE,
1331 [ 0x34 ] = KEY_REWIND,
1332 [ 0x35 ] = KEY_FASTFORWARD,
1334 [ 0x37 ] = KEY_RADIO, /* FM */
1338 EXPORT_SYMBOL_GPL(ir_codes_winfast);
1340 IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = {
1341 [ 0x59 ] = KEY_MUTE,
1342 [ 0x4a ] = KEY_POWER,
1344 [ 0x18 ] = KEY_TEXT,
1346 [ 0x3d ] = KEY_PRINT,
1349 [ 0x04 ] = KEY_GREEN,
1350 [ 0x11 ] = KEY_YELLOW,
1351 [ 0x00 ] = KEY_BLUE,
1353 [ 0x2d ] = KEY_VOLUMEUP,
1354 [ 0x1e ] = KEY_VOLUMEDOWN,
1356 [ 0x49 ] = KEY_MENU,
1358 [ 0x16 ] = KEY_CHANNELUP,
1359 [ 0x17 ] = KEY_CHANNELDOWN,
1362 [ 0x21 ] = KEY_DOWN,
1363 [ 0x22 ] = KEY_LEFT,
1364 [ 0x23 ] = KEY_RIGHT,
1365 [ 0x0d ] = KEY_SELECT,
1369 [ 0x08 ] = KEY_BACK,
1370 [ 0x07 ] = KEY_REFRESH,
1372 [ 0x2f ] = KEY_ZOOM,
1373 [ 0x29 ] = KEY_RECORD,
1375 [ 0x4b ] = KEY_PAUSE,
1376 [ 0x4d ] = KEY_REWIND,
1377 [ 0x2e ] = KEY_PLAY,
1378 [ 0x4e ] = KEY_FORWARD,
1379 [ 0x53 ] = KEY_PREVIOUS,
1380 [ 0x4c ] = KEY_STOP,
1381 [ 0x54 ] = KEY_NEXT,
1394 [ 0x74 ] = KEY_CHANNEL,
1395 [ 0x0a ] = KEY_BACKSPACE,
1398 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_color);
1400 /* Hauppauge: the newer, gray remotes (seems there are multiple
1401 * slightly different versions), shipped with cx88+ivtv cards.
1402 * almost rc5 coding, but some non-standard keys */
1403 IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = {
1416 [ 0x0a ] = KEY_TEXT, /* keypad asterisk as well */
1417 [ 0x0b ] = KEY_RED, /* red button */
1418 [ 0x0c ] = KEY_RADIO,
1419 [ 0x0d ] = KEY_MENU,
1420 [ 0x0e ] = KEY_SUBTITLE, /* also the # key */
1421 [ 0x0f ] = KEY_MUTE,
1422 [ 0x10 ] = KEY_VOLUMEUP,
1423 [ 0x11 ] = KEY_VOLUMEDOWN,
1424 [ 0x12 ] = KEY_PREVIOUS, /* previous channel */
1426 [ 0x15 ] = KEY_DOWN,
1427 [ 0x16 ] = KEY_LEFT,
1428 [ 0x17 ] = KEY_RIGHT,
1429 [ 0x18 ] = KEY_VIDEO, /* Videos */
1430 [ 0x19 ] = KEY_AUDIO, /* Music */
1431 /* 0x1a: Pictures - presume this means
1432 "Multimedia Home Platform" -
1433 no "PICTURES" key in input.h
1437 [ 0x1b ] = KEY_EPG, /* Guide */
1439 [ 0x1e ] = KEY_NEXTSONG, /* skip >| */
1440 [ 0x1f ] = KEY_EXIT, /* back/exit */
1441 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1442 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1443 [ 0x22 ] = KEY_CHANNEL, /* source (old black remote) */
1444 [ 0x24 ] = KEY_PREVIOUSSONG, /* replay |< */
1445 [ 0x25 ] = KEY_ENTER, /* OK */
1446 [ 0x26 ] = KEY_SLEEP, /* minimize (old black remote) */
1447 [ 0x29 ] = KEY_BLUE, /* blue key */
1448 [ 0x2e ] = KEY_GREEN, /* green button */
1449 [ 0x30 ] = KEY_PAUSE, /* pause */
1450 [ 0x32 ] = KEY_REWIND, /* backward << */
1451 [ 0x34 ] = KEY_FASTFORWARD, /* forward >> */
1452 [ 0x35 ] = KEY_PLAY,
1453 [ 0x36 ] = KEY_STOP,
1454 [ 0x37 ] = KEY_RECORD, /* recording */
1455 [ 0x38 ] = KEY_YELLOW, /* yellow key */
1456 [ 0x3b ] = KEY_SELECT, /* top right button */
1457 [ 0x3c ] = KEY_ZOOM, /* full */
1458 [ 0x3d ] = KEY_POWER, /* system power (green button) */
1461 EXPORT_SYMBOL_GPL(ir_codes_hauppauge_new);
1463 IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = {
1464 [ 0x1d ] = KEY_SWITCHVIDEOMODE, /* switch inputs */
1465 [ 0x2a ] = KEY_FRONT,
1477 [ 0x22 ] = KEY_NUMLOCK, /* -/-- */
1478 [ 0x20 ] = KEY_REFRESH,
1480 [ 0x03 ] = KEY_BRIGHTNESSDOWN,
1481 [ 0x28 ] = KEY_AUDIO,
1483 [ 0x3f ] = KEY_LEFT,
1484 [ 0x2e ] = KEY_MUTE,
1485 [ 0x3b ] = KEY_RIGHT,
1486 [ 0x00 ] = KEY_DOWN,
1487 [ 0x07 ] = KEY_BRIGHTNESSUP,
1488 [ 0x2c ] = KEY_TEXT,
1490 [ 0x37 ] = KEY_RECORD,
1491 [ 0x17 ] = KEY_PLAY,
1492 [ 0x13 ] = KEY_PAUSE,
1493 [ 0x26 ] = KEY_STOP,
1494 [ 0x18 ] = KEY_FASTFORWARD,
1495 [ 0x14 ] = KEY_REWIND,
1496 [ 0x33 ] = KEY_ZOOM,
1497 [ 0x32 ] = KEY_KEYBOARD,
1498 [ 0x30 ] = KEY_GOTO, /* Pointing arrow */
1499 [ 0x36 ] = KEY_MACRO, /* Maximize/Minimize (yellow) */
1500 [ 0x0b ] = KEY_RADIO,
1501 [ 0x10 ] = KEY_POWER,
1505 EXPORT_SYMBOL_GPL(ir_codes_npgtech);
1507 /* Norwood Micro (non-Pro) TV Tuner
1508 By Peter Naulls <peter@chocky.org>
1509 Key comments are the functions given in the manual */
1510 IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE] = {
1523 [ 0x78 ] = KEY_TUNER, /* Video Source */
1524 [ 0x2c ] = KEY_EXIT, /* Open/Close software */
1525 [ 0x2a ] = KEY_SELECT, /* 2 Digit Select */
1526 [ 0x69 ] = KEY_AGAIN, /* Recall */
1528 [ 0x32 ] = KEY_BRIGHTNESSUP, /* Brightness increase */
1529 [ 0x33 ] = KEY_BRIGHTNESSDOWN, /* Brightness decrease */
1530 [ 0x6b ] = KEY_KPPLUS, /* (not named >>>>>) */
1531 [ 0x6c ] = KEY_KPMINUS, /* (not named <<<<<) */
1533 [ 0x2d ] = KEY_MUTE, /* Mute */
1534 [ 0x30 ] = KEY_VOLUMEUP, /* Volume up */
1535 [ 0x31 ] = KEY_VOLUMEDOWN, /* Volume down */
1536 [ 0x60 ] = KEY_CHANNELUP, /* Channel up */
1537 [ 0x61 ] = KEY_CHANNELDOWN, /* Channel down */
1539 [ 0x3f ] = KEY_RECORD, /* Record */
1540 [ 0x37 ] = KEY_PLAY, /* Play */
1541 [ 0x36 ] = KEY_PAUSE, /* Pause */
1542 [ 0x2b ] = KEY_STOP, /* Stop */
1543 [ 0x67 ] = KEY_FASTFORWARD, /* Foward */
1544 [ 0x66 ] = KEY_REWIND, /* Rewind */
1545 [ 0x3e ] = KEY_SEARCH, /* Auto Scan */
1546 [ 0x2e ] = KEY_CAMERA, /* Capture Video */
1547 [ 0x6d ] = KEY_MENU, /* Show/Hide Control */
1548 [ 0x2f ] = KEY_ZOOM, /* Full Screen */
1549 [ 0x34 ] = KEY_RADIO, /* FM */
1550 [ 0x65 ] = KEY_POWER, /* Computer power */
1553 EXPORT_SYMBOL_GPL(ir_codes_norwood);
1555 /* From reading the following remotes:
1556 * Zenith Universal 7 / TV Mode 807 / VCR Mode 837
1557 * Hauppauge (from NOVA-CI-s box product)
1558 * This is a "middle of the road" approach, differences are noted
1560 IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE] = {
1571 [ 0x0a ] = KEY_ENTER,
1573 [ 0x0c ] = KEY_POWER, /* RADIO on Hauppauge */
1574 [ 0x0d ] = KEY_MUTE,
1575 [ 0x0f ] = KEY_A, /* TV on Hauppauge */
1576 [ 0x10 ] = KEY_VOLUMEUP,
1577 [ 0x11 ] = KEY_VOLUMEDOWN,
1580 [ 0x1d ] = KEY_DOWN,
1581 [ 0x1e ] = KEY_OPTION, /* RESERVED on Hauppauge */
1582 [ 0x1f ] = KEY_BREAK,
1583 [ 0x20 ] = KEY_CHANNELUP,
1584 [ 0x21 ] = KEY_CHANNELDOWN,
1585 [ 0x22 ] = KEY_PREVIOUS, /* Prev. Ch on Zenith, SOURCE on Hauppauge */
1586 [ 0x24 ] = KEY_RESTART,
1588 [ 0x26 ] = KEY_CYCLEWINDOWS, /* MINIMIZE on Hauppauge */
1589 [ 0x28 ] = KEY_ENTER, /* VCR mode on Zenith */
1590 [ 0x29 ] = KEY_PAUSE,
1591 [ 0x2b ] = KEY_RIGHT,
1592 [ 0x2c ] = KEY_LEFT,
1593 [ 0x2e ] = KEY_MENU, /* FULL SCREEN on Hauppauge */
1594 [ 0x30 ] = KEY_SLOW,
1595 [ 0x31 ] = KEY_PREVIOUS, /* VCR mode on Zenith */
1596 [ 0x32 ] = KEY_REWIND,
1597 [ 0x34 ] = KEY_FASTFORWARD,
1598 [ 0x35 ] = KEY_PLAY,
1599 [ 0x36 ] = KEY_STOP,
1600 [ 0x37 ] = KEY_RECORD,
1601 [ 0x38 ] = KEY_TUNER, /* TV/VCR on Zenith */
1603 [ 0x3c ] = KEY_EXIT,
1604 [ 0x3d ] = KEY_POWER2,
1605 [ 0x3e ] = KEY_TUNER,
1608 EXPORT_SYMBOL_GPL(ir_codes_budget_ci_old);
1611 * Marc Fargas <telenieko@telenieko.com>
1612 * this is the remote control that comes with the asus p7131
1613 * which has a label saying is "Model PC-39"
1615 IR_KEYTAB_TYPE ir_codes_asus_pc39[IR_KEYTAB_SIZE] = {
1628 [ 0x3e ] = KEY_RADIO, /* radio */
1629 [ 0x03 ] = KEY_MENU, /* dvd/menu */
1630 [ 0x2a ] = KEY_VOLUMEUP,
1631 [ 0x19 ] = KEY_VOLUMEDOWN,
1633 [ 0x3b ] = KEY_DOWN,
1634 [ 0x27 ] = KEY_LEFT,
1635 [ 0x2f ] = KEY_RIGHT,
1636 [ 0x25 ] = KEY_VIDEO, /* video */
1637 [ 0x39 ] = KEY_AUDIO, /* music */
1639 [ 0x21 ] = KEY_TV, /* tv */
1640 [ 0x1d ] = KEY_EXIT, /* back */
1641 [ 0x0a ] = KEY_CHANNELUP, /* channel / program + */
1642 [ 0x1b ] = KEY_CHANNELDOWN, /* channel / program - */
1643 [ 0x1a ] = KEY_ENTER, /* enter */
1645 [ 0x06 ] = KEY_PAUSE, /* play/pause */
1646 [ 0x1e ] = KEY_PREVIOUS, /* rew */
1647 [ 0x26 ] = KEY_NEXT, /* forward */
1648 [ 0x0e ] = KEY_REWIND, /* backward << */
1649 [ 0x3a ] = KEY_FASTFORWARD, /* forward >> */
1650 [ 0x36 ] = KEY_STOP,
1651 [ 0x2e ] = KEY_RECORD, /* recording */
1652 [ 0x16 ] = KEY_POWER, /* the button that reads "close" */
1654 [ 0x11 ] = KEY_ZOOM, /* full screen */
1655 [ 0x13 ] = KEY_MACRO, /* recall */
1656 [ 0x23 ] = KEY_HOME, /* home */
1657 [ 0x05 ] = KEY_PVR, /* picture */
1658 [ 0x3d ] = KEY_MUTE, /* mute */
1659 [ 0x01 ] = KEY_DVD, /* dvd */
1662 EXPORT_SYMBOL_GPL(ir_codes_asus_pc39);