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