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,
701 [ 0x27 ] = KEY_RECORD,
704 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_grey);
706 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = {
718 [ 0x0e ] = KEY_MODE, // Air/Cable
719 [ 0x11 ] = KEY_VIDEO, // Video
720 [ 0x15 ] = KEY_AUDIO, // Audio
721 [ 0x00 ] = KEY_POWER, // Power
722 [ 0x18 ] = KEY_TUNER, // AV Source
723 [ 0x02 ] = KEY_ZOOM, // Fullscreen
724 [ 0x1a ] = KEY_LANGUAGE, // Stereo
725 [ 0x1b ] = KEY_MUTE, // Mute
726 [ 0x14 ] = KEY_VOLUMEUP, // Volume +
727 [ 0x17 ] = KEY_VOLUMEDOWN, // Volume -
728 [ 0x12 ] = KEY_CHANNELUP, // Channel +
729 [ 0x13 ] = KEY_CHANNELDOWN, // Channel -
730 [ 0x06 ] = KEY_AGAIN, // Recall
731 [ 0x10 ] = KEY_ENTER, // Enter
734 EXPORT_SYMBOL_GPL(ir_codes_flyvideo);
736 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = {
737 [ 0x01 ] = KEY_ZOOM, // Full Screen
738 [ 0x00 ] = KEY_POWER, // Power
749 [ 0x06 ] = KEY_AGAIN, // Recall
751 [ 0x10 ] = KEY_MUTE, // Mute
752 [ 0x02 ] = KEY_RADIO, // TV/Radio
753 [ 0x1b ] = KEY_LANGUAGE, // SAP (Second Audio Program)
755 [ 0x14 ] = KEY_VOLUMEUP, // VOL+
756 [ 0x17 ] = KEY_VOLUMEDOWN, // VOL-
757 [ 0x12 ] = KEY_CHANNELUP, // CH+
758 [ 0x13 ] = KEY_CHANNELDOWN, // CH-
759 [ 0x1d ] = KEY_ENTER, // Enter
761 [ 0x1a ] = KEY_MODE, // PIP
762 [ 0x18 ] = KEY_TUNER, // Source
764 [ 0x1e ] = KEY_RECORD, // Record/Pause
765 [ 0x15 ] = KEY_ANGLE, // Swap (no label on key)
766 [ 0x1c ] = KEY_PAUSE, // Timeshift/Pause
767 [ 0x19 ] = KEY_BACK, // Rewind <<
768 [ 0x0a ] = KEY_PLAYPAUSE, // Play/Pause
769 [ 0x1f ] = KEY_FORWARD, // Forward >>
770 [ 0x16 ] = KEY_PREVIOUS, // Back |<<
771 [ 0x11 ] = KEY_STOP, // Stop
772 [ 0x0e ] = KEY_NEXT, // End >>|
775 EXPORT_SYMBOL_GPL(ir_codes_flydvb);
777 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = {
789 [ 0x0a ] = KEY_POWER,
790 [ 0x0b ] = KEY_PROG1, // app
791 [ 0x0c ] = KEY_ZOOM, // zoom/fullscreen
792 [ 0x0d ] = KEY_CHANNELUP, // channel
793 [ 0x0e ] = KEY_CHANNELDOWN, // channel-
794 [ 0x0f ] = KEY_VOLUMEUP,
795 [ 0x10 ] = KEY_VOLUMEDOWN,
796 [ 0x11 ] = KEY_TUNER, // AV
797 [ 0x12 ] = KEY_NUMLOCK, // -/--
798 [ 0x13 ] = KEY_AUDIO, // audio
803 [ 0x18 ] = KEY_RIGHT,
805 [ 0x1a ] = BTN_RIGHT,
806 [ 0x1b ] = KEY_WWW, // text
807 [ 0x1c ] = KEY_REWIND,
808 [ 0x1d ] = KEY_FORWARD,
809 [ 0x1e ] = KEY_RECORD,
811 [ 0x20 ] = KEY_PREVIOUSSONG,
812 [ 0x21 ] = KEY_NEXTSONG,
813 [ 0x22 ] = KEY_PAUSE,
817 EXPORT_SYMBOL_GPL(ir_codes_cinergy);
819 /* Alfons Geser <a.geser@cox.net>
820 * updates from Job D. R. Borges <jobdrb@ig.com.br> */
821 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
822 [ 0x12 ] = KEY_POWER,
823 [ 0x01 ] = KEY_TV, // DVR
824 [ 0x15 ] = KEY_DVD, // DVD
825 [ 0x17 ] = KEY_AUDIO, // music
826 // DVR mode / DVD mode / music mode
828 [ 0x1b ] = KEY_MUTE, // mute
829 [ 0x02 ] = KEY_LANGUAGE, // MTS/SAP / audio / autoseek
830 [ 0x1e ] = KEY_SUBTITLE, // closed captioning / subtitle / seek
831 [ 0x16 ] = KEY_ZOOM, // full screen
832 [ 0x1c ] = KEY_VIDEO, // video source / eject / delall
833 [ 0x1d ] = KEY_RESTART, // playback / angle / del
834 [ 0x2f ] = KEY_SEARCH, // scan / menu / playlist
835 [ 0x30 ] = KEY_CHANNEL, // CH surfing / bookmark / memo
837 [ 0x31 ] = KEY_HELP, // help
838 [ 0x32 ] = KEY_MODE, // num/memo
839 [ 0x33 ] = KEY_ESC, // cancel
841 [ 0x0c ] = KEY_UP, // up
842 [ 0x10 ] = KEY_DOWN, // down
843 [ 0x08 ] = KEY_LEFT, // left
844 [ 0x04 ] = KEY_RIGHT, // right
845 [ 0x03 ] = KEY_SELECT, // select
847 [ 0x1f ] = KEY_REWIND, // rewind
848 [ 0x20 ] = KEY_PLAYPAUSE, // play/pause
849 [ 0x29 ] = KEY_FORWARD, // forward
850 [ 0x14 ] = KEY_AGAIN, // repeat
851 [ 0x2b ] = KEY_RECORD, // recording
852 [ 0x2c ] = KEY_STOP, // stop
853 [ 0x2d ] = KEY_PLAY, // play
854 [ 0x2e ] = KEY_SHUFFLE, // snapshot / shuffle
867 [ 0x2a ] = KEY_VOLUMEUP,
868 [ 0x11 ] = KEY_VOLUMEDOWN,
869 [ 0x18 ] = KEY_CHANNELUP, // CH.tracking up
870 [ 0x19 ] = KEY_CHANNELDOWN, // CH.tracking down
872 [ 0x13 ] = KEY_ENTER, // enter
873 [ 0x21 ] = KEY_DOT, // . (decimal dot)
876 EXPORT_SYMBOL_GPL(ir_codes_eztv);
878 /* Alex Hermann <gaaf@gmx.net> */
879 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
891 [ 0x20 ] = KEY_TV, /* TV/FM */
892 [ 0x10 ] = KEY_CD, /* CD */
893 [ 0x30 ] = KEY_TEXT, /* TELETEXT */
894 [ 0x00 ] = KEY_POWER, /* POWER */
896 [ 0x08 ] = KEY_VIDEO, /* VIDEO */
897 [ 0x04 ] = KEY_AUDIO, /* AUDIO */
898 [ 0x0c ] = KEY_ZOOM, /* FULL SCREEN */
900 [ 0x12 ] = KEY_SUBTITLE, /* DISPLAY */
901 [ 0x32 ] = KEY_REWIND, /* LOOP */
902 [ 0x02 ] = KEY_PRINT, /* PREVIEW */
904 [ 0x2a ] = KEY_SEARCH, /* AUTOSCAN */
905 [ 0x1a ] = KEY_SLEEP, /* FREEZE */
906 [ 0x3a ] = KEY_SHUFFLE, /* SNAPSHOT */
907 [ 0x0a ] = KEY_MUTE, /* MUTE */
909 [ 0x26 ] = KEY_RECORD, /* RECORD */
910 [ 0x16 ] = KEY_PAUSE, /* PAUSE */
911 [ 0x36 ] = KEY_STOP, /* STOP */
912 [ 0x06 ] = KEY_PLAY, /* PLAY */
914 [ 0x2e ] = KEY_RED, /* RED */
915 [ 0x21 ] = KEY_GREEN, /* GREEN */
916 [ 0x0e ] = KEY_YELLOW, /* YELLOW */
917 [ 0x01 ] = KEY_BLUE, /* BLUE */
919 [ 0x1e ] = KEY_VOLUMEDOWN, /* VOLUME- */
920 [ 0x3e ] = KEY_VOLUMEUP, /* VOLUME+ */
921 [ 0x11 ] = KEY_CHANNELDOWN, /* CHANNEL/PAGE- */
922 [ 0x31 ] = KEY_CHANNELUP /* CHANNEL/PAGE+ */
925 EXPORT_SYMBOL_GPL(ir_codes_avermedia);
927 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = {
932 [ 0x23 ] = KEY_RADIO,
935 [ 0x0a ] = KEY_REWIND,
936 [ 0x08 ] = KEY_PLAYPAUSE,
937 [ 0x0f ] = KEY_FORWARD,
939 [ 0x02 ] = KEY_PREVIOUS,
946 [ 0x0d ] = KEY_RIGHT,
950 [ 0x09 ] = KEY_SETUP,
951 [ 0x05 ] = KEY_VIDEO,
952 [ 0x22 ] = KEY_CHANNEL,
954 [ 0x12 ] = KEY_VOLUMEUP,
955 [ 0x15 ] = KEY_VOLUMEDOWN,
956 [ 0x10 ] = KEY_CHANNELUP,
957 [ 0x13 ] = KEY_CHANNELDOWN,
959 [ 0x04 ] = KEY_RECORD,
972 [ 0x20 ] = KEY_LANGUAGE,
973 [ 0x21 ] = KEY_SLEEP,
976 EXPORT_SYMBOL_GPL(ir_codes_videomate_tv_pvr);
978 /* Michael Tokarev <mjt@tls.msk.ru>
979 http://www.corpit.ru/mjt/beholdTV/remote_control.jpg
980 keytable is used by MANLI MTV00[ 0x0c ] and BeholdTV 40[13] at
981 least, and probably other cards too.
982 The "ascii-art picture" below (in comments, first row
983 is the keycode in hex, and subsequent row(s) shows
984 the button labels (several variants when appropriate)
985 helps to descide which keycodes to assign to the buttons.
987 IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
993 [ 0x1c ] = KEY_RADIO, /*XXX*/
994 [ 0x12 ] = KEY_POWER,
1019 [ 0x0a ] = KEY_AGAIN, /*XXX KEY_REWIND? */
1021 [ 0x17 ] = KEY_DIGITS, /*XXX*/
1026 [ 0x14 ] = KEY_MENU,
1027 [ 0x10 ] = KEY_INFO,
1038 [ 0x0b ] = KEY_UP, /*XXX KEY_SCROLLUP? */
1039 [ 0x18 ] = KEY_LEFT, /*XXX KEY_BACK? */
1040 [ 0x16 ] = KEY_OK, /*XXX KEY_SELECT? KEY_ENTER? */
1041 [ 0x0c ] = KEY_RIGHT, /*XXX KEY_FORWARD? */
1042 [ 0x15 ] = KEY_DOWN, /*XXX KEY_SCROLLDOWN? */
1048 [ 0x11 ] = KEY_TV, /*XXX*/
1049 [ 0x0d ] = KEY_MODE, /*XXX there's no KEY_STEREO */
1052 * AUDIO Vol+ Chan+ *
1056 * SLEEP Vol- Chan- *
1058 [ 0x0f ] = KEY_AUDIO,
1059 [ 0x1b ] = KEY_VOLUMEUP,
1060 [ 0x1a ] = KEY_CHANNELUP,
1061 [ 0x0e ] = KEY_SLEEP, /*XXX maybe KEY_PAUSE */
1062 [ 0x1f ] = KEY_VOLUMEDOWN,
1063 [ 0x1e ] = KEY_CHANNELDOWN,
1068 [ 0x13 ] = KEY_MUTE,
1069 [ 0x19 ] = KEY_RECORD, /*XXX*/
1074 EXPORT_SYMBOL_GPL(ir_codes_manli);
1076 /* Mike Baikov <mike@baikov.com> */
1077 IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
1079 [ 0x21 ] = KEY_POWER,
1091 [ 0x73 ] = KEY_AGAIN, /* LOOP */
1092 [ 0x0a ] = KEY_AUDIO,
1093 [ 0x61 ] = KEY_PRINT, /* PREVIEW */
1094 [ 0x7a ] = KEY_VIDEO,
1095 [ 0x20 ] = KEY_CHANNELUP,
1096 [ 0x40 ] = KEY_CHANNELDOWN,
1097 [ 0x18 ] = KEY_VOLUMEDOWN,
1098 [ 0x50 ] = KEY_VOLUMEUP,
1099 [ 0x10 ] = KEY_MUTE,
1100 [ 0x4a ] = KEY_SEARCH,
1101 [ 0x7b ] = KEY_SHUFFLE, /* SNAPSHOT */
1102 [ 0x22 ] = KEY_RECORD,
1103 [ 0x62 ] = KEY_STOP,
1104 [ 0x78 ] = KEY_PLAY,
1105 [ 0x39 ] = KEY_REWIND,
1106 [ 0x59 ] = KEY_PAUSE,
1107 [ 0x19 ] = KEY_FORWARD,
1108 [ 0x09 ] = KEY_ZOOM,
1110 [ 0x52 ] = KEY_F21, /* LIVE TIMESHIFT */
1111 [ 0x1a ] = KEY_F22, /* MIN TIMESHIFT */
1112 [ 0x3a ] = KEY_F23, /* TIMESHIFT */
1113 [ 0x70 ] = KEY_F24, /* NORMAL TIMESHIFT */
1116 EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
1118 IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = {
1119 [ 0x03 ] = KEY_POWER,
1120 [ 0x6f ] = KEY_MUTE,
1121 [ 0x10 ] = KEY_BACKSPACE, /* Recall */
1133 [ 0x12 ] = KEY_DOT, /* 100+ */
1135 [ 0x07 ] = KEY_VOLUMEUP,
1136 [ 0x0b ] = KEY_VOLUMEDOWN,
1137 [ 0x1a ] = KEY_KPPLUS,
1138 [ 0x18 ] = KEY_KPMINUS,
1140 [ 0x1d ] = KEY_DOWN,
1141 [ 0x0f ] = KEY_CHANNELUP,
1142 [ 0x13 ] = KEY_CHANNELDOWN,
1143 [ 0x48 ] = KEY_ZOOM,
1145 [ 0x1b ] = KEY_VIDEO, /* Video source */
1146 [ 0x49 ] = KEY_LANGUAGE, /* MTS Select */
1147 [ 0x19 ] = KEY_SEARCH, /* Auto Scan */
1149 [ 0x4b ] = KEY_RECORD,
1150 [ 0x46 ] = KEY_PLAY,
1151 [ 0x45 ] = KEY_PAUSE, /* Pause */
1152 [ 0x44 ] = KEY_STOP,
1153 [ 0x40 ] = KEY_FORWARD, /* Forward ? */
1154 [ 0x42 ] = KEY_REWIND, /* Backward ? */
1158 EXPORT_SYMBOL_GPL(ir_codes_purpletv);
1160 /* Mapping for the 28 key remote control as seen at
1161 http://www.sednacomputer.com/photo/cardbus-tv.jpg
1162 Pavel Mihaylov <bin@bash.info> */
1163 IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = {
1175 [ 0x0a ] = KEY_AGAIN, /* Recall */
1176 [ 0x0b ] = KEY_CHANNELUP,
1177 [ 0x0c ] = KEY_VOLUMEUP,
1178 [ 0x0d ] = KEY_MODE, /* Stereo */
1179 [ 0x0e ] = KEY_STOP,
1180 [ 0x0f ] = KEY_PREVIOUSSONG,
1181 [ 0x10 ] = KEY_ZOOM,
1182 [ 0x11 ] = KEY_TUNER, /* Source */
1183 [ 0x12 ] = KEY_POWER,
1184 [ 0x13 ] = KEY_MUTE,
1185 [ 0x15 ] = KEY_CHANNELDOWN,
1186 [ 0x18 ] = KEY_VOLUMEDOWN,
1187 [ 0x19 ] = KEY_SHUFFLE, /* Snapshot */
1188 [ 0x1a ] = KEY_NEXTSONG,
1189 [ 0x1b ] = KEY_TEXT, /* Time Shift */
1190 [ 0x1c ] = KEY_RADIO, /* FM Radio */
1191 [ 0x1d ] = KEY_RECORD,
1192 [ 0x1e ] = KEY_PAUSE,
1195 EXPORT_SYMBOL_GPL(ir_codes_pctv_sedna);
1197 /* Mark Phalan <phalanm@o2.ie> */
1198 IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
1210 [ 0x12 ] = KEY_POWER,
1211 [ 0x10 ] = KEY_MUTE,
1212 [ 0x1f ] = KEY_VOLUMEDOWN,
1213 [ 0x1b ] = KEY_VOLUMEUP,
1214 [ 0x1a ] = KEY_CHANNELUP,
1215 [ 0x1e ] = KEY_CHANNELDOWN,
1216 [ 0x0e ] = KEY_PAGEUP,
1217 [ 0x1d ] = KEY_PAGEDOWN,
1218 [ 0x13 ] = KEY_SOUND,
1220 [ 0x18 ] = KEY_KPPLUSMINUS, /* CH +/- */
1221 [ 0x16 ] = KEY_SUBTITLE, /* CC */
1222 [ 0x0d ] = KEY_TEXT, /* TTX */
1223 [ 0x0b ] = KEY_TV, /* AIR/CBL */
1224 [ 0x11 ] = KEY_PC, /* PC/TV */
1225 [ 0x17 ] = KEY_OK, /* CH RTN */
1226 [ 0x19 ] = KEY_MODE, /* FUNC */
1227 [ 0x0c ] = KEY_SEARCH, /* AUTOSCAN */
1229 /* Not sure what to do with these ones! */
1230 [ 0x0f ] = KEY_SELECT, /* SOURCE */
1231 [ 0x0a ] = KEY_KPPLUS, /* +100 */
1232 [ 0x14 ] = KEY_EQUAL, /* SYNC */
1233 [ 0x1c ] = KEY_MEDIA, /* PC/TV */
1236 EXPORT_SYMBOL_GPL(ir_codes_pv951);
1238 /* generic RC5 keytable */
1239 /* see http://users.pandora.be/nenya/electronics/rc5/codes00.htm */
1240 /* used by old (black) Hauppauge remotes */
1241 IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE] = {
1254 [ 0x0b ] = KEY_CHANNEL, /* channel / program (japan: 11) */
1255 [ 0x0c ] = KEY_POWER, /* standby */
1256 [ 0x0d ] = KEY_MUTE, /* mute / demute */
1257 [ 0x0f ] = KEY_TV, /* display */
1258 [ 0x10 ] = KEY_VOLUMEUP,
1259 [ 0x11 ] = KEY_VOLUMEDOWN,
1260 [ 0x12 ] = KEY_BRIGHTNESSUP,
1261 [ 0x13 ] = KEY_BRIGHTNESSDOWN,
1262 [ 0x1e ] = KEY_SEARCH, /* search + */
1263 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1264 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1265 [ 0x22 ] = KEY_CHANNEL, /* alt / channel */
1266 [ 0x23 ] = KEY_LANGUAGE, /* 1st / 2nd language */
1267 [ 0x26 ] = KEY_SLEEP, /* sleeptimer */
1268 [ 0x2e ] = KEY_MENU, /* 2nd controls (USA: menu) */
1269 [ 0x30 ] = KEY_PAUSE,
1270 [ 0x32 ] = KEY_REWIND,
1271 [ 0x33 ] = KEY_GOTO,
1272 [ 0x35 ] = KEY_PLAY,
1273 [ 0x36 ] = KEY_STOP,
1274 [ 0x37 ] = KEY_RECORD, /* recording */
1275 [ 0x3c ] = KEY_TEXT, /* teletext submode (Japan: 12) */
1276 [ 0x3d ] = KEY_SUSPEND, /* system standby */
1280 EXPORT_SYMBOL_GPL(ir_codes_rc5_tv);
1282 /* Table for Leadtek Winfast Remote Controls - used by both bttv and cx88 */
1283 IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
1296 [ 0x00 ] = KEY_POWER,
1297 [ 0x1b ] = KEY_AUDIO, /* Audio Source */
1298 [ 0x02 ] = KEY_TUNER, /* TV/FM, not on Y0400052 */
1299 [ 0x1e ] = KEY_VIDEO, /* Video Source */
1300 [ 0x16 ] = KEY_INFO, /* Display information */
1301 [ 0x04 ] = KEY_VOLUMEUP,
1302 [ 0x08 ] = KEY_VOLUMEDOWN,
1303 [ 0x0c ] = KEY_CHANNELUP,
1304 [ 0x10 ] = KEY_CHANNELDOWN,
1305 [ 0x03 ] = KEY_ZOOM, /* fullscreen */
1306 [ 0x1f ] = KEY_TEXT, /* closed caption/teletext */
1307 [ 0x20 ] = KEY_SLEEP,
1308 [ 0x29 ] = KEY_CLEAR, /* boss key */
1309 [ 0x14 ] = KEY_MUTE,
1311 [ 0x2c ] = KEY_GREEN,
1312 [ 0x2d ] = KEY_YELLOW,
1313 [ 0x2e ] = KEY_BLUE,
1314 [ 0x18 ] = KEY_KPPLUS, /* fine tune + , not on Y040052 */
1315 [ 0x19 ] = KEY_KPMINUS, /* fine tune - , not on Y040052 */
1316 [ 0x2a ] = KEY_MEDIA, /* PIP (Picture in picture */
1318 [ 0x13 ] = KEY_ENTER,
1319 [ 0x11 ] = KEY_LAST, /* Recall (last channel */
1320 [ 0x22 ] = KEY_PREVIOUS,
1321 [ 0x23 ] = KEY_PLAYPAUSE,
1322 [ 0x24 ] = KEY_NEXT,
1323 [ 0x25 ] = KEY_ARCHIVE, /* Time Shifting */
1324 [ 0x26 ] = KEY_STOP,
1325 [ 0x27 ] = KEY_RECORD,
1326 [ 0x28 ] = KEY_SAVE, /* Screenshot */
1327 [ 0x2f ] = KEY_MENU,
1328 [ 0x30 ] = KEY_CANCEL,
1329 [ 0x31 ] = KEY_CHANNEL, /* Channel Surf */
1330 [ 0x32 ] = KEY_SUBTITLE,
1331 [ 0x33 ] = KEY_LANGUAGE,
1332 [ 0x34 ] = KEY_REWIND,
1333 [ 0x35 ] = KEY_FASTFORWARD,
1335 [ 0x37 ] = KEY_RADIO, /* FM */
1339 EXPORT_SYMBOL_GPL(ir_codes_winfast);
1341 IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = {
1342 [ 0x59 ] = KEY_MUTE,
1343 [ 0x4a ] = KEY_POWER,
1345 [ 0x18 ] = KEY_TEXT,
1347 [ 0x3d ] = KEY_PRINT,
1350 [ 0x04 ] = KEY_GREEN,
1351 [ 0x11 ] = KEY_YELLOW,
1352 [ 0x00 ] = KEY_BLUE,
1354 [ 0x2d ] = KEY_VOLUMEUP,
1355 [ 0x1e ] = KEY_VOLUMEDOWN,
1357 [ 0x49 ] = KEY_MENU,
1359 [ 0x16 ] = KEY_CHANNELUP,
1360 [ 0x17 ] = KEY_CHANNELDOWN,
1363 [ 0x21 ] = KEY_DOWN,
1364 [ 0x22 ] = KEY_LEFT,
1365 [ 0x23 ] = KEY_RIGHT,
1366 [ 0x0d ] = KEY_SELECT,
1370 [ 0x08 ] = KEY_BACK,
1371 [ 0x07 ] = KEY_REFRESH,
1373 [ 0x2f ] = KEY_ZOOM,
1374 [ 0x29 ] = KEY_RECORD,
1376 [ 0x4b ] = KEY_PAUSE,
1377 [ 0x4d ] = KEY_REWIND,
1378 [ 0x2e ] = KEY_PLAY,
1379 [ 0x4e ] = KEY_FORWARD,
1380 [ 0x53 ] = KEY_PREVIOUS,
1381 [ 0x4c ] = KEY_STOP,
1382 [ 0x54 ] = KEY_NEXT,
1395 [ 0x74 ] = KEY_CHANNEL,
1396 [ 0x0a ] = KEY_BACKSPACE,
1399 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_color);
1401 /* Hauppauge: the newer, gray remotes (seems there are multiple
1402 * slightly different versions), shipped with cx88+ivtv cards.
1403 * almost rc5 coding, but some non-standard keys */
1404 IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = {
1417 [ 0x0a ] = KEY_TEXT, /* keypad asterisk as well */
1418 [ 0x0b ] = KEY_RED, /* red button */
1419 [ 0x0c ] = KEY_RADIO,
1420 [ 0x0d ] = KEY_MENU,
1421 [ 0x0e ] = KEY_SUBTITLE, /* also the # key */
1422 [ 0x0f ] = KEY_MUTE,
1423 [ 0x10 ] = KEY_VOLUMEUP,
1424 [ 0x11 ] = KEY_VOLUMEDOWN,
1425 [ 0x12 ] = KEY_PREVIOUS, /* previous channel */
1427 [ 0x15 ] = KEY_DOWN,
1428 [ 0x16 ] = KEY_LEFT,
1429 [ 0x17 ] = KEY_RIGHT,
1430 [ 0x18 ] = KEY_VIDEO, /* Videos */
1431 [ 0x19 ] = KEY_AUDIO, /* Music */
1432 /* 0x1a: Pictures - presume this means
1433 "Multimedia Home Platform" -
1434 no "PICTURES" key in input.h
1438 [ 0x1b ] = KEY_EPG, /* Guide */
1440 [ 0x1e ] = KEY_NEXTSONG, /* skip >| */
1441 [ 0x1f ] = KEY_EXIT, /* back/exit */
1442 [ 0x20 ] = KEY_CHANNELUP, /* channel / program + */
1443 [ 0x21 ] = KEY_CHANNELDOWN, /* channel / program - */
1444 [ 0x22 ] = KEY_CHANNEL, /* source (old black remote) */
1445 [ 0x24 ] = KEY_PREVIOUSSONG, /* replay |< */
1446 [ 0x25 ] = KEY_ENTER, /* OK */
1447 [ 0x26 ] = KEY_SLEEP, /* minimize (old black remote) */
1448 [ 0x29 ] = KEY_BLUE, /* blue key */
1449 [ 0x2e ] = KEY_GREEN, /* green button */
1450 [ 0x30 ] = KEY_PAUSE, /* pause */
1451 [ 0x32 ] = KEY_REWIND, /* backward << */
1452 [ 0x34 ] = KEY_FASTFORWARD, /* forward >> */
1453 [ 0x35 ] = KEY_PLAY,
1454 [ 0x36 ] = KEY_STOP,
1455 [ 0x37 ] = KEY_RECORD, /* recording */
1456 [ 0x38 ] = KEY_YELLOW, /* yellow key */
1457 [ 0x3b ] = KEY_SELECT, /* top right button */
1458 [ 0x3c ] = KEY_ZOOM, /* full */
1459 [ 0x3d ] = KEY_POWER, /* system power (green button) */
1462 EXPORT_SYMBOL_GPL(ir_codes_hauppauge_new);
1464 IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = {
1465 [ 0x1d ] = KEY_SWITCHVIDEOMODE, /* switch inputs */
1466 [ 0x2a ] = KEY_FRONT,
1478 [ 0x22 ] = KEY_NUMLOCK, /* -/-- */
1479 [ 0x20 ] = KEY_REFRESH,
1481 [ 0x03 ] = KEY_BRIGHTNESSDOWN,
1482 [ 0x28 ] = KEY_AUDIO,
1484 [ 0x3f ] = KEY_LEFT,
1485 [ 0x2e ] = KEY_MUTE,
1486 [ 0x3b ] = KEY_RIGHT,
1487 [ 0x00 ] = KEY_DOWN,
1488 [ 0x07 ] = KEY_BRIGHTNESSUP,
1489 [ 0x2c ] = KEY_TEXT,
1491 [ 0x37 ] = KEY_RECORD,
1492 [ 0x17 ] = KEY_PLAY,
1493 [ 0x13 ] = KEY_PAUSE,
1494 [ 0x26 ] = KEY_STOP,
1495 [ 0x18 ] = KEY_FASTFORWARD,
1496 [ 0x14 ] = KEY_REWIND,
1497 [ 0x33 ] = KEY_ZOOM,
1498 [ 0x32 ] = KEY_KEYBOARD,
1499 [ 0x30 ] = KEY_GOTO, /* Pointing arrow */
1500 [ 0x36 ] = KEY_MACRO, /* Maximize/Minimize (yellow) */
1501 [ 0x0b ] = KEY_RADIO,
1502 [ 0x10 ] = KEY_POWER,
1506 EXPORT_SYMBOL_GPL(ir_codes_npgtech);
1508 /* Norwood Micro (non-Pro) TV Tuner
1509 By Peter Naulls <peter@chocky.org>
1510 Key comments are the functions given in the manual */
1511 IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE] = {
1524 [ 0x78 ] = KEY_TUNER, /* Video Source */
1525 [ 0x2c ] = KEY_EXIT, /* Open/Close software */
1526 [ 0x2a ] = KEY_SELECT, /* 2 Digit Select */
1527 [ 0x69 ] = KEY_AGAIN, /* Recall */
1529 [ 0x32 ] = KEY_BRIGHTNESSUP, /* Brightness increase */
1530 [ 0x33 ] = KEY_BRIGHTNESSDOWN, /* Brightness decrease */
1531 [ 0x6b ] = KEY_KPPLUS, /* (not named >>>>>) */
1532 [ 0x6c ] = KEY_KPMINUS, /* (not named <<<<<) */
1534 [ 0x2d ] = KEY_MUTE, /* Mute */
1535 [ 0x30 ] = KEY_VOLUMEUP, /* Volume up */
1536 [ 0x31 ] = KEY_VOLUMEDOWN, /* Volume down */
1537 [ 0x60 ] = KEY_CHANNELUP, /* Channel up */
1538 [ 0x61 ] = KEY_CHANNELDOWN, /* Channel down */
1540 [ 0x3f ] = KEY_RECORD, /* Record */
1541 [ 0x37 ] = KEY_PLAY, /* Play */
1542 [ 0x36 ] = KEY_PAUSE, /* Pause */
1543 [ 0x2b ] = KEY_STOP, /* Stop */
1544 [ 0x67 ] = KEY_FASTFORWARD, /* Foward */
1545 [ 0x66 ] = KEY_REWIND, /* Rewind */
1546 [ 0x3e ] = KEY_SEARCH, /* Auto Scan */
1547 [ 0x2e ] = KEY_CAMERA, /* Capture Video */
1548 [ 0x6d ] = KEY_MENU, /* Show/Hide Control */
1549 [ 0x2f ] = KEY_ZOOM, /* Full Screen */
1550 [ 0x34 ] = KEY_RADIO, /* FM */
1551 [ 0x65 ] = KEY_POWER, /* Computer power */
1554 EXPORT_SYMBOL_GPL(ir_codes_norwood);
1556 /* From reading the following remotes:
1557 * Zenith Universal 7 / TV Mode 807 / VCR Mode 837
1558 * Hauppauge (from NOVA-CI-s box product)
1559 * This is a "middle of the road" approach, differences are noted
1561 IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE] = {
1572 [ 0x0a ] = KEY_ENTER,
1574 [ 0x0c ] = KEY_POWER, /* RADIO on Hauppauge */
1575 [ 0x0d ] = KEY_MUTE,
1576 [ 0x0f ] = KEY_A, /* TV on Hauppauge */
1577 [ 0x10 ] = KEY_VOLUMEUP,
1578 [ 0x11 ] = KEY_VOLUMEDOWN,
1581 [ 0x1d ] = KEY_DOWN,
1582 [ 0x1e ] = KEY_OPTION, /* RESERVED on Hauppauge */
1583 [ 0x1f ] = KEY_BREAK,
1584 [ 0x20 ] = KEY_CHANNELUP,
1585 [ 0x21 ] = KEY_CHANNELDOWN,
1586 [ 0x22 ] = KEY_PREVIOUS, /* Prev. Ch on Zenith, SOURCE on Hauppauge */
1587 [ 0x24 ] = KEY_RESTART,
1589 [ 0x26 ] = KEY_CYCLEWINDOWS, /* MINIMIZE on Hauppauge */
1590 [ 0x28 ] = KEY_ENTER, /* VCR mode on Zenith */
1591 [ 0x29 ] = KEY_PAUSE,
1592 [ 0x2b ] = KEY_RIGHT,
1593 [ 0x2c ] = KEY_LEFT,
1594 [ 0x2e ] = KEY_MENU, /* FULL SCREEN on Hauppauge */
1595 [ 0x30 ] = KEY_SLOW,
1596 [ 0x31 ] = KEY_PREVIOUS, /* VCR mode on Zenith */
1597 [ 0x32 ] = KEY_REWIND,
1598 [ 0x34 ] = KEY_FASTFORWARD,
1599 [ 0x35 ] = KEY_PLAY,
1600 [ 0x36 ] = KEY_STOP,
1601 [ 0x37 ] = KEY_RECORD,
1602 [ 0x38 ] = KEY_TUNER, /* TV/VCR on Zenith */
1604 [ 0x3c ] = KEY_EXIT,
1605 [ 0x3d ] = KEY_POWER2,
1606 [ 0x3e ] = KEY_TUNER,
1609 EXPORT_SYMBOL_GPL(ir_codes_budget_ci_old);