cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ir-kbd-i2c.h (1508B)


      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
      9struct IR_i2c;
     10
     11struct 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
     33enum 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 */
     44struct 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