Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / include / linux / platform_data / cyttsp4.h
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_ */