1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Header file for: 4 * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers. 5 * For use with Cypress Txx3xx parts. 6 * Supported parts include: 7 * CY8CTST341 8 * CY8CTMA340 9 * 10 * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. 11 * Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org> 12 * 13 * Contact Cypress Semiconductor at www.cypress.com (kev@cypress.com) 14 */ 15 #ifndef _CYTTSP4_H_ 16 #define _CYTTSP4_H_ 17 18 #define CYTTSP4_MT_NAME "cyttsp4_mt" 19 #define CYTTSP4_I2C_NAME "cyttsp4_i2c_adapter" 20 #define CYTTSP4_SPI_NAME "cyttsp4_spi_adapter" 21 22 #define CY_TOUCH_SETTINGS_MAX 32 23 24 struct touch_framework { 25 const uint16_t *abs; 26 uint8_t size; 27 uint8_t enable_vkeys; 28 } __packed; 29 30 struct cyttsp4_mt_platform_data { 31 struct touch_framework *frmwrk; 32 unsigned short flags; 33 char const *inp_dev_name; 34 }; 35 36 struct touch_settings { 37 const uint8_t *data; 38 uint32_t size; 39 uint8_t tag; 40 } __packed; 41 42 struct cyttsp4_core_platform_data { 43 int irq_gpio; 44 int rst_gpio; 45 int level_irq_udelay; 46 int (*xres)(struct cyttsp4_core_platform_data *pdata, 47 struct device *dev); 48 int (*init)(struct cyttsp4_core_platform_data *pdata, 49 int on, struct device *dev); 50 int (*power)(struct cyttsp4_core_platform_data *pdata, 51 int on, struct device *dev, atomic_t *ignore_irq); 52 int (*irq_stat)(struct cyttsp4_core_platform_data *pdata, 53 struct device *dev); 54 struct touch_settings *sett[CY_TOUCH_SETTINGS_MAX]; 55 }; 56 57 struct cyttsp4_platform_data { 58 struct cyttsp4_core_platform_data *core_pdata; 59 struct cyttsp4_mt_platform_data *mt_pdata; 60 }; 61 62 #endif /* _CYTTSP4_H_ */ 63