smsir.h revision ebb6c22e80ccb2889b9c459df36d686d223911f5
1/**************************************************************** 2 3Siano Mobile Silicon, Inc. 4MDTV receiver kernel modules. 5Copyright (C) 2006-2009, Uri Shkolnik 6 7This program is free software: you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by 9the 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, 13but WITHOUT ANY WARRANTY; without even the implied warranty of 14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15GNU General Public License for more details. 16 17You should have received a copy of the GNU General Public License 18along 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 31enum ir_kb_type { 32 SMS_IR_KB_DEFAULT_TV, 33 SMS_IR_KB_HCW_SILVER 34}; 35 36enum 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 65enum ir_protocol { 66 IR_RC5, 67 IR_RCMM 68}; 69 70struct 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 76struct smscore_device_t; 77 78struct 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 87int sms_ir_init(struct smscore_device_t *coredev); 88void sms_ir_exit(struct smscore_device_t *coredev); 89void sms_ir_event(struct smscore_device_t *coredev, 90 const char *buf, int len); 91 92#endif /* __SMS_IR_H__ */ 93 94