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