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