Merge branch 'master' into upstream-fixes
[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 #include <linux/moduleparam.h>
24
25 #include <linux/input.h>
26 #include <media/ir-common.h>
27
28 /* empty keytable, can be used as placeholder for not-yet created keytables */
29 IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE] = {
30         [ 0x2a ] = KEY_COFFEE,
31 };
32
33 EXPORT_SYMBOL_GPL(ir_codes_empty);
34
35 /* Michal Majchrowicz <mmajchrowicz@gmail.com> */
36 IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE] = {
37         /* numeric */
38         [ 0x00 ] = KEY_0,
39         [ 0x01 ] = KEY_1,
40         [ 0x02 ] = KEY_2,
41         [ 0x03 ] = KEY_3,
42         [ 0x04 ] = KEY_4,
43         [ 0x05 ] = KEY_5,
44         [ 0x06 ] = KEY_6,
45         [ 0x07 ] = KEY_7,
46         [ 0x08 ] = KEY_8,
47         [ 0x09 ] = KEY_9,
48
49         [ 0x5c ] = KEY_POWER,     /* power       */
50         [ 0x20 ] = KEY_F,         /* full screen */
51         [ 0x0f ] = KEY_BACKSPACE, /* recall      */
52         [ 0x1b ] = KEY_ENTER,     /* mute        */
53         [ 0x41 ] = KEY_RECORD,    /* record      */
54         [ 0x43 ] = KEY_STOP,      /* stop        */
55         [ 0x16 ] = KEY_S,
56         [ 0x1a ] = KEY_Q,         /* off         */
57         [ 0x2e ] = KEY_RED,
58         [ 0x1f ] = KEY_DOWN,      /* channel -   */
59         [ 0x1c ] = KEY_UP,        /* channel +   */
60         [ 0x10 ] = KEY_LEFT,      /* volume -    */
61         [ 0x1e ] = KEY_RIGHT,     /* volume +    */
62         [ 0x14 ] = KEY_F1,
63 };
64
65 EXPORT_SYMBOL_GPL(ir_codes_proteus_2309);
66 /* Matt Jesson <dvb@jesson.eclipse.co.uk */
67 IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
68         [ 0x28 ] = KEY_0,         //'0' / 'enter'
69         [ 0x22 ] = KEY_1,         //'1'
70         [ 0x12 ] = KEY_2,         //'2' / 'up arrow'
71         [ 0x32 ] = KEY_3,         //'3'
72         [ 0x24 ] = KEY_4,         //'4' / 'left arrow'
73         [ 0x14 ] = KEY_5,         //'5'
74         [ 0x34 ] = KEY_6,         //'6' / 'right arrow'
75         [ 0x26 ] = KEY_7,         //'7'
76         [ 0x16 ] = KEY_8,         //'8' / 'down arrow'
77         [ 0x36 ] = KEY_9,         //'9'
78
79         [ 0x20 ] = KEY_LIST,        // 'source'
80         [ 0x10 ] = KEY_TEXT,        // 'teletext'
81         [ 0x00 ] = KEY_POWER,       // 'power'
82         [ 0x04 ] = KEY_AUDIO,       // 'audio'
83         [ 0x06 ] = KEY_ZOOM,        // 'full screen'
84         [ 0x18 ] = KEY_VIDEO,       // 'display'
85         [ 0x38 ] = KEY_SEARCH,      // 'loop'
86         [ 0x08 ] = KEY_INFO,        // 'preview'
87         [ 0x2a ] = KEY_REWIND,      // 'backward <<'
88         [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'
89         [ 0x3a ] = KEY_RECORD,      // 'capture'
90         [ 0x0a ] = KEY_MUTE,        // 'mute'
91         [ 0x2c ] = KEY_RECORD,      // 'record'
92         [ 0x1c ] = KEY_PAUSE,       // 'pause'
93         [ 0x3c ] = KEY_STOP,        // 'stop'
94         [ 0x0c ] = KEY_PLAY,        // 'play'
95         [ 0x2e ] = KEY_RED,         // 'red'
96         [ 0x01 ] = KEY_BLUE,        // 'blue' / 'cancel'
97         [ 0x0e ] = KEY_YELLOW,      // 'yellow' / 'ok'
98         [ 0x21 ] = KEY_GREEN,       // 'green'
99         [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'
100         [ 0x31 ] = KEY_CHANNELUP,   // 'channel +'
101         [ 0x1e ] = KEY_VOLUMEDOWN,  // 'volume -'
102         [ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'
103 };
104
105 EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);
106
107 /* Attila Kondoros <attila.kondoros@chello.hu> */
108 IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {
109
110         [ 0x01 ] = KEY_1,
111         [ 0x02 ] = KEY_2,
112         [ 0x03 ] = KEY_3,
113         [ 0x04 ] = KEY_4,
114         [ 0x05 ] = KEY_5,
115         [ 0x06 ] = KEY_6,
116         [ 0x07 ] = KEY_7,
117         [ 0x08 ] = KEY_8,
118         [ 0x09 ] = KEY_9,
119         [ 0x00 ] = KEY_0,
120         [ 0x17 ] = KEY_LAST,        // +100
121         [ 0x0a ] = KEY_LIST,        // recall
122
123
124         [ 0x1c ] = KEY_TUNER,       // TV/FM
125         [ 0x15 ] = KEY_SEARCH,      // scan
126         [ 0x12 ] = KEY_POWER,       // power
127         [ 0x1f ] = KEY_VOLUMEDOWN,  // vol up
128         [ 0x1b ] = KEY_VOLUMEUP,    // vol down
129         [ 0x1e ] = KEY_CHANNELDOWN, // chn up
130         [ 0x1a ] = KEY_CHANNELUP,   // chn down
131
132         [ 0x11 ] = KEY_VIDEO,       // video
133         [ 0x0f ] = KEY_ZOOM,        // full screen
134         [ 0x13 ] = KEY_MUTE,        // mute/unmute
135         [ 0x10 ] = KEY_TEXT,        // min
136
137         [ 0x0d ] = KEY_STOP,        // freeze
138         [ 0x0e ] = KEY_RECORD,      // record
139         [ 0x1d ] = KEY_PLAYPAUSE,   // stop
140         [ 0x19 ] = KEY_PLAY,        // play
141
142         [ 0x16 ] = KEY_GOTO,        // osd
143         [ 0x14 ] = KEY_REFRESH,     // default
144         [ 0x0c ] = KEY_KPPLUS,      // fine tune >>>>
145         [ 0x18 ] = KEY_KPMINUS      // fine tune <<<<
146 };
147
148 EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp);
149
150 /* ---------------------------------------------------------------------- */
151
152 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
153
154         [ 0x1e ] = KEY_POWER,       // power
155         [ 0x07 ] = KEY_MEDIA,       // source
156         [ 0x1c ] = KEY_SEARCH,      // scan
157
158 /* FIXME: duplicate keycodes?
159  *
160  * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
161  * The GPIO values are
162  * 6397fb for both "Scan <" and "CH -",
163  * 639ffb for "Scan >" and "CH+",
164  * 6384fb for "Tune <" and "<<<",
165  * 638cfb for "Tune >" and ">>>", regardless of the mask.
166  *
167  *      [ 0x17 ] = KEY_BACK,        // fm scan <<
168  *      [ 0x1f ] = KEY_FORWARD,     // fm scan >>
169  *
170  *      [ 0x04 ] = KEY_LEFT,        // fm tuning <
171  *      [ 0x0c ] = KEY_RIGHT,       // fm tuning >
172  *
173  * For now, these four keys are disabled. Pressing them will generate
174  * the CH+/CH-/<<</>>> events
175  */
176
177         [ 0x03 ] = KEY_TUNER,       // TV/FM
178
179         [ 0x00 ] = KEY_RECORD,
180         [ 0x08 ] = KEY_STOP,
181         [ 0x11 ] = KEY_PLAY,
182
183         [ 0x1a ] = KEY_PLAYPAUSE,   // freeze
184         [ 0x19 ] = KEY_ZOOM,        // zoom
185         [ 0x0f ] = KEY_TEXT,        // min
186
187         [ 0x01 ] = KEY_1,
188         [ 0x0b ] = KEY_2,
189         [ 0x1b ] = KEY_3,
190         [ 0x05 ] = KEY_4,
191         [ 0x09 ] = KEY_5,
192         [ 0x15 ] = KEY_6,
193         [ 0x06 ] = KEY_7,
194         [ 0x0a ] = KEY_8,
195         [ 0x12 ] = KEY_9,
196         [ 0x02 ] = KEY_0,
197         [ 0x10 ] = KEY_LAST,        // +100
198         [ 0x13 ] = KEY_LIST,        // recall
199
200         [ 0x1f ] = KEY_CHANNELUP,   // chn down
201         [ 0x17 ] = KEY_CHANNELDOWN, // chn up
202         [ 0x16 ] = KEY_VOLUMEUP,    // vol down
203         [ 0x14 ] = KEY_VOLUMEDOWN,  // vol up
204
205         [ 0x04 ] = KEY_KPMINUS,     // <<<
206         [ 0x0e ] = KEY_SETUP,       // function
207         [ 0x0c ] = KEY_KPPLUS,      // >>>
208
209         [ 0x0d ] = KEY_GOTO,        // mts
210         [ 0x1d ] = KEY_REFRESH,     // reset
211         [ 0x18 ] = KEY_MUTE         // mute/unmute
212 };
213
214 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
215
216 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
217         [ 0x00 ] = KEY_0,
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         [ 0x0a ] = KEY_TV,
228         [ 0x0b ] = KEY_AUX,
229         [ 0x0c ] = KEY_DVD,
230         [ 0x0d ] = KEY_POWER,
231         [ 0x0e ] = KEY_MHP,     /* labelled 'Picture' */
232         [ 0x0f ] = KEY_AUDIO,
233         [ 0x10 ] = KEY_INFO,
234         [ 0x11 ] = KEY_F13,     /* 16:9 */
235         [ 0x12 ] = KEY_F14,     /* 14:9 */
236         [ 0x13 ] = KEY_EPG,
237         [ 0x14 ] = KEY_EXIT,
238         [ 0x15 ] = KEY_MENU,
239         [ 0x16 ] = KEY_UP,
240         [ 0x17 ] = KEY_DOWN,
241         [ 0x18 ] = KEY_LEFT,
242         [ 0x19 ] = KEY_RIGHT,
243         [ 0x1a ] = KEY_ENTER,
244         [ 0x1b ] = KEY_CHANNELUP,
245         [ 0x1c ] = KEY_CHANNELDOWN,
246         [ 0x1d ] = KEY_VOLUMEUP,
247         [ 0x1e ] = KEY_VOLUMEDOWN,
248         [ 0x1f ] = KEY_RED,
249         [ 0x20 ] = KEY_GREEN,
250         [ 0x21 ] = KEY_YELLOW,
251         [ 0x22 ] = KEY_BLUE,
252         [ 0x23 ] = KEY_SUBTITLE,
253         [ 0x24 ] = KEY_F15,     /* AD */
254         [ 0x25 ] = KEY_TEXT,
255         [ 0x26 ] = KEY_MUTE,
256         [ 0x27 ] = KEY_REWIND,
257         [ 0x28 ] = KEY_STOP,
258         [ 0x29 ] = KEY_PLAY,
259         [ 0x2a ] = KEY_FASTFORWARD,
260         [ 0x2b ] = KEY_F16,     /* chapter */
261         [ 0x2c ] = KEY_PAUSE,
262         [ 0x2d ] = KEY_PLAY,
263         [ 0x2e ] = KEY_RECORD,
264         [ 0x2f ] = KEY_F17,     /* picture in picture */
265         [ 0x30 ] = KEY_KPPLUS,  /* zoom in */
266         [ 0x31 ] = KEY_KPMINUS, /* zoom out */
267         [ 0x32 ] = KEY_F18,     /* capture */
268         [ 0x33 ] = KEY_F19,     /* web */
269         [ 0x34 ] = KEY_EMAIL,
270         [ 0x35 ] = KEY_PHONE,
271         [ 0x36 ] = KEY_PC
272 };
273
274 EXPORT_SYMBOL_GPL(ir_codes_nebula);
275
276 /* DigitalNow DNTV Live DVB-T Remote */
277 IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = {
278         [ 0x00 ] = KEY_ESC,             /* 'go up a level?' */
279         /* Keys 0 to 9 */
280         [ 0x0a ] = KEY_0,
281         [ 0x01 ] = KEY_1,
282         [ 0x02 ] = KEY_2,
283         [ 0x03 ] = KEY_3,
284         [ 0x04 ] = KEY_4,
285         [ 0x05 ] = KEY_5,
286         [ 0x06 ] = KEY_6,
287         [ 0x07 ] = KEY_7,
288         [ 0x08 ] = KEY_8,
289         [ 0x09 ] = KEY_9,
290
291         [ 0x0b ] = KEY_TUNER,           /* tv/fm */
292         [ 0x0c ] = KEY_SEARCH,          /* scan */
293         [ 0x0d ] = KEY_STOP,
294         [ 0x0e ] = KEY_PAUSE,
295         [ 0x0f ] = KEY_LIST,            /* source */
296
297         [ 0x10 ] = KEY_MUTE,
298         [ 0x11 ] = KEY_REWIND,          /* backward << */
299         [ 0x12 ] = KEY_POWER,
300         [ 0x13 ] = KEY_S,                       /* snap */
301         [ 0x14 ] = KEY_AUDIO,           /* stereo */
302         [ 0x15 ] = KEY_CLEAR,           /* reset */
303         [ 0x16 ] = KEY_PLAY,
304         [ 0x17 ] = KEY_ENTER,
305         [ 0x18 ] = KEY_ZOOM,            /* full screen */
306         [ 0x19 ] = KEY_FASTFORWARD,     /* forward >> */
307         [ 0x1a ] = KEY_CHANNELUP,
308         [ 0x1b ] = KEY_VOLUMEUP,
309         [ 0x1c ] = KEY_INFO,            /* preview */
310         [ 0x1d ] = KEY_RECORD,          /* record */
311         [ 0x1e ] = KEY_CHANNELDOWN,
312         [ 0x1f ] = KEY_VOLUMEDOWN,
313 };
314
315 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t);
316
317 /* ---------------------------------------------------------------------- */
318
319 /* IO-DATA BCTV7E Remote */
320 IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = {
321         [ 0x40 ] = KEY_TV,
322         [ 0x20 ] = KEY_RADIO,           /* FM */
323         [ 0x60 ] = KEY_EPG,
324         [ 0x00 ] = KEY_POWER,
325
326         /* Keys 0 to 9 */
327         [ 0x44 ] = KEY_0,               /* 10 */
328         [ 0x50 ] = KEY_1,
329         [ 0x30 ] = KEY_2,
330         [ 0x70 ] = KEY_3,
331         [ 0x48 ] = KEY_4,
332         [ 0x28 ] = KEY_5,
333         [ 0x68 ] = KEY_6,
334         [ 0x58 ] = KEY_7,
335         [ 0x38 ] = KEY_8,
336         [ 0x78 ] = KEY_9,
337
338         [ 0x10 ] = KEY_L,                       /* Live */
339         [ 0x08 ] = KEY_T,                       /* Time Shift */
340
341         [ 0x18 ] = KEY_PLAYPAUSE,               /* Play */
342
343         [ 0x24 ] = KEY_ENTER,           /* 11 */
344         [ 0x64 ] = KEY_ESC,             /* 12 */
345         [ 0x04 ] = KEY_M,                       /* Multi */
346
347         [ 0x54 ] = KEY_VIDEO,
348         [ 0x34 ] = KEY_CHANNELUP,
349         [ 0x74 ] = KEY_VOLUMEUP,
350         [ 0x14 ] = KEY_MUTE,
351
352         [ 0x4c ] = KEY_S,                       /* SVIDEO */
353         [ 0x2c ] = KEY_CHANNELDOWN,
354         [ 0x6c ] = KEY_VOLUMEDOWN,
355         [ 0x0c ] = KEY_ZOOM,
356
357         [ 0x5c ] = KEY_PAUSE,
358         [ 0x3c ] = KEY_C,                       /* || (red) */
359         [ 0x7c ] = KEY_RECORD,          /* recording */
360         [ 0x1c ] = KEY_STOP,
361
362         [ 0x41 ] = KEY_REWIND,          /* backward << */
363         [ 0x21 ] = KEY_PLAY,
364         [ 0x61 ] = KEY_FASTFORWARD,     /* forward >> */
365         [ 0x01 ] = KEY_NEXT,            /* skip >| */
366 };
367
368 EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e);
369
370 /* ---------------------------------------------------------------------- */
371
372 /* ADS Tech Instant TV DVB-T PCI Remote */
373 IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = {
374         /* Keys 0 to 9 */
375         [ 0x4d ] = KEY_0,
376         [ 0x57 ] = KEY_1,
377         [ 0x4f ] = KEY_2,
378         [ 0x53 ] = KEY_3,
379         [ 0x56 ] = KEY_4,
380         [ 0x4e ] = KEY_5,
381         [ 0x5e ] = KEY_6,
382         [ 0x54 ] = KEY_7,
383         [ 0x4c ] = KEY_8,
384         [ 0x5c ] = KEY_9,
385
386         [ 0x5b ] = KEY_POWER,
387         [ 0x5f ] = KEY_MUTE,
388         [ 0x55 ] = KEY_GOTO,
389         [ 0x5d ] = KEY_SEARCH,
390         [ 0x17 ] = KEY_EPG,             /* Guide */
391         [ 0x1f ] = KEY_MENU,
392         [ 0x0f ] = KEY_UP,
393         [ 0x46 ] = KEY_DOWN,
394         [ 0x16 ] = KEY_LEFT,
395         [ 0x1e ] = KEY_RIGHT,
396         [ 0x0e ] = KEY_SELECT,          /* Enter */
397         [ 0x5a ] = KEY_INFO,
398         [ 0x52 ] = KEY_EXIT,
399         [ 0x59 ] = KEY_PREVIOUS,
400         [ 0x51 ] = KEY_NEXT,
401         [ 0x58 ] = KEY_REWIND,
402         [ 0x50 ] = KEY_FORWARD,
403         [ 0x44 ] = KEY_PLAYPAUSE,
404         [ 0x07 ] = KEY_STOP,
405         [ 0x1b ] = KEY_RECORD,
406         [ 0x13 ] = KEY_TUNER,           /* Live */
407         [ 0x0a ] = KEY_A,
408         [ 0x12 ] = KEY_B,
409         [ 0x03 ] = KEY_PROG1,           /* 1 */
410         [ 0x01 ] = KEY_PROG2,           /* 2 */
411         [ 0x00 ] = KEY_PROG3,           /* 3 */
412         [ 0x06 ] = KEY_DVD,
413         [ 0x48 ] = KEY_AUX,             /* Photo */
414         [ 0x40 ] = KEY_VIDEO,
415         [ 0x19 ] = KEY_AUDIO,           /* Music */
416         [ 0x0b ] = KEY_CHANNELUP,
417         [ 0x08 ] = KEY_CHANNELDOWN,
418         [ 0x15 ] = KEY_VOLUMEUP,
419         [ 0x1c ] = KEY_VOLUMEDOWN,
420 };
421
422 EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci);
423
424 /* ---------------------------------------------------------------------- */
425
426 /* MSI TV@nywhere remote */
427 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = {
428         /* Keys 0 to 9 */
429         [ 0x00 ] = KEY_0,
430         [ 0x01 ] = KEY_1,
431         [ 0x02 ] = KEY_2,
432         [ 0x03 ] = KEY_3,
433         [ 0x04 ] = KEY_4,
434         [ 0x05 ] = KEY_5,
435         [ 0x06 ] = KEY_6,
436         [ 0x07 ] = KEY_7,
437         [ 0x08 ] = KEY_8,
438         [ 0x09 ] = KEY_9,
439
440         [ 0x0c ] = KEY_MUTE,
441         [ 0x0f ] = KEY_SCREEN,          /* Full Screen */
442         [ 0x10 ] = KEY_F,                       /* Funtion */
443         [ 0x11 ] = KEY_T,                       /* Time shift */
444         [ 0x12 ] = KEY_POWER,
445         [ 0x13 ] = KEY_MEDIA,           /* MTS */
446         [ 0x14 ] = KEY_SLOW,
447         [ 0x16 ] = KEY_REWIND,          /* backward << */
448         [ 0x17 ] = KEY_ENTER,           /* Return */
449         [ 0x18 ] = KEY_FASTFORWARD,     /* forward >> */
450         [ 0x1a ] = KEY_CHANNELUP,
451         [ 0x1b ] = KEY_VOLUMEUP,
452         [ 0x1e ] = KEY_CHANNELDOWN,
453         [ 0x1f ] = KEY_VOLUMEDOWN,
454 };
455
456 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere);
457
458 /* ---------------------------------------------------------------------- */
459
460 /* Cinergy 1400 DVB-T */
461 IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = {
462         [ 0x01 ] = KEY_POWER,
463         [ 0x02 ] = KEY_1,
464         [ 0x03 ] = KEY_2,
465         [ 0x04 ] = KEY_3,
466         [ 0x05 ] = KEY_4,
467         [ 0x06 ] = KEY_5,
468         [ 0x07 ] = KEY_6,
469         [ 0x08 ] = KEY_7,
470         [ 0x09 ] = KEY_8,
471         [ 0x0a ] = KEY_9,
472         [ 0x0c ] = KEY_0,
473
474         [ 0x0b ] = KEY_VIDEO,
475         [ 0x0d ] = KEY_REFRESH,
476         [ 0x0e ] = KEY_SELECT,
477         [ 0x0f ] = KEY_EPG,
478         [ 0x10 ] = KEY_UP,
479         [ 0x11 ] = KEY_LEFT,
480         [ 0x12 ] = KEY_OK,
481         [ 0x13 ] = KEY_RIGHT,
482         [ 0x14 ] = KEY_DOWN,
483         [ 0x15 ] = KEY_TEXT,
484         [ 0x16 ] = KEY_INFO,
485
486         [ 0x17 ] = KEY_RED,
487         [ 0x18 ] = KEY_GREEN,
488         [ 0x19 ] = KEY_YELLOW,
489         [ 0x1a ] = KEY_BLUE,
490
491         [ 0x1b ] = KEY_CHANNELUP,
492         [ 0x1c ] = KEY_VOLUMEUP,
493         [ 0x1d ] = KEY_MUTE,
494         [ 0x1e ] = KEY_VOLUMEDOWN,
495         [ 0x1f ] = KEY_CHANNELDOWN,
496
497         [ 0x40 ] = KEY_PAUSE,
498         [ 0x4c ] = KEY_PLAY,
499         [ 0x58 ] = KEY_RECORD,
500         [ 0x54 ] = KEY_PREVIOUS,
501         [ 0x48 ] = KEY_STOP,
502         [ 0x5c ] = KEY_NEXT,
503 };
504
505 EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400);
506
507 /* ---------------------------------------------------------------------- */
508
509 /* AVERTV STUDIO 303 Remote */
510 IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = {
511         [ 0x2a ] = KEY_1,
512         [ 0x32 ] = KEY_2,
513         [ 0x3a ] = KEY_3,
514         [ 0x4a ] = KEY_4,
515         [ 0x52 ] = KEY_5,
516         [ 0x5a ] = KEY_6,
517         [ 0x6a ] = KEY_7,
518         [ 0x72 ] = KEY_8,
519         [ 0x7a ] = KEY_9,
520         [ 0x0e ] = KEY_0,
521
522         [ 0x02 ] = KEY_POWER,
523         [ 0x22 ] = KEY_VIDEO,
524         [ 0x42 ] = KEY_AUDIO,
525         [ 0x62 ] = KEY_ZOOM,
526         [ 0x0a ] = KEY_TV,
527         [ 0x12 ] = KEY_CD,
528         [ 0x1a ] = KEY_TEXT,
529
530         [ 0x16 ] = KEY_SUBTITLE,
531         [ 0x1e ] = KEY_REWIND,
532         [ 0x06 ] = KEY_PRINT,
533
534         [ 0x2e ] = KEY_SEARCH,
535         [ 0x36 ] = KEY_SLEEP,
536         [ 0x3e ] = KEY_SHUFFLE,
537         [ 0x26 ] = KEY_MUTE,
538
539         [ 0x4e ] = KEY_RECORD,
540         [ 0x56 ] = KEY_PAUSE,
541         [ 0x5e ] = KEY_STOP,
542         [ 0x46 ] = KEY_PLAY,
543
544         [ 0x6e ] = KEY_RED,
545         [ 0x0b ] = KEY_GREEN,
546         [ 0x66 ] = KEY_YELLOW,
547         [ 0x03 ] = KEY_BLUE,
548
549         [ 0x76 ] = KEY_LEFT,
550         [ 0x7e ] = KEY_RIGHT,
551         [ 0x13 ] = KEY_DOWN,
552         [ 0x1b ] = KEY_UP,
553 };
554
555 EXPORT_SYMBOL_GPL(ir_codes_avertv_303);
556
557 /* ---------------------------------------------------------------------- */
558
559 /* DigitalNow DNTV Live! DVB-T Pro Remote */
560 IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = {
561         [ 0x16 ] = KEY_POWER,
562         [ 0x5b ] = KEY_HOME,
563
564         [ 0x55 ] = KEY_TV,              /* live tv */
565         [ 0x58 ] = KEY_TUNER,           /* digital Radio */
566         [ 0x5a ] = KEY_RADIO,           /* FM radio */
567         [ 0x59 ] = KEY_DVD,             /* dvd menu */
568         [ 0x03 ] = KEY_1,
569         [ 0x01 ] = KEY_2,
570         [ 0x06 ] = KEY_3,
571         [ 0x09 ] = KEY_4,
572         [ 0x1d ] = KEY_5,
573         [ 0x1f ] = KEY_6,
574         [ 0x0d ] = KEY_7,
575         [ 0x19 ] = KEY_8,
576         [ 0x1b ] = KEY_9,
577         [ 0x0c ] = KEY_CANCEL,
578         [ 0x15 ] = KEY_0,
579         [ 0x4a ] = KEY_CLEAR,
580         [ 0x13 ] = KEY_BACK,
581         [ 0x00 ] = KEY_TAB,
582         [ 0x4b ] = KEY_UP,
583         [ 0x4e ] = KEY_LEFT,
584         [ 0x4f ] = KEY_OK,
585         [ 0x52 ] = KEY_RIGHT,
586         [ 0x51 ] = KEY_DOWN,
587         [ 0x1e ] = KEY_VOLUMEUP,
588         [ 0x0a ] = KEY_VOLUMEDOWN,
589         [ 0x02 ] = KEY_CHANNELDOWN,
590         [ 0x05 ] = KEY_CHANNELUP,
591         [ 0x11 ] = KEY_RECORD,
592         [ 0x14 ] = KEY_PLAY,
593         [ 0x4c ] = KEY_PAUSE,
594         [ 0x1a ] = KEY_STOP,
595         [ 0x40 ] = KEY_REWIND,
596         [ 0x12 ] = KEY_FASTFORWARD,
597         [ 0x41 ] = KEY_PREVIOUSSONG,    /* replay |< */
598         [ 0x42 ] = KEY_NEXTSONG,        /* skip >| */
599         [ 0x54 ] = KEY_CAMERA,          /* capture */
600         [ 0x50 ] = KEY_LANGUAGE,        /* sap */
601         [ 0x47 ] = KEY_TV2,             /* pip */
602         [ 0x4d ] = KEY_SCREEN,
603         [ 0x43 ] = KEY_SUBTITLE,
604         [ 0x10 ] = KEY_MUTE,
605         [ 0x49 ] = KEY_AUDIO,           /* l/r */
606         [ 0x07 ] = KEY_SLEEP,
607         [ 0x08 ] = KEY_VIDEO,           /* a/v */
608         [ 0x0e ] = KEY_PREVIOUS,        /* recall */
609         [ 0x45 ] = KEY_ZOOM,            /* zoom + */
610         [ 0x46 ] = KEY_ANGLE,           /* zoom - */
611         [ 0x56 ] = KEY_RED,
612         [ 0x57 ] = KEY_GREEN,
613         [ 0x5c ] = KEY_YELLOW,
614         [ 0x5d ] = KEY_BLUE,
615 };
616
617 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvbt_pro);
618
619 IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE] = {
620         [ 0x01 ] = KEY_CHANNEL,
621         [ 0x02 ] = KEY_SELECT,
622         [ 0x03 ] = KEY_MUTE,
623         [ 0x04 ] = KEY_POWER,
624         [ 0x05 ] = KEY_1,
625         [ 0x06 ] = KEY_2,
626         [ 0x07 ] = KEY_3,
627         [ 0x08 ] = KEY_CHANNELUP,
628         [ 0x09 ] = KEY_4,
629         [ 0x0a ] = KEY_5,
630         [ 0x0b ] = KEY_6,
631         [ 0x0c ] = KEY_CHANNELDOWN,
632         [ 0x0d ] = KEY_7,
633         [ 0x0e ] = KEY_8,
634         [ 0x0f ] = KEY_9,
635         [ 0x10 ] = KEY_VOLUMEUP,
636         [ 0x11 ] = KEY_0,
637         [ 0x12 ] = KEY_MENU,
638         [ 0x13 ] = KEY_PRINT,
639         [ 0x14 ] = KEY_VOLUMEDOWN,
640         [ 0x16 ] = KEY_PAUSE,
641         [ 0x18 ] = KEY_RECORD,
642         [ 0x19 ] = KEY_REWIND,
643         [ 0x1a ] = KEY_PLAY,
644         [ 0x1b ] = KEY_FORWARD,
645         [ 0x1c ] = KEY_BACKSPACE,
646         [ 0x1e ] = KEY_STOP,
647         [ 0x40 ] = KEY_ZOOM,
648 };
649
650 EXPORT_SYMBOL_GPL(ir_codes_em_terratec);
651
652 IR_KEYTAB_TYPE ir_codes_pinnacle_grey[IR_KEYTAB_SIZE] = {
653         [ 0x3a ] = KEY_0,
654         [ 0x31 ] = KEY_1,
655         [ 0x32 ] = KEY_2,
656         [ 0x33 ] = KEY_3,
657         [ 0x34 ] = KEY_4,
658         [ 0x35 ] = KEY_5,
659         [ 0x36 ] = KEY_6,
660         [ 0x37 ] = KEY_7,
661         [ 0x38 ] = KEY_8,
662         [ 0x39 ] = KEY_9,
663
664         [ 0x2f ] = KEY_POWER,
665
666         [ 0x2e ] = KEY_P,
667         [ 0x1f ] = KEY_L,
668         [ 0x2b ] = KEY_I,
669
670         [ 0x2d ] = KEY_ZOOM,
671         [ 0x1e ] = KEY_ZOOM,
672         [ 0x1b ] = KEY_VOLUMEUP,
673         [ 0x0f ] = KEY_VOLUMEDOWN,
674         [ 0x17 ] = KEY_CHANNELUP,
675         [ 0x1c ] = KEY_CHANNELDOWN,
676         [ 0x25 ] = KEY_INFO,
677
678         [ 0x3c ] = KEY_MUTE,
679
680         [ 0x3d ] = KEY_LEFT,
681         [ 0x3b ] = KEY_RIGHT,
682
683         [ 0x3f ] = KEY_UP,
684         [ 0x3e ] = KEY_DOWN,
685         [ 0x1a ] = KEY_PAUSE,
686
687         [ 0x1d ] = KEY_MENU,
688         [ 0x19 ] = KEY_PLAY,
689         [ 0x16 ] = KEY_REWIND,
690         [ 0x13 ] = KEY_FORWARD,
691         [ 0x15 ] = KEY_PAUSE,
692         [ 0x0e ] = KEY_REWIND,
693         [ 0x0d ] = KEY_PLAY,
694         [ 0x0b ] = KEY_STOP,
695         [ 0x07 ] = KEY_FORWARD,
696         [ 0x27 ] = KEY_RECORD,
697         [ 0x26 ] = KEY_TUNER,
698         [ 0x29 ] = KEY_TEXT,
699         [ 0x2a ] = KEY_MEDIA,
700         [ 0x18 ] = KEY_EPG,
701         [ 0x27 ] = KEY_RECORD,
702 };
703
704 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_grey);
705
706 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = {
707         [ 0x0f ] = KEY_0,
708         [ 0x03 ] = KEY_1,
709         [ 0x04 ] = KEY_2,
710         [ 0x05 ] = KEY_3,
711         [ 0x07 ] = KEY_4,
712         [ 0x08 ] = KEY_5,
713         [ 0x09 ] = KEY_6,
714         [ 0x0b ] = KEY_7,
715         [ 0x0c ] = KEY_8,
716         [ 0x0d ] = KEY_9,
717
718         [ 0x0e ] = KEY_MODE,         // Air/Cable
719         [ 0x11 ] = KEY_VIDEO,        // Video
720         [ 0x15 ] = KEY_AUDIO,        // Audio
721         [ 0x00 ] = KEY_POWER,        // Power
722         [ 0x18 ] = KEY_TUNER,        // AV Source
723         [ 0x02 ] = KEY_ZOOM,         // Fullscreen
724         [ 0x1a ] = KEY_LANGUAGE,     // Stereo
725         [ 0x1b ] = KEY_MUTE,         // Mute
726         [ 0x14 ] = KEY_VOLUMEUP,     // Volume +
727         [ 0x17 ] = KEY_VOLUMEDOWN,   // Volume -
728         [ 0x12 ] = KEY_CHANNELUP,    // Channel +
729         [ 0x13 ] = KEY_CHANNELDOWN,  // Channel -
730         [ 0x06 ] = KEY_AGAIN,        // Recall
731         [ 0x10 ] = KEY_ENTER,      // Enter
732 };
733
734 EXPORT_SYMBOL_GPL(ir_codes_flyvideo);
735
736 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = {
737         [ 0x01 ] = KEY_ZOOM,            // Full Screen
738         [ 0x00 ] = KEY_POWER,           // Power
739
740         [ 0x03 ] = KEY_1,
741         [ 0x04 ] = KEY_2,
742         [ 0x05 ] = KEY_3,
743         [ 0x07 ] = KEY_4,
744         [ 0x08 ] = KEY_5,
745         [ 0x09 ] = KEY_6,
746         [ 0x0b ] = KEY_7,
747         [ 0x0c ] = KEY_8,
748         [ 0x0d ] = KEY_9,
749         [ 0x06 ] = KEY_AGAIN,           // Recall
750         [ 0x0f ] = KEY_0,
751         [ 0x10 ] = KEY_MUTE,            // Mute
752         [ 0x02 ] = KEY_RADIO,           // TV/Radio
753         [ 0x1b ] = KEY_LANGUAGE,                // SAP (Second Audio Program)
754
755         [ 0x14 ] = KEY_VOLUMEUP,                // VOL+
756         [ 0x17 ] = KEY_VOLUMEDOWN,      // VOL-
757         [ 0x12 ] = KEY_CHANNELUP,               // CH+
758         [ 0x13 ] = KEY_CHANNELDOWN,     // CH-
759         [ 0x1d ] = KEY_ENTER,           // Enter
760
761         [ 0x1a ] = KEY_MODE,            // PIP
762         [ 0x18 ] = KEY_TUNER,           // Source
763
764         [ 0x1e ] = KEY_RECORD,          // Record/Pause
765         [ 0x15 ] = KEY_ANGLE,           // Swap (no label on key)
766         [ 0x1c ] = KEY_PAUSE,           // Timeshift/Pause
767         [ 0x19 ] = KEY_BACK,            // Rewind <<
768         [ 0x0a ] = KEY_PLAYPAUSE,               // Play/Pause
769         [ 0x1f ] = KEY_FORWARD,         // Forward >>
770         [ 0x16 ] = KEY_PREVIOUS,                // Back |<<
771         [ 0x11 ] = KEY_STOP,            // Stop
772         [ 0x0e ] = KEY_NEXT,            // End >>|
773 };
774
775 EXPORT_SYMBOL_GPL(ir_codes_flydvb);
776
777 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = {
778         [ 0x00 ] = KEY_0,
779         [ 0x01 ] = KEY_1,
780         [ 0x02 ] = KEY_2,
781         [ 0x03 ] = KEY_3,
782         [ 0x04 ] = KEY_4,
783         [ 0x05 ] = KEY_5,
784         [ 0x06 ] = KEY_6,
785         [ 0x07 ] = KEY_7,
786         [ 0x08 ] = KEY_8,
787         [ 0x09 ] = KEY_9,
788
789         [ 0x0a ] = KEY_POWER,
790         [ 0x0b ] = KEY_PROG1,           // app
791         [ 0x0c ] = KEY_ZOOM,            // zoom/fullscreen
792         [ 0x0d ] = KEY_CHANNELUP,       // channel
793         [ 0x0e ] = KEY_CHANNELDOWN,     // channel-
794         [ 0x0f ] = KEY_VOLUMEUP,
795         [ 0x10 ] = KEY_VOLUMEDOWN,
796         [ 0x11 ] = KEY_TUNER,           // AV
797         [ 0x12 ] = KEY_NUMLOCK,         // -/--
798         [ 0x13 ] = KEY_AUDIO,           // audio
799         [ 0x14 ] = KEY_MUTE,
800         [ 0x15 ] = KEY_UP,
801         [ 0x16 ] = KEY_DOWN,
802         [ 0x17 ] = KEY_LEFT,
803         [ 0x18 ] = KEY_RIGHT,
804         [ 0x19 ] = BTN_LEFT,
805         [ 0x1a ] = BTN_RIGHT,
806         [ 0x1b ] = KEY_WWW,             // text
807         [ 0x1c ] = KEY_REWIND,
808         [ 0x1d ] = KEY_FORWARD,
809         [ 0x1e ] = KEY_RECORD,
810         [ 0x1f ] = KEY_PLAY,
811         [ 0x20 ] = KEY_PREVIOUSSONG,
812         [ 0x21 ] = KEY_NEXTSONG,
813         [ 0x22 ] = KEY_PAUSE,
814         [ 0x23 ] = KEY_STOP,
815 };
816
817 EXPORT_SYMBOL_GPL(ir_codes_cinergy);
818
819 /* Alfons Geser <a.geser@cox.net>
820  * updates from Job D. R. Borges <jobdrb@ig.com.br> */
821 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
822         [ 0x12 ] = KEY_POWER,
823         [ 0x01 ] = KEY_TV,             // DVR
824         [ 0x15 ] = KEY_DVD,            // DVD
825         [ 0x17 ] = KEY_AUDIO,          // music
826                                      // DVR mode / DVD mode / music mode
827
828         [ 0x1b ] = KEY_MUTE,           // mute
829         [ 0x02 ] = KEY_LANGUAGE,       // MTS/SAP / audio / autoseek
830         [ 0x1e ] = KEY_SUBTITLE,       // closed captioning / subtitle / seek
831         [ 0x16 ] = KEY_ZOOM,           // full screen
832         [ 0x1c ] = KEY_VIDEO,          // video source / eject / delall
833         [ 0x1d ] = KEY_RESTART,        // playback / angle / del
834         [ 0x2f ] = KEY_SEARCH,         // scan / menu / playlist
835         [ 0x30 ] = KEY_CHANNEL,        // CH surfing / bookmark / memo
836
837         [ 0x31 ] = KEY_HELP,           // help
838         [ 0x32 ] = KEY_MODE,           // num/memo
839         [ 0x33 ] = KEY_ESC,            // cancel
840
841         [ 0x0c ] = KEY_UP,             // up
842         [ 0x10 ] = KEY_DOWN,           // down
843         [ 0x08 ] = KEY_LEFT,           // left
844         [ 0x04 ] = KEY_RIGHT,          // right
845         [ 0x03 ] = KEY_SELECT,         // select
846
847         [ 0x1f ] = KEY_REWIND,         // rewind
848         [ 0x20 ] = KEY_PLAYPAUSE,      // play/pause
849         [ 0x29 ] = KEY_FORWARD,        // forward
850         [ 0x14 ] = KEY_AGAIN,          // repeat
851         [ 0x2b ] = KEY_RECORD,         // recording
852         [ 0x2c ] = KEY_STOP,           // stop
853         [ 0x2d ] = KEY_PLAY,           // play
854         [ 0x2e ] = KEY_SHUFFLE,        // snapshot / shuffle
855
856         [ 0x00 ] = KEY_0,
857         [ 0x05 ] = KEY_1,
858         [ 0x06 ] = KEY_2,
859         [ 0x07 ] = KEY_3,
860         [ 0x09 ] = KEY_4,
861         [ 0x0a ] = KEY_5,
862         [ 0x0b ] = KEY_6,
863         [ 0x0d ] = KEY_7,
864         [ 0x0e ] = KEY_8,
865         [ 0x0f ] = KEY_9,
866
867         [ 0x2a ] = KEY_VOLUMEUP,
868         [ 0x11 ] = KEY_VOLUMEDOWN,
869         [ 0x18 ] = KEY_CHANNELUP,      // CH.tracking up
870         [ 0x19 ] = KEY_CHANNELDOWN,    // CH.tracking down
871
872         [ 0x13 ] = KEY_ENTER,        // enter
873         [ 0x21 ] = KEY_DOT,          // . (decimal dot)
874 };
875
876 EXPORT_SYMBOL_GPL(ir_codes_eztv);
877
878 /* Alex Hermann <gaaf@gmx.net> */
879 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
880         [ 0x28 ] = KEY_1,
881         [ 0x18 ] = KEY_2,
882         [ 0x38 ] = KEY_3,
883         [ 0x24 ] = KEY_4,
884         [ 0x14 ] = KEY_5,
885         [ 0x34 ] = KEY_6,
886         [ 0x2c ] = KEY_7,
887         [ 0x1c ] = KEY_8,
888         [ 0x3c ] = KEY_9,
889         [ 0x22 ] = KEY_0,
890
891         [ 0x20 ] = KEY_TV,              /* TV/FM */
892         [ 0x10 ] = KEY_CD,              /* CD */
893         [ 0x30 ] = KEY_TEXT,            /* TELETEXT */
894         [ 0x00 ] = KEY_POWER,           /* POWER */
895
896         [ 0x08 ] = KEY_VIDEO,           /* VIDEO */
897         [ 0x04 ] = KEY_AUDIO,           /* AUDIO */
898         [ 0x0c ] = KEY_ZOOM,            /* FULL SCREEN */
899
900         [ 0x12 ] = KEY_SUBTITLE,        /* DISPLAY */
901         [ 0x32 ] = KEY_REWIND,          /* LOOP */
902         [ 0x02 ] = KEY_PRINT,           /* PREVIEW */
903
904         [ 0x2a ] = KEY_SEARCH,          /* AUTOSCAN */
905         [ 0x1a ] = KEY_SLEEP,           /* FREEZE */
906         [ 0x3a ] = KEY_SHUFFLE,         /* SNAPSHOT */
907         [ 0x0a ] = KEY_MUTE,            /* MUTE */
908
909         [ 0x26 ] = KEY_RECORD,          /* RECORD */
910         [ 0x16 ] = KEY_PAUSE,           /* PAUSE */
911         [ 0x36 ] = KEY_STOP,            /* STOP */
912         [ 0x06 ] = KEY_PLAY,            /* PLAY */
913
914         [ 0x2e ] = KEY_RED,             /* RED */
915         [ 0x21 ] = KEY_GREEN,           /* GREEN */
916         [ 0x0e ] = KEY_YELLOW,          /* YELLOW */
917         [ 0x01 ] = KEY_BLUE,            /* BLUE */
918
919         [ 0x1e ] = KEY_VOLUMEDOWN,      /* VOLUME- */
920         [ 0x3e ] = KEY_VOLUMEUP,        /* VOLUME+ */
921         [ 0x11 ] = KEY_CHANNELDOWN,     /* CHANNEL/PAGE- */
922         [ 0x31 ] = KEY_CHANNELUP        /* CHANNEL/PAGE+ */
923 };
924
925 EXPORT_SYMBOL_GPL(ir_codes_avermedia);
926
927 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = {
928         [ 0x14 ] = KEY_MUTE,
929         [ 0x24 ] = KEY_ZOOM,
930
931         [ 0x01 ] = KEY_DVD,
932         [ 0x23 ] = KEY_RADIO,
933         [ 0x00 ] = KEY_TV,
934
935         [ 0x0a ] = KEY_REWIND,
936         [ 0x08 ] = KEY_PLAYPAUSE,
937         [ 0x0f ] = KEY_FORWARD,
938
939         [ 0x02 ] = KEY_PREVIOUS,
940         [ 0x07 ] = KEY_STOP,
941         [ 0x06 ] = KEY_NEXT,
942
943         [ 0x0c ] = KEY_UP,
944         [ 0x0e ] = KEY_DOWN,
945         [ 0x0b ] = KEY_LEFT,
946         [ 0x0d ] = KEY_RIGHT,
947         [ 0x11 ] = KEY_OK,
948
949         [ 0x03 ] = KEY_MENU,
950         [ 0x09 ] = KEY_SETUP,
951         [ 0x05 ] = KEY_VIDEO,
952         [ 0x22 ] = KEY_CHANNEL,
953
954         [ 0x12 ] = KEY_VOLUMEUP,
955         [ 0x15 ] = KEY_VOLUMEDOWN,
956         [ 0x10 ] = KEY_CHANNELUP,
957         [ 0x13 ] = KEY_CHANNELDOWN,
958
959         [ 0x04 ] = KEY_RECORD,
960
961         [ 0x16 ] = KEY_1,
962         [ 0x17 ] = KEY_2,
963         [ 0x18 ] = KEY_3,
964         [ 0x19 ] = KEY_4,
965         [ 0x1a ] = KEY_5,
966         [ 0x1b ] = KEY_6,
967         [ 0x1c ] = KEY_7,
968         [ 0x1d ] = KEY_8,
969         [ 0x1e ] = KEY_9,
970         [ 0x1f ] = KEY_0,
971
972         [ 0x20 ] = KEY_LANGUAGE,
973         [ 0x21 ] = KEY_SLEEP,
974 };
975
976 EXPORT_SYMBOL_GPL(ir_codes_videomate_tv_pvr);
977
978 /* Michael Tokarev <mjt@tls.msk.ru>
979    http://www.corpit.ru/mjt/beholdTV/remote_control.jpg
980    keytable is used by MANLI MTV00[ 0x0c ] and BeholdTV 40[13] at
981    least, and probably other cards too.
982    The "ascii-art picture" below (in comments, first row
983    is the keycode in hex, and subsequent row(s) shows
984    the button labels (several variants when appropriate)
985    helps to descide which keycodes to assign to the buttons.
986  */
987 IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE] = {
988
989         /*  0x1c            0x12  *
990          * FUNCTION         POWER *
991          *   FM              (|)  *
992          *                        */
993         [ 0x1c ] = KEY_RADIO,   /*XXX*/
994         [ 0x12 ] = KEY_POWER,
995
996         /*  0x01    0x02    0x03  *
997          *   1       2       3    *
998          *                        *
999          *  0x04    0x05    0x06  *
1000          *   4       5       6    *
1001          *                        *
1002          *  0x07    0x08    0x09  *
1003          *   7       8       9    *
1004          *                        */
1005         [ 0x01 ] = KEY_1,
1006         [ 0x02 ] = KEY_2,
1007         [ 0x03 ] = KEY_3,
1008         [ 0x04 ] = KEY_4,
1009         [ 0x05 ] = KEY_5,
1010         [ 0x06 ] = KEY_6,
1011         [ 0x07 ] = KEY_7,
1012         [ 0x08 ] = KEY_8,
1013         [ 0x09 ] = KEY_9,
1014
1015         /*  0x0a    0x00    0x17  *
1016          * RECALL    0      +100  *
1017          *                  PLUS  *
1018          *                        */
1019         [ 0x0a ] = KEY_AGAIN,   /*XXX KEY_REWIND? */
1020         [ 0x00 ] = KEY_0,
1021         [ 0x17 ] = KEY_DIGITS,  /*XXX*/
1022
1023         /*  0x14            0x10  *
1024          *  MENU            INFO  *
1025          *  OSD                   */
1026         [ 0x14 ] = KEY_MENU,
1027         [ 0x10 ] = KEY_INFO,
1028
1029         /*          0x0b          *
1030          *           Up           *
1031          *                        *
1032          *  0x18    0x16    0x0c  *
1033          *  Left     Ok     Right *
1034          *                        *
1035          *         0x015          *
1036          *         Down           *
1037          *                        */
1038         [ 0x0b ] = KEY_UP,      /*XXX KEY_SCROLLUP? */
1039         [ 0x18 ] = KEY_LEFT,    /*XXX KEY_BACK? */
1040         [ 0x16 ] = KEY_OK,      /*XXX KEY_SELECT? KEY_ENTER? */
1041         [ 0x0c ] = KEY_RIGHT,   /*XXX KEY_FORWARD? */
1042         [ 0x15 ] = KEY_DOWN,    /*XXX KEY_SCROLLDOWN? */
1043
1044         /*  0x11            0x0d  *
1045          *  TV/AV           MODE  *
1046          *  SOURCE         STEREO *
1047          *                        */
1048         [ 0x11 ] = KEY_TV,      /*XXX*/
1049         [ 0x0d ] = KEY_MODE,    /*XXX there's no KEY_STEREO */
1050
1051         /*  0x0f    0x1b    0x1a  *
1052          *  AUDIO   Vol+    Chan+ *
1053          *        TIMESHIFT???    *
1054          *                        *
1055          *  0x0e    0x1f    0x1e  *
1056          *  SLEEP   Vol-    Chan- *
1057          *                        */
1058         [ 0x0f ] = KEY_AUDIO,
1059         [ 0x1b ] = KEY_VOLUMEUP,
1060         [ 0x1a ] = KEY_CHANNELUP,
1061         [ 0x0e ] = KEY_SLEEP,   /*XXX maybe KEY_PAUSE */
1062         [ 0x1f ] = KEY_VOLUMEDOWN,
1063         [ 0x1e ] = KEY_CHANNELDOWN,
1064
1065         /*         0x13     0x19  *
1066          *         MUTE   SNAPSHOT*
1067          *                        */
1068         [ 0x13 ] = KEY_MUTE,
1069         [ 0x19 ] = KEY_RECORD,  /*XXX*/
1070
1071         // 0x1d unused ?
1072 };
1073
1074 EXPORT_SYMBOL_GPL(ir_codes_manli);
1075
1076 /* Mike Baikov <mike@baikov.com> */
1077 IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE] = {
1078
1079         [ 0x21 ] = KEY_POWER,
1080         [ 0x69 ] = KEY_TV,
1081         [ 0x33 ] = KEY_0,
1082         [ 0x51 ] = KEY_1,
1083         [ 0x31 ] = KEY_2,
1084         [ 0x71 ] = KEY_3,
1085         [ 0x3b ] = KEY_4,
1086         [ 0x58 ] = KEY_5,
1087         [ 0x41 ] = KEY_6,
1088         [ 0x48 ] = KEY_7,
1089         [ 0x30 ] = KEY_8,
1090         [ 0x53 ] = KEY_9,
1091         [ 0x73 ] = KEY_AGAIN, /* LOOP */
1092         [ 0x0a ] = KEY_AUDIO,
1093         [ 0x61 ] = KEY_PRINT, /* PREVIEW */
1094         [ 0x7a ] = KEY_VIDEO,
1095         [ 0x20 ] = KEY_CHANNELUP,
1096         [ 0x40 ] = KEY_CHANNELDOWN,
1097         [ 0x18 ] = KEY_VOLUMEDOWN,
1098         [ 0x50 ] = KEY_VOLUMEUP,
1099         [ 0x10 ] = KEY_MUTE,
1100         [ 0x4a ] = KEY_SEARCH,
1101         [ 0x7b ] = KEY_SHUFFLE, /* SNAPSHOT */
1102         [ 0x22 ] = KEY_RECORD,
1103         [ 0x62 ] = KEY_STOP,
1104         [ 0x78 ] = KEY_PLAY,
1105         [ 0x39 ] = KEY_REWIND,
1106         [ 0x59 ] = KEY_PAUSE,
1107         [ 0x19 ] = KEY_FORWARD,
1108         [ 0x09 ] = KEY_ZOOM,
1109
1110         [ 0x52 ] = KEY_F21, /* LIVE TIMESHIFT */
1111         [ 0x1a ] = KEY_F22, /* MIN TIMESHIFT */
1112         [ 0x3a ] = KEY_F23, /* TIMESHIFT */
1113         [ 0x70 ] = KEY_F24, /* NORMAL TIMESHIFT */
1114 };
1115
1116 EXPORT_SYMBOL_GPL(ir_codes_gotview7135);
1117
1118 IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE] = {
1119         [ 0x03 ] = KEY_POWER,
1120         [ 0x6f ] = KEY_MUTE,
1121         [ 0x10 ] = KEY_BACKSPACE,       /* Recall */
1122
1123         [ 0x11 ] = KEY_0,
1124         [ 0x04 ] = KEY_1,
1125         [ 0x05 ] = KEY_2,
1126         [ 0x06 ] = KEY_3,
1127         [ 0x08 ] = KEY_4,
1128         [ 0x09 ] = KEY_5,
1129         [ 0x0a ] = KEY_6,
1130         [ 0x0c ] = KEY_7,
1131         [ 0x0d ] = KEY_8,
1132         [ 0x0e ] = KEY_9,
1133         [ 0x12 ] = KEY_DOT,           /* 100+ */
1134
1135         [ 0x07 ] = KEY_VOLUMEUP,
1136         [ 0x0b ] = KEY_VOLUMEDOWN,
1137         [ 0x1a ] = KEY_KPPLUS,
1138         [ 0x18 ] = KEY_KPMINUS,
1139         [ 0x15 ] = KEY_UP,
1140         [ 0x1d ] = KEY_DOWN,
1141         [ 0x0f ] = KEY_CHANNELUP,
1142         [ 0x13 ] = KEY_CHANNELDOWN,
1143         [ 0x48 ] = KEY_ZOOM,
1144
1145         [ 0x1b ] = KEY_VIDEO,           /* Video source */
1146         [ 0x49 ] = KEY_LANGUAGE,        /* MTS Select */
1147         [ 0x19 ] = KEY_SEARCH,          /* Auto Scan */
1148
1149         [ 0x4b ] = KEY_RECORD,
1150         [ 0x46 ] = KEY_PLAY,
1151         [ 0x45 ] = KEY_PAUSE,           /* Pause */
1152         [ 0x44 ] = KEY_STOP,
1153         [ 0x40 ] = KEY_FORWARD,         /* Forward ? */
1154         [ 0x42 ] = KEY_REWIND,          /* Backward ? */
1155
1156 };
1157
1158 EXPORT_SYMBOL_GPL(ir_codes_purpletv);
1159
1160 /* Mapping for the 28 key remote control as seen at
1161    http://www.sednacomputer.com/photo/cardbus-tv.jpg
1162    Pavel Mihaylov <bin@bash.info> */
1163 IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE] = {
1164         [ 0x00 ] = KEY_0,
1165         [ 0x01 ] = KEY_1,
1166         [ 0x02 ] = KEY_2,
1167         [ 0x03 ] = KEY_3,
1168         [ 0x04 ] = KEY_4,
1169         [ 0x05 ] = KEY_5,
1170         [ 0x06 ] = KEY_6,
1171         [ 0x07 ] = KEY_7,
1172         [ 0x08 ] = KEY_8,
1173         [ 0x09 ] = KEY_9,
1174
1175         [ 0x0a ] = KEY_AGAIN,          /* Recall */
1176         [ 0x0b ] = KEY_CHANNELUP,
1177         [ 0x0c ] = KEY_VOLUMEUP,
1178         [ 0x0d ] = KEY_MODE,           /* Stereo */
1179         [ 0x0e ] = KEY_STOP,
1180         [ 0x0f ] = KEY_PREVIOUSSONG,
1181         [ 0x10 ] = KEY_ZOOM,
1182         [ 0x11 ] = KEY_TUNER,          /* Source */
1183         [ 0x12 ] = KEY_POWER,
1184         [ 0x13 ] = KEY_MUTE,
1185         [ 0x15 ] = KEY_CHANNELDOWN,
1186         [ 0x18 ] = KEY_VOLUMEDOWN,
1187         [ 0x19 ] = KEY_SHUFFLE,        /* Snapshot */
1188         [ 0x1a ] = KEY_NEXTSONG,
1189         [ 0x1b ] = KEY_TEXT,           /* Time Shift */
1190         [ 0x1c ] = KEY_RADIO,          /* FM Radio */
1191         [ 0x1d ] = KEY_RECORD,
1192         [ 0x1e ] = KEY_PAUSE,
1193 };
1194
1195 EXPORT_SYMBOL_GPL(ir_codes_pctv_sedna);
1196
1197 /* Mark Phalan <phalanm@o2.ie> */
1198 IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
1199         [ 0x00 ] = KEY_0,
1200         [ 0x01 ] = KEY_1,
1201         [ 0x02 ] = KEY_2,
1202         [ 0x03 ] = KEY_3,
1203         [ 0x04 ] = KEY_4,
1204         [ 0x05 ] = KEY_5,
1205         [ 0x06 ] = KEY_6,
1206         [ 0x07 ] = KEY_7,
1207         [ 0x08 ] = KEY_8,
1208         [ 0x09 ] = KEY_9,
1209
1210         [ 0x12 ] = KEY_POWER,
1211         [ 0x10 ] = KEY_MUTE,
1212         [ 0x1f ] = KEY_VOLUMEDOWN,
1213         [ 0x1b ] = KEY_VOLUMEUP,
1214         [ 0x1a ] = KEY_CHANNELUP,
1215         [ 0x1e ] = KEY_CHANNELDOWN,
1216         [ 0x0e ] = KEY_PAGEUP,
1217         [ 0x1d ] = KEY_PAGEDOWN,
1218         [ 0x13 ] = KEY_SOUND,
1219
1220         [ 0x18 ] = KEY_KPPLUSMINUS,     /* CH +/- */
1221         [ 0x16 ] = KEY_SUBTITLE,                /* CC */
1222         [ 0x0d ] = KEY_TEXT,            /* TTX */
1223         [ 0x0b ] = KEY_TV,              /* AIR/CBL */
1224         [ 0x11 ] = KEY_PC,              /* PC/TV */
1225         [ 0x17 ] = KEY_OK,              /* CH RTN */
1226         [ 0x19 ] = KEY_MODE,            /* FUNC */
1227         [ 0x0c ] = KEY_SEARCH,          /* AUTOSCAN */
1228
1229         /* Not sure what to do with these ones! */
1230         [ 0x0f ] = KEY_SELECT,          /* SOURCE */
1231         [ 0x0a ] = KEY_KPPLUS,          /* +100 */
1232         [ 0x14 ] = KEY_EQUAL,           /* SYNC */
1233         [ 0x1c ] = KEY_MEDIA,             /* PC/TV */
1234 };
1235
1236 EXPORT_SYMBOL_GPL(ir_codes_pv951);
1237
1238 /* generic RC5 keytable                                          */
1239 /* see http://users.pandora.be/nenya/electronics/rc5/codes00.htm */
1240 /* used by old (black) Hauppauge remotes                         */
1241 IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE] = {
1242         /* Keys 0 to 9 */
1243         [ 0x00 ] = KEY_0,
1244         [ 0x01 ] = KEY_1,
1245         [ 0x02 ] = KEY_2,
1246         [ 0x03 ] = KEY_3,
1247         [ 0x04 ] = KEY_4,
1248         [ 0x05 ] = KEY_5,
1249         [ 0x06 ] = KEY_6,
1250         [ 0x07 ] = KEY_7,
1251         [ 0x08 ] = KEY_8,
1252         [ 0x09 ] = KEY_9,
1253
1254         [ 0x0b ] = KEY_CHANNEL,         /* channel / program (japan: 11) */
1255         [ 0x0c ] = KEY_POWER,           /* standby */
1256         [ 0x0d ] = KEY_MUTE,            /* mute / demute */
1257         [ 0x0f ] = KEY_TV,              /* display */
1258         [ 0x10 ] = KEY_VOLUMEUP,
1259         [ 0x11 ] = KEY_VOLUMEDOWN,
1260         [ 0x12 ] = KEY_BRIGHTNESSUP,
1261         [ 0x13 ] = KEY_BRIGHTNESSDOWN,
1262         [ 0x1e ] = KEY_SEARCH,          /* search + */
1263         [ 0x20 ] = KEY_CHANNELUP,       /* channel / program + */
1264         [ 0x21 ] = KEY_CHANNELDOWN,     /* channel / program - */
1265         [ 0x22 ] = KEY_CHANNEL,         /* alt / channel */
1266         [ 0x23 ] = KEY_LANGUAGE,        /* 1st / 2nd language */
1267         [ 0x26 ] = KEY_SLEEP,           /* sleeptimer */
1268         [ 0x2e ] = KEY_MENU,            /* 2nd controls (USA: menu) */
1269         [ 0x30 ] = KEY_PAUSE,
1270         [ 0x32 ] = KEY_REWIND,
1271         [ 0x33 ] = KEY_GOTO,
1272         [ 0x35 ] = KEY_PLAY,
1273         [ 0x36 ] = KEY_STOP,
1274         [ 0x37 ] = KEY_RECORD,          /* recording */
1275         [ 0x3c ] = KEY_TEXT,            /* teletext submode (Japan: 12) */
1276         [ 0x3d ] = KEY_SUSPEND,         /* system standby */
1277
1278 };
1279
1280 EXPORT_SYMBOL_GPL(ir_codes_rc5_tv);
1281
1282 /* Table for Leadtek Winfast Remote Controls - used by both bttv and cx88 */
1283 IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
1284         /* Keys 0 to 9 */
1285         [ 0x12 ] = KEY_0,
1286         [ 0x05 ] = KEY_1,
1287         [ 0x06 ] = KEY_2,
1288         [ 0x07 ] = KEY_3,
1289         [ 0x09 ] = KEY_4,
1290         [ 0x0a ] = KEY_5,
1291         [ 0x0b ] = KEY_6,
1292         [ 0x0d ] = KEY_7,
1293         [ 0x0e ] = KEY_8,
1294         [ 0x0f ] = KEY_9,
1295
1296         [ 0x00 ] = KEY_POWER,
1297         [ 0x1b ] = KEY_AUDIO,           /* Audio Source */
1298         [ 0x02 ] = KEY_TUNER,           /* TV/FM, not on Y0400052 */
1299         [ 0x1e ] = KEY_VIDEO,           /* Video Source */
1300         [ 0x16 ] = KEY_INFO,            /* Display information */
1301         [ 0x04 ] = KEY_VOLUMEUP,
1302         [ 0x08 ] = KEY_VOLUMEDOWN,
1303         [ 0x0c ] = KEY_CHANNELUP,
1304         [ 0x10 ] = KEY_CHANNELDOWN,
1305         [ 0x03 ] = KEY_ZOOM,            /* fullscreen */
1306         [ 0x1f ] = KEY_TEXT,            /* closed caption/teletext */
1307         [ 0x20 ] = KEY_SLEEP,
1308         [ 0x29 ] = KEY_CLEAR,           /* boss key */
1309         [ 0x14 ] = KEY_MUTE,
1310         [ 0x2b ] = KEY_RED,
1311         [ 0x2c ] = KEY_GREEN,
1312         [ 0x2d ] = KEY_YELLOW,
1313         [ 0x2e ] = KEY_BLUE,
1314         [ 0x18 ] = KEY_KPPLUS,          /* fine tune + , not on Y040052 */
1315         [ 0x19 ] = KEY_KPMINUS,         /* fine tune - , not on Y040052 */
1316         [ 0x2a ] = KEY_MEDIA,           /* PIP (Picture in picture */
1317         [ 0x21 ] = KEY_DOT,
1318         [ 0x13 ] = KEY_ENTER,
1319         [ 0x11 ] = KEY_LAST,            /* Recall (last channel */
1320         [ 0x22 ] = KEY_PREVIOUS,
1321         [ 0x23 ] = KEY_PLAYPAUSE,
1322         [ 0x24 ] = KEY_NEXT,
1323         [ 0x25 ] = KEY_ARCHIVE,       /* Time Shifting */
1324         [ 0x26 ] = KEY_STOP,
1325         [ 0x27 ] = KEY_RECORD,
1326         [ 0x28 ] = KEY_SAVE,          /* Screenshot */
1327         [ 0x2f ] = KEY_MENU,
1328         [ 0x30 ] = KEY_CANCEL,
1329         [ 0x31 ] = KEY_CHANNEL,       /* Channel Surf */
1330         [ 0x32 ] = KEY_SUBTITLE,
1331         [ 0x33 ] = KEY_LANGUAGE,
1332         [ 0x34 ] = KEY_REWIND,
1333         [ 0x35 ] = KEY_FASTFORWARD,
1334         [ 0x36 ] = KEY_TV,
1335         [ 0x37 ] = KEY_RADIO,         /* FM */
1336         [ 0x38 ] = KEY_DVD
1337 };
1338
1339 EXPORT_SYMBOL_GPL(ir_codes_winfast);
1340
1341 IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE] = {
1342         [ 0x59 ] = KEY_MUTE,
1343         [ 0x4a ] = KEY_POWER,
1344
1345         [ 0x18 ] = KEY_TEXT,
1346         [ 0x26 ] = KEY_TV,
1347         [ 0x3d ] = KEY_PRINT,
1348
1349         [ 0x48 ] = KEY_RED,
1350         [ 0x04 ] = KEY_GREEN,
1351         [ 0x11 ] = KEY_YELLOW,
1352         [ 0x00 ] = KEY_BLUE,
1353
1354         [ 0x2d ] = KEY_VOLUMEUP,
1355         [ 0x1e ] = KEY_VOLUMEDOWN,
1356
1357         [ 0x49 ] = KEY_MENU,
1358
1359         [ 0x16 ] = KEY_CHANNELUP,
1360         [ 0x17 ] = KEY_CHANNELDOWN,
1361
1362         [ 0x20 ] = KEY_UP,
1363         [ 0x21 ] = KEY_DOWN,
1364         [ 0x22 ] = KEY_LEFT,
1365         [ 0x23 ] = KEY_RIGHT,
1366         [ 0x0d ] = KEY_SELECT,
1367
1368
1369
1370         [ 0x08 ] = KEY_BACK,
1371         [ 0x07 ] = KEY_REFRESH,
1372
1373         [ 0x2f ] = KEY_ZOOM,
1374         [ 0x29 ] = KEY_RECORD,
1375
1376         [ 0x4b ] = KEY_PAUSE,
1377         [ 0x4d ] = KEY_REWIND,
1378         [ 0x2e ] = KEY_PLAY,
1379         [ 0x4e ] = KEY_FORWARD,
1380         [ 0x53 ] = KEY_PREVIOUS,
1381         [ 0x4c ] = KEY_STOP,
1382         [ 0x54 ] = KEY_NEXT,
1383
1384         [ 0x69 ] = KEY_0,
1385         [ 0x6a ] = KEY_1,
1386         [ 0x6b ] = KEY_2,
1387         [ 0x6c ] = KEY_3,
1388         [ 0x6d ] = KEY_4,
1389         [ 0x6e ] = KEY_5,
1390         [ 0x6f ] = KEY_6,
1391         [ 0x70 ] = KEY_7,
1392         [ 0x71 ] = KEY_8,
1393         [ 0x72 ] = KEY_9,
1394
1395         [ 0x74 ] = KEY_CHANNEL,
1396         [ 0x0a ] = KEY_BACKSPACE,
1397 };
1398
1399 EXPORT_SYMBOL_GPL(ir_codes_pinnacle_color);
1400
1401 /* Hauppauge: the newer, gray remotes (seems there are multiple
1402  * slightly different versions), shipped with cx88+ivtv cards.
1403  * almost rc5 coding, but some non-standard keys */
1404 IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE] = {
1405         /* Keys 0 to 9 */
1406         [ 0x00 ] = KEY_0,
1407         [ 0x01 ] = KEY_1,
1408         [ 0x02 ] = KEY_2,
1409         [ 0x03 ] = KEY_3,
1410         [ 0x04 ] = KEY_4,
1411         [ 0x05 ] = KEY_5,
1412         [ 0x06 ] = KEY_6,
1413         [ 0x07 ] = KEY_7,
1414         [ 0x08 ] = KEY_8,
1415         [ 0x09 ] = KEY_9,
1416
1417         [ 0x0a ] = KEY_TEXT,            /* keypad asterisk as well */
1418         [ 0x0b ] = KEY_RED,             /* red button */
1419         [ 0x0c ] = KEY_RADIO,
1420         [ 0x0d ] = KEY_MENU,
1421         [ 0x0e ] = KEY_SUBTITLE,        /* also the # key */
1422         [ 0x0f ] = KEY_MUTE,
1423         [ 0x10 ] = KEY_VOLUMEUP,
1424         [ 0x11 ] = KEY_VOLUMEDOWN,
1425         [ 0x12 ] = KEY_PREVIOUS,        /* previous channel */
1426         [ 0x14 ] = KEY_UP,
1427         [ 0x15 ] = KEY_DOWN,
1428         [ 0x16 ] = KEY_LEFT,
1429         [ 0x17 ] = KEY_RIGHT,
1430         [ 0x18 ] = KEY_VIDEO,           /* Videos */
1431         [ 0x19 ] = KEY_AUDIO,           /* Music */
1432         /* 0x1a: Pictures - presume this means
1433            "Multimedia Home Platform" -
1434            no "PICTURES" key in input.h
1435          */
1436         [ 0x1a ] = KEY_MHP,
1437
1438         [ 0x1b ] = KEY_EPG,             /* Guide */
1439         [ 0x1c ] = KEY_TV,
1440         [ 0x1e ] = KEY_NEXTSONG,        /* skip >| */
1441         [ 0x1f ] = KEY_EXIT,            /* back/exit */
1442         [ 0x20 ] = KEY_CHANNELUP,       /* channel / program + */
1443         [ 0x21 ] = KEY_CHANNELDOWN,     /* channel / program - */
1444         [ 0x22 ] = KEY_CHANNEL,         /* source (old black remote) */
1445         [ 0x24 ] = KEY_PREVIOUSSONG,    /* replay |< */
1446         [ 0x25 ] = KEY_ENTER,           /* OK */
1447         [ 0x26 ] = KEY_SLEEP,           /* minimize (old black remote) */
1448         [ 0x29 ] = KEY_BLUE,            /* blue key */
1449         [ 0x2e ] = KEY_GREEN,           /* green button */
1450         [ 0x30 ] = KEY_PAUSE,           /* pause */
1451         [ 0x32 ] = KEY_REWIND,          /* backward << */
1452         [ 0x34 ] = KEY_FASTFORWARD,     /* forward >> */
1453         [ 0x35 ] = KEY_PLAY,
1454         [ 0x36 ] = KEY_STOP,
1455         [ 0x37 ] = KEY_RECORD,          /* recording */
1456         [ 0x38 ] = KEY_YELLOW,          /* yellow key */
1457         [ 0x3b ] = KEY_SELECT,          /* top right button */
1458         [ 0x3c ] = KEY_ZOOM,            /* full */
1459         [ 0x3d ] = KEY_POWER,           /* system power (green button) */
1460 };
1461
1462 EXPORT_SYMBOL_GPL(ir_codes_hauppauge_new);
1463
1464 IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE] = {
1465         [ 0x1d ] = KEY_SWITCHVIDEOMODE, /* switch inputs */
1466         [ 0x2a ] = KEY_FRONT,
1467
1468         [ 0x3e ] = KEY_1,
1469         [ 0x02 ] = KEY_2,
1470         [ 0x06 ] = KEY_3,
1471         [ 0x0a ] = KEY_4,
1472         [ 0x0e ] = KEY_5,
1473         [ 0x12 ] = KEY_6,
1474         [ 0x16 ] = KEY_7,
1475         [ 0x1a ] = KEY_8,
1476         [ 0x1e ] = KEY_9,
1477         [ 0x3a ] = KEY_0,
1478         [ 0x22 ] = KEY_NUMLOCK,         /* -/-- */
1479         [ 0x20 ] = KEY_REFRESH,
1480
1481         [ 0x03 ] = KEY_BRIGHTNESSDOWN,
1482         [ 0x28 ] = KEY_AUDIO,
1483         [ 0x3c ] = KEY_UP,
1484         [ 0x3f ] = KEY_LEFT,
1485         [ 0x2e ] = KEY_MUTE,
1486         [ 0x3b ] = KEY_RIGHT,
1487         [ 0x00 ] = KEY_DOWN,
1488         [ 0x07 ] = KEY_BRIGHTNESSUP,
1489         [ 0x2c ] = KEY_TEXT,
1490
1491         [ 0x37 ] = KEY_RECORD,
1492         [ 0x17 ] = KEY_PLAY,
1493         [ 0x13 ] = KEY_PAUSE,
1494         [ 0x26 ] = KEY_STOP,
1495         [ 0x18 ] = KEY_FASTFORWARD,
1496         [ 0x14 ] = KEY_REWIND,
1497         [ 0x33 ] = KEY_ZOOM,
1498         [ 0x32 ] = KEY_KEYBOARD,
1499         [ 0x30 ] = KEY_GOTO,            /* Pointing arrow */
1500         [ 0x36 ] = KEY_MACRO,           /* Maximize/Minimize (yellow) */
1501         [ 0x0b ] = KEY_RADIO,
1502         [ 0x10 ] = KEY_POWER,
1503
1504 };
1505
1506 EXPORT_SYMBOL_GPL(ir_codes_npgtech);
1507
1508 /* Norwood Micro (non-Pro) TV Tuner
1509    By Peter Naulls <peter@chocky.org>
1510    Key comments are the functions given in the manual */
1511 IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE] = {
1512         /* Keys 0 to 9 */
1513         [ 0x20 ] = KEY_0,
1514         [ 0x21 ] = KEY_1,
1515         [ 0x22 ] = KEY_2,
1516         [ 0x23 ] = KEY_3,
1517         [ 0x24 ] = KEY_4,
1518         [ 0x25 ] = KEY_5,
1519         [ 0x26 ] = KEY_6,
1520         [ 0x27 ] = KEY_7,
1521         [ 0x28 ] = KEY_8,
1522         [ 0x29 ] = KEY_9,
1523
1524         [ 0x78 ] = KEY_TUNER,             /* Video Source        */
1525         [ 0x2c ] = KEY_EXIT,              /* Open/Close software */
1526         [ 0x2a ] = KEY_SELECT,            /* 2 Digit Select      */
1527         [ 0x69 ] = KEY_AGAIN,             /* Recall              */
1528
1529         [ 0x32 ] = KEY_BRIGHTNESSUP,      /* Brightness increase */
1530         [ 0x33 ] = KEY_BRIGHTNESSDOWN,    /* Brightness decrease */
1531         [ 0x6b ] = KEY_KPPLUS,            /* (not named >>>>>)   */
1532         [ 0x6c ] = KEY_KPMINUS,           /* (not named <<<<<)   */
1533
1534         [ 0x2d ] = KEY_MUTE,              /* Mute                */
1535         [ 0x30 ] = KEY_VOLUMEUP,          /* Volume up           */
1536         [ 0x31 ] = KEY_VOLUMEDOWN,        /* Volume down         */
1537         [ 0x60 ] = KEY_CHANNELUP,         /* Channel up          */
1538         [ 0x61 ] = KEY_CHANNELDOWN,       /* Channel down        */
1539
1540         [ 0x3f ] = KEY_RECORD,            /* Record              */
1541         [ 0x37 ] = KEY_PLAY,              /* Play                */
1542         [ 0x36 ] = KEY_PAUSE,             /* Pause               */
1543         [ 0x2b ] = KEY_STOP,              /* Stop                */
1544         [ 0x67 ] = KEY_FASTFORWARD,       /* Foward              */
1545         [ 0x66 ] = KEY_REWIND,            /* Rewind              */
1546         [ 0x3e ] = KEY_SEARCH,            /* Auto Scan           */
1547         [ 0x2e ] = KEY_CAMERA,            /* Capture Video       */
1548         [ 0x6d ] = KEY_MENU,              /* Show/Hide Control   */
1549         [ 0x2f ] = KEY_ZOOM,              /* Full Screen         */
1550         [ 0x34 ] = KEY_RADIO,             /* FM                  */
1551         [ 0x65 ] = KEY_POWER,             /* Computer power      */
1552 };
1553
1554 EXPORT_SYMBOL_GPL(ir_codes_norwood);