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 */ 18enum 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 */ 35enum 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 */ 52struct pixcir_i2c_chip_data { 53 u8 max_fingers; 54 bool has_hw_ids; 55}; 56 57struct pixcir_ts_platform_data { 58 int x_max; 59 int y_max; 60 struct pixcir_i2c_chip_data chip; 61}; 62 63#endif 64