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