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