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