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