mako: touch driver merge
- lge touch common driver
- synaptics touch driver integration with lge common driver
Change-Id: I72e53f8d16610155ab1a31a366e33910a41643be
diff --git a/include/linux/input/touch_synaptics.h b/include/linux/input/touch_synaptics.h
new file mode 100644
index 0000000..396d6b5
--- /dev/null
+++ b/include/linux/input/touch_synaptics.h
@@ -0,0 +1,92 @@
+/* include/linux/lge_touch_core.h
+ *
+ * Copyright (C) 2011 LGE.
+ *
+ * Writer: yehan.ahn@lge.com, hyesung.shin@lge.com
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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.
+ *
+ */
+
+#ifndef LGE_TOUCH_SYNAPTICS_H
+#define LGE_TOUCH_SYNAPTICS_H
+
+#if defined(CONFIG_TOUCH_REG_MAP_TM2000) || defined(CONFIG_TOUCH_REG_MAP_TM2372)
+//do nothing
+#else
+#define ARRAYED_TOUCH_FW_BIN
+#endif
+#define NUM_OF_EACH_FINGER_DATA_REG 5
+#define MAX_NUM_OF_FINGERS 10
+
+#define DESCRIPTION_TABLE_START 0xe9
+
+struct ts_function_descriptor {
+ u8 query_base;
+ u8 command_base;
+ u8 control_base;
+ u8 data_base;
+ u8 int_source_count;
+ u8 id;
+};
+
+struct finger_data {
+ u8 finger_status_reg[3];
+ u8 finger_reg[MAX_NUM_OF_FINGERS][NUM_OF_EACH_FINGER_DATA_REG];
+};
+
+struct button_data {
+ u16 key_code;
+};
+
+struct cur_touch_data {
+ u8 device_status_reg; /* DEVICE_STATUS_REG */
+ u8 interrupt_status_reg;
+ u8 button_data_reg;
+ struct finger_data finger;
+ struct button_data button;
+};
+
+struct interrupt_bit_mask {
+ u8 flash;
+ u8 status;
+ u8 abs;
+ u8 button;
+};
+
+struct synaptics_ts_data {
+ u8 is_probed;
+ struct regulator *regulator_vdd;
+ struct regulator *regulator_vio;
+ struct i2c_client *client;
+ struct touch_platform_data *pdata;
+ struct ts_function_descriptor common_dsc;
+ struct ts_function_descriptor finger_dsc;
+ struct ts_function_descriptor button_dsc;
+ struct ts_function_descriptor flash_dsc;
+ struct cur_touch_data ts_data;
+ struct touch_fw_info *fw_info;
+ struct interrupt_bit_mask interrupt_mask;
+#if defined(CONFIG_TOUCH_REG_MAP_TM2000) || defined(CONFIG_TOUCH_REG_MAP_TM2372)
+ struct ts_function_descriptor analog_dsc;
+#endif
+
+#if defined(CONFIG_TOUCH_REG_MAP_TM2000) || defined(CONFIG_TOUCH_REG_MAP_TM2372)
+ u8 ic_panel_type;
+#endif
+};
+
+#if defined(CONFIG_TOUCH_REG_MAP_TM2000) || defined(CONFIG_TOUCH_REG_MAP_TM2372)
+enum {IC7020_GFF, IC7020_G2, IC3203_G2, IC7020_GFF_H_PTN, IC7020_G2_H_PTN};
+#endif
+
+/* extern function */
+extern int FirmwareUpgrade(struct synaptics_ts_data *ts, const char* fw_path);
+#endif