linux-IllusionX/include/linux/platform_data/cyttsp4.h
Ferruh Yigit 17fb1563d6 Input: cyttsp4 - add core driver for Cypress TMA4XX touchscreen devices
Cypress TrueTouch(tm) Standard Product controllers,
Generetion4 devices, Core driver.

Core driver is interface between host and TTSP controller and processes
data sent by controller.

Responsibilities of module are IRQ handling, reading system information
registers and sending multi-touch protocol type B events.

Signed-off-by: Ferruh Yigit <fery@cypress.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Javier Martinez Canillas <javier@dowhile0.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2013-06-30 21:24:21 -07:00

76 lines
2.2 KiB
C

/*
* Header file for:
* Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers.
* For use with Cypress Txx3xx parts.
* Supported parts include:
* CY8CTST341
* CY8CTMA340
*
* Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc.
* Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2, and only version 2, as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Contact Cypress Semiconductor at www.cypress.com (kev@cypress.com)
*
*/
#ifndef _CYTTSP4_H_
#define _CYTTSP4_H_
#define CYTTSP4_MT_NAME "cyttsp4_mt"
#define CYTTSP4_I2C_NAME "cyttsp4_i2c_adapter"
#define CYTTSP4_SPI_NAME "cyttsp4_spi_adapter"
#define CY_TOUCH_SETTINGS_MAX 32
struct touch_framework {
const uint16_t *abs;
uint8_t size;
uint8_t enable_vkeys;
} __packed;
struct cyttsp4_mt_platform_data {
struct touch_framework *frmwrk;
unsigned short flags;
char const *inp_dev_name;
};
struct touch_settings {
const uint8_t *data;
uint32_t size;
uint8_t tag;
} __packed;
struct cyttsp4_core_platform_data {
int irq_gpio;
int rst_gpio;
int level_irq_udelay;
int (*xres)(struct cyttsp4_core_platform_data *pdata,
struct device *dev);
int (*init)(struct cyttsp4_core_platform_data *pdata,
int on, struct device *dev);
int (*power)(struct cyttsp4_core_platform_data *pdata,
int on, struct device *dev, atomic_t *ignore_irq);
int (*irq_stat)(struct cyttsp4_core_platform_data *pdata,
struct device *dev);
struct touch_settings *sett[CY_TOUCH_SETTINGS_MAX];
};
struct cyttsp4_platform_data {
struct cyttsp4_core_platform_data *core_pdata;
struct cyttsp4_mt_platform_data *mt_pdata;
};
#endif /* _CYTTSP4_H_ */