1#ifndef _IR_I2C 2#define _IR_I2C 3 4#include <media/ir-common.h> 5 6struct IR_i2c; 7 8struct IR_i2c { 9 char *ir_codes; 10 11 struct i2c_client *c; 12 struct input_dev *input; 13 struct ir_input_state ir; 14 u64 ir_type; 15 /* Used to avoid fast repeating */ 16 unsigned char old; 17 18 struct delayed_work work; 19 char name[32]; 20 char phys[32]; 21 int (*get_key)(struct IR_i2c*, u32*, u32*); 22}; 23 24enum ir_kbd_get_key_fn { 25 IR_KBD_GET_KEY_CUSTOM = 0, 26 IR_KBD_GET_KEY_PIXELVIEW, 27 IR_KBD_GET_KEY_PV951, 28 IR_KBD_GET_KEY_HAUP, 29 IR_KBD_GET_KEY_KNC1, 30 IR_KBD_GET_KEY_FUSIONHDTV, 31 IR_KBD_GET_KEY_HAUP_XVR, 32 IR_KBD_GET_KEY_AVERMEDIA_CARDBUS, 33}; 34 35/* Can be passed when instantiating an ir_video i2c device */ 36struct IR_i2c_init_data { 37 char *ir_codes; 38 const char *name; 39 u64 type; /* IR_TYPE_RC5, etc */ 40 /* 41 * Specify either a function pointer or a value indicating one of 42 * ir_kbd_i2c's internal get_key functions 43 */ 44 int (*get_key)(struct IR_i2c*, u32*, u32*); 45 enum ir_kbd_get_key_fn internal_get_key_func; 46}; 47#endif 48