1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <media/rc-core.h>
7 #define DEFAULT_POLLING_INTERVAL 100 /* ms */
16 /* Used to avoid fast repeating */
19 u32 polling_interval
; /* in ms */
21 struct delayed_work work
;
23 int (*get_key
)(struct IR_i2c
*ir
,
24 enum rc_proto
*protocol
,
25 u32
*scancode
, u8
*toggle
);
27 struct i2c_client
*tx_c
;
28 struct mutex lock
; /* do not poll Rx during Tx */
30 unsigned int duty_cycle
;
33 enum ir_kbd_get_key_fn
{
34 IR_KBD_GET_KEY_CUSTOM
= 0,
35 IR_KBD_GET_KEY_PIXELVIEW
,
38 IR_KBD_GET_KEY_FUSIONHDTV
,
39 IR_KBD_GET_KEY_HAUP_XVR
,
40 IR_KBD_GET_KEY_AVERMEDIA_CARDBUS
,
43 /* Can be passed when instantiating an ir_video i2c device */
44 struct IR_i2c_init_data
{
47 u64 type
; /* RC_PROTO_BIT_RC5, etc */
48 u32 polling_interval
; /* 0 means DEFAULT_POLLING_INTERVAL */
51 * Specify either a function pointer or a value indicating one of
52 * ir_kbd_i2c's internal get_key functions
54 int (*get_key
)(struct IR_i2c
*ir
,
55 enum rc_proto
*protocol
,
56 u32
*scancode
, u8
*toggle
);
57 enum ir_kbd_get_key_fn internal_get_key_func
;
59 struct rc_dev
*rc_dev
;