blob: 32998d6b787d50f260c4e93d82c4a39d87741d95 [file] [log] [blame]
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -03001/* kworld-plus-tv-analog.h - Keytable for kworld_plus_tv_analog Remote Controller
2 *
3 * keymap imported from ir-keymaps.c
4 *
5 * Copyright (c) 2010 by Mauro Carvalho Chehab <mchehab@redhat.com>
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
13#include <media/rc-map.h>
Paul Gortmaker7a707b82011-07-03 14:03:12 -040014#include <linux/module.h>
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030015
16/* Kworld Plus TV Analog Lite PCI IR
17 Mauro Carvalho Chehab <mchehab@infradead.org>
18 */
19
Mauro Carvalho Chehab2f4f58d2010-11-17 15:46:09 -030020static struct rc_map_table kworld_plus_tv_analog[] = {
Jarod Wilson56c08932011-04-05 18:42:30 -030021 { 0x0c, KEY_MEDIA }, /* Kworld key */
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030022 { 0x16, KEY_CLOSECD }, /* -> ) */
23 { 0x1d, KEY_POWER2 },
24
25 { 0x00, KEY_1 },
26 { 0x01, KEY_2 },
27 { 0x02, KEY_3 }, /* Two keys have the same code: 3 and left */
28 { 0x03, KEY_4 }, /* Two keys have the same code: 3 and right */
29 { 0x04, KEY_5 },
30 { 0x05, KEY_6 },
31 { 0x06, KEY_7 },
32 { 0x07, KEY_8 },
33 { 0x08, KEY_9 },
34 { 0x0a, KEY_0 },
35
36 { 0x09, KEY_AGAIN },
37 { 0x14, KEY_MUTE },
38
39 { 0x20, KEY_UP },
40 { 0x21, KEY_DOWN },
41 { 0x0b, KEY_ENTER },
42
43 { 0x10, KEY_CHANNELUP },
44 { 0x11, KEY_CHANNELDOWN },
45
46 /* Couldn't map key left/key right since those
47 conflict with '3' and '4' scancodes
48 I dunno what the original driver does
49 */
50
51 { 0x13, KEY_VOLUMEUP },
52 { 0x12, KEY_VOLUMEDOWN },
53
54 /* The lower part of the IR
55 There are several duplicated keycodes there.
56 Most of them conflict with digits.
57 Add mappings just to the unused scancodes.
58 Somehow, the original driver has a way to know,
59 but this doesn't seem to be on some GPIO.
60 Also, it is not related to the time between keyup
61 and keydown.
62 */
63 { 0x19, KEY_TIME}, /* Timeshift */
64 { 0x1a, KEY_STOP},
65 { 0x1b, KEY_RECORD},
66
67 { 0x22, KEY_TEXT},
68
69 { 0x15, KEY_AUDIO}, /* ((*)) */
70 { 0x0f, KEY_ZOOM},
71 { 0x1c, KEY_CAMERA}, /* snapshot */
72
73 { 0x18, KEY_RED}, /* B */
74 { 0x23, KEY_GREEN}, /* C */
75};
76
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -030077static struct rc_map_list kworld_plus_tv_analog_map = {
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030078 .map = {
79 .scan = kworld_plus_tv_analog,
80 .size = ARRAY_SIZE(kworld_plus_tv_analog),
Mauro Carvalho Chehab52b66142010-11-17 14:20:52 -030081 .rc_type = RC_TYPE_UNKNOWN, /* Legacy IR type */
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030082 .name = RC_MAP_KWORLD_PLUS_TV_ANALOG,
83 }
84};
85
86static int __init init_rc_map_kworld_plus_tv_analog(void)
87{
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -030088 return rc_map_register(&kworld_plus_tv_analog_map);
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030089}
90
91static void __exit exit_rc_map_kworld_plus_tv_analog(void)
92{
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -030093 rc_map_unregister(&kworld_plus_tv_analog_map);
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030094}
95
96module_init(init_rc_map_kworld_plus_tv_analog)
97module_exit(exit_rc_map_kworld_plus_tv_analog)
98
99MODULE_LICENSE("GPL");
100MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");