0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _CYTTSP4_H_
0016 #define _CYTTSP4_H_
0017
0018 #define CYTTSP4_MT_NAME "cyttsp4_mt"
0019 #define CYTTSP4_I2C_NAME "cyttsp4_i2c_adapter"
0020 #define CYTTSP4_SPI_NAME "cyttsp4_spi_adapter"
0021
0022 #define CY_TOUCH_SETTINGS_MAX 32
0023
0024 struct touch_framework {
0025 const uint16_t *abs;
0026 uint8_t size;
0027 uint8_t enable_vkeys;
0028 } __packed;
0029
0030 struct cyttsp4_mt_platform_data {
0031 struct touch_framework *frmwrk;
0032 unsigned short flags;
0033 char const *inp_dev_name;
0034 };
0035
0036 struct touch_settings {
0037 const uint8_t *data;
0038 uint32_t size;
0039 uint8_t tag;
0040 } __packed;
0041
0042 struct cyttsp4_core_platform_data {
0043 int irq_gpio;
0044 int rst_gpio;
0045 int level_irq_udelay;
0046 int (*xres)(struct cyttsp4_core_platform_data *pdata,
0047 struct device *dev);
0048 int (*init)(struct cyttsp4_core_platform_data *pdata,
0049 int on, struct device *dev);
0050 int (*power)(struct cyttsp4_core_platform_data *pdata,
0051 int on, struct device *dev, atomic_t *ignore_irq);
0052 int (*irq_stat)(struct cyttsp4_core_platform_data *pdata,
0053 struct device *dev);
0054 struct touch_settings *sett[CY_TOUCH_SETTINGS_MAX];
0055 };
0056
0057 struct cyttsp4_platform_data {
0058 struct cyttsp4_core_platform_data *core_pdata;
0059 struct cyttsp4_mt_platform_data *mt_pdata;
0060 };
0061
0062 #endif