root/include/media/i2c/ir-kbd-i2c.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _IR_I2C
   3 #define _IR_I2C
   4 
   5 #include <media/rc-core.h>
   6 
   7 #define DEFAULT_POLLING_INTERVAL        100     /* ms */
   8 
   9 struct IR_i2c;
  10 
  11 struct IR_i2c {
  12         char                   *ir_codes;
  13         struct i2c_client      *c;
  14         struct rc_dev          *rc;
  15 
  16         /* Used to avoid fast repeating */
  17         unsigned char          old;
  18 
  19         u32                    polling_interval; /* in ms */
  20 
  21         struct delayed_work    work;
  22         char                   phys[32];
  23         int                    (*get_key)(struct IR_i2c *ir,
  24                                           enum rc_proto *protocol,
  25                                           u32 *scancode, u8 *toggle);
  26         /* tx */
  27         struct i2c_client      *tx_c;
  28         struct mutex           lock;    /* do not poll Rx during Tx */
  29         unsigned int           carrier;
  30         unsigned int           duty_cycle;
  31 };
  32 
  33 enum ir_kbd_get_key_fn {
  34         IR_KBD_GET_KEY_CUSTOM = 0,
  35         IR_KBD_GET_KEY_PIXELVIEW,
  36         IR_KBD_GET_KEY_HAUP,
  37         IR_KBD_GET_KEY_KNC1,
  38         IR_KBD_GET_KEY_FUSIONHDTV,
  39         IR_KBD_GET_KEY_HAUP_XVR,
  40         IR_KBD_GET_KEY_AVERMEDIA_CARDBUS,
  41 };
  42 
  43 /* Can be passed when instantiating an ir_video i2c device */
  44 struct IR_i2c_init_data {
  45         char                    *ir_codes;
  46         const char              *name;
  47         u64                     type; /* RC_PROTO_BIT_RC5, etc */
  48         u32                     polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */
  49 
  50         /*
  51          * Specify either a function pointer or a value indicating one of
  52          * ir_kbd_i2c's internal get_key functions
  53          */
  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;
  58 
  59         struct rc_dev           *rc_dev;
  60 };
  61 #endif

/* [<][>][^][v][top][bottom][index][help] */