2005-11-09 13:37:32 +08:00
|
|
|
#ifndef _IR_I2C
|
|
|
|
#define _IR_I2C
|
|
|
|
|
2010-11-18 00:28:38 +08:00
|
|
|
#include <media/rc-core.h>
|
2005-11-09 13:37:32 +08:00
|
|
|
|
2010-09-23 12:23:10 +08:00
|
|
|
#define DEFAULT_POLLING_INTERVAL 100 /* ms */
|
|
|
|
|
2005-11-09 13:37:32 +08:00
|
|
|
struct IR_i2c;
|
|
|
|
|
|
|
|
struct IR_i2c {
|
2010-04-03 07:01:00 +08:00
|
|
|
char *ir_codes;
|
2009-05-14 03:48:50 +08:00
|
|
|
struct i2c_client *c;
|
2010-10-30 03:08:23 +08:00
|
|
|
struct rc_dev *rc;
|
2010-10-30 03:08:07 +08:00
|
|
|
|
2005-11-09 13:37:32 +08:00
|
|
|
/* Used to avoid fast repeating */
|
|
|
|
unsigned char old;
|
|
|
|
|
2010-09-23 12:23:10 +08:00
|
|
|
u32 polling_interval; /* in ms */
|
|
|
|
|
2009-03-07 18:43:43 +08:00
|
|
|
struct delayed_work work;
|
2009-05-14 03:48:07 +08:00
|
|
|
char name[32];
|
2005-11-09 13:37:32 +08:00
|
|
|
char phys[32];
|
2017-08-08 04:20:58 +08:00
|
|
|
int (*get_key)(struct IR_i2c *ir,
|
|
|
|
enum rc_proto *protocol,
|
2014-04-04 07:31:25 +08:00
|
|
|
u32 *scancode, u8 *toggle);
|
2005-11-09 13:37:32 +08:00
|
|
|
};
|
2009-05-14 03:49:32 +08:00
|
|
|
|
2009-07-28 22:44:05 +08:00
|
|
|
enum ir_kbd_get_key_fn {
|
|
|
|
IR_KBD_GET_KEY_CUSTOM = 0,
|
|
|
|
IR_KBD_GET_KEY_PIXELVIEW,
|
|
|
|
IR_KBD_GET_KEY_HAUP,
|
|
|
|
IR_KBD_GET_KEY_KNC1,
|
|
|
|
IR_KBD_GET_KEY_FUSIONHDTV,
|
|
|
|
IR_KBD_GET_KEY_HAUP_XVR,
|
|
|
|
IR_KBD_GET_KEY_AVERMEDIA_CARDBUS,
|
|
|
|
};
|
|
|
|
|
2009-05-14 03:49:32 +08:00
|
|
|
/* Can be passed when instantiating an ir_video i2c device */
|
|
|
|
struct IR_i2c_init_data {
|
2010-04-03 07:01:00 +08:00
|
|
|
char *ir_codes;
|
2010-09-23 12:23:10 +08:00
|
|
|
const char *name;
|
2017-08-08 04:20:58 +08:00
|
|
|
u64 type; /* RC_PROTO_BIT_RC5, etc */
|
2010-09-23 12:23:10 +08:00
|
|
|
u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */
|
2010-10-30 03:08:07 +08:00
|
|
|
|
2009-07-28 22:44:05 +08:00
|
|
|
/*
|
|
|
|
* Specify either a function pointer or a value indicating one of
|
|
|
|
* ir_kbd_i2c's internal get_key functions
|
|
|
|
*/
|
2017-08-08 04:20:58 +08:00
|
|
|
int (*get_key)(struct IR_i2c *ir,
|
|
|
|
enum rc_proto *protocol,
|
2014-04-04 07:31:25 +08:00
|
|
|
u32 *scancode, u8 *toggle);
|
2009-07-28 22:44:05 +08:00
|
|
|
enum ir_kbd_get_key_fn internal_get_key_func;
|
2010-11-12 20:02:40 +08:00
|
|
|
|
|
|
|
struct rc_dev *rc_dev;
|
2009-05-14 03:49:32 +08:00
|
|
|
};
|
2005-11-09 13:37:32 +08:00
|
|
|
#endif
|