Commit | Line | Data |
---|---|---|
a17b738c ES |
1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | /* | |
3 | * Copyright (c) 2021 Emanuel Strobel <emanuel.strobel@yahoo.com> | |
4 | */ | |
5 | ||
6 | #include <media/rc-map.h> | |
7 | #include <linux/module.h> | |
8 | ||
9 | /* | |
10 | * Keytable for Dreambox RC10/RC0 and RC20/RC-BT remote controls | |
11 | * | |
12 | * Keys that are not IR addressable: | |
13 | * | |
14 | * // DREAM switches to STB control mode | |
15 | * // TV switches to TV control mode | |
16 | * // MODE toggles STB/TV/BT control modes | |
17 | * | |
18 | */ | |
19 | ||
20 | static struct rc_map_table dreambox[] = { | |
21 | /* Dreambox RC10/RC0/RCU-BT remote */ | |
22 | { 0x3200, KEY_POWER }, | |
23 | ||
24 | // DREAM | |
25 | { 0x3290, KEY_HELP }, | |
26 | // TV | |
27 | ||
28 | { 0x3201, KEY_1 }, | |
29 | { 0x3202, KEY_2 }, | |
30 | { 0x3203, KEY_3 }, | |
31 | { 0x3204, KEY_4 }, | |
32 | { 0x3205, KEY_5 }, | |
33 | { 0x3206, KEY_6 }, | |
34 | { 0x3207, KEY_7 }, | |
35 | { 0x3208, KEY_8 }, | |
36 | { 0x3209, KEY_9 }, | |
37 | { 0x320a, KEY_PREVIOUS }, | |
38 | { 0x320b, KEY_0 }, | |
39 | { 0x320c, KEY_NEXT }, | |
40 | ||
41 | { 0x321f, KEY_RED }, | |
42 | { 0x3220, KEY_GREEN }, | |
43 | { 0x3221, KEY_YELLOW }, | |
44 | { 0x3222, KEY_BLUE }, | |
45 | ||
46 | { 0x3210, KEY_INFO }, | |
47 | { 0x3212, KEY_MENU }, | |
48 | { 0x320e, KEY_AUDIO }, | |
49 | { 0x3218, KEY_PVR }, | |
50 | ||
51 | { 0x3213, KEY_LEFT }, | |
52 | { 0x3211, KEY_UP }, | |
53 | { 0x3215, KEY_RIGHT }, | |
54 | { 0x3217, KEY_DOWN }, | |
55 | { 0x3214, KEY_OK }, | |
56 | ||
57 | { 0x3219, KEY_VOLUMEUP }, | |
58 | { 0x321c, KEY_VOLUMEDOWN }, | |
59 | ||
60 | { 0x321d, KEY_ESC }, // EXIT | |
61 | { 0x321a, KEY_MUTE }, | |
62 | ||
63 | { 0x321b, KEY_PAGEUP }, | |
64 | { 0x321e, KEY_PAGEDOWN }, | |
65 | ||
66 | { 0x3223, KEY_PREVIOUSSONG }, | |
67 | { 0x3224, KEY_PLAYPAUSE }, | |
68 | { 0x3225, KEY_STOP }, | |
69 | { 0x3226, KEY_NEXTSONG }, | |
70 | ||
71 | { 0x3227, KEY_TV }, | |
72 | { 0x3228, KEY_RADIO }, | |
73 | { 0x3229, KEY_TEXT }, | |
74 | { 0x322a, KEY_RECORD }, | |
75 | ||
76 | /* Dreambox RC20/RC-BT */ | |
77 | { 0x3407, KEY_MUTE }, | |
78 | // MODE | |
79 | { 0x3401, KEY_POWER }, | |
80 | ||
81 | { 0x3432, KEY_PREVIOUSSONG }, | |
82 | { 0x3433, KEY_PLAYPAUSE }, | |
83 | { 0x3435, KEY_NEXTSONG }, | |
84 | ||
85 | { 0x3436, KEY_RECORD }, | |
86 | { 0x3434, KEY_STOP }, | |
87 | { 0x3425, KEY_TEXT }, | |
88 | ||
89 | { 0x341f, KEY_RED }, | |
90 | { 0x3420, KEY_GREEN }, | |
91 | { 0x3421, KEY_YELLOW }, | |
92 | { 0x3422, KEY_BLUE }, | |
93 | ||
94 | { 0x341b, KEY_INFO }, | |
95 | { 0x341c, KEY_MENU }, | |
96 | { 0x3430, KEY_AUDIO }, | |
97 | { 0x3431, KEY_PVR }, | |
98 | ||
99 | { 0x3414, KEY_LEFT }, | |
100 | { 0x3411, KEY_UP }, | |
101 | { 0x3416, KEY_RIGHT }, | |
102 | { 0x3419, KEY_DOWN }, | |
103 | { 0x3415, KEY_OK }, | |
104 | ||
105 | { 0x3413, KEY_VOLUMEUP }, | |
106 | { 0x3418, KEY_VOLUMEDOWN }, | |
107 | ||
108 | { 0x3412, KEY_ESC }, // EXIT | |
109 | { 0x3426, KEY_HELP }, // MIC | |
110 | ||
111 | { 0x3417, KEY_PAGEUP }, | |
112 | { 0x341a, KEY_PAGEDOWN }, | |
113 | ||
114 | { 0x3404, KEY_1 }, | |
115 | { 0x3405, KEY_2 }, | |
116 | { 0x3406, KEY_3 }, | |
117 | { 0x3408, KEY_4 }, | |
118 | { 0x3409, KEY_5 }, | |
119 | { 0x340a, KEY_6 }, | |
120 | { 0x340c, KEY_7 }, | |
121 | { 0x340d, KEY_8 }, | |
122 | { 0x340e, KEY_9 }, | |
123 | { 0x340b, KEY_PREVIOUS }, | |
124 | { 0x3410, KEY_0 }, | |
125 | { 0x340f, KEY_NEXT }, | |
126 | }; | |
127 | ||
128 | static struct rc_map_list dreambox_map = { | |
129 | .map = { | |
130 | .scan = dreambox, | |
131 | .size = ARRAY_SIZE(dreambox), | |
132 | .rc_proto = RC_PROTO_NEC, | |
133 | .name = RC_MAP_DREAMBOX, | |
134 | } | |
135 | }; | |
136 | ||
137 | static int __init init_rc_map_dreambox(void) | |
138 | { | |
139 | return rc_map_register(&dreambox_map); | |
140 | } | |
141 | ||
142 | static void __exit exit_rc_map_dreambox(void) | |
143 | { | |
144 | rc_map_unregister(&dreambox_map); | |
145 | } | |
146 | ||
147 | module_init(init_rc_map_dreambox) | |
148 | module_exit(exit_rc_map_dreambox) | |
149 | ||
150 | MODULE_LICENSE("GPL"); | |
151 | MODULE_AUTHOR("Emanuel Strobel <emanuel.strobel@yahoo.com>"); | |
462e108b | 152 | MODULE_DESCRIPTION("Dreambox RC10/RC0 and RC20/RC-BT remote controller keytable"); |