diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-input.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-input.c | 339 |
1 files changed, 8 insertions, 331 deletions
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c index 165d948624a3..78a63b7dd380 100644 --- a/drivers/media/video/cx88/cx88-input.c +++ b/drivers/media/video/cx88/cx88-input.c | |||
@@ -34,337 +34,6 @@ | |||
34 | 34 | ||
35 | /* ---------------------------------------------------------------------- */ | 35 | /* ---------------------------------------------------------------------- */ |
36 | 36 | ||
37 | /* DigitalNow DNTV Live DVB-T Remote */ | ||
38 | static IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE] = { | ||
39 | [0x00] = KEY_ESC, /* 'go up a level?' */ | ||
40 | /* Keys 0 to 9 */ | ||
41 | [0x0a] = KEY_KP0, | ||
42 | [0x01] = KEY_KP1, | ||
43 | [0x02] = KEY_KP2, | ||
44 | [0x03] = KEY_KP3, | ||
45 | [0x04] = KEY_KP4, | ||
46 | [0x05] = KEY_KP5, | ||
47 | [0x06] = KEY_KP6, | ||
48 | [0x07] = KEY_KP7, | ||
49 | [0x08] = KEY_KP8, | ||
50 | [0x09] = KEY_KP9, | ||
51 | |||
52 | [0x0b] = KEY_TUNER, /* tv/fm */ | ||
53 | [0x0c] = KEY_SEARCH, /* scan */ | ||
54 | [0x0d] = KEY_STOP, | ||
55 | [0x0e] = KEY_PAUSE, | ||
56 | [0x0f] = KEY_LIST, /* source */ | ||
57 | |||
58 | [0x10] = KEY_MUTE, | ||
59 | [0x11] = KEY_REWIND, /* backward << */ | ||
60 | [0x12] = KEY_POWER, | ||
61 | [0x13] = KEY_S, /* snap */ | ||
62 | [0x14] = KEY_AUDIO, /* stereo */ | ||
63 | [0x15] = KEY_CLEAR, /* reset */ | ||
64 | [0x16] = KEY_PLAY, | ||
65 | [0x17] = KEY_ENTER, | ||
66 | [0x18] = KEY_ZOOM, /* full screen */ | ||
67 | [0x19] = KEY_FASTFORWARD, /* forward >> */ | ||
68 | [0x1a] = KEY_CHANNELUP, | ||
69 | [0x1b] = KEY_VOLUMEUP, | ||
70 | [0x1c] = KEY_INFO, /* preview */ | ||
71 | [0x1d] = KEY_RECORD, /* record */ | ||
72 | [0x1e] = KEY_CHANNELDOWN, | ||
73 | [0x1f] = KEY_VOLUMEDOWN, | ||
74 | }; | ||
75 | |||
76 | /* ---------------------------------------------------------------------- */ | ||
77 | |||
78 | /* IO-DATA BCTV7E Remote */ | ||
79 | static IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE] = { | ||
80 | [0x40] = KEY_TV, | ||
81 | [0x20] = KEY_RADIO, /* FM */ | ||
82 | [0x60] = KEY_EPG, | ||
83 | [0x00] = KEY_POWER, | ||
84 | |||
85 | /* Keys 0 to 9 */ | ||
86 | [0x44] = KEY_KP0, /* 10 */ | ||
87 | [0x50] = KEY_KP1, | ||
88 | [0x30] = KEY_KP2, | ||
89 | [0x70] = KEY_KP3, | ||
90 | [0x48] = KEY_KP4, | ||
91 | [0x28] = KEY_KP5, | ||
92 | [0x68] = KEY_KP6, | ||
93 | [0x58] = KEY_KP7, | ||
94 | [0x38] = KEY_KP8, | ||
95 | [0x78] = KEY_KP9, | ||
96 | |||
97 | [0x10] = KEY_L, /* Live */ | ||
98 | [0x08] = KEY_T, /* Time Shift */ | ||
99 | |||
100 | [0x18] = KEY_PLAYPAUSE, /* Play */ | ||
101 | |||
102 | [0x24] = KEY_ENTER, /* 11 */ | ||
103 | [0x64] = KEY_ESC, /* 12 */ | ||
104 | [0x04] = KEY_M, /* Multi */ | ||
105 | |||
106 | [0x54] = KEY_VIDEO, | ||
107 | [0x34] = KEY_CHANNELUP, | ||
108 | [0x74] = KEY_VOLUMEUP, | ||
109 | [0x14] = KEY_MUTE, | ||
110 | |||
111 | [0x4c] = KEY_S, /* SVIDEO */ | ||
112 | [0x2c] = KEY_CHANNELDOWN, | ||
113 | [0x6c] = KEY_VOLUMEDOWN, | ||
114 | [0x0c] = KEY_ZOOM, | ||
115 | |||
116 | [0x5c] = KEY_PAUSE, | ||
117 | [0x3c] = KEY_C, /* || (red) */ | ||
118 | [0x7c] = KEY_RECORD, /* recording */ | ||
119 | [0x1c] = KEY_STOP, | ||
120 | |||
121 | [0x41] = KEY_REWIND, /* backward << */ | ||
122 | [0x21] = KEY_PLAY, | ||
123 | [0x61] = KEY_FASTFORWARD, /* forward >> */ | ||
124 | [0x01] = KEY_NEXT, /* skip >| */ | ||
125 | }; | ||
126 | |||
127 | /* ---------------------------------------------------------------------- */ | ||
128 | |||
129 | /* ADS Tech Instant TV DVB-T PCI Remote */ | ||
130 | static IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE] = { | ||
131 | /* Keys 0 to 9 */ | ||
132 | [0x4d] = KEY_0, | ||
133 | [0x57] = KEY_1, | ||
134 | [0x4f] = KEY_2, | ||
135 | [0x53] = KEY_3, | ||
136 | [0x56] = KEY_4, | ||
137 | [0x4e] = KEY_5, | ||
138 | [0x5e] = KEY_6, | ||
139 | [0x54] = KEY_7, | ||
140 | [0x4c] = KEY_8, | ||
141 | [0x5c] = KEY_9, | ||
142 | |||
143 | [0x5b] = KEY_POWER, | ||
144 | [0x5f] = KEY_MUTE, | ||
145 | [0x55] = KEY_GOTO, | ||
146 | [0x5d] = KEY_SEARCH, | ||
147 | [0x17] = KEY_EPG, /* Guide */ | ||
148 | [0x1f] = KEY_MENU, | ||
149 | [0x0f] = KEY_UP, | ||
150 | [0x46] = KEY_DOWN, | ||
151 | [0x16] = KEY_LEFT, | ||
152 | [0x1e] = KEY_RIGHT, | ||
153 | [0x0e] = KEY_SELECT, /* Enter */ | ||
154 | [0x5a] = KEY_INFO, | ||
155 | [0x52] = KEY_EXIT, | ||
156 | [0x59] = KEY_PREVIOUS, | ||
157 | [0x51] = KEY_NEXT, | ||
158 | [0x58] = KEY_REWIND, | ||
159 | [0x50] = KEY_FORWARD, | ||
160 | [0x44] = KEY_PLAYPAUSE, | ||
161 | [0x07] = KEY_STOP, | ||
162 | [0x1b] = KEY_RECORD, | ||
163 | [0x13] = KEY_TUNER, /* Live */ | ||
164 | [0x0a] = KEY_A, | ||
165 | [0x12] = KEY_B, | ||
166 | [0x03] = KEY_PROG1, /* 1 */ | ||
167 | [0x01] = KEY_PROG2, /* 2 */ | ||
168 | [0x00] = KEY_PROG3, /* 3 */ | ||
169 | [0x06] = KEY_DVD, | ||
170 | [0x48] = KEY_AUX, /* Photo */ | ||
171 | [0x40] = KEY_VIDEO, | ||
172 | [0x19] = KEY_AUDIO, /* Music */ | ||
173 | [0x0b] = KEY_CHANNELUP, | ||
174 | [0x08] = KEY_CHANNELDOWN, | ||
175 | [0x15] = KEY_VOLUMEUP, | ||
176 | [0x1c] = KEY_VOLUMEDOWN, | ||
177 | }; | ||
178 | |||
179 | /* ---------------------------------------------------------------------- */ | ||
180 | |||
181 | /* MSI TV@nywhere remote */ | ||
182 | static IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE] = { | ||
183 | /* Keys 0 to 9 */ | ||
184 | [0x00] = KEY_0, | ||
185 | [0x01] = KEY_1, | ||
186 | [0x02] = KEY_2, | ||
187 | [0x03] = KEY_3, | ||
188 | [0x04] = KEY_4, | ||
189 | [0x05] = KEY_5, | ||
190 | [0x06] = KEY_6, | ||
191 | [0x07] = KEY_7, | ||
192 | [0x08] = KEY_8, | ||
193 | [0x09] = KEY_9, | ||
194 | |||
195 | [0x0c] = KEY_MUTE, | ||
196 | [0x0f] = KEY_SCREEN, /* Full Screen */ | ||
197 | [0x10] = KEY_F, /* Funtion */ | ||
198 | [0x11] = KEY_T, /* Time shift */ | ||
199 | [0x12] = KEY_POWER, | ||
200 | [0x13] = KEY_MEDIA, /* MTS */ | ||
201 | [0x14] = KEY_SLOW, | ||
202 | [0x16] = KEY_REWIND, /* backward << */ | ||
203 | [0x17] = KEY_ENTER, /* Return */ | ||
204 | [0x18] = KEY_FASTFORWARD, /* forward >> */ | ||
205 | [0x1a] = KEY_CHANNELUP, | ||
206 | [0x1b] = KEY_VOLUMEUP, | ||
207 | [0x1e] = KEY_CHANNELDOWN, | ||
208 | [0x1f] = KEY_VOLUMEDOWN, | ||
209 | }; | ||
210 | |||
211 | /* ---------------------------------------------------------------------- */ | ||
212 | |||
213 | /* Cinergy 1400 DVB-T */ | ||
214 | static IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE] = { | ||
215 | [0x01] = KEY_POWER, | ||
216 | [0x02] = KEY_1, | ||
217 | [0x03] = KEY_2, | ||
218 | [0x04] = KEY_3, | ||
219 | [0x05] = KEY_4, | ||
220 | [0x06] = KEY_5, | ||
221 | [0x07] = KEY_6, | ||
222 | [0x08] = KEY_7, | ||
223 | [0x09] = KEY_8, | ||
224 | [0x0a] = KEY_9, | ||
225 | [0x0c] = KEY_0, | ||
226 | |||
227 | [0x0b] = KEY_VIDEO, | ||
228 | [0x0d] = KEY_REFRESH, | ||
229 | [0x0e] = KEY_SELECT, | ||
230 | [0x0f] = KEY_EPG, | ||
231 | [0x10] = KEY_UP, | ||
232 | [0x11] = KEY_LEFT, | ||
233 | [0x12] = KEY_OK, | ||
234 | [0x13] = KEY_RIGHT, | ||
235 | [0x14] = KEY_DOWN, | ||
236 | [0x15] = KEY_TEXT, | ||
237 | [0x16] = KEY_INFO, | ||
238 | |||
239 | [0x17] = KEY_RED, | ||
240 | [0x18] = KEY_GREEN, | ||
241 | [0x19] = KEY_YELLOW, | ||
242 | [0x1a] = KEY_BLUE, | ||
243 | |||
244 | [0x1b] = KEY_CHANNELUP, | ||
245 | [0x1c] = KEY_VOLUMEUP, | ||
246 | [0x1d] = KEY_MUTE, | ||
247 | [0x1e] = KEY_VOLUMEDOWN, | ||
248 | [0x1f] = KEY_CHANNELDOWN, | ||
249 | |||
250 | [0x40] = KEY_PAUSE, | ||
251 | [0x4c] = KEY_PLAY, | ||
252 | [0x58] = KEY_RECORD, | ||
253 | [0x54] = KEY_PREVIOUS, | ||
254 | [0x48] = KEY_STOP, | ||
255 | [0x5c] = KEY_NEXT, | ||
256 | }; | ||
257 | |||
258 | /* ---------------------------------------------------------------------- */ | ||
259 | |||
260 | /* AVERTV STUDIO 303 Remote */ | ||
261 | static IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE] = { | ||
262 | [ 0x2a ] = KEY_KP1, | ||
263 | [ 0x32 ] = KEY_KP2, | ||
264 | [ 0x3a ] = KEY_KP3, | ||
265 | [ 0x4a ] = KEY_KP4, | ||
266 | [ 0x52 ] = KEY_KP5, | ||
267 | [ 0x5a ] = KEY_KP6, | ||
268 | [ 0x6a ] = KEY_KP7, | ||
269 | [ 0x72 ] = KEY_KP8, | ||
270 | [ 0x7a ] = KEY_KP9, | ||
271 | [ 0x0e ] = KEY_KP0, | ||
272 | |||
273 | [ 0x02 ] = KEY_POWER, | ||
274 | [ 0x22 ] = KEY_VIDEO, | ||
275 | [ 0x42 ] = KEY_AUDIO, | ||
276 | [ 0x62 ] = KEY_ZOOM, | ||
277 | [ 0x0a ] = KEY_TV, | ||
278 | [ 0x12 ] = KEY_CD, | ||
279 | [ 0x1a ] = KEY_TEXT, | ||
280 | |||
281 | [ 0x16 ] = KEY_SUBTITLE, | ||
282 | [ 0x1e ] = KEY_REWIND, | ||
283 | [ 0x06 ] = KEY_PRINT, | ||
284 | |||
285 | [ 0x2e ] = KEY_SEARCH, | ||
286 | [ 0x36 ] = KEY_SLEEP, | ||
287 | [ 0x3e ] = KEY_SHUFFLE, | ||
288 | [ 0x26 ] = KEY_MUTE, | ||
289 | |||
290 | [ 0x4e ] = KEY_RECORD, | ||
291 | [ 0x56 ] = KEY_PAUSE, | ||
292 | [ 0x5e ] = KEY_STOP, | ||
293 | [ 0x46 ] = KEY_PLAY, | ||
294 | |||
295 | [ 0x6e ] = KEY_RED, | ||
296 | [ 0x0b ] = KEY_GREEN, | ||
297 | [ 0x66 ] = KEY_YELLOW, | ||
298 | [ 0x03 ] = KEY_BLUE, | ||
299 | |||
300 | [ 0x76 ] = KEY_LEFT, | ||
301 | [ 0x7e ] = KEY_RIGHT, | ||
302 | [ 0x13 ] = KEY_DOWN, | ||
303 | [ 0x1b ] = KEY_UP, | ||
304 | }; | ||
305 | |||
306 | /* ---------------------------------------------------------------------- */ | ||
307 | |||
308 | /* DigitalNow DNTV Live! DVB-T Pro Remote */ | ||
309 | static IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE] = { | ||
310 | [ 0x16 ] = KEY_POWER, | ||
311 | [ 0x5b ] = KEY_HOME, | ||
312 | |||
313 | [ 0x55 ] = KEY_TV, /* live tv */ | ||
314 | [ 0x58 ] = KEY_TUNER, /* digital Radio */ | ||
315 | [ 0x5a ] = KEY_RADIO, /* FM radio */ | ||
316 | [ 0x59 ] = KEY_DVD, /* dvd menu */ | ||
317 | [ 0x03 ] = KEY_1, | ||
318 | [ 0x01 ] = KEY_2, | ||
319 | [ 0x06 ] = KEY_3, | ||
320 | [ 0x09 ] = KEY_4, | ||
321 | [ 0x1d ] = KEY_5, | ||
322 | [ 0x1f ] = KEY_6, | ||
323 | [ 0x0d ] = KEY_7, | ||
324 | [ 0x19 ] = KEY_8, | ||
325 | [ 0x1b ] = KEY_9, | ||
326 | [ 0x0c ] = KEY_CANCEL, | ||
327 | [ 0x15 ] = KEY_0, | ||
328 | [ 0x4a ] = KEY_CLEAR, | ||
329 | [ 0x13 ] = KEY_BACK, | ||
330 | [ 0x00 ] = KEY_TAB, | ||
331 | [ 0x4b ] = KEY_UP, | ||
332 | [ 0x4e ] = KEY_LEFT, | ||
333 | [ 0x4f ] = KEY_OK, | ||
334 | [ 0x52 ] = KEY_RIGHT, | ||
335 | [ 0x51 ] = KEY_DOWN, | ||
336 | [ 0x1e ] = KEY_VOLUMEUP, | ||
337 | [ 0x0a ] = KEY_VOLUMEDOWN, | ||
338 | [ 0x02 ] = KEY_CHANNELDOWN, | ||
339 | [ 0x05 ] = KEY_CHANNELUP, | ||
340 | [ 0x11 ] = KEY_RECORD, | ||
341 | [ 0x14 ] = KEY_PLAY, | ||
342 | [ 0x4c ] = KEY_PAUSE, | ||
343 | [ 0x1a ] = KEY_STOP, | ||
344 | [ 0x40 ] = KEY_REWIND, | ||
345 | [ 0x12 ] = KEY_FASTFORWARD, | ||
346 | [ 0x41 ] = KEY_PREVIOUSSONG, /* replay |< */ | ||
347 | [ 0x42 ] = KEY_NEXTSONG, /* skip >| */ | ||
348 | [ 0x54 ] = KEY_CAMERA, /* capture */ | ||
349 | [ 0x50 ] = KEY_LANGUAGE, /* sap */ | ||
350 | [ 0x47 ] = KEY_TV2, /* pip */ | ||
351 | [ 0x4d ] = KEY_SCREEN, | ||
352 | [ 0x43 ] = KEY_SUBTITLE, | ||
353 | [ 0x10 ] = KEY_MUTE, | ||
354 | [ 0x49 ] = KEY_AUDIO, /* l/r */ | ||
355 | [ 0x07 ] = KEY_SLEEP, | ||
356 | [ 0x08 ] = KEY_VIDEO, /* a/v */ | ||
357 | [ 0x0e ] = KEY_PREVIOUS, /* recall */ | ||
358 | [ 0x45 ] = KEY_ZOOM, /* zoom + */ | ||
359 | [ 0x46 ] = KEY_ANGLE, /* zoom - */ | ||
360 | [ 0x56 ] = KEY_RED, | ||
361 | [ 0x57 ] = KEY_GREEN, | ||
362 | [ 0x5c ] = KEY_YELLOW, | ||
363 | [ 0x5d ] = KEY_BLUE, | ||
364 | }; | ||
365 | |||
366 | /* ---------------------------------------------------------------------- */ | ||
367 | |||
368 | struct cx88_IR { | 37 | struct cx88_IR { |
369 | struct cx88_core *core; | 38 | struct cx88_core *core; |
370 | struct input_dev *input; | 39 | struct input_dev *input; |
@@ -517,6 +186,7 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci) | |||
517 | ir->mask_keydown = 0x02; | 186 | ir->mask_keydown = 0x02; |
518 | ir->polling = 5; /* ms */ | 187 | ir->polling = 5; /* ms */ |
519 | break; | 188 | break; |
189 | case CX88_BOARD_PROLINK_PLAYTVPVR: | ||
520 | case CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO: | 190 | case CX88_BOARD_PIXELVIEW_PLAYTV_ULTRA_PRO: |
521 | ir_codes = ir_codes_pixelview; | 191 | ir_codes = ir_codes_pixelview; |
522 | ir->gpio_addr = MO_GP1_IO; | 192 | ir->gpio_addr = MO_GP1_IO; |
@@ -524,6 +194,13 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci) | |||
524 | ir->mask_keyup = 0x80; | 194 | ir->mask_keyup = 0x80; |
525 | ir->polling = 1; /* ms */ | 195 | ir->polling = 1; /* ms */ |
526 | break; | 196 | break; |
197 | case CX88_BOARD_KWORLD_LTV883: | ||
198 | ir_codes = ir_codes_pixelview; | ||
199 | ir->gpio_addr = MO_GP1_IO; | ||
200 | ir->mask_keycode = 0x1f; | ||
201 | ir->mask_keyup = 0x60; | ||
202 | ir->polling = 1; /* ms */ | ||
203 | break; | ||
527 | case CX88_BOARD_ADSTECH_DVB_T_PCI: | 204 | case CX88_BOARD_ADSTECH_DVB_T_PCI: |
528 | ir_codes = ir_codes_adstech_dvb_t_pci; | 205 | ir_codes = ir_codes_adstech_dvb_t_pci; |
529 | ir->gpio_addr = MO_GP1_IO; | 206 | ir->gpio_addr = MO_GP1_IO; |