aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen/cyttsp4_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/touchscreen/cyttsp4_core.h')
-rw-r--r--drivers/input/touchscreen/cyttsp4_core.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h
new file mode 100644
index 0000000..088ed9d
--- /dev/null
+++ b/drivers/input/touchscreen/cyttsp4_core.h
@@ -0,0 +1,152 @@
+/*
+ * Header file for:
+ * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers.
+ * For use with Cypress Gen4 and Solo parts.
+ * Supported parts include:
+ * CY8CTMA884/616
+ * CY8CTMA4XX
+ *
+ * Copyright (C) 2009-2012 Cypress Semiconductor, Inc.
+ * Copyright (C) 2011 Motorola Mobility, Inc.
+ *
+ * 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_CORE_H__
+#define __CYTTSP4_CORE_H__
+
+#define CY_NUM_RETRY 10 /* max retries for rd/wr ops */
+
+#define CY_I2C_NAME "cyttsp4-i2c"
+#define CY_SPI_NAME "cyttsp4-spi"
+#define CY_DRIVER_VERSION "Rev4-2M-28"
+#define CY_DRIVER_DATE "2012-03-09"
+
+/*
+ * use the following define if the device is a TMA400 family part
+ */
+#define CY_USE_TMA400
+
+/*
+ * use the following define if the device is a TMA400 family part
+ * and can report size and orientation signals
+ * (touch major, touch minor, and orientation)
+ */
+#define CY_USE_TMA400_SP2
+
+/*
+ * use the following define if the device is a TMA884/616 family part
+#define CY_USE_TMA884
+ */
+
+/*
+ * use the following define to allow auto load of firmware at startup
+#define CY_AUTO_LOAD_FW
+ */
+
+/* use the following define to allow auto load of Touch Params at startup
+#define CY_AUTO_LOAD_TOUCH_PARAMS
+ */
+
+/* use the following define to allow auto load of Design Data at startup
+#define CY_AUTO_LOAD_DDATA
+ */
+
+/*
+ * use the following define to allow auto load of Manufacturing Data at startup
+#define CY_AUTO_LOAD_MDATA
+ */
+
+/*
+ * use the following define to allow autoload firmware for any version diffs;
+ * otherwise only autoload if load version is greater than device image version
+#define CY_ANY_DIFF_NEW_VER
+ */
+
+/* use the following define to include loader application
+#define CY_USE_FORCE_LOAD
+ */
+
+/*
+ * use the following define to enable register peak/poke capability
+#define CY_USE_REG_ACCESS
+ */
+
+/* use the following define to enable special debug tools for test only
+#define CY_USE_DEBUG_TOOLS
+ */
+
+/*
+ * use the following define to use level interrupt method (else falling edge)
+ * this method should only be used if the host processor misses edge interrupts
+#define CY_USE_LEVEL_IRQ
+ */
+
+/*
+ * use the following define to enable driver watchdog timer
+#define CY_USE_WATCHDOG
+ */
+#define CY_USE_WATCHDOG
+
+/* system includes are here in order to allow DEBUG option */
+/*
+ * enable this define to enable debug prints
+#define DEBUG = y
+ */
+
+/*
+ * enable this define to enable verbose debug prints
+#define VERBOSE_DEBUG
+ */
+
+#include <linux/kernel.h>
+#include <linux/device.h>
+#include <linux/err.h>
+#include <linux/input.h>
+
+#ifdef CONFIG_HAS_EARLYSUSPEND
+#include <linux/earlysuspend.h>
+#endif
+#define CY_MAX_PRBUF_SIZE PIPE_BUF
+
+struct cyttsp4_bus_ops {
+ int (*write)(void *handle, u16 subaddr, size_t length,
+ const void *values, int i2c_addr, bool use_subaddr);
+ int (*read)(void *handle, u16 subaddr, size_t length,
+ void *values, int i2c_addr, bool use_subaddr);
+ struct device *dev;
+#ifdef CONFIG_TOUCHSCREEN_DEBUG
+ u8 tsdebug;
+#endif
+};
+
+void *cyttsp4_core_init(struct cyttsp4_bus_ops *bus_ops,
+ struct device *dev, int irq, char *name);
+
+void cyttsp4_core_release(void *handle);
+
+#if !defined(CONFIG_HAS_EARLYSUSPEND)
+#if defined(CONFIG_PM_SLEEP)
+extern const struct dev_pm_ops cyttsp4_pm_ops;
+#elif defined(CONFIG_PM)
+int cyttsp4_resume(void *handle);
+int cyttsp4_suspend(void *handle);
+#endif
+#endif
+
+#endif /* __CYTTSP4_CORE_H__ */