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