diff options
Diffstat (limited to 'drivers/media/dvb/siano/smsir.h')
-rw-r--r-- | drivers/media/dvb/siano/smsir.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/drivers/media/dvb/siano/smsir.h b/drivers/media/dvb/siano/smsir.h new file mode 100644 index 000000000000..b7d703e2d338 --- /dev/null +++ b/drivers/media/dvb/siano/smsir.h | |||
@@ -0,0 +1,93 @@ | |||
1 | /**************************************************************** | ||
2 | |||
3 | Siano Mobile Silicon, Inc. | ||
4 | MDTV receiver kernel modules. | ||
5 | Copyright (C) 2006-2009, Uri Shkolnik | ||
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, see <http://www.gnu.org/licenses/>. | ||
19 | |||
20 | ****************************************************************/ | ||
21 | |||
22 | #ifndef __SMS_IR_H__ | ||
23 | #define __SMS_IR_H__ | ||
24 | |||
25 | #include <linux/input.h> | ||
26 | |||
27 | #define IR_DEV_NAME_MAX_LEN 23 /* "SMS IR kbd type nn\0" */ | ||
28 | #define IR_KEYBOARD_LAYOUT_SIZE 64 | ||
29 | #define IR_DEFAULT_TIMEOUT 100 | ||
30 | |||
31 | enum ir_kb_type { | ||
32 | SMS_IR_KB_DEFAULT_TV, | ||
33 | SMS_IR_KB_HCW_SILVER | ||
34 | }; | ||
35 | |||
36 | enum rc5_keyboard_address { | ||
37 | KEYBOARD_ADDRESS_TV1 = 0, | ||
38 | KEYBOARD_ADDRESS_TV2 = 1, | ||
39 | KEYBOARD_ADDRESS_TELETEXT = 2, | ||
40 | KEYBOARD_ADDRESS_VIDEO = 3, | ||
41 | KEYBOARD_ADDRESS_LV1 = 4, | ||
42 | KEYBOARD_ADDRESS_VCR1 = 5, | ||
43 | KEYBOARD_ADDRESS_VCR2 = 6, | ||
44 | KEYBOARD_ADDRESS_EXPERIMENTAL = 7, | ||
45 | KEYBOARD_ADDRESS_SAT1 = 8, | ||
46 | KEYBOARD_ADDRESS_CAMERA = 9, | ||
47 | KEYBOARD_ADDRESS_SAT2 = 10, | ||
48 | KEYBOARD_ADDRESS_CDV = 12, | ||
49 | KEYBOARD_ADDRESS_CAMCORDER = 13, | ||
50 | KEYBOARD_ADDRESS_PRE_AMP = 16, | ||
51 | KEYBOARD_ADDRESS_TUNER = 17, | ||
52 | KEYBOARD_ADDRESS_RECORDER1 = 18, | ||
53 | KEYBOARD_ADDRESS_PRE_AMP1 = 19, | ||
54 | KEYBOARD_ADDRESS_CD_PLAYER = 20, | ||
55 | KEYBOARD_ADDRESS_PHONO = 21, | ||
56 | KEYBOARD_ADDRESS_SATA = 22, | ||
57 | KEYBOARD_ADDRESS_RECORDER2 = 23, | ||
58 | KEYBOARD_ADDRESS_CDR = 26, | ||
59 | KEYBOARD_ADDRESS_LIGHTING = 29, | ||
60 | KEYBOARD_ADDRESS_LIGHTING1 = 30, /* KEYBOARD_ADDRESS_HCW_SILVER */ | ||
61 | KEYBOARD_ADDRESS_PHONE = 31, | ||
62 | KEYBOARD_ADDRESS_NOT_RC5 = 0xFFFF | ||
63 | }; | ||
64 | |||
65 | enum ir_protocol { | ||
66 | IR_RC5, | ||
67 | IR_RCMM | ||
68 | }; | ||
69 | |||
70 | struct keyboard_layout_map_t { | ||
71 | enum ir_protocol ir_protocol; | ||
72 | enum rc5_keyboard_address rc5_kbd_address; | ||
73 | u16 keyboard_layout_map[IR_KEYBOARD_LAYOUT_SIZE]; | ||
74 | }; | ||
75 | |||
76 | struct smscore_device_t; | ||
77 | |||
78 | struct ir_t { | ||
79 | struct input_dev *input_dev; | ||
80 | enum ir_kb_type ir_kb_type; | ||
81 | char name[IR_DEV_NAME_MAX_LEN+1]; | ||
82 | u16 *keyboard_layout_map; | ||
83 | u32 timeout; | ||
84 | u32 controller; | ||
85 | }; | ||
86 | |||
87 | int sms_ir_init(struct smscore_device_t *coredev); | ||
88 | void sms_ir_exit(struct smscore_device_t *coredev); | ||
89 | void sms_ir_event(struct smscore_device_t *coredev, | ||
90 | const char *buf, int len); | ||
91 | |||
92 | #endif /* __SMS_IR_H__ */ | ||
93 | |||