mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
3b36fbb01d
Introduce helper functions to configure power and interrupt registers. Default to IDLE mode on probe as device supports auto wakeup to ACVIE mode on detecting finger touch. Configure interrupt mode and polarity on start up. Power down on device closure or module removal. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
#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_ts_platform_data {
|
|
int (*attb_read_val)(void);
|
|
int x_max;
|
|
int y_max;
|
|
};
|
|
|
|
#endif
|