Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / platform_data / cyttsp4.h
1 /*
2  * Header file for:
3  * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers.
4  * For use with Cypress Txx3xx parts.
5  * Supported parts include:
6  * CY8CTST341
7  * CY8CTMA340
8  *
9  * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc.
10  * Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org>
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License
14  * version 2, and only version 2, as published by the
15  * Free Software Foundation.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License along
23  * with this program; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25  *
26  * Contact Cypress Semiconductor at www.cypress.com (kev@cypress.com)
27  *
28  */
29 #ifndef _CYTTSP4_H_
30 #define _CYTTSP4_H_
31
32 #define CYTTSP4_MT_NAME "cyttsp4_mt"
33 #define CYTTSP4_I2C_NAME "cyttsp4_i2c_adapter"
34 #define CYTTSP4_SPI_NAME "cyttsp4_spi_adapter"
35
36 #define CY_TOUCH_SETTINGS_MAX 32
37
38 struct touch_framework {
39         const uint16_t  *abs;
40         uint8_t         size;
41         uint8_t         enable_vkeys;
42 } __packed;
43
44 struct cyttsp4_mt_platform_data {
45         struct touch_framework *frmwrk;
46         unsigned short flags;
47         char const *inp_dev_name;
48 };
49
50 struct touch_settings {
51         const uint8_t *data;
52         uint32_t size;
53         uint8_t tag;
54 } __packed;
55
56 struct cyttsp4_core_platform_data {
57         int irq_gpio;
58         int rst_gpio;
59         int level_irq_udelay;
60         int (*xres)(struct cyttsp4_core_platform_data *pdata,
61                 struct device *dev);
62         int (*init)(struct cyttsp4_core_platform_data *pdata,
63                 int on, struct device *dev);
64         int (*power)(struct cyttsp4_core_platform_data *pdata,
65                 int on, struct device *dev, atomic_t *ignore_irq);
66         int (*irq_stat)(struct cyttsp4_core_platform_data *pdata,
67                 struct device *dev);
68         struct touch_settings *sett[CY_TOUCH_SETTINGS_MAX];
69 };
70
71 struct cyttsp4_platform_data {
72         struct cyttsp4_core_platform_data *core_pdata;
73         struct cyttsp4_mt_platform_data *mt_pdata;
74 };
75
76 #endif /* _CYTTSP4_H_ */