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