~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/drivers/media/common/ir-keymaps.c

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  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 /* Matt Jesson <dvb@jesson.eclipse.co.uk */
 36 IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE] = {
 37         [ 0x28 ] = KEY_0,         //'' / 'enter'
 38         [ 0x22 ] = KEY_1,         //'1'
 39         [ 0x12 ] = KEY_2,         //'2' / 'up arrow'
 40         [ 0x32 ] = KEY_3,         //'3'
 41         [ 0x24 ] = KEY_4,         //'4' / 'left arrow'
 42         [ 0x14 ] = KEY_5,         //'5'
 43         [ 0x34 ] = KEY_6,         //'6' / 'right arrow'
 44         [ 0x26 ] = KEY_7,         //'7'
 45         [ 0x16 ] = KEY_8,         //'8' / 'down arrow'
 46         [ 0x36 ] = KEY_9,         //'9'
 47 
 48         [ 0x20 ] = KEY_LIST,        // 'source'
 49         [ 0x10 ] = KEY_TEXT,        // 'teletext'
 50         [ 0x00 ] = KEY_POWER,       // 'power'
 51         [ 0x04 ] = KEY_AUDIO,       // 'audio'
 52         [ 0x06 ] = KEY_ZOOM,        // 'full screen'
 53         [ 0x18 ] = KEY_VIDEO,       // 'display'
 54         [ 0x38 ] = KEY_SEARCH,      // 'loop'
 55         [ 0x08 ] = KEY_INFO,        // 'preview'
 56         [ 0x2a ] = KEY_REWIND,      // 'backward <<'
 57         [ 0x1a ] = KEY_FASTFORWARD, // 'forward >>'
 58         [ 0x3a ] = KEY_RECORD,      // 'capture'
 59         [ 0x0a ] = KEY_MUTE,        // 'mute'
 60         [ 0x2c ] = KEY_RECORD,      // 'record'
 61         [ 0x1c ] = KEY_PAUSE,       // 'pause'
 62         [ 0x3c ] = KEY_STOP,        // 'stop'
 63         [ 0x0c ] = KEY_PLAY,        // 'play'
 64         [ 0x2e ] = KEY_RED,         // 'red'
 65         [ 0x01 ] = KEY_BLUE,        // 'blue' / 'cancel'
 66         [ 0x0e ] = KEY_YELLOW,      // 'yellow' / 'ok'
 67         [ 0x21 ] = KEY_GREEN,       // 'green'
 68         [ 0x11 ] = KEY_CHANNELDOWN, // 'channel -'
 69         [ 0x31 ] = KEY_CHANNELUP,   // 'channel +'
 70         [ 0x1e ] = KEY_VOLUMEDOWN,  // 'volume -'
 71         [ 0x3e ] = KEY_VOLUMEUP,    // 'volume +'
 72 };
 73 
 74 EXPORT_SYMBOL_GPL(ir_codes_avermedia_dvbt);
 75 
 76 /* Attila Kondoros <attila.kondoros@chello.hu> */
 77 IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE] = {
 78 
 79         [ 0x01 ] = KEY_1,
 80         [ 0x02 ] = KEY_2,
 81         [ 0x03 ] = KEY_3,
 82         [ 0x04 ] = KEY_4,
 83         [ 0x05 ] = KEY_5,
 84         [ 0x06 ] = KEY_6,
 85         [ 0x07 ] = KEY_7,
 86         [ 0x08 ] = KEY_8,
 87         [ 0x09 ] = KEY_9,
 88         [ 0x00 ] = KEY_0,
 89         [ 0x17 ] = KEY_LAST,        // +100
 90         [ 0x0a ] = KEY_LIST,        // recall
 91 
 92 
 93         [ 0x1c ] = KEY_TUNER,       // TV/FM
 94         [ 0x15 ] = KEY_SEARCH,      // scan
 95         [ 0x12 ] = KEY_POWER,       // power
 96         [ 0x1f ] = KEY_VOLUMEDOWN,  // vol up
 97         [ 0x1b ] = KEY_VOLUMEUP,    // vol down
 98         [ 0x1e ] = KEY_CHANNELDOWN, // chn up
 99         [ 0x1a ] = KEY_CHANNELUP,   // chn down
100 
101         [ 0x11 ] = KEY_VIDEO,       // video
102         [ 0x0f ] = KEY_ZOOM,        // full screen
103         [ 0x13 ] = KEY_MUTE,        // mute/unmute
104         [ 0x10 ] = KEY_TEXT,        // min
105 
106         [ 0x0d ] = KEY_STOP,        // freeze
107         [ 0x0e ] = KEY_RECORD,      // record
108         [ 0x1d ] = KEY_PLAYPAUSE,   // stop
109         [ 0x19 ] = KEY_PLAY,        // play
110 
111         [ 0x16 ] = KEY_GOTO,        // osd
112         [ 0x14 ] = KEY_REFRESH,     // default
113         [ 0x0c ] = KEY_KPPLUS,      // fine tune >>>>
114         [ 0x18 ] = KEY_KPMINUS      // fine tune <<<<
115 };
116 
117 EXPORT_SYMBOL_GPL(ir_codes_apac_viewcomp);
118 
119 /* ---------------------------------------------------------------------- */
120 
121 IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE] = {
122 
123         [ 0x1e ] = KEY_POWER,       // power
124         [ 0x07 ] = KEY_MEDIA,       // source
125         [ 0x1c ] = KEY_SEARCH,      // scan
126 
127 /* FIXME: duplicate keycodes?
128  *
129  * These four keys seem to share the same GPIO as CH+, CH-, <<< and >>>
130  * The GPIO values are
131  * 6397fb for both "Scan <" and "CH -",
132  * 639ffb for "Scan >" and "CH+",
133  * 6384fb for "Tune <" and "<<<",
134  * 638cfb for "Tune >" and ">>>", regardless of the mask.
135  *
136  *      [ 0x17 ] = KEY_BACK,        // fm scan <<
137  *      [ 0x1f ] = KEY_FORWARD,     // fm scan >>
138  *
139  *      [ 0x04 ] = KEY_LEFT,        // fm tuning <
140  *      [ 0x0c ] = KEY_RIGHT,       // fm tuning >
141  *
142  * For now, these four keys are disabled. Pressing them will generate
143  * the CH+/CH-/<<</>>> events
144  */
145 
146         [ 0x03 ] = KEY_TUNER,       // TV/FM
147 
148         [ 0x00 ] = KEY_RECORD,
149         [ 0x08 ] = KEY_STOP,
150         [ 0x11 ] = KEY_PLAY,
151 
152         [ 0x1a ] = KEY_PLAYPAUSE,   // freeze
153         [ 0x19 ] = KEY_ZOOM,        // zoom
154         [ 0x0f ] = KEY_TEXT,        // min
155 
156         [ 0x01 ] = KEY_1,
157         [ 0x0b ] = KEY_2,
158         [ 0x1b ] = KEY_3,
159         [ 0x05 ] = KEY_4,
160         [ 0x09 ] = KEY_5,
161         [ 0x15 ] = KEY_6,
162         [ 0x06 ] = KEY_7,
163         [ 0x0a ] = KEY_8,
164         [ 0x12 ] = KEY_9,
165         [ 0x02 ] = KEY_0,
166         [ 0x10 ] = KEY_LAST,        // +100
167         [ 0x13 ] = KEY_LIST,        // recall
168 
169         [ 0x1f ] = KEY_CHANNELUP,   // chn down
170         [ 0x17 ] = KEY_CHANNELDOWN, // chn up
171         [ 0x16 ] = KEY_VOLUMEUP,    // vol down
172         [ 0x14 ] = KEY_VOLUMEDOWN,  // vol up
173 
174         [ 0x04 ] = KEY_KPMINUS,     // <<<
175         [ 0x0e ] = KEY_SETUP,       // function
176         [ 0x0c ] = KEY_KPPLUS,      // >>>
177 
178         [ 0x0d ] = KEY_GOTO,        // mts
179         [ 0x1d ] = KEY_REFRESH,     // reset
180         [ 0x18 ] = KEY_MUTE         // mute/unmute
181 };
182 
183 EXPORT_SYMBOL_GPL(ir_codes_pixelview);
184 
185 IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE] = {
186         [ 0x00 ] = KEY_0,
187         [ 0x01 ] = KEY_1,
188         [ 0x02 ] = KEY_2,
189         [ 0x03 ] = KEY_3,
190         [ 0x04 ] = KEY_4,
191         [ 0x05 ] = KEY_5,
192         [ 0x06 ] = KEY_6,
193         [ 0x07 ] = KEY_7,
194         [ 0x08 ] = KEY_8,
195         [ 0x09 ] = KEY_9,
196         [ 0x0a ] = KEY_TV,
197         [ 0x0b ] = KEY_AUX,
198         [ 0x0c ] = KEY_DVD,
199         [ 0x0d ] = KEY_POWER,
200         [ 0x0e ] = KEY_MHP,     /* labelled 'Picture' */
201         [ 0x0f ] = KEY_AUDIO,
202         [ 0x10 ] = KEY_INFO,
203         [ 0x11 ] = KEY_F13,     /* 16:9 */
204         [ 0x12 ] = KEY_F14,     /* 14:9 */
205         [ 0x13 ] = KEY_EPG,
206         [ 0x14 ] = KEY_EXIT,
207         [ 0x15 ] = KEY_MENU,
208         [ 0x16 ] = KEY_UP,
209         [ 0x17 ] = KEY_DOWN,
210         [ 0x18 ] = KEY_LEFT,
211         [ 0x19 ] = KEY_RIGHT,
212         [ 0x1a ] = KEY_ENTER,
213         [ 0x1b ] = KEY_CHANNELUP,
214         [ 0x1c ] = KEY_CHANNELDOWN,
215         [ 0x1d ] = KEY_VOLUMEUP,
216         [ 0x1e ] = KEY_VOLUMEDOWN,
217         [ 0x1f ] = KEY_RED,
218         [ 0x20 ] = KEY_GREEN,
219         [ 0x21 ] = KEY_YELLOW,
220         [ 0x22 ] = KEY_BLUE,
221         [ 0x23 ] = KEY_SUBTITLE,
222         [ 0x24 ] = KEY_F15,     /* AD */
223         [ 0x25 ] = KEY_TEXT,
224         [ 0x26 ] = KEY_MUTE,
225         [ 0x27 ] = KEY_REWIND,
226         [ 0x28 ] = KEY_STOP,
227         [ 0x29 ] = KEY_PLAY,
228         [ 0x2a ] = KEY_FASTFORWARD,
229         [ 0x2b ] = KEY_F16,     /* chapter */
230         [ 0x2c ] = KEY_PAUSE,
231         [ 0x2d ] = KEY_PLAY,
232         [ 0x2e ] = KEY_RECORD,
233         [ 0x2f ] = KEY_F17,     /* picture in picture */
234         [ 0x30 ] = KEY_KPPLUS,  /* zoom in */
235         [ 0x31 ] = KEY_KPMINUS, /* zoom out */
236         [ 0x32 ] = KEY_F18,     /* capture */
237         [ 0x33 ] = KEY_F19,     /* web */
238         [ 0x34 ] = KEY_EMAIL,
239         [ 0x35 ] = KEY_PHONE,
240         [ 0x36 ] = KEY_PC
241 };
242 
243 EXPORT_SYMBOL_GPL(ir_codes_nebula);
244 
245 /* DigitalNow DNTV Live DVB-T Remote */
246 IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = {
247         [ 0x00 ] = KEY_ESC,             /* 'go up a level?' */
248         /* Keys 0 to 9 */
249         [ 0x0a ] = KEY_0,
250         [ 0x01 ] = KEY_1,
251         [ 0x02 ] = KEY_2,
252         [ 0x03 ] = KEY_3,
253         [ 0x04 ] = KEY_4,
254         [ 0x05 ] = KEY_5,
255         [ 0x06 ] = KEY_6,
256         [ 0x07 ] = KEY_7,
257         [ 0x08 ] = KEY_8,
258         [ 0x09 ] = KEY_9,
259 
260         [ 0x0b ] = KEY_TUNER,           /* tv/fm */
261         [ 0x0c ] = KEY_SEARCH,          /* scan */
262         [ 0x0d ] = KEY_STOP,
263         [ 0x0e ] = KEY_PAUSE,
264         [ 0x0f ] = KEY_LIST,            /* source */
265 
266         [ 0x10 ] = KEY_MUTE,
267         [ 0x11 ] = KEY_REWIND,          /* backward << */
268         [ 0x12 ] = KEY_POWER,
269         [ 0x13 ] = KEY_S,                       /* snap */
270         [ 0x14 ] = KEY_AUDIO,           /* stereo */
271         [ 0x15 ] = KEY_CLEAR,           /* reset */
272         [ 0x16 ] = KEY_PLAY,
273         [ 0x17 ] = KEY_ENTER,
274         [ 0x18 ] = KEY_ZOOM,            /* full screen */
275         [ 0x19 ] = KEY_FASTFORWARD,     /* forward >> */
276         [ 0x1a ] = KEY_CHANNELUP,
277         [ 0x1b ] = KEY_VOLUMEUP,
278         [ 0x1c ] = KEY_INFO,            /* preview */
279         [ 0x1d ] = KEY_RECORD,          /* record */
280         [ 0x1e ] = KEY_CHANNELDOWN,
281         [ 0x1f ] = KEY_VOLUMEDOWN,
282 };
283 
284 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvb_t);
285 
286 /* ---------------------------------------------------------------------- */
287 
288 /* IO-DATA BCTV7E Remote */
289 IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = {
290         [ 0x40 ] = KEY_TV,
291         [ 0x20 ] = KEY_RADIO,           /* FM */
292         [ 0x60 ] = KEY_EPG,
293         [ 0x00 ] = KEY_POWER,
294 
295         /* Keys 0 to 9 */
296         [ 0x44 ] = KEY_0,               /* 10 */
297         [ 0x50 ] = KEY_1,
298         [ 0x30 ] = KEY_2,
299         [ 0x70 ] = KEY_3,
300         [ 0x48 ] = KEY_4,
301         [ 0x28 ] = KEY_5,
302         [ 0x68 ] = KEY_6,
303         [ 0x58 ] = KEY_7,
304         [ 0x38 ] = KEY_8,
305         [ 0x78 ] = KEY_9,
306 
307         [ 0x10 ] = KEY_L,                       /* Live */
308         [ 0x08 ] = KEY_T,                       /* Time Shift */
309 
310         [ 0x18 ] = KEY_PLAYPAUSE,               /* Play */
311 
312         [ 0x24 ] = KEY_ENTER,           /* 11 */
313         [ 0x64 ] = KEY_ESC,             /* 12 */
314         [ 0x04 ] = KEY_M,                       /* Multi */
315 
316         [ 0x54 ] = KEY_VIDEO,
317         [ 0x34 ] = KEY_CHANNELUP,
318         [ 0x74 ] = KEY_VOLUMEUP,
319         [ 0x14 ] = KEY_MUTE,
320 
321         [ 0x4c ] = KEY_S,                       /* SVIDEO */
322         [ 0x2c ] = KEY_CHANNELDOWN,
323         [ 0x6c ] = KEY_VOLUMEDOWN,
324         [ 0x0c ] = KEY_ZOOM,
325 
326         [ 0x5c ] = KEY_PAUSE,
327         [ 0x3c ] = KEY_C,                       /* || (red) */
328         [ 0x7c ] = KEY_RECORD,          /* recording */
329         [ 0x1c ] = KEY_STOP,
330 
331         [ 0x41 ] = KEY_REWIND,          /* backward << */
332         [ 0x21 ] = KEY_PLAY,
333         [ 0x61 ] = KEY_FASTFORWARD,     /* forward >> */
334         [ 0x01 ] = KEY_NEXT,            /* skip >| */
335 };
336 
337 EXPORT_SYMBOL_GPL(ir_codes_iodata_bctv7e);
338 
339 /* ---------------------------------------------------------------------- */
340 
341 /* ADS Tech Instant TV DVB-T PCI Remote */
342 IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = {
343         /* Keys 0 to 9 */
344         [ 0x4d ] = KEY_0,
345         [ 0x57 ] = KEY_1,
346         [ 0x4f ] = KEY_2,
347         [ 0x53 ] = KEY_3,
348         [ 0x56 ] = KEY_4,
349         [ 0x4e ] = KEY_5,
350         [ 0x5e ] = KEY_6,
351         [ 0x54 ] = KEY_7,
352         [ 0x4c ] = KEY_8,
353         [ 0x5c ] = KEY_9,
354 
355         [ 0x5b ] = KEY_POWER,
356         [ 0x5f ] = KEY_MUTE,
357         [ 0x55 ] = KEY_GOTO,
358         [ 0x5d ] = KEY_SEARCH,
359         [ 0x17 ] = KEY_EPG,             /* Guide */
360         [ 0x1f ] = KEY_MENU,
361         [ 0x0f ] = KEY_UP,
362         [ 0x46 ] = KEY_DOWN,
363         [ 0x16 ] = KEY_LEFT,
364         [ 0x1e ] = KEY_RIGHT,
365         [ 0x0e ] = KEY_SELECT,          /* Enter */
366         [ 0x5a ] = KEY_INFO,
367         [ 0x52 ] = KEY_EXIT,
368         [ 0x59 ] = KEY_PREVIOUS,
369         [ 0x51 ] = KEY_NEXT,
370         [ 0x58 ] = KEY_REWIND,
371         [ 0x50 ] = KEY_FORWARD,
372         [ 0x44 ] = KEY_PLAYPAUSE,
373         [ 0x07 ] = KEY_STOP,
374         [ 0x1b ] = KEY_RECORD,
375         [ 0x13 ] = KEY_TUNER,           /* Live */
376         [ 0x0a ] = KEY_A,
377         [ 0x12 ] = KEY_B,
378         [ 0x03 ] = KEY_PROG1,           /* 1 */
379         [ 0x01 ] = KEY_PROG2,           /* 2 */
380         [ 0x00 ] = KEY_PROG3,           /* 3 */
381         [ 0x06 ] = KEY_DVD,
382         [ 0x48 ] = KEY_AUX,             /* Photo */
383         [ 0x40 ] = KEY_VIDEO,
384         [ 0x19 ] = KEY_AUDIO,           /* Music */
385         [ 0x0b ] = KEY_CHANNELUP,
386         [ 0x08 ] = KEY_CHANNELDOWN,
387         [ 0x15 ] = KEY_VOLUMEUP,
388         [ 0x1c ] = KEY_VOLUMEDOWN,
389 };
390 
391 EXPORT_SYMBOL_GPL(ir_codes_adstech_dvb_t_pci);
392 
393 /* ---------------------------------------------------------------------- */
394 
395 /* MSI TV@nywhere remote */
396 IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = {
397         /* Keys 0 to 9 */
398         [ 0x00 ] = KEY_0,
399         [ 0x01 ] = KEY_1,
400         [ 0x02 ] = KEY_2,
401         [ 0x03 ] = KEY_3,
402         [ 0x04 ] = KEY_4,
403         [ 0x05 ] = KEY_5,
404         [ 0x06 ] = KEY_6,
405         [ 0x07 ] = KEY_7,
406         [ 0x08 ] = KEY_8,
407         [ 0x09 ] = KEY_9,
408 
409         [ 0x0c ] = KEY_MUTE,
410         [ 0x0f ] = KEY_SCREEN,          /* Full Screen */
411         [ 0x10 ] = KEY_F,                       /* Funtion */
412         [ 0x11 ] = KEY_T,                       /* Time shift */
413         [ 0x12 ] = KEY_POWER,
414         [ 0x13 ] = KEY_MEDIA,           /* MTS */
415         [ 0x14 ] = KEY_SLOW,
416         [ 0x16 ] = KEY_REWIND,          /* backward << */
417         [ 0x17 ] = KEY_ENTER,           /* Return */
418         [ 0x18 ] = KEY_FASTFORWARD,     /* forward >> */
419         [ 0x1a ] = KEY_CHANNELUP,
420         [ 0x1b ] = KEY_VOLUMEUP,
421         [ 0x1e ] = KEY_CHANNELDOWN,
422         [ 0x1f ] = KEY_VOLUMEDOWN,
423 };
424 
425 EXPORT_SYMBOL_GPL(ir_codes_msi_tvanywhere);
426 
427 /* ---------------------------------------------------------------------- */
428 
429 /* Cinergy 1400 DVB-T */
430 IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = {
431         [ 0x01 ] = KEY_POWER,
432         [ 0x02 ] = KEY_1,
433         [ 0x03 ] = KEY_2,
434         [ 0x04 ] = KEY_3,
435         [ 0x05 ] = KEY_4,
436         [ 0x06 ] = KEY_5,
437         [ 0x07 ] = KEY_6,
438         [ 0x08 ] = KEY_7,
439         [ 0x09 ] = KEY_8,
440         [ 0x0a ] = KEY_9,
441         [ 0x0c ] = KEY_0,
442 
443         [ 0x0b ] = KEY_VIDEO,
444         [ 0x0d ] = KEY_REFRESH,
445         [ 0x0e ] = KEY_SELECT,
446         [ 0x0f ] = KEY_EPG,
447         [ 0x10 ] = KEY_UP,
448         [ 0x11 ] = KEY_LEFT,
449         [ 0x12 ] = KEY_OK,
450         [ 0x13 ] = KEY_RIGHT,
451         [ 0x14 ] = KEY_DOWN,
452         [ 0x15 ] = KEY_TEXT,
453         [ 0x16 ] = KEY_INFO,
454 
455         [ 0x17 ] = KEY_RED,
456         [ 0x18 ] = KEY_GREEN,
457         [ 0x19 ] = KEY_YELLOW,
458         [ 0x1a ] = KEY_BLUE,
459 
460         [ 0x1b ] = KEY_CHANNELUP,
461         [ 0x1c ] = KEY_VOLUMEUP,
462         [ 0x1d ] = KEY_MUTE,
463         [ 0x1e ] = KEY_VOLUMEDOWN,
464         [ 0x1f ] = KEY_CHANNELDOWN,
465 
466         [ 0x40 ] = KEY_PAUSE,
467         [ 0x4c ] = KEY_PLAY,
468         [ 0x58 ] = KEY_RECORD,
469         [ 0x54 ] = KEY_PREVIOUS,
470         [ 0x48 ] = KEY_STOP,
471         [ 0x5c ] = KEY_NEXT,
472 };
473 
474 EXPORT_SYMBOL_GPL(ir_codes_cinergy_1400);
475 
476 /* ---------------------------------------------------------------------- */
477 
478 /* AVERTV STUDIO 303 Remote */
479 IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = {
480         [ 0x2a ] = KEY_1,
481         [ 0x32 ] = KEY_2,
482         [ 0x3a ] = KEY_3,
483         [ 0x4a ] = KEY_4,
484         [ 0x52 ] = KEY_5,
485         [ 0x5a ] = KEY_6,
486         [ 0x6a ] = KEY_7,
487         [ 0x72 ] = KEY_8,
488         [ 0x7a ] = KEY_9,
489         [ 0x0e ] = KEY_0,
490 
491         [ 0x02 ] = KEY_POWER,
492         [ 0x22 ] = KEY_VIDEO,
493         [ 0x42 ] = KEY_AUDIO,
494         [ 0x62 ] = KEY_ZOOM,
495         [ 0x0a ] = KEY_TV,
496         [ 0x12 ] = KEY_CD,
497         [ 0x1a ] = KEY_TEXT,
498 
499         [ 0x16 ] = KEY_SUBTITLE,
500         [ 0x1e ] = KEY_REWIND,
501         [ 0x06 ] = KEY_PRINT,
502 
503         [ 0x2e ] = KEY_SEARCH,
504         [ 0x36 ] = KEY_SLEEP,
505         [ 0x3e ] = KEY_SHUFFLE,
506         [ 0x26 ] = KEY_MUTE,
507 
508         [ 0x4e ] = KEY_RECORD,
509         [ 0x56 ] = KEY_PAUSE,
510         [ 0x5e ] = KEY_STOP,
511         [ 0x46 ] = KEY_PLAY,
512 
513         [ 0x6e ] = KEY_RED,
514         [ 0x0b ] = KEY_GREEN,
515         [ 0x66 ] = KEY_YELLOW,
516         [ 0x03 ] = KEY_BLUE,
517 
518         [ 0x76 ] = KEY_LEFT,
519         [ 0x7e ] = KEY_RIGHT,
520         [ 0x13 ] = KEY_DOWN,
521         [ 0x1b ] = KEY_UP,
522 };
523 
524 EXPORT_SYMBOL_GPL(ir_codes_avertv_303);
525 
526 /* ---------------------------------------------------------------------- */
527 
528 /* DigitalNow DNTV Live! DVB-T Pro Remote */
529 IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = {
530         [ 0x16 ] = KEY_POWER,
531         [ 0x5b ] = KEY_HOME,
532 
533         [ 0x55 ] = KEY_TV,              /* live tv */
534         [ 0x58 ] = KEY_TUNER,           /* digital Radio */
535         [ 0x5a ] = KEY_RADIO,           /* FM radio */
536         [ 0x59 ] = KEY_DVD,             /* dvd menu */
537         [ 0x03 ] = KEY_1,
538         [ 0x01 ] = KEY_2,
539         [ 0x06 ] = KEY_3,
540         [ 0x09 ] = KEY_4,
541         [ 0x1d ] = KEY_5,
542         [ 0x1f ] = KEY_6,
543         [ 0x0d ] = KEY_7,
544         [ 0x19 ] = KEY_8,
545         [ 0x1b ] = KEY_9,
546         [ 0x0c ] = KEY_CANCEL,
547         [ 0x15 ] = KEY_0,
548         [ 0x4a ] = KEY_CLEAR,
549         [ 0x13 ] = KEY_BACK,
550         [ 0x00 ] = KEY_TAB,
551         [ 0x4b ] = KEY_UP,
552         [ 0x4e ] = KEY_LEFT,
553         [ 0x4f ] = KEY_OK,
554         [ 0x52 ] = KEY_RIGHT,
555         [ 0x51 ] = KEY_DOWN,
556         [ 0x1e ] = KEY_VOLUMEUP,
557         [ 0x0a ] = KEY_VOLUMEDOWN,
558         [ 0x02 ] = KEY_CHANNELDOWN,
559         [ 0x05 ] = KEY_CHANNELUP,
560         [ 0x11 ] = KEY_RECORD,
561         [ 0x14 ] = KEY_PLAY,
562         [ 0x4c ] = KEY_PAUSE,
563         [ 0x1a ] = KEY_STOP,
564         [ 0x40 ] = KEY_REWIND,
565         [ 0x12 ] = KEY_FASTFORWARD,
566         [ 0x41 ] = KEY_PREVIOUSSONG,    /* replay |< */
567         [ 0x42 ] = KEY_NEXTSONG,        /* skip >| */
568         [ 0x54 ] = KEY_CAMERA,          /* capture */
569         [ 0x50 ] = KEY_LANGUAGE,        /* sap */
570         [ 0x47 ] = KEY_TV2,             /* pip */
571         [ 0x4d ] = KEY_SCREEN,
572         [ 0x43 ] = KEY_SUBTITLE,
573         [ 0x10 ] = KEY_MUTE,
574         [ 0x49 ] = KEY_AUDIO,           /* l/r */
575         [ 0x07 ] = KEY_SLEEP,
576         [ 0x08 ] = KEY_VIDEO,           /* a/v */
577         [ 0x0e ] = KEY_PREVIOUS,        /* recall */
578         [ 0x45 ] = KEY_ZOOM,            /* zoom + */
579         [ 0x46 ] = KEY_ANGLE,           /* zoom - */
580         [ 0x56 ] = KEY_RED,
581         [ 0x57 ] = KEY_GREEN,
582         [ 0x5c ] = KEY_YELLOW,
583         [ 0x5d ] = KEY_BLUE,
584 };
585 
586 EXPORT_SYMBOL_GPL(ir_codes_dntv_live_dvbt_pro);
587 
588 IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE] = {
589         [ 0x01 ] = KEY_CHANNEL,
590         [ 0x02 ] = KEY_SELECT,
591         [ 0x03 ] = KEY_MUTE,
592         [ 0x04 ] = KEY_POWER,
593         [ 0x05 ] = KEY_1,
594         [ 0x06 ] = KEY_2,
595         [ 0x07 ] = KEY_3,
596         [ 0x08 ] = KEY_CHANNELUP,
597         [ 0x09 ] = KEY_4,
598         [ 0x0a ] = KEY_5,
599         [ 0x0b ] = KEY_6,
600         [ 0x0c ] = KEY_CHANNELDOWN,
601         [ 0x0d ] = KEY_7,
602         [ 0x0e ] = KEY_8,
603         [ 0x0f ] = KEY_9,
604         [ 0x10 ] = KEY_VOLUMEUP,
605         [ 0x11 ] = KEY_0,
606         [ 0x12 ] = KEY_MENU,
607         [ 0x13 ] = KEY_PRINT,
608         [ 0x14 ] = KEY_VOLUMEDOWN,
609         [ 0x16 ] = KEY_PAUSE,
610         [ 0x18 ] = KEY_RECORD,
611         [ 0x19 ] = KEY_REWIND,
612         [ 0x1a ] = KEY_PLAY,
613         [ 0x1b ] = KEY_FORWARD,
614         [ 0x1c ] = KEY_BACKSPACE,
615         [ 0x1e ] = KEY_STOP,
616         [ 0x40 ] = KEY_ZOOM,
617 };
618 
619 EXPORT_SYMBOL_GPL(ir_codes_em_terratec);
620 
621 IR_KEYTAB_TYPE ir_codes_em_pinnacle_usb[IR_KEYTAB_SIZE] = {
622         [ 0x3a ] = KEY_0,
623         [ 0x31 ] = KEY_1,
624         [ 0x32 ] = KEY_2,
625         [ 0x33 ] = KEY_3,
626         [ 0x34 ] = KEY_4,
627         [ 0x35 ] = KEY_5,
628         [ 0x36 ] = KEY_6,
629         [ 0x37 ] = KEY_7,
630         [ 0x38 ] = KEY_8,
631         [ 0x39 ] = KEY_9,
632 
633         [ 0x2f ] = KEY_POWER,
634 
635         [ 0x2e ] = KEY_P,
636         [ 0x1f ] = KEY_L,
637         [ 0x2b ] = KEY_I,
638 
639         [ 0x2d ] = KEY_ZOOM,
640         [ 0x1e ] = KEY_ZOOM,
641         [ 0x1b ] = KEY_VOLUMEUP,
642         [ 0x0f ] = KEY_VOLUMEDOWN,
643         [ 0x17 ] = KEY_CHANNELUP,
644         [ 0x1c ] = KEY_CHANNELDOWN,
645         [ 0x25 ] = KEY_INFO,
646 
647         [ 0x3c ] = KEY_MUTE,
648 
649         [ 0x3d ] = KEY_LEFT,
650         [ 0x3b ] = KEY_RIGHT,
651 
652         [ 0x3f ] = KEY_UP,
653         [ 0x3e ] = KEY_DOWN,
654         [ 0x1a ] = KEY_PAUSE,
655 
656         [ 0x1d ] = KEY_MENU,
657         [ 0x19 ] = KEY_PLAY,
658         [ 0x16 ] = KEY_REWIND,
659         [ 0x13 ] = KEY_FORWARD,
660         [ 0x15 ] = KEY_PAUSE,
661         [ 0x0e ] = KEY_REWIND,
662         [ 0x0d ] = KEY_PLAY,
663         [ 0x0b ] = KEY_STOP,
664         [ 0x07 ] = KEY_FORWARD,
665         [ 0x27 ] = KEY_RECORD,
666         [ 0x26 ] = KEY_TUNER,
667         [ 0x29 ] = KEY_TEXT,
668         [ 0x2a ] = KEY_MEDIA,
669         [ 0x18 ] = KEY_EPG,
670         [ 0x27 ] = KEY_RECORD,
671 };
672 
673 EXPORT_SYMBOL_GPL(ir_codes_em_pinnacle_usb);
674 
675 IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE] = {
676         [ 0x0f ] = KEY_0,
677         [ 0x03 ] = KEY_1,
678         [ 0x04 ] = KEY_2,
679         [ 0x05 ] = KEY_3,
680         [ 0x07 ] = KEY_4,
681         [ 0x08 ] = KEY_5,
682         [ 0x09 ] = KEY_6,
683         [ 0x0b ] = KEY_7,
684         [ 0x0c ] = KEY_8,
685         [ 0x0d ] = KEY_9,
686 
687         [ 0x0e ] = KEY_MODE,         // Air/Cable
688         [ 0x11 ] = KEY_VIDEO,        // Video
689         [ 0x15 ] = KEY_AUDIO,        // Audio
690         [ 0x00 ] = KEY_POWER,        // Power
691         [ 0x18 ] = KEY_TUNER,        // AV Source
692         [ 0x02 ] = KEY_ZOOM,         // Fullscreen
693         [ 0x1a ] = KEY_LANGUAGE,     // Stereo
694         [ 0x1b ] = KEY_MUTE,         // Mute
695         [ 0x14 ] = KEY_VOLUMEUP,     // Volume +
696         [ 0x17 ] = KEY_VOLUMEDOWN,   // Volume -
697         [ 0x12 ] = KEY_CHANNELUP,    // Channel +
698         [ 0x13 ] = KEY_CHANNELDOWN,  // Channel -
699         [ 0x06 ] = KEY_AGAIN,        // Recall
700         [ 0x10 ] = KEY_ENTER,      // Enter
701 };
702 
703 EXPORT_SYMBOL_GPL(ir_codes_flyvideo);
704 
705 IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE] = {
706         [ 0x01 ] = KEY_ZOOM,            // Full Screen
707         [ 0x00 ] = KEY_POWER,           // Power
708 
709         [ 0x03 ] = KEY_1,
710         [ 0x04 ] = KEY_2,
711         [ 0x05 ] = KEY_3,
712         [ 0x07 ] = KEY_4,
713         [ 0x08 ] = KEY_5,
714         [ 0x09 ] = KEY_6,
715         [ 0x0b ] = KEY_7,
716         [ 0x0c ] = KEY_8,
717         [ 0x0d ] = KEY_9,
718         [ 0x06 ] = KEY_AGAIN,           // Recall
719         [ 0x0f ] = KEY_0,
720         [ 0x10 ] = KEY_MUTE,            // Mute
721         [ 0x02 ] = KEY_RADIO,           // TV/Radio
722         [ 0x1b ] = KEY_LANGUAGE,                // SAP (Second Audio Program)
723 
724         [ 0x14 ] = KEY_VOLUMEUP,                // VOL+
725         [ 0x17 ] = KEY_VOLUMEDOWN,      // VOL-
726         [ 0x12 ] = KEY_CHANNELUP,               // CH+
727         [ 0x13 ] = KEY_CHANNELDOWN,     // CH-
728         [ 0x1d ] = KEY_ENTER,           // Enter
729 
730         [ 0x1a ] = KEY_MODE,            // PIP
731         [ 0x18 ] = KEY_TUNER,           // Source
732 
733         [ 0x1e ] = KEY_RECORD,          // Record/Pause
734         [ 0x15 ] = KEY_ANGLE,           // Swap (no label on key)
735         [ 0x1c ] = KEY_PAUSE,           // Timeshift/Pause
736         [ 0x19 ] = KEY_BACK,            // Rewind <<
737         [ 0x0a ] = KEY_PLAYPAUSE,               // Play/Pause
738         [ 0x1f ] = KEY_FORWARD,         // Forward >>
739         [ 0x16 ] = KEY_PREVIOUS,                // Back |<<
740         [ 0x11 ] = KEY_STOP,            // Stop
741         [ 0x0e ] = KEY_NEXT,            // End >>|
742 };
743 
744 EXPORT_SYMBOL_GPL(ir_codes_flydvb);
745 
746 IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE] = {
747         [ 0x00 ] = KEY_0,
748         [ 0x01 ] = KEY_1,
749         [ 0x02 ] = KEY_2,
750         [ 0x03 ] = KEY_3,
751         [ 0x04 ] = KEY_4,
752         [ 0x05 ] = KEY_5,
753         [ 0x06 ] = KEY_6,
754         [ 0x07 ] = KEY_7,
755         [ 0x08 ] = KEY_8,
756         [ 0x09 ] = KEY_9,
757 
758         [ 0x0a ] = KEY_POWER,
759         [ 0x0b ] = KEY_PROG1,           // app
760         [ 0x0c ] = KEY_ZOOM,            // zoom/fullscreen
761         [ 0x0d ] = KEY_CHANNELUP,       // channel
762         [ 0x0e ] = KEY_CHANNELDOWN,     // channel-
763         [ 0x0f ] = KEY_VOLUMEUP,
764         [ 0x10 ] = KEY_VOLUMEDOWN,
765         [ 0x11 ] = KEY_TUNER,           // AV
766         [ 0x12 ] = KEY_NUMLOCK,         // -/--
767         [ 0x13 ] = KEY_AUDIO,           // audio
768         [ 0x14 ] = KEY_MUTE,
769         [ 0x15 ] = KEY_UP,
770         [ 0x16 ] = KEY_DOWN,
771         [ 0x17 ] = KEY_LEFT,
772         [ 0x18 ] = KEY_RIGHT,
773         [ 0x19 ] = BTN_LEFT,
774         [ 0x1a ] = BTN_RIGHT,
775         [ 0x1b ] = KEY_WWW,             // text
776         [ 0x1c ] = KEY_REWIND,
777         [ 0x1d ] = KEY_FORWARD,
778         [ 0x1e ] = KEY_RECORD,
779         [ 0x1f ] = KEY_PLAY,
780         [ 0x20 ] = KEY_PREVIOUSSONG,
781         [ 0x21 ] = KEY_NEXTSONG,
782         [ 0x22 ] = KEY_PAUSE,
783         [ 0x23 ] = KEY_STOP,
784 };
785 
786 EXPORT_SYMBOL_GPL(ir_codes_cinergy);
787 
788 /* Alfons Geser <a.geser@cox.net>
789  * updates from Job D. R. Borges <jobdrb@ig.com.br> */
790 IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE] = {
791         [ 0x12 ] = KEY_POWER,
792         [ 0x01 ] = KEY_TV,             // DVR
793         [ 0x15 ] = KEY_DVD,            // DVD
794         [ 0x17 ] = KEY_AUDIO,          // music
795                                      // DVR mode / DVD mode / music mode
796 
797         [ 0x1b ] = KEY_MUTE,           // mute
798         [ 0x02 ] = KEY_LANGUAGE,       // MTS/SAP / audio / autoseek
799         [ 0x1e ] = KEY_SUBTITLE,       // closed captioning / subtitle / seek
800         [ 0x16 ] = KEY_ZOOM,           // full screen
801         [ 0x1c ] = KEY_VIDEO,          // video source / eject / delall
802         [ 0x1d ] = KEY_RESTART,        // playback / angle / del
803         [ 0x2f ] = KEY_SEARCH,         // scan / menu / playlist
804         [ 0x30 ] = KEY_CHANNEL,        // CH surfing / bookmark / memo
805 
806         [ 0x31 ] = KEY_HELP,           // help
807         [ 0x32 ] = KEY_MODE,           // num/memo
808         [ 0x33 ] = KEY_ESC,            // cancel
809 
810         [ 0x0c ] = KEY_UP,             // up
811         [ 0x10 ] = KEY_DOWN,           // down
812         [ 0x08 ] = KEY_LEFT,           // left
813         [ 0x04 ] = KEY_RIGHT,          // right
814         [ 0x03 ] = KEY_SELECT,         // select
815 
816         [ 0x1f ] = KEY_REWIND,         // rewind
817         [ 0x20 ] = KEY_PLAYPAUSE,      // play/pause
818         [ 0x29 ] = KEY_FORWARD,        // forward
819         [ 0x14 ] = KEY_AGAIN,          // repeat
820         [ 0x2b ] = KEY_RECORD,         // recording
821         [ 0x2c ] = KEY_STOP,           // stop
822         [ 0x2d ] = KEY_PLAY,           // play
823         [ 0x2e ] = KEY_SHUFFLE,        // snapshot / shuffle
824 
825         [ 0x00 ] = KEY_0,
826         [ 0x05 ] = KEY_1,
827         [ 0x06 ] = KEY_2,
828         [ 0x07 ] = KEY_3,
829         [ 0x09 ] = KEY_4,
830         [ 0x0a ] = KEY_5,
831         [ 0x0b ] = KEY_6,
832         [ 0x0d ] = KEY_7,
833         [ 0x0e ] = KEY_8,
834         [ 0x0f ] = KEY_9,
835 
836         [ 0x2a ] = KEY_VOLUMEUP,
837         [ 0x11 ] = KEY_VOLUMEDOWN,
838         [ 0x18 ] = KEY_CHANNELUP,      // CH.tracking up
839         [ 0x19 ] = KEY_CHANNELDOWN,    // CH.tracking down
840 
841         [ 0x13 ] = KEY_ENTER,        // enter
842         [ 0x21 ] = KEY_DOT,          // . (decimal dot)
843 };
844 
845 EXPORT_SYMBOL_GPL(ir_codes_eztv);
846 
847 /* Alex Hermann <gaaf@gmx.net> */
848 IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE] = {
849         [ 0x28 ] = KEY_1,
850         [ 0x18 ] = KEY_2,
851         [ 0x38 ] = KEY_3,
852         [ 0x24 ] = KEY_4,
853         [ 0x14 ] = KEY_5,
854         [ 0x34 ] = KEY_6,
855         [ 0x2c ] = KEY_7,
856         [ 0x1c ] = KEY_8,
857         [ 0x3c ] = KEY_9,
858         [ 0x22 ] = KEY_0,
859 
860         [ 0x20 ] = KEY_TV,              /* TV/FM */
861         [ 0x10 ] = KEY_CD,              /* CD */
862         [ 0x30 ] = KEY_TEXT,            /* TELETEXT */
863         [ 0x00 ] = KEY_POWER,           /* POWER */
864 
865         [ 0x08 ] = KEY_VIDEO,           /* VIDEO */
866         [ 0x04 ] = KEY_AUDIO,           /* AUDIO */
867         [ 0x0c ] = KEY_ZOOM,            /* FULL SCREEN */
868 
869         [ 0x12 ] = KEY_SUBTITLE,        /* DISPLAY */
870         [ 0x32 ] = KEY_REWIND,          /* LOOP */
871         [ 0x02 ] = KEY_PRINT,           /* PREVIEW */
872 
873         [ 0x2a ] = KEY_SEARCH,          /* AUTOSCAN */
874         [ 0x1a ] = KEY_SLEEP,           /* FREEZE */
875         [ 0x3a ] = KEY_SHUFFLE,         /* SNAPSHOT */
876         [ 0x0a ] = KEY_MUTE,            /* MUTE */
877 
878         [ 0x26 ] = KEY_RECORD,          /* RECORD */
879         [ 0x16 ] = KEY_PAUSE,           /* PAUSE */
880         [ 0x36 ] = KEY_STOP,            /* STOP */
881         [ 0x06 ] = KEY_PLAY,            /* PLAY */
882 
883         [ 0x2e ] = KEY_RED,             /* RED */
884         [ 0x21 ] = KEY_GREEN,           /* GREEN */
885         [ 0x0e ] = KEY_YELLOW,          /* YELLOW */
886         [ 0x01 ] = KEY_BLUE,            /* BLUE */
887 
888         [ 0x1e ] = KEY_VOLUMEDOWN,      /* VOLUME- */
889         [ 0x3e ] = KEY_VOLUMEUP,        /* VOLUME+ */
890         [ 0x11 ] = KEY_CHANNELDOWN,     /* CHANNEL/PAGE- */
891         [ 0x31 ] = KEY_CHANNELUP        /* CHANNEL/PAGE+ */
892 };
893 
894 EXPORT_SYMBOL_GPL(ir_codes_avermedia);
895 
896 IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE] = {
897         [ 0x14 ] = KEY_MUTE,
898         [ 0x24 ] = KEY_ZOOM,
899 
900         [ 0x01 ] = KEY_DVD,
901         [ 0x23 ] = KEY_RADIO,
902         [ 0x00 ] = KEY_TV,
903 
904         [ 0x0a ] = KEY_REWIND,
905         [ 0x08 ] = KEY_PLAYPAUSE,
906         [ 0x0f ] = KEY_FORWARD,
907 
908         [ 0x02 ] = KEY_PREVIOUS,
909         [ 0x07 ] = KEY_STOP,
910         [ 0x06 ] = KEY_NEXT,
911 
912         [ 0x0c ] = KEY_UP,
913         [ 0x0e ] = KEY_DOWN,
914         [ 0x0b ] = KEY_LEFT,
915         [ 0x0d ] = KEY_RIGHT,
916         [ 0x11 ] = KEY_OK,
917 
918         [ 0x03 ] = KEY_MENU,
919         [ 0x09 ] = KEY_SETUP,
92