1 /****************************************************************
3 Siano Mobile Silicon, Inc.
4 MDTV receiver kernel modules.
5 Copyright (C) 2006-2009, Uri Shkolnik
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.
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.
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/>.
20 ****************************************************************/
25 #include <linux/input.h>
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
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
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
];
76 struct smscore_device_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
;
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
);
92 #endif /* __SMS_IR_H__ */