Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/include/media/ir-kbd-i2c.h
10814 views
1
#ifndef _IR_I2C
2
#define _IR_I2C
3
4
#include <media/rc-core.h>
5
6
#define DEFAULT_POLLING_INTERVAL 100 /* ms */
7
8
struct IR_i2c;
9
10
struct IR_i2c {
11
char *ir_codes;
12
struct i2c_client *c;
13
struct rc_dev *rc;
14
15
/* Used to avoid fast repeating */
16
unsigned char old;
17
18
u32 polling_interval; /* in ms */
19
20
struct delayed_work work;
21
char name[32];
22
char phys[32];
23
int (*get_key)(struct IR_i2c*, u32*, u32*);
24
};
25
26
enum ir_kbd_get_key_fn {
27
IR_KBD_GET_KEY_CUSTOM = 0,
28
IR_KBD_GET_KEY_PIXELVIEW,
29
IR_KBD_GET_KEY_HAUP,
30
IR_KBD_GET_KEY_KNC1,
31
IR_KBD_GET_KEY_FUSIONHDTV,
32
IR_KBD_GET_KEY_HAUP_XVR,
33
IR_KBD_GET_KEY_AVERMEDIA_CARDBUS,
34
};
35
36
/* Can be passed when instantiating an ir_video i2c device */
37
struct IR_i2c_init_data {
38
char *ir_codes;
39
const char *name;
40
u64 type; /* RC_TYPE_RC5, etc */
41
u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */
42
43
/*
44
* Specify either a function pointer or a value indicating one of
45
* ir_kbd_i2c's internal get_key functions
46
*/
47
int (*get_key)(struct IR_i2c*, u32*, u32*);
48
enum ir_kbd_get_key_fn internal_get_key_func;
49
50
struct rc_dev *rc_dev;
51
};
52
#endif
53
54