mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
61 lines
1.5 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef _IR_I2C |
|
#define _IR_I2C |
|
|
|
#include <media/rc-core.h> |
|
|
|
#define DEFAULT_POLLING_INTERVAL 100 /* ms */ |
|
|
|
struct IR_i2c; |
|
|
|
struct IR_i2c { |
|
char *ir_codes; |
|
struct i2c_client *c; |
|
struct rc_dev *rc; |
|
|
|
/* Used to avoid fast repeating */ |
|
unsigned char old; |
|
|
|
u32 polling_interval; /* in ms */ |
|
|
|
struct delayed_work work; |
|
char phys[32]; |
|
int (*get_key)(struct IR_i2c *ir, |
|
enum rc_proto *protocol, |
|
u32 *scancode, u8 *toggle); |
|
/* tx */ |
|
struct i2c_client *tx_c; |
|
struct mutex lock; /* do not poll Rx during Tx */ |
|
unsigned int carrier; |
|
unsigned int duty_cycle; |
|
}; |
|
|
|
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, |
|
}; |
|
|
|
/* Can be passed when instantiating an ir_video i2c device */ |
|
struct IR_i2c_init_data { |
|
char *ir_codes; |
|
const char *name; |
|
u64 type; /* RC_PROTO_BIT_RC5, etc */ |
|
u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */ |
|
|
|
/* |
|
* Specify either a function pointer or a value indicating one of |
|
* ir_kbd_i2c's internal get_key functions |
|
*/ |
|
int (*get_key)(struct IR_i2c *ir, |
|
enum rc_proto *protocol, |
|
u32 *scancode, u8 *toggle); |
|
enum ir_kbd_get_key_fn internal_get_key_func; |
|
|
|
struct rc_dev *rc_dev; |
|
}; |
|
#endif
|
|
|