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