linux/include/media/ir-kbd-i2c.h
<<
>>
Prefs
   1#ifndef _IR_I2C
   2#define _IR_I2C
   3
   4#include <media/rc-core.h>
   5
   6#define DEFAULT_POLLING_INTERVAL        100     /* ms */
   7
   8struct IR_i2c;
   9
  10struct 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
  26enum 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 */
  37struct IR_i2c_init_data {
  38        char                    *ir_codes;
  39        const char              *name;
  40        u64                     type; /* RC_BIT_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