Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[pandora-kernel.git] / include / media / ir-kbd-i2c.h
1 #ifndef _IR_I2C
2 #define _IR_I2C
3
4 #include <media/ir-common.h>
5
6 struct IR_i2c;
7
8 struct IR_i2c {
9         char                   *ir_codes;
10
11         struct i2c_client      *c;
12         struct input_dev       *input;
13         struct ir_input_state  ir;
14
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
24 enum 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 */
36 struct 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