summaryrefslogtreecommitdiff
path: root/include/linux/i2c/focaltech.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/i2c/focaltech.h')
-rw-r--r--include/linux/i2c/focaltech.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/include/linux/i2c/focaltech.h b/include/linux/i2c/focaltech.h
new file mode 100644
index 00000000..dce9d136
--- /dev/null
+++ b/include/linux/i2c/focaltech.h
@@ -0,0 +1,124 @@
+#ifndef __LINUX_FT5X0X_TS_H__
+#define __LINUX_FT5X0X_TS_H__
+
+
+#define SCREEN_MAX_X 320
+#define SCREEN_MAX_Y 480
+
+#define FT5x0x_REG_FW_VER 0xA6
+#define PRESS_MAX 255
+#define FT5x0x_REG_POINT_RATE 0x88
+#define TOUCH_VIRTUAL_KEYS
+
+//#define FT5206_TS_DEVICE "msg2133"
+//#define FOCALTECH_TS_DEVICE "ft5x0x_ts"
+#define FOCALTECH_TS_NAME "focaltech_ts"
+#define FOCALTECH_TS_ADDR 0x38
+
+/*register address*/
+#define FT_REG_CHIP_ID 0xA3 //chip ID
+#define FT_REG_FW_VER 0xA6 //FW version
+#define FT_REG_VENDOR_ID 0xA8 // TP vendor ID
+#define TPD_MAX_POINTS_2 2
+#define TPD_MAX_POINTS_5 5
+#define TPD_MAXPOINTS_10 10
+#define AUTO_CLB_NEED 1
+#define AUTO_CLB_NONEED 0
+
+struct Upgrade_Info {
+ u8 CHIP_ID;
+ u8 FTS_NAME[20];
+ u8 TPD_MAX_POINTS;
+ u8 AUTO_CLB;
+ u16 delay_aa; /*delay of write FT_UPGRADE_AA */
+ u16 delay_55; /*delay of write FT_UPGRADE_55 */
+ u8 upgrade_id_1; /*upgrade id 1 */
+ u8 upgrade_id_2; /*upgrade id 2 */
+ u16 delay_readid; /*delay of read id */
+ u16 delay_earse_flash; /*delay of earse flash*/
+};
+
+struct ft5x0x_ts_platform_data{
+ int irq_gpio_number;
+ int reset_gpio_number;
+ const char *vdd_name;
+ int virtualkeys[12];
+ int TP_MAX_X;
+ int TP_MAX_Y;
+};
+
+
+
+int ft5x0x_i2c_Read(struct i2c_client *client, char *writebuf, int writelen,char *readbuf, int readlen);
+int ft5x0x_i2c_Write(struct i2c_client *client, char *writebuf, int writelen);
+
+
+enum ft5x0x_ts_regs {
+ FT5X0X_REG_THGROUP = 0x80,
+ FT5X0X_REG_THPEAK = 0x81,
+ FT5X0X_REG_THCAL = 0x82,
+ FT5X0X_REG_THWATER = 0x83,
+ FT5X0X_REG_THTEMP = 0x84,
+ FT5X0X_REG_THDIFF = 0x85,
+ FT5X0X_REG_CTRL = 0x86,
+ FT5X0X_REG_TIMEENTERMONITOR = 0x87,
+ FT5X0X_REG_PERIODACTIVE = 0x88,
+ FT5X0X_REG_PERIODMONITOR = 0x89,
+ FT5X0X_REG_HEIGHT_B = 0x8a,
+ FT5X0X_REG_MAX_FRAME = 0x8b,
+ FT5X0X_REG_DIST_MOVE = 0x8c,
+ FT5X0X_REG_DIST_POINT = 0x8d,
+ FT5X0X_REG_FEG_FRAME = 0x8e,
+ FT5X0X_REG_SINGLE_CLICK_OFFSET = 0x8f,
+ FT5X0X_REG_DOUBLE_CLICK_TIME_MIN = 0x90,
+ FT5X0X_REG_SINGLE_CLICK_TIME = 0x91,
+ FT5X0X_REG_LEFT_RIGHT_OFFSET = 0x92,
+ FT5X0X_REG_UP_DOWN_OFFSET = 0x93,
+ FT5X0X_REG_DISTANCE_LEFT_RIGHT = 0x94,
+ FT5X0X_REG_DISTANCE_UP_DOWN = 0x95,
+ FT5X0X_REG_ZOOM_DIS_SQR = 0x96,
+ FT5X0X_REG_RADIAN_VALUE =0x97,
+ FT5X0X_REG_MAX_X_HIGH = 0x98,
+ FT5X0X_REG_MAX_X_LOW = 0x99,
+ FT5X0X_REG_MAX_Y_HIGH = 0x9a,
+ FT5X0X_REG_MAX_Y_LOW = 0x9b,
+ FT5X0X_REG_K_X_HIGH = 0x9c,
+ FT5X0X_REG_K_X_LOW = 0x9d,
+ FT5X0X_REG_K_Y_HIGH = 0x9e,
+ FT5X0X_REG_K_Y_LOW = 0x9f,
+ FT5X0X_REG_AUTO_CLB_MODE = 0xa0,
+ FT5X0X_REG_LIB_VERSION_H = 0xa1,
+ FT5X0X_REG_LIB_VERSION_L = 0xa2,
+ FT5X0X_REG_CIPHER = 0xa3,
+ FT5X0X_REG_MODE = 0xa4,
+ FT5X0X_REG_PMODE = 0xa5, /* Power Consume Mode */
+ FT5X0X_REG_FIRMID = 0xa6,
+ FT5X0X_REG_STATE = 0xa7,
+ FT5X0X_REG_FT5201ID = 0xa8,
+ FT5X0X_REG_ERR = 0xa9,
+ FT5X0X_REG_CLB = 0xaa,
+};
+
+//FT5X0X_REG_PMODE
+#define PMODE_ACTIVE 0x00
+#define PMODE_MONITOR 0x01
+#define PMODE_STANDBY 0x02
+#define PMODE_HIBERNATE 0x03
+
+
+ #ifndef ABS_MT_TOUCH_MAJOR
+ #define ABS_MT_TOUCH_MAJOR 0x30 /* touching ellipse */
+ #define ABS_MT_TOUCH_MINOR 0x31 /* (omit if circular) */
+ #define ABS_MT_WIDTH_MAJOR 0x32 /* approaching ellipse */
+ #define ABS_MT_WIDTH_MINOR 0x33 /* (omit if circular) */
+ #define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
+ #define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
+ #define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
+ #define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */
+ #define ABS_MT_BLOB_ID 0x38 /* Group set of pkts as blob */
+ #define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
+ #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
+ #endif /* ABS_MT_TOUCH_MAJOR */
+
+
+#endif