Jianchun Bian | 36a281e | 2011-12-30 15:16:21 -0800 | [diff] [blame] | 1 | #ifndef _PIXCIR_I2C_TS_H |
| 2 | #define _PIXCIR_I2C_TS_H |
| 3 | |
Roger Quadros | 3b36fbb | 2014-05-18 22:44:35 -0700 | [diff] [blame] | 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 | |
Roger Quadros | 36874c7 | 2014-07-28 10:01:07 -0700 | [diff] [blame] | 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 | |
Jianchun Bian | 36a281e | 2011-12-30 15:16:21 -0800 | [diff] [blame] | 57 | struct pixcir_ts_platform_data { |
Jianchun Bian | 36a281e | 2011-12-30 15:16:21 -0800 | [diff] [blame] | 58 | int x_max; |
| 59 | int y_max; |
Roger Quadros | 0dfc8d4 | 2014-05-18 22:46:43 -0700 | [diff] [blame] | 60 | int gpio_attb; /* GPIO connected to ATTB line */ |
Roger Quadros | 36874c7 | 2014-07-28 10:01:07 -0700 | [diff] [blame] | 61 | struct pixcir_i2c_chip_data chip; |
Jianchun Bian | 36a281e | 2011-12-30 15:16:21 -0800 | [diff] [blame] | 62 | }; |
| 63 | |
| 64 | #endif |