summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h')
-rwxr-xr-xANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/ANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h b/ANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h
new file mode 100755
index 00000000..0469bf19
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/input/touchscreen/semisens/sn310m-touch.h
@@ -0,0 +1,97 @@
+/****************************************************************
+ *
+ * sn310m-touch.c : i2c Touchscreen driver (platform data struct)
+ *
+ * Copyright (c) 2013 SEMISENS Co.,Ltd
+ * http://www.semisens.com
+ *
+ ****************************************************************/
+#ifndef __SN310M_TOUCH_H
+#define __SN310M_TOUCH_H
+
+//----------------------------------------------
+// register address for firmware update
+//----------------------------------------------
+#define REG_CMD_ISP_MODE 0x02F1 // 0x0200 : prepare eFlash, 0x0100 : finish eFalsh
+#define REG_CMD_FLASH_BUS 0x04F1 // 0x0000 : set eFlash bus functions
+#define REG_CMD_FLASH_ENABLE 0x08F1 // 0xFFFF : enable eFlash functions
+#define REG_CMD_FLASH_AUTH 0x00F4 // 0x0100 : get eFlash approach authority
+#define REG_CMD_FLASH_CON_EN 0x02F4 // 0x0000 : enable eFlash controller
+#define REG_CMD_FLASH_COMMAND 0x04F4 // 0x0200 : erase eFlash, 0x0000 : write eFlash
+#define REG_CMD_FLASH_BUSY 0x08F4 // [15] bit is busy flag for eflash eperating.
+
+//----------------------------------------------
+// register setting value for firmware update
+//----------------------------------------------
+#define REG_SET_PREPARE_FLASH_ACCESS 0x0200
+#define REG_SET_FINISH_FLASH_ACCESS 0x0100
+#define REG_SET_ENABLE_FLASH_ERASE 0x0200
+#define REG_SET_ENABLE_FLASH_WRITE 0x0000
+
+#define SN310M_MAX_FW_SIZE (10*1024) // 10 Kbytes
+#define REG_FIRMWARE_VERSION (0x3EE0)
+
+//----------------------------------------------
+// Touch status & data register address
+//----------------------------------------------
+#define REG_TS_STATUS 0x00E0
+
+typedef struct status_reg__t {
+ unsigned int ts_cnt :4; // lsb
+ unsigned int reserved1 :4;
+ unsigned int button :5;
+ unsigned int reserved2 :3; // msb
+} __attribute__ ((packed)) status_reg_t;
+
+typedef union status_reg__u {
+ unsigned short uint;
+ status_reg_t bits;
+} __attribute__ ((packed)) status_reg_u;
+
+#define REG_TS_DATA_BASE 0x02E0
+#define REG_TS_DATA(x) (((x * 6) << 8) + REG_TS_DATA_BASE)
+
+typedef struct data_reg__t {
+ unsigned short packet0;
+ unsigned short packet1;
+ unsigned short packet2;
+} __attribute__ ((packed)) data_reg_t;
+
+typedef union data_reg__u {
+ unsigned int uint;
+ data_reg_t bits;
+} __attribute__ ((packed)) data_reg_u;
+
+
+//----------------------------------------------
+// i2c Control function
+//----------------------------------------------
+extern int sn310m_i2c_read(struct i2c_client *client, unsigned char *cmd, unsigned int cmd_len, unsigned char *data, unsigned int len);
+extern int sn310m_i2c_write(struct i2c_client *client, unsigned char *cmd, unsigned int cmd_len, unsigned char *data, unsigned int len);
+
+//----------------------------------------------
+// Touch initialize & finalize function
+//----------------------------------------------
+extern int sn310m_input_open(struct input_dev *input);
+extern void sn310m_enable(struct touch *ts);
+extern void sn310m_disable(struct touch *ts);
+extern int sn310m_early_probe(struct touch *ts);
+extern int sn310m_probe(struct touch *ts);
+
+//----------------------------------------------
+// Calibration function
+//----------------------------------------------
+extern int sn310m_calibration(struct touch *ts);
+
+//----------------------------------------------
+// Touch data processing function
+//----------------------------------------------
+extern void sn310m_work(struct touch *ts);
+
+//----------------------------------------------
+// Firmware update Control function
+//----------------------------------------------
+extern int sn310m_flash_firmware(struct device *dev, const char *fw_name);
+
+#endif // __SN310M_TOUCH_H
+