Blame view

kernel/linux-rt-4.4.41/include/linux/platform_data/pixcir_i2c_ts.h 1.41 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  #ifndef	_PIXCIR_I2C_TS_H
  #define	_PIXCIR_I2C_TS_H
  
  /*
   * Register map
   */
  #define PIXCIR_REG_POWER_MODE	51
  #define PIXCIR_REG_INT_MODE	52
  
  /*
   * Power modes:
   * active: max scan speed
   * idle: lower scan speed with automatic transition to active on touch
   * halt: datasheet says sleep but this is more like halt as the chip
   *       clocks are cut and it can only be brought out of this mode
   *	 using the RESET pin.
   */
  enum pixcir_power_mode {
  	PIXCIR_POWER_ACTIVE,
  	PIXCIR_POWER_IDLE,
  	PIXCIR_POWER_HALT,
  };
  
  #define PIXCIR_POWER_MODE_MASK	0x03
  #define PIXCIR_POWER_ALLOW_IDLE (1UL << 2)
  
  /*
   * Interrupt modes:
   * periodical: interrupt is asserted periodicaly
   * diff coordinates: interrupt is asserted when coordinates change
   * level on touch: interrupt level asserted during touch
   * pulse on touch: interrupt pulse asserted druing touch
   *
   */
  enum pixcir_int_mode {
  	PIXCIR_INT_PERIODICAL,
  	PIXCIR_INT_DIFF_COORD,
  	PIXCIR_INT_LEVEL_TOUCH,
  	PIXCIR_INT_PULSE_TOUCH,
  };
  
  #define PIXCIR_INT_MODE_MASK	0x03
  #define PIXCIR_INT_ENABLE	(1UL << 3)
  #define PIXCIR_INT_POL_HIGH	(1UL << 2)
  
  /**
   * struct pixcir_irc_chip_data - chip related data
   * @max_fingers:	Max number of fingers reported simultaneously by h/w
   * @has_hw_ids:		Hardware supports finger tracking IDs
   *
   */
  struct pixcir_i2c_chip_data {
  	u8 max_fingers;
  	bool has_hw_ids;
  };
  
  struct pixcir_ts_platform_data {
  	int x_max;
  	int y_max;
  	struct pixcir_i2c_chip_data chip;
  };
  
  #endif