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>
24 #include <linux/input.h>
25 #include <media/ir-common.h>
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,
32 EXPORT_SYMBOL_GPL(ir_codes_empty);
34 /* Michal Majchrowicz <mmajchrowicz@gmail.com> */
35 IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
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 */
55 [ 0x1a ] = KEY_Q, /* off */
57 [ 0x1f ] = KEY_DOWN, /* channel - */
58 [ 0x1c ] = KEY_UP, /* channel + */
59 [ 0x10 ] = KEY_LEFT, /* volume - */
60 [ 0x1e ] = KEY_RIGHT, /* volume + */
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'
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 +'
104 EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);
106 /* Attila Kondoros <attila.kondoros@chello.hu> */
107 IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {
119 [ 0x17 ] = KEY_LAST, // +100
120 [ 0x0a ] = KEY_LIST, // recall
123 [ 0x1c ] = KEY_TUNER, // TV/FM
124 [ 0x15 ] = KEY_SEARCH, // scan
125 [ 0x12 ] = KEY_POWER, // power
126 [ 0x1f ] = KEY_VOLUMEDOWN, // vol up
127 [ 0x1b ] = KEY_VOLUMEUP, // vol down
128 [ 0x1e ] = KEY_CHANNELDOWN, // chn up
129 [ 0x1a ] = KEY_CHANNELUP, // chn down
131 [ 0x11 ] = KEY_VIDEO, // video
132 [ 0x0f ] = KEY_ZOOM, // full screen
133 [ 0x13 ] = KEY_MUTE, // mute/unmute
134 [ 0x10 ] = KEY_TEXT, // min
136 [ 0x0d ] = KEY_STOP, // freeze
137 [ 0x0e ] = KEY_RECORD, // record
138 [ 0x1d ] = KEY_PLAYPAUSE, // stop
139 [ 0x19 ] = KEY_PLAY, // play
141 [ 0x16 ] = KEY_GOTO, // osd
142 [ 0x14 ] = KEY_REFRESH, // default
143 [ 0x0c ] = KEY_KPPLUS, // fine tune >>>>
144 [ 0x18 ] = KEY_KPMINUS // fine tune <<<<
147 EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp);
149 /* ---------------------------------------------------------------------- */
151 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
153 [ 0x1e ] = KEY_POWER, // power
154 [ 0x07 ] = KEY_MEDIA, // source
155 [ 0x1c ] = KEY_SEARCH, // scan
157 /* FIXME: duplicate keycodes?
159 * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
160 * The GPIO values are
161 * 6397fb for both "Scan <" and "CH -",
162 * 639ffb for "Scan >" and "CH+",
163 * 6384fb for "Tune <" and "<<<",
164 * 638cfb for "Tune >" and ">>>", regardless of the mask.
166 * [ 0x17 ] = KEY_BACK, // fm scan <<
167 * [ 0x1f ] = KEY_FORWARD, // fm scan >>
169 * [ 0x04 ] = KEY_LEFT, // fm tuning <
170 * [ 0x0c ] = KEY_RIGHT, // fm tuning >
172 * For now, these four keys are disabled. Pressing them will generate
173 * the CH+/CH-/<<</>>> events
176 [ 0x03 ] = KEY_TUNER, // TV/FM
178 [ 0x00 ] = KEY_RECORD,
182 [ 0x1a ] = KEY_PLAYPAUSE, // freeze
183 [ 0x19 ] = KEY_ZOOM, // zoom
184 [ 0x0f ] = KEY_TEXT, // min
196 [ 0x10 ] = KEY_LAST, // +100
197 [ 0x13 ] = KEY_LIST, // recall
199 [ 0x1f ] = KEY_CHANNELUP, // chn down
200 [ 0x17 ] = KEY_CHANNELDOWN, // chn up
201 [ 0x16 ] = KEY_VOLUMEUP, // vol down
202 [ 0x14 ] = KEY_VOLUMEDOWN, // vol up
204 [ 0x04 ] = KEY_KPMINUS, // <<<
205 [ 0x0e ] = KEY_SETUP, // function
206 [ 0x0c ] = KEY_KPPLUS, // >>>
208 [ 0x0d ] = KEY_GOTO, // mts
209 [ 0x1d ] = KEY_REFRESH, // reset
210 [ 0x18 ] = KEY_MUTE // mute/unmute
213 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
215 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
229 [ 0x0d ] = KEY_POWER,
230 [ 0x0e ] = KEY_MHP, /* labelled 'Picture' */
231 [ 0x0f ] = KEY_AUDIO,
233 [ 0x11 ] = KEY_F13, /* 16:9 */
234 [ 0x12 ] = KEY_F14, /* 14:9 */
241 [ 0x19 ] = KEY_RIGHT,
242 [ 0x1a ] = KEY_ENTER,
243 [ 0x1b ] = KEY_CHANNELUP,
244 [ 0x1c ] = KEY_CHANNELDOWN,
245 [ 0x1d ] = KEY_VOLUMEUP,
246 [ 0x1e ] = KEY_VOLUMEDOWN,
248 [ 0x20 ] = KEY_GREEN,
249 [ 0x21 ] = KEY_YELLOW,
251 [ 0x23 ] = KEY_SUBTITLE,
252 [ 0x24 ] = KEY_F15, /* AD */
255 [ 0x27 ] = KEY_REWIND,
258 [ 0x2a ] = KEY_FASTFORWARD,
259 [ 0x2b ] = KEY_F16, /* chapter */
260 [ 0x2c ] = KEY_PAUSE,
262 [ 0x2e ] = KEY_RECORD,
263 [ 0x2f ] = KEY_F17, /* picture in picture */
264 [ 0x30 ] = KEY_KPPLUS, /* zoom in */
265 [ 0x31 ] = KEY_KPMINUS, /* zoom out */
266 [ 0x32 ] = KEY_F18, /* capture */
267 [ 0x33 ] = KEY_F19, /* web */
268 [ 0x34 ] = KEY_EMAIL,
269 [ 0x35 ] = KEY_PHONE,
273 EXPORT_SYMBOL_GPL(ir_codes_nebula);
275 /* DigitalNow DNTV Live DVB-T Remote */
276 IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = {
277 [ 0x00 ] = KEY_ESC, /* 'go up a level?' */
290 [ 0x0b ] = KEY_TUNER, /* tv/fm */
291 [ 0x0c ] = KEY_SEARCH, /* scan */
293 [ 0x0e ] = KEY_PAUSE,
294 [ 0x0f ] = KEY_LIST, /* source */
297 [ 0x11 ] = KEY_REWIND, /* backward << */
298 [ 0x12 ] = KEY_POWER,
299 [ 0x13 ] = KEY_S, /* snap */
300 [ 0x14 ] = KEY_AUDIO, /* stereo */
301 [ 0x15 ] = KEY_CLEAR, /* reset */
303 [ 0x17 ] = KEY_ENTER,
304 [ 0x18 ] = KEY_ZOOM, /* full screen */
305 [ 0x19 ] = KEY_FASTFORWARD, /* forward >> */
306 [ 0x1a ] = KEY_CHANNELUP,
307 [ 0x1b ] = KEY_VOLUMEUP,
308 [ 0x1c ] = KEY_INFO, /* preview */
309 [ 0x1d ] = KEY_RECORD, /* record */
310 [ 0x1e ] = KEY_CHANNELDOWN,
311 [ 0x1f ] = KEY_VOLUMEDOWN,
314 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t);
316 /* ---------------------------------------------------------------------- */
318 /* IO-DATA BCTV7E Remote */
319 IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = {
321 [ 0x20 ] = KEY_RADIO, /* FM */
323 [ 0x00 ] = KEY_POWER,
326 [ 0x44 ] = KEY_0, /* 10 */
337 [ 0x10 ] = KEY_L, /* Live */
338 [ 0x08 ] = KEY_T, /* Time Shift */
340 [ 0x18 ] = KEY_PLAYPAUSE, /* Play */
342 [ 0x24 ] = KEY_ENTER, /* 11 */
343 [ 0x64 ] = KEY_ESC, /* 12 */
344 [ 0x04 ] = KEY_M, /* Multi */
346 [ 0x54 ] = KEY_VIDEO,
347 [ 0x34 ] = KEY_CHANNELUP,
348 [ 0x74 ] = KEY_VOLUMEUP,
351 [ 0x4c ] = KEY_S, /* SVIDEO */
352 [ 0x2c ] = KEY_CHANNELDOWN,
353 [ 0x6c ] = KEY_VOLUMEDOWN,
356 [ 0x5c ] = KEY_PAUSE,
357 [ 0x3c ] = KEY_C, /* || (red) */
358 [ 0x7c ] = KEY_RECORD, /* recording */
361 [ 0x41 ] = KEY_REWIND, /* backward << */
363 [ 0x61 ] = KEY_FASTFORWARD, /* forward >> */
364 [ 0x01 ] = KEY_NEXT, /* skip >| */
367 EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e);
369 /* ---------------------------------------------------------------------- */
371 /* ADS Tech Instant TV DVB-T PCI Remote */
372 IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = {
385 [ 0x5b ] = KEY_POWER,
388 [ 0x5d ] = KEY_SEARCH,
389 [ 0x17 ] = KEY_EPG, /* Guide */
394 [ 0x1e ] = KEY_RIGHT,
395 [ 0x0e ] = KEY_SELECT, /* Enter */
398 [ 0x59 ] = KEY_PREVIOUS,
400 [ 0x58 ] = KEY_REWIND,
401 [ 0x50 ] = KEY_FORWARD,
402 [ 0x44 ] = KEY_PLAYPAUSE,
404 [ 0x1b ] = KEY_RECORD,
405 [ 0x13 ] = KEY_TUNER, /* Live */
408 [ 0x03 ] = KEY_PROG1, /* 1 */
409 [ 0x01 ] = KEY_PROG2, /* 2 */
410 [ 0x00 ] = KEY_PROG3, /* 3 */
412 [ 0x48 ] = KEY_AUX, /* Photo */
413 [ 0x40 ] = KEY_VIDEO,
414 [ 0x19 ] = KEY_AUDIO, /* Music */
415 [ 0x0b ] = KEY_CHANNELUP,
416 [ 0x08 ] = KEY_CHANNELDOWN,
417 [ 0x15 ] = KEY_VOLUMEUP,
418 [ 0x1c ] = KEY_VOLUMEDOWN,
421 EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci);
423 /* ---------------------------------------------------------------------- */
425 /* MSI TV@nywhere remote */
426 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = {
440 [ 0x0f ] = KEY_SCREEN, /* Full Screen */
441 [ 0x10 ] = KEY_F, /* Funtion */
442 [ 0x11 ] = KEY_T, /* Time shift */
443 [ 0x12 ] = KEY_POWER,
444 [ 0x13 ] = KEY_MEDIA, /* MTS */
446 [ 0x16 ] = KEY_REWIND, /* backward << */
447 [ 0x17 ] = KEY_ENTER, /* Return */
448 [ 0x18 ] = KEY_FASTFORWARD, /* forward >> */
449 [ 0x1a ] = KEY_CHANNELUP,
450 [ 0x1b ] = KEY_VOLUMEUP,
451 [ 0x1e ] = KEY_CHANNELDOWN,
452 [ 0x1f ] = KEY_VOLUMEDOWN,
455 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere);
457 /* ---------------------------------------------------------------------- */
459 /* Cinergy 1400 DVB-T */
460 IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = {
461 [ 0x01 ] = KEY_POWER,
473 [ 0x0b ] = KEY_VIDEO,
474 [ 0x0d ] = KEY_REFRESH,
475 [ 0x0e ] = KEY_SELECT,
480 [ 0x13 ] = KEY_RIGHT,
486 [ 0x18 ] = KEY_GREEN,
487 [ 0x19 ] = KEY_YELLOW,
490 [ 0x1b ] = KEY_CHANNELUP,
491 [ 0x1c ] = KEY_VOLUMEUP,
493 [ 0x1e ] = KEY_VOLUMEDOWN,
494 [ 0x1f ] = KEY_CHANNELDOWN,
496 [ 0x40 ] = KEY_PAUSE,
498 [ 0x58 ] = KEY_RECORD,
499 [ 0x54 ] = KEY_PREVIOUS,
504 EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400);
506 /* ---------------------------------------------------------------------- */
508 /* AVERTV STUDIO 303 Remote */
509 IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = {
521 [ 0x02 ] = KEY_POWER,
522 [ 0x22 ] = KEY_VIDEO,
523 [ 0x42 ] = KEY_AUDIO,
529 [ 0x16 ] = KEY_SUBTITLE,
530 [ 0x1e ] = KEY_REWIND,
531 [ 0x06 ] = KEY_PRINT,
533 [ 0x2e ] = KEY_SEARCH,
534 [ 0x36 ] = KEY_SLEEP,
535 [ 0x3e ] = KEY_SHUFFLE,
538 [ 0x4e ] = KEY_RECORD,
539 [ 0x56 ] = KEY_PAUSE,
544 [ 0x0b ] = KEY_GREEN,
545 [ 0x66 ] = KEY_YELLOW,
549 [ 0x7e ] = KEY_RIGHT,
554 EXPORT_SYMBOL_GPL(ir_codes_avertv_303);
556 /* ---------------------------------------------------------------------- */
558 /* DigitalNow DNTV Live! DVB-T Pro Remote */
559 IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = {
560 [ 0x16 ] = KEY_POWER,
563 [ 0x55 ] = KEY_TV, /* live tv */
564 [ 0x58 ] = KEY_TUNER, /* digital Radio */
565 [ 0x5a ] = KEY_RADIO, /* FM radio */
566 [ 0x59 ] = KEY_DVD, /* dvd menu */
576 [ 0x0c ] = KEY_CANCEL,
578 [ 0x4a ] = KEY_CLEAR,
584 [ 0x52 ] = KEY_RIGHT,
586 [ 0x1e ] = KEY_VOLUMEUP,
587 [ 0x0a ] = KEY_VOLUMEDOWN,
588 [ 0x02 ] = KEY_CHANNELDOWN,
589 [ 0x05 ] = KEY_CHANNELUP,
590 [ 0x11 ] = KEY_RECORD,
592 [ 0x4c ] = KEY_PAUSE,
594 [ 0x40 ] = KEY_REWIND,
595 [ 0x12 ] = KEY_FASTFORWARD,
596 [ 0x41 ] = KEY_PREVIOUSSONG, /* replay |< */
597 [ 0x42 ] = KEY_NEXTSONG, /* skip >| */
598 [ 0x54 ] = KEY_CAMERA, /* capture */
599 [ 0x50 ] = KEY_LANGUAGE, /* sap */
600 [ 0x47 ] = KEY_TV2, /* pip */
601 [ 0x4d ] = KEY_SCREEN,
602 [ 0x43 ] = KEY_SUBTITLE,
604 [ 0x49 ] = KEY_AUDIO, /* l/r */
605 [ 0x07 ] = KEY_SLEEP,
606 [ 0x08 ] = KEY_VIDEO, /* a/v */
607 [ 0x0e ] = KEY_PREVIOUS, /* recall */
608 [ 0x45 ] = KEY_ZOOM, /* zoom + */
609 [ 0x46 ] = KEY_ANGLE, /* zoom - */
611 [ 0x57 ] = KEY_GREEN,
612 [ 0x5c ] = KEY_YELLOW,
616 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvbt_pro);
618 IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE] = {
619 [ 0x01 ] = KEY_CHANNEL,
620 [ 0x02 ] = KEY_SELECT,
622 [ 0x04 ] = KEY_POWER,
626 [ 0x08 ] = KEY_CHANNELUP,
630 [ 0x0c ] = KEY_CHANNELDOWN,
634 [ 0x10 ] = KEY_VOLUMEUP,
637 [ 0x13 ] = KEY_PRINT,
638 [ 0x14 ] = KEY_VOLUMEDOWN,
639 [ 0x16 ] = KEY_PAUSE,
640 [ 0x18 ] = KEY_RECORD,
641 [ 0x19 ] = KEY_REWIND,
643 [ 0x1b ] = KEY_FORWARD,
644 [ 0x1c ] = KEY_BACKSPACE,
649 EXPORT_SYMBOL_GPL(ir_codes_em_terratec);
651 IR_KEYTAB_TYPE ir_codes_pinnacle_grey[IR_KEYTAB_SIZE] = {
663 [ 0x2f ] = KEY_POWER,
669 [ 0x2d ] = KEY_SCREEN,
671 [ 0x1b ] = KEY_VOLUMEUP,
672 [ 0x0f ] = KEY_VOLUMEDOWN,
673 [ 0x17 ] = KEY_CHANNELUP,
674 [ 0x1c ] = KEY_CHANNELDOWN,
680 [ 0x3b ] = KEY_RIGHT,
684 [ 0x1a ] = KEY_ENTER,
687 [ 0x19 ] = KEY_AGAIN,
688 [ 0x16 ] = KEY_PREVIOUSSONG,
689 [ 0x13 ] = KEY_NEXTSONG,
690 [ 0x15 ] = KEY_PAUSE,
691 [ 0x0e ] = KEY_REWIND,
694 [ 0x07 ] = KEY_FORWARD,
695 [ 0x27 ] = KEY_RECORD,
696 [ 0x26 ] = KEY_TUNER,
698 [ 0x2a ] = KEY_MEDIA,
702 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_grey);
704 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = {
716 [ 0x0e ] = KEY_MODE, // Air/Cable
717 [ 0x11 ] = KEY_VIDEO, // Video
718 [ 0x15 ] = KEY_AUDIO, // Audio
719 [ 0x00 ] = KEY_POWER, // Power
720 [ 0x18 ] = KEY_TUNER, // AV Source
721 [ 0x02 ] = KEY_ZOOM, // Fullscreen
722 [ 0x1a ] = KEY_LANGUAGE, // Stereo
723 [ 0x1b ] = KEY_MUTE, // Mute
724 [ 0x14 ] = KEY_VOLUMEUP, // Volume +
725 [ 0x17 ] = KEY_VOLUMEDOWN, // Volume -
726 [ 0x12 ] = KEY_CHANNELUP, // Channel +
727 [ 0x13 ] = KEY_CHANNELDOWN, // Channel -
728 [ 0x06 ] = KEY_AGAIN, // Recall
729 [ 0x10 ] = KEY_ENTER, // Enter
732 EXPORT_SYMBOL_GPL(ir_codes_flyvideo);
734 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = {
735 [ 0x01 ] = KEY_ZOOM, // Full Screen
736 [ 0x00 ] = KEY_POWER, // Power
747 [ 0x06 ] = KEY_AGAIN, // Recall
749 [ 0x10 ] = KEY_MUTE, // Mute
750 [ 0x02 ] = KEY_RADIO, // TV/Radio
751 [ 0x1b ] = KEY_LANGUAGE, // SAP (Second Audio Program)
753 [ 0x14 ] = KEY_VOLUMEUP, // VOL+
754 [ 0x17 ] = KEY_VOLUMEDOWN, // VOL-
755 [ 0x12 ] = KEY_CHANNELUP, // CH+
756 [ 0x13 ] = KEY_CHANNELDOWN, // CH-
757 [ 0x1d ] = KEY_ENTER, // Enter
759 [ 0x1a ] = KEY_MODE, // PIP
760 [ 0x18 ] = KEY_TUNER, // Source
762 [ 0x1e ] = KEY_RECORD, // Record/Pause
763 [ 0x15 ] = KEY_ANGLE, // Swap (no label on key)
764 [ 0x1c ] = KEY_PAUSE, // Timeshift/Pause
765 [ 0x19 ] = KEY_BACK, // Rewind <<
766 [ 0x0a ] = KEY_PLAYPAUSE, // Play/Pause
767 [ 0x1f ] = KEY_FORWARD, // Forward >>
768 [ 0x16 ] = KEY_PREVIOUS, // Back |<<
769 [ 0x11 ] = KEY_STOP, // Stop
770 [ 0x0e ] = KEY_NEXT, // End >>|
773 EXPORT_SYMBOL_GPL(ir_codes_flydvb);
775 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = {
787 [ 0x0a ] = KEY_POWER,
788 [ 0x0b ] = KEY_PROG1, // app
789 [ 0x0c ] = KEY_ZOOM, // zoom/fullscreen
790 [ 0x0d ] = KEY_CHANNELUP, // channel
791 [ 0x0e ] = KEY_CHANNELDOWN, // channel-
792 [ 0x0f ] = KEY_VOLUMEUP,
793 [ 0x10 ] = KEY_VOLUMEDOWN,
794 [ 0x11 ] = KEY_TUNER, // AV
795 [ 0x12 ] = KEY_NUMLOCK, // -/--
796 [ 0x13 ] = KEY_AUDIO, // audio
801 [ 0x18 ] = KEY_RIGHT,
803 [ 0x1a ] = BTN_RIGHT,
804 [ 0x1b ] = KEY_WWW, // text
805 [ 0x1c ] = KEY_REWIND,
806 [ 0x1d ] = KEY_FORWARD,
807 [ 0x1e ] = KEY_RECORD,
809 [ 0x20 ] = KEY_PREVIOUSSONG,
810 [ 0x21 ] = KEY_NEXTSONG,
811 [ 0x22 ] = KEY_PAUSE,
815 EXPORT_SYMBOL_GPL(ir_codes_cinergy);
817 /* Alfons Geser <a.geser@cox.net>
818 * updates from Job D. R. Borges <jobdrb@ig.com.br> */
819 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
820 [ 0x12 ] = KEY_POWER,
821 [ 0x01 ] = KEY_TV, // DVR
822 [ 0x15 ] = KEY_DVD, // DVD
823 [ 0x17 ] = KEY_AUDIO, // music
824 // DVR mode / DVD mode / music mode
826 [ 0x1b ] = KEY_MUTE, // mute
827 [ 0x02 ] = KEY_LANGUAGE, // MTS/SAP / audio / autoseek
828 [ 0x1e ] = KEY_SUBTITLE, // closed captioning / subtitle / seek
829 [ 0x16 ] = KEY_ZOOM, // full screen
830 [ 0x1c ] = KEY_VIDEO, // video source / eject / delall
831 [ 0x1d ] = KEY_RESTART, // playback / angle / del
832 [ 0x2f ] = KEY_SEARCH, // scan / menu / playlist
833 [ 0x30 ] = KEY_CHANNEL, // CH surfing / bookmark / memo
835 [ 0x31 ] = KEY_HELP, // help
836 [ 0x32 ] = KEY_MODE, // num/memo
837 [ 0x33 ] = KEY_ESC, // cancel
839 [ 0x0c ] = KEY_UP, // up
840 [ 0x10 ] = KEY_DOWN, // down
841 [ 0x08 ] = KEY_LEFT, // left
842 [ 0x04 ] = KEY_RIGHT, // right
843 [ 0x03 ] = KEY_SELECT, // select
845 [ 0x1f ] = KEY_REWIND, // rewind
846 [ 0x20 ] = KEY_PLAYPAUSE, // play/pause
847 [ 0x29 ] = KEY_FORWARD, // forward
848 [ 0x14 ] = KEY_AGAIN, // repeat
849 [ 0x2b ] = KEY_RECORD, // recording
850 [ 0x2c ] = KEY_STOP, // stop
851 [ 0x2d ] = KEY_PLAY, // play
852 [ 0x2e ] = KEY_SHUFFLE, // snapshot / shuffle
865 [ 0x2a ] = KEY_VOLUMEUP,
866 [ 0x11 ] = KEY_VOLUMEDOWN,
867 [ 0x18 ] = KEY_CHANNELUP, // CH.tracking up
868 [ 0x19 ] = KEY_CHANNELDOWN, // CH.tracking down
870 [ 0x13 ] = KEY_ENTER, // enter
871 [ 0x21 ] = KEY_DOT, // . (decimal dot)
874 EXPORT_SYMBOL_GPL(ir_codes_eztv);
876 /* Alex Hermann <gaaf@gmx.net> */
877 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
889 [ 0x20 ] = KEY_TV, /* TV/FM */
890 [ 0x10 ] = KEY_CD, /* CD */
891 [ 0x30 ] = KEY_TEXT, /* TELETEXT */
892 [ 0x00 ] = KEY_POWER, /* POWER */
894 [ 0x08 ] = KEY_VIDEO, /* VIDEO */
895 [ 0x04 ] = KEY_AUDIO, /* AUDIO */
896 [ 0x0c ] = KEY_ZOOM, /* FULL SCREEN */
898 [ 0x12 ] = KEY_SUBTITLE, /* DISPLAY */
899 [ 0x32 ] = KEY_REWIND, /* LOOP */
900 [ 0x02 ] = KEY_PRINT, /* PREVIEW */
902 [ 0x2a ] = KEY_SEARCH, /* AUTOSCAN */
903 [ 0x1a ] = KEY_SLEEP, /* FREEZE */
904 [ 0x3a ] = KEY_SHUFFLE, /* SNAPSHOT */
905 [ 0x0a ] = KEY_MUTE, /* MUTE */
907 [ 0x26 ] = KEY_RECORD, /* RECORD */
908 [ 0x16 ] = KEY_PAUSE, /* PAUSE */
909 [ 0x36 ] = KEY_STOP, /* STOP */
910 [ 0x06 ] = KEY_PLAY, /* PLAY */
912 [ 0x2e ] = KEY_RED, /* RED */
913 [ 0x21 ] = KEY_GREEN, /* GREEN */
914 [ 0x0e ] = KEY_YELLOW, /* YELLOW */
915 [ 0x01 ] = KEY_BLUE, /* BLUE */
917 [ 0x1e ] = KEY_VOLUMEDOWN, /* VOLUME- */
918 [ 0x3e ] = KEY_VOLUMEUP, /* VOLUME+ */
919 [ 0x11 ] = KEY_CHANNELDOWN, /* CHANNEL/PAGE- */
920 [ 0x31 ] = KEY_CHANNELUP /* CHANNEL/PAGE+ */
923 EXPORT_SYMBOL_GPL(ir_codes_avermedia);
925 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = {
930 [ 0x23 ] = KEY_RADIO,
933 [ 0x0a ] = KEY_REWIND,
934 [ 0x08 ] = KEY_PLAYPAUSE,
935 [ 0x0f ] = KEY_FORWARD,
937 [ 0x02 ] = KEY_PREVIOUS,
944 [ 0x0d ] = KEY_RIGHT,
948 [ 0x09 ] = KEY_SETUP,
949 [ 0x05 ] = KEY_VIDEO,
950 [ 0x22 ] = KEY_CHANNEL,
952 [ 0x12 ] = KEY_VOLUMEUP,
953 [ 0x15 ] = KEY_VOLUMEDOWN,
954 [ 0x10 ] = KEY_CHANNELUP,
955 [ 0x13 ] = KEY_CHANNELDOWN,
957 [ 0x04 ] = KEY_RECORD,
970 [ 0x20 ] = KEY_LANGUAGE,
971 [ 0x21 ] = KEY_SLEEP,
974 EXPORT_SYMBOL_GPL(ir_codes_videomate_tv_pvr);
976 /* Michael Tokarev <mjt@tls.msk.ru>
977 http://www.corpit.ru/mjt/beholdTV/remote_control.jpg
978 keytable is used by MANLI MTV00[ 0x0c ] and BeholdTV 40[13] at
979 least, and probably other cards too.
980 The "ascii-art picture" below (in comments, first row
981 is the keycode in hex, and subsequent row(s) shows
982 the button labels (several variants when appropriate)
983 helps to descide which keycodes to assign to the buttons.
985 IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
991 [ 0x1c ] = KEY_RADIO, /*XXX*/
992 [ 0x12 ] = KEY_POWER,
1017 [ 0x0a ] = KEY_AGAIN, /*XXX KEY_REWIND? */
1019 [ 0x17 ] = KEY_DIGITS, /*XXX*/
1024 [ 0x14 ] = KEY_MENU,
1025 [ 0x10 ] = KEY_INFO,
1036 [ 0x0b ] = KEY_UP, /*XXX KEY_SCROLLUP? */
1037 [ 0x18 ] = KEY_LEFT, /*XXX KEY_BACK? */
1038 [ 0x16 ] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */
1039 [ 0x0c ] = KEY_RIGHT, /*XXX KEY_FORWARD? */
1040 [ 0x15 ] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */
1046 [ 0x11 ] = KEY_TV, /*XXX*/
1047 [ 0x0d ] = KEY_MODE, /*XXX there's no KEY_STEREO */
1050 * AUDIO Vol+ Chan+ *
1054 * SLEEP Vol- Chan- *
1056 [ 0x0f ] = KEY_AUDIO,
1057 [ 0x1b ] = KEY_VOLUMEUP,
1058 [ 0x1a ] = KEY_CHANNELUP,
1059 [ 0x0e ] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */
1060 [ 0x1f ] = KEY_VOLUMEDOWN,
1061 [ 0x1e ] = KEY_CHANNELDOWN,
1066 [ 0x13 ] = KEY_MUTE,
1067 [ 0x19 ] = KEY_RECORD, /*XXX*/
1072 EXPORT_SYMBOL_GPL(ir_codes_manli);
1074 /* Mike Baikov <mike@baikov.com> */
1075 IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
1077 [ 0x11 ] = KEY_POWER,
1089 [ 0x3b ] = KEY_AGAIN, /* LOOP */
1090 [ 0x06 ] = KEY_AUDIO,
1091 [ 0x31 ] = KEY_PRINT, /* PREVIEW */
1092 [ 0x3e ] = KEY_VIDEO,
1093 [ 0x10 ] = KEY_CHANNELUP,
1094 [ 0x20 ] = KEY_CHANNELDOWN,
1095 [ 0x0c ] = KEY_VOLUMEDOWN,
1096 [ 0x28 ] = KEY_VOLUMEUP,
1097 [ 0x08 ] = KEY_MUTE,
1098 [ 0x26 ] = KEY_SEARCH, /*SCAN*/
1099 [ 0x3f ] = KEY_SHUFFLE, /* SNAPSHOT */
1100 [ 0x12 ] = KEY_RECORD,
1101 [ 0x32 ] = KEY_STOP,
1102 [ 0x3c ] = KEY_PLAY,
1103 [ 0x1d ] = KEY_REWIND,
1104 [ 0x2d ] = KEY_PAUSE,
1105 [ 0x0d ] = KEY_FORWARD,
1106 [ 0x05 ] = KEY_ZOOM, /*FULL*/
1108 [ 0x2a ] = KEY_F21, /* LIVE TIMESHIFT */
1109 [ 0x0e ] = KEY_F22, /* MIN TIMESHIFT */
1110 [ 0x1e ] = KEY_F23, /* TIMESHIFT */
1111 [ 0x38 ] = KEY_F24, /* NORMAL TIMESHIFT */
1114 EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
1116 IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = {
1117 [ 0x03 ] = KEY_POWER,
1118 [ 0x6f ] = KEY_MUTE,
1119 [ 0x10 ] = KEY_BACKSPACE, /* Recall */
1131 [ 0x12 ] = KEY_DOT, /* 100+ */
1133 [ 0x07 ] = KEY_VOLUMEUP,
1134 [ 0x0b ] = KEY_VOLUMEDOWN,
1135 [ 0x1a ] = KEY_KPPLUS,
1136 [ 0x18 ] = KEY_KPMINUS,
1138 [ 0x1d ] = KEY_DOWN,
1139 [ 0x0f ] = KEY_CHANNELUP,
1140 [ 0x13 ] = KEY_CHANNELDOWN,
1141 [ 0x48 ] = KEY_ZOOM,
1143 [ 0x1b ] = KEY_VIDEO, /* Video source */
1144 [ 0x49 ] = KEY_LANGUAGE, /* MTS Select */
1145 [ 0x19 ] = KEY_SEARCH, /* Auto Scan */
1147 [ 0x4b ] = KEY_RECORD,
1148 [ 0x46 ] = KEY_PLAY,
1149 [ 0x45 ] = KEY_PAUSE, /* Pause */
1150 [ 0x44 ] = KEY_STOP,
1151 [ 0x40 ] = KEY_FORWARD, /* Forward ? */
1152 [ 0x42 ] = KEY_REWIND, /* Backward ? */
1156 EXPORT_SYMBOL_GPL(ir_codes_purpletv);
1158 /* Mapping for the 28 key remote control as seen at
1159 http://www.sednacomputer.com/photo/cardbus-tv.jpg
1160 Pavel Mihaylov <bin@bash.info> */
1161 IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = {
1173 [ 0x0a ] = KEY_AGAIN, /* Recall */
1174 [ 0x0b ] = KEY_CHANNELUP,
1175 [ 0x0c ] = KEY_VOLUMEUP,
1176 [ 0x0d ] = KEY_MODE, /* Stereo */
1177 [ 0x0e ] = KEY_STOP,
1178 [ 0x0f ] = KEY_PREVIOUSSONG,
1179 [ 0x10 ] = KEY_ZOOM,
1180 [ 0x11 ] = KEY_TUNER, /* Source */
1181 [ 0x12 ] = KEY_POWER,
1182 [ 0x13 ] = KEY_MUTE,
1183 [ 0x15 ] = KEY_CHANNELDOWN,
1184 [ 0x18 ] = KEY_VOLUMEDOWN,
1185 [ 0x19 ] = KEY_SHUFFLE, /* Snapshot */
1186 [ 0x1a ] = KEY_NEXTSONG,
1187 [ 0x1b ] = KEY_TEXT, /* Time Shift */
1188 [ 0x1c ] = KEY_RADIO, /* FM Radio */
1189 [ 0x1d ] = KEY_RECORD,
1190 [ 0x1e ] = KEY_PAUSE,
1193 EXPORT_SYMBOL_GPL(ir_codes_pctv_sedna);
1195 /* Mark Phalan <phalanm@o2.ie> */
1196 IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
1208 [ 0x12 ] = KEY_POWER,
1209 [ 0x10 ] = KEY_MUTE,
1210 [ 0x1f ] = KEY_VOLUMEDOWN,
1211 [ 0x1b ] = KEY_VOLUMEUP,
1212 [ 0x1a ] = KEY_CHANNELUP,
1213 [ 0x1e ] = KEY_CHANNELDOWN,
1214 [ 0x0e ] = KEY_PAGEUP,
1215 [ 0x1d ] = KEY_PAGEDOWN,
1216 [ 0x13 ] = KEY_SOUND,
1218 [ 0x18 ] = KEY_KPPLUSMINUS, /* CH +/- */
1219 [ 0x16 ] = KEY_SUBTITLE, /* CC */
1220 [ 0x0d ] = KEY_TEXT, /* TTX */
1221 [ 0x0b ] = KEY_TV, /* AIR/CBL */
1222 [ 0x11 ] = KEY_PC, /* PC/TV */
1223 [ 0x17 ] = KEY_OK, /* CH RTN */
1224 [ 0x19 ] = KEY_MODE, /* FUNC */
1225 [ 0x0c ] = KEY_SEARCH, /* AUTOSCAN */
1227 /* Not sure what to do with these ones! */
1228 [ 0x0f ] = KEY_SELECT, /* SOURCE */
1229 [ 0x0a ] = KEY_KPPLUS, /* +100 */
1230 [ 0x14 ] = KEY_EQUAL, /* SYNC */
1231 [ 0x1c ] = KEY_MEDIA, /* PC/TV */
1234 EXPORT_SYMBOL_GPL(ir_codes_pv951);
1236 /* generic RC5 keytable */
1237 /* see http://users.pandora.be/nenya/electronics/rc5/codes00.htm */
1238 /* used by old (black) Hauppauge remotes */
1239 IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE] = {
1252 [ 0x0b ] = KEY_CHANNEL, /* channel / program (japan: 11) */
1253 [ 0x0c ] = KEY_POWER, /* standby */
1254 [ 0x0d ] = KEY_MUTE, /* mute / demute */
1255 [ 0x0f ] = KEY_TV, /* display */
1256 [ 0x10 ] = KEY_VOLUMEUP,
1257 [ 0x11 ] = KEY_VOLUMEDOWN,
1258 [ 0x12 ] = KEY_BRIGHTNESSUP,
1259 [ 0x13 ] = KEY_BRIGHTNESSDOWN,
1260 [ 0x1e ] = KEY_SEARCH, /* search + */
1261 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1262 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1263 [ 0x22 ] = KEY_CHANNEL, /* alt / channel */
1264 [ 0x23 ] = KEY_LANGUAGE, /* 1st / 2nd language */
1265 [ 0x26 ] = KEY_SLEEP, /* sleeptimer */
1266 [ 0x2e ] = KEY_MENU, /* 2nd controls (USA: menu) */
1267 [ 0x30 ] = KEY_PAUSE,
1268 [ 0x32 ] = KEY_REWIND,
1269 [ 0x33 ] = KEY_GOTO,
1270 [ 0x35 ] = KEY_PLAY,
1271 [ 0x36 ] = KEY_STOP,
1272 [ 0x37 ] = KEY_RECORD, /* recording */
1273 [ 0x3c ] = KEY_TEXT, /* teletext submode (Japan: 12) */
1274 [ 0x3d ] = KEY_SUSPEND, /* system standby */
1278 EXPORT_SYMBOL_GPL(ir_codes_rc5_tv);
1280 /* Table for Leadtek Winfast Remote Controls - used by both bttv and cx88 */
1281 IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
1294 [ 0x00 ] = KEY_POWER,
1295 [ 0x1b ] = KEY_AUDIO, /* Audio Source */
1296 [ 0x02 ] = KEY_TUNER, /* TV/FM, not on Y0400052 */
1297 [ 0x1e ] = KEY_VIDEO, /* Video Source */
1298 [ 0x16 ] = KEY_INFO, /* Display information */
1299 [ 0x04 ] = KEY_VOLUMEUP,
1300 [ 0x08 ] = KEY_VOLUMEDOWN,
1301 [ 0x0c ] = KEY_CHANNELUP,
1302 [ 0x10 ] = KEY_CHANNELDOWN,
1303 [ 0x03 ] = KEY_ZOOM, /* fullscreen */
1304 [ 0x1f ] = KEY_TEXT, /* closed caption/teletext */
1305 [ 0x20 ] = KEY_SLEEP,
1306 [ 0x29 ] = KEY_CLEAR, /* boss key */
1307 [ 0x14 ] = KEY_MUTE,
1309 [ 0x2c ] = KEY_GREEN,
1310 [ 0x2d ] = KEY_YELLOW,
1311 [ 0x2e ] = KEY_BLUE,
1312 [ 0x18 ] = KEY_KPPLUS, /* fine tune + , not on Y040052 */
1313 [ 0x19 ] = KEY_KPMINUS, /* fine tune - , not on Y040052 */
1314 [ 0x2a ] = KEY_MEDIA, /* PIP (Picture in picture */
1316 [ 0x13 ] = KEY_ENTER,
1317 [ 0x11 ] = KEY_LAST, /* Recall (last channel */
1318 [ 0x22 ] = KEY_PREVIOUS,
1319 [ 0x23 ] = KEY_PLAYPAUSE,
1320 [ 0x24 ] = KEY_NEXT,
1321 [ 0x25 ] = KEY_ARCHIVE, /* Time Shifting */
1322 [ 0x26 ] = KEY_STOP,
1323 [ 0x27 ] = KEY_RECORD,
1324 [ 0x28 ] = KEY_SAVE, /* Screenshot */
1325 [ 0x2f ] = KEY_MENU,
1326 [ 0x30 ] = KEY_CANCEL,
1327 [ 0x31 ] = KEY_CHANNEL, /* Channel Surf */
1328 [ 0x32 ] = KEY_SUBTITLE,
1329 [ 0x33 ] = KEY_LANGUAGE,
1330 [ 0x34 ] = KEY_REWIND,
1331 [ 0x35 ] = KEY_FASTFORWARD,
1333 [ 0x37 ] = KEY_RADIO, /* FM */
1336 [ 0x3e ] = KEY_F21, /* MCE +VOL, on Y04G0033 */
1337 [ 0x3a ] = KEY_F22, /* MCE -VOL, on Y04G0033 */
1338 [ 0x3b ] = KEY_F23, /* MCE +CH, on Y04G0033 */
1339 [ 0x3f ] = KEY_F24 /* MCE -CH, on Y04G0033 */
1342 EXPORT_SYMBOL_GPL(ir_codes_winfast);
1344 IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = {
1345 [ 0x59 ] = KEY_MUTE,
1346 [ 0x4a ] = KEY_POWER,
1348 [ 0x18 ] = KEY_TEXT,
1350 [ 0x3d ] = KEY_PRINT,
1353 [ 0x04 ] = KEY_GREEN,
1354 [ 0x11 ] = KEY_YELLOW,
1355 [ 0x00 ] = KEY_BLUE,
1357 [ 0x2d ] = KEY_VOLUMEUP,
1358 [ 0x1e ] = KEY_VOLUMEDOWN,
1360 [ 0x49 ] = KEY_MENU,
1362 [ 0x16 ] = KEY_CHANNELUP,
1363 [ 0x17 ] = KEY_CHANNELDOWN,
1366 [ 0x21 ] = KEY_DOWN,
1367 [ 0x22 ] = KEY_LEFT,
1368 [ 0x23 ] = KEY_RIGHT,
1369 [ 0x0d ] = KEY_SELECT,
1373 [ 0x08 ] = KEY_BACK,
1374 [ 0x07 ] = KEY_REFRESH,
1376 [ 0x2f ] = KEY_ZOOM,
1377 [ 0x29 ] = KEY_RECORD,
1379 [ 0x4b ] = KEY_PAUSE,
1380 [ 0x4d ] = KEY_REWIND,
1381 [ 0x2e ] = KEY_PLAY,
1382 [ 0x4e ] = KEY_FORWARD,
1383 [ 0x53 ] = KEY_PREVIOUS,
1384 [ 0x4c ] = KEY_STOP,
1385 [ 0x54 ] = KEY_NEXT,
1398 [ 0x74 ] = KEY_CHANNEL,
1399 [ 0x0a ] = KEY_BACKSPACE,
1402 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_color);
1404 /* Hauppauge: the newer, gray remotes (seems there are multiple
1405 * slightly different versions), shipped with cx88+ivtv cards.
1406 * almost rc5 coding, but some non-standard keys */
1407 IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = {
1420 [ 0x0a ] = KEY_TEXT, /* keypad asterisk as well */
1421 [ 0x0b ] = KEY_RED, /* red button */
1422 [ 0x0c ] = KEY_RADIO,
1423 [ 0x0d ] = KEY_MENU,
1424 [ 0x0e ] = KEY_SUBTITLE, /* also the # key */
1425 [ 0x0f ] = KEY_MUTE,
1426 [ 0x10 ] = KEY_VOLUMEUP,
1427 [ 0x11 ] = KEY_VOLUMEDOWN,
1428 [ 0x12 ] = KEY_PREVIOUS, /* previous channel */
1430 [ 0x15 ] = KEY_DOWN,
1431 [ 0x16 ] = KEY_LEFT,
1432 [ 0x17 ] = KEY_RIGHT,
1433 [ 0x18 ] = KEY_VIDEO, /* Videos */
1434 [ 0x19 ] = KEY_AUDIO, /* Music */
1435 /* 0x1a: Pictures - presume this means
1436 "Multimedia Home Platform" -
1437 no "PICTURES" key in input.h
1441 [ 0x1b ] = KEY_EPG, /* Guide */
1443 [ 0x1e ] = KEY_NEXTSONG, /* skip >| */
1444 [ 0x1f ] = KEY_EXIT, /* back/exit */
1445 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1446 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1447 [ 0x22 ] = KEY_CHANNEL, /* source (old black remote) */
1448 [ 0x24 ] = KEY_PREVIOUSSONG, /* replay |< */
1449 [ 0x25 ] = KEY_ENTER, /* OK */
1450 [ 0x26 ] = KEY_SLEEP, /* minimize (old black remote) */
1451 [ 0x29 ] = KEY_BLUE, /* blue key */
1452 [ 0x2e ] = KEY_GREEN, /* green button */
1453 [ 0x30 ] = KEY_PAUSE, /* pause */
1454 [ 0x32 ] = KEY_REWIND, /* backward << */
1455 [ 0x34 ] = KEY_FASTFORWARD, /* forward >> */
1456 [ 0x35 ] = KEY_PLAY,
1457 [ 0x36 ] = KEY_STOP,
1458 [ 0x37 ] = KEY_RECORD, /* recording */
1459 [ 0x38 ] = KEY_YELLOW, /* yellow key */
1460 [ 0x3b ] = KEY_SELECT, /* top right button */
1461 [ 0x3c ] = KEY_ZOOM, /* full */
1462 [ 0x3d ] = KEY_POWER, /* system power (green button) */
1465 EXPORT_SYMBOL_GPL(ir_codes_hauppauge_new);
1467 IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = {
1468 [ 0x1d ] = KEY_SWITCHVIDEOMODE, /* switch inputs */
1469 [ 0x2a ] = KEY_FRONT,
1481 [ 0x22 ] = KEY_NUMLOCK, /* -/-- */
1482 [ 0x20 ] = KEY_REFRESH,
1484 [ 0x03 ] = KEY_BRIGHTNESSDOWN,
1485 [ 0x28 ] = KEY_AUDIO,
1487 [ 0x3f ] = KEY_LEFT,
1488 [ 0x2e ] = KEY_MUTE,
1489 [ 0x3b ] = KEY_RIGHT,
1490 [ 0x00 ] = KEY_DOWN,
1491 [ 0x07 ] = KEY_BRIGHTNESSUP,
1492 [ 0x2c ] = KEY_TEXT,
1494 [ 0x37 ] = KEY_RECORD,
1495 [ 0x17 ] = KEY_PLAY,
1496 [ 0x13 ] = KEY_PAUSE,
1497 [ 0x26 ] = KEY_STOP,
1498 [ 0x18 ] = KEY_FASTFORWARD,
1499 [ 0x14 ] = KEY_REWIND,
1500 [ 0x33 ] = KEY_ZOOM,
1501 [ 0x32 ] = KEY_KEYBOARD,
1502 [ 0x30 ] = KEY_GOTO, /* Pointing arrow */
1503 [ 0x36 ] = KEY_MACRO, /* Maximize/Minimize (yellow) */
1504 [ 0x0b ] = KEY_RADIO,
1505 [ 0x10 ] = KEY_POWER,
1509 EXPORT_SYMBOL_GPL(ir_codes_npgtech);
1511 /* Norwood Micro (non-Pro) TV Tuner
1512 By Peter Naulls <peter@chocky.org>
1513 Key comments are the functions given in the manual */
1514 IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE] = {
1527 [ 0x78 ] = KEY_TUNER, /* Video Source */
1528 [ 0x2c ] = KEY_EXIT, /* Open/Close software */
1529 [ 0x2a ] = KEY_SELECT, /* 2 Digit Select */
1530 [ 0x69 ] = KEY_AGAIN, /* Recall */
1532 [ 0x32 ] = KEY_BRIGHTNESSUP, /* Brightness increase */
1533 [ 0x33 ] = KEY_BRIGHTNESSDOWN, /* Brightness decrease */
1534 [ 0x6b ] = KEY_KPPLUS, /* (not named >>>>>) */
1535 [ 0x6c ] = KEY_KPMINUS, /* (not named <<<<<) */
1537 [ 0x2d ] = KEY_MUTE, /* Mute */
1538 [ 0x30 ] = KEY_VOLUMEUP, /* Volume up */
1539 [ 0x31 ] = KEY_VOLUMEDOWN, /* Volume down */
1540 [ 0x60 ] = KEY_CHANNELUP, /* Channel up */
1541 [ 0x61 ] = KEY_CHANNELDOWN, /* Channel down */
1543 [ 0x3f ] = KEY_RECORD, /* Record */
1544 [ 0x37 ] = KEY_PLAY, /* Play */
1545 [ 0x36 ] = KEY_PAUSE, /* Pause */
1546 [ 0x2b ] = KEY_STOP, /* Stop */
1547 [ 0x67 ] = KEY_FASTFORWARD, /* Foward */
1548 [ 0x66 ] = KEY_REWIND, /* Rewind */
1549 [ 0x3e ] = KEY_SEARCH, /* Auto Scan */
1550 [ 0x2e ] = KEY_CAMERA, /* Capture Video */
1551 [ 0x6d ] = KEY_MENU, /* Show/Hide Control */
1552 [ 0x2f ] = KEY_ZOOM, /* Full Screen */
1553 [ 0x34 ] = KEY_RADIO, /* FM */
1554 [ 0x65 ] = KEY_POWER, /* Computer power */
1557 EXPORT_SYMBOL_GPL(ir_codes_norwood);
1559 /* From reading the following remotes:
1560 * Zenith Universal 7 / TV Mode 807 / VCR Mode 837
1561 * Hauppauge (from NOVA-CI-s box product)
1562 * This is a "middle of the road" approach, differences are noted
1564 IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE] = {
1575 [ 0x0a ] = KEY_ENTER,
1577 [ 0x0c ] = KEY_POWER, /* RADIO on Hauppauge */
1578 [ 0x0d ] = KEY_MUTE,
1579 [ 0x0f ] = KEY_A, /* TV on Hauppauge */
1580 [ 0x10 ] = KEY_VOLUMEUP,
1581 [ 0x11 ] = KEY_VOLUMEDOWN,
1584 [ 0x1d ] = KEY_DOWN,
1585 [ 0x1e ] = KEY_OPTION, /* RESERVED on Hauppauge */
1586 [ 0x1f ] = KEY_BREAK,
1587 [ 0x20 ] = KEY_CHANNELUP,
1588 [ 0x21 ] = KEY_CHANNELDOWN,
1589 [ 0x22 ] = KEY_PREVIOUS, /* Prev. Ch on Zenith, SOURCE on Hauppauge */
1590 [ 0x24 ] = KEY_RESTART,
1592 [ 0x26 ] = KEY_CYCLEWINDOWS, /* MINIMIZE on Hauppauge */
1593 [ 0x28 ] = KEY_ENTER, /* VCR mode on Zenith */
1594 [ 0x29 ] = KEY_PAUSE,
1595 [ 0x2b ] = KEY_RIGHT,
1596 [ 0x2c ] = KEY_LEFT,
1597 [ 0x2e ] = KEY_MENU, /* FULL SCREEN on Hauppauge */
1598 [ 0x30 ] = KEY_SLOW,
1599 [ 0x31 ] = KEY_PREVIOUS, /* VCR mode on Zenith */
1600 [ 0x32 ] = KEY_REWIND,
1601 [ 0x34 ] = KEY_FASTFORWARD,
1602 [ 0x35 ] = KEY_PLAY,
1603 [ 0x36 ] = KEY_STOP,
1604 [ 0x37 ] = KEY_RECORD,
1605 [ 0x38 ] = KEY_TUNER, /* TV/VCR on Zenith */
1607 [ 0x3c ] = KEY_EXIT,
1608 [ 0x3d ] = KEY_POWER2,
1609 [ 0x3e ] = KEY_TUNER,
1612 EXPORT_SYMBOL_GPL(ir_codes_budget_ci_old);
1615 * Marc Fargas <telenieko@telenieko.com>
1616 * this is the remote control that comes with the asus p7131
1617 * which has a label saying is "Model PC-39"
1619 IR_KEYTAB_TYPE ir_codes_asus_pc39[IR_KEYTAB_SIZE] = {
1632 [ 0x3e ] = KEY_RADIO, /* radio */
1633 [ 0x03 ] = KEY_MENU, /* dvd/menu */
1634 [ 0x2a ] = KEY_VOLUMEUP,
1635 [ 0x19 ] = KEY_VOLUMEDOWN,
1637 [ 0x3b ] = KEY_DOWN,
1638 [ 0x27 ] = KEY_LEFT,
1639 [ 0x2f ] = KEY_RIGHT,
1640 [ 0x25 ] = KEY_VIDEO, /* video */
1641 [ 0x39 ] = KEY_AUDIO, /* music */
1643 [ 0x21 ] = KEY_TV, /* tv */
1644 [ 0x1d ] = KEY_EXIT, /* back */
1645 [ 0x0a ] = KEY_CHANNELUP, /* channel / program + */
1646 [ 0x1b ] = KEY_CHANNELDOWN, /* channel / program - */
1647 [ 0x1a ] = KEY_ENTER, /* enter */
1649 [ 0x06 ] = KEY_PAUSE, /* play/pause */
1650 [ 0x1e ] = KEY_PREVIOUS, /* rew */
1651 [ 0x26 ] = KEY_NEXT, /* forward */
1652 [ 0x0e ] = KEY_REWIND, /* backward << */
1653 [ 0x3a ] = KEY_FASTFORWARD, /* forward >> */
1654 [ 0x36 ] = KEY_STOP,
1655 [ 0x2e ] = KEY_RECORD, /* recording */
1656 [ 0x16 ] = KEY_POWER, /* the button that reads "close" */
1658 [ 0x11 ] = KEY_ZOOM, /* full screen */
1659 [ 0x13 ] = KEY_MACRO, /* recall */
1660 [ 0x23 ] = KEY_HOME, /* home */
1661 [ 0x05 ] = KEY_PVR, /* picture */
1662 [ 0x3d ] = KEY_MUTE, /* mute */
1663 [ 0x01 ] = KEY_DVD, /* dvd */
1666 EXPORT_SYMBOL_GPL(ir_codes_asus_pc39);
1669 /* Encore ENLTV-FM - black plastic, white front cover with white glowing buttons
1670 Juan Pablo Sormani <sorman@gmail.com> */
1671 IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE] = {
1673 /* Power button does nothing, neither in Windows app,
1674 although it sends data (used for BIOS wakeup?) */
1675 [ 0x0d ] = KEY_MUTE,
1678 [ 0x00 ] = KEY_VIDEO,
1679 [ 0x01 ] = KEY_AUDIO, /* music */
1680 [ 0x02 ] = KEY_MHP, /* picture */
1693 [ 0x09 ] = KEY_LIST, /* -/-- */
1694 [ 0x0b ] = KEY_LAST, /* recall */
1696 [ 0x14 ] = KEY_HOME, /* win start menu */
1697 [ 0x15 ] = KEY_EXIT, /* exit */
1699 [ 0x12 ] = KEY_DOWN,
1700 [ 0x0c ] = KEY_RIGHT,
1701 [ 0x17 ] = KEY_LEFT,
1703 [ 0x18 ] = KEY_ENTER, /* OK */
1706 [ 0x13 ] = KEY_D, /* desktop */
1708 [ 0x19 ] = KEY_SWITCHVIDEOMODE, /* switch */
1710 [ 0x1a ] = KEY_MENU,
1711 [ 0x1b ] = KEY_ZOOM, /* fullscreen */
1712 [ 0x44 ] = KEY_TIME, /* time shift */
1713 [ 0x40 ] = KEY_MODE, /* source */
1715 [ 0x5a ] = KEY_RECORD,
1716 [ 0x42 ] = KEY_PLAY, /* play/pause */
1717 [ 0x45 ] = KEY_STOP,
1718 [ 0x43 ] = KEY_CAMERA, /* camera icon */
1720 [ 0x48 ] = KEY_REWIND,
1721 [ 0x4a ] = KEY_FASTFORWARD,
1722 [ 0x49 ] = KEY_PREVIOUS,
1723 [ 0x4b ] = KEY_NEXT,
1725 [ 0x4c ] = KEY_FAVORITES, /* tv wall */
1726 [ 0x4d ] = KEY_SOUND, /* DVD sound */
1727 [ 0x4e ] = KEY_LANGUAGE, /* DVD lang */
1728 [ 0x4f ] = KEY_TEXT, /* DVD text */
1730 [ 0x50 ] = KEY_SLEEP, /* shutdown */
1731 [ 0x51 ] = KEY_MODE, /* stereo > main */
1732 [ 0x52 ] = KEY_SELECT, /* stereo > sap */
1733 [ 0x53 ] = KEY_PROG1, /* teletext */
1736 [ 0x59 ] = KEY_RED, /* AP1 */
1737 [ 0x41 ] = KEY_GREEN, /* AP2 */
1738 [ 0x47 ] = KEY_YELLOW, /* AP3 */
1739 [ 0x57 ] = KEY_BLUE, /* AP4 */
1744 EXPORT_SYMBOL_GPL(ir_codes_encore_enltv);
1746 /* for the Technotrend 1500 bundled remotes (grey and black): */
1747 IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE] = {
1748 [ 0x01 ] = KEY_POWER,
1749 [ 0x02 ] = KEY_SHUFFLE, /* ? double-arrow key */
1761 [ 0x0e ] = KEY_LEFT,
1763 [ 0x10 ] = KEY_RIGHT,
1764 [ 0x11 ] = KEY_DOWN,
1765 [ 0x12 ] = KEY_INFO,
1766 [ 0x13 ] = KEY_EXIT,
1768 [ 0x15 ] = KEY_GREEN,
1769 [ 0x16 ] = KEY_YELLOW,
1770 [ 0x17 ] = KEY_BLUE,
1771 [ 0x18 ] = KEY_MUTE,
1772 [ 0x19 ] = KEY_TEXT,
1773 [ 0x1a ] = KEY_MODE, /* ? TV/Radio */
1774 [ 0x21 ] = KEY_OPTION,
1776 [ 0x23 ] = KEY_CHANNELUP,
1777 [ 0x24 ] = KEY_CHANNELDOWN,
1778 [ 0x25 ] = KEY_VOLUMEUP,
1779 [ 0x26 ] = KEY_VOLUMEDOWN,
1780 [ 0x27 ] = KEY_SETUP,
1781 [ 0x3a ] = KEY_RECORD, /* these keys are only in the black remote */
1782 [ 0x3b ] = KEY_PLAY,
1783 [ 0x3c ] = KEY_STOP,
1784 [ 0x3d ] = KEY_REWIND,
1785 [ 0x3e ] = KEY_PAUSE,
1786 [ 0x3f ] = KEY_FORWARD,
1789 EXPORT_SYMBOL_GPL(ir_codes_tt_1500);
1791 /* DViCO FUSION HDTV MCE remote */
1792 IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE] = {
1807 [ 0x53 ] = KEY_DOWN,
1808 [ 0x5b ] = KEY_LEFT,
1809 [ 0x5f ] = KEY_RIGHT,
1811 [ 0x02 ] = KEY_TV, /* Labeled DTV on remote */
1814 [ 0x1e ] = KEY_FAVORITES, /* Labeled CPF on remote */
1815 [ 0x16 ] = KEY_SETUP,
1816 [ 0x46 ] = KEY_POWER2, /* TV On/Off button on remote */
1817 [ 0x0a ] = KEY_EPG, /* Labeled Guide on remote */
1819 [ 0x49 ] = KEY_BACK,
1820 [ 0x59 ] = KEY_INFO, /* Labeled MORE on remote */
1821 [ 0x4d ] = KEY_MENU, /* Labeled DVDMENU on remote */
1822 [ 0x55 ] = KEY_CYCLEWINDOWS, /* Labeled ALT-TAB on remote */
1824 [ 0x0f ] = KEY_PREVIOUSSONG, /* Labeled |<< REPLAY on remote */
1825 [ 0x12 ] = KEY_NEXTSONG, /* Labeled >>| SKIP on remote */
1826 [ 0x42 ] = KEY_ENTER, /* Labeled START with a green
1827 * MS windows logo on remote */
1829 [ 0x15 ] = KEY_VOLUMEUP,
1830 [ 0x05 ] = KEY_VOLUMEDOWN,
1831 [ 0x11 ] = KEY_CHANNELUP,
1832 [ 0x09 ] = KEY_CHANNELDOWN,
1834 [ 0x52 ] = KEY_CAMERA,
1835 [ 0x5a ] = KEY_TUNER,
1836 [ 0x19 ] = KEY_OPEN,
1838 [ 0x13 ] = KEY_MODE, /* 4:3 16:9 select */
1839 [ 0x1f ] = KEY_ZOOM,
1841 [ 0x43 ] = KEY_REWIND,
1842 [ 0x47 ] = KEY_PLAYPAUSE,
1843 [ 0x4f ] = KEY_FASTFORWARD,
1844 [ 0x57 ] = KEY_MUTE,
1845 [ 0x0d ] = KEY_STOP,
1846 [ 0x01 ] = KEY_RECORD,
1847 [ 0x4e ] = KEY_POWER,
1850 EXPORT_SYMBOL_GPL(ir_codes_fusionhdtv_mce);
1852 /* Pinnacle PCTV HD 800i mini remote */
1853 IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE] = {
1867 [0x2a] = KEY_SUBTITLE,
1870 [0x01] = KEY_ENTER, /* Pinnacle Logo */
1873 [0x03] = KEY_VOLUMEUP,
1874 [0x09] = KEY_VOLUMEDOWN,
1875 [0x06] = KEY_CHANNELUP,
1876 [0x0c] = KEY_CHANNELDOWN,
1878 [0x2d] = KEY_REWIND,
1879 [0x30] = KEY_PLAYPAUSE,
1880 [0x33] = KEY_FASTFORWARD,
1882 [0x36] = KEY_RECORD,
1883 [0x3f] = KEY_EPG, /* Labeled "?" */
1885 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_pctv_hd);
1888 * Igor Kuznetsov <igk72@ya.ru>
1889 * Andrey J. Melnikov <temnota@kmv.ru>
1891 * Keytable is used by BeholdTV 60x series, M6 series at
1892 * least, and probably other cards too.
1893 * The "ascii-art picture" below (in comments, first row
1894 * is the keycode in hex, and subsequent row(s) shows
1895 * the button labels (several variants when appropriate)
1896 * helps to descide which keycodes to assign to the buttons.
1898 IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE] = {
1903 [ 0x1c ] = KEY_TUNER, /*XXX KEY_TV KEY_RADIO */
1904 [ 0x12 ] = KEY_POWER,
1928 [ 0x0a ] = KEY_AGAIN,
1930 [ 0x17 ] = KEY_MODE,
1933 * ASPECT FULLSCREEN *
1935 [ 0x14 ] = KEY_SCREEN,
1936 [ 0x10 ] = KEY_ZOOM,
1947 [ 0x0b ] = KEY_CHANNELUP, /*XXX KEY_UP */
1948 [ 0x18 ] = KEY_VOLUMEDOWN, /*XXX KEY_LEFT */
1949 [ 0x16 ] = KEY_OK, /*XXX KEY_ENTER */
1950 [ 0x0c ] = KEY_VOLUMEUP, /*XXX KEY_RIGHT */
1951 [ 0x15 ] = KEY_CHANNELDOWN, /*XXX KEY_DOWN */
1956 [ 0x11 ] = KEY_MUTE,
1957 [ 0x0d ] = KEY_INFO,
1960 * RECORD PLAY/PAUSE STOP *
1963 *TELETEXT AUDIO SOURCE *
1966 [ 0x0f ] = KEY_RECORD,
1967 [ 0x1b ] = KEY_PLAYPAUSE,
1968 [ 0x1a ] = KEY_STOP,
1969 [ 0x0e ] = KEY_TEXT,
1970 [ 0x1f ] = KEY_RED, /*XXX KEY_AUDIO */
1971 [ 0x1e ] = KEY_YELLOW, /*XXX KEY_SOURCE */
1974 * SLEEP PREVIEW DVB *
1977 [ 0x1d ] = KEY_SLEEP,
1978 [ 0x13 ] = KEY_GREEN,
1979 [ 0x19 ] = KEY_BLUE, /*XXX KEY_SAT */
1984 [ 0x58 ] = KEY_SLOW,
1985 [ 0x5c ] = KEY_SAVE,
1989 EXPORT_SYMBOL_GPL(ir_codes_behold);
1992 * Remote control for the Genius TVGO A11MCE
1993 * Adrian Pardini <pardo.bsso@gmail.com>
1995 IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE] = {
2008 [0x54] = KEY_RECORD, /* recording */
2009 [0x06] = KEY_MUTE, /* mute */
2011 [0x40] = KEY_LAST, /* recall */
2012 [0x4c] = KEY_CHANNELUP, /* channel / program + */
2013 [0x00] = KEY_CHANNELDOWN, /* channel / program - */
2014 [0x0d] = KEY_VOLUMEUP,
2015 [0x15] = KEY_VOLUMEDOWN,
2016 [0x4d] = KEY_OK, /* also labeled as Pause */
2017 [0x1c] = KEY_ZOOM, /* full screen and Stop*/
2018 [0x02] = KEY_MODE, /* AV Source or Rewind*/
2019 [0x04] = KEY_LIST, /* -/-- */
2020 /* small arrows above numbers */
2021 [0x1a] = KEY_NEXT, /* also Fast Forward */
2022 [0x0e] = KEY_PREVIOUS, /* also Rewind */
2023 /* these are in a rather non standard layout and have
2024 an alternate name written */
2025 [0x1e] = KEY_UP, /* Video Setting */
2026 [0x0a] = KEY_DOWN, /* Video Default */
2027 [0x05] = KEY_LEFT, /* Snapshot */
2028 [0x0c] = KEY_RIGHT, /* Hide Panel */
2029 /* Four buttons without label */
2032 [0x13] = KEY_YELLOW,
2035 EXPORT_SYMBOL_GPL(ir_codes_genius_tvgo_a11mce);