input: touchscreen: max1187x: Import max1187x driver for T6
* HTC package version: t6ul-3.4.10-g0534bc3
Change-Id: I931d5484a8c8d05ef2ac329983e8318028f2d6fe
diff --git a/include/linux/max1187x.h b/include/linux/max1187x.h
new file mode 100755
index 0000000..e292347
--- /dev/null
+++ b/include/linux/max1187x.h
@@ -0,0 +1,176 @@
+/* include/linux/max1187x.h
+ *
+ * Copyright (c)2012 Maxim Integrated Products, Inc.
+ *
+ * Driver Version: 3.0.7
+ * Release Date: Feb 22, 2013
+ *
+ * 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 __MAX1187X_H
+#define __MAX1187X_H
+
+#define MAX1187X_NAME "max1187x"
+#define MAX1187X_TOUCH MAX1187X_NAME "_touchscreen_0"
+#define MAX1187X_KEY MAX1187X_NAME "_key_0"
+#define MAX1187X_LOG_NAME "[TP] "
+
+#define MAX_WORDS_COMMAND 9
+#define MAX_WORDS_REPORT 245
+#define MAX_WORDS_COMMAND_ALL (15 * MAX_WORDS_COMMAND)
+
+#define MAX1187X_NUM_FW_MAPPINGS_MAX 5
+#define MAX1187X_TOUCH_COUNT_MAX 10
+#define MAX1187X_TOUCH_REPORT_RAW 0x0800
+#define MAX1187X_TOUCH_REPORT_BASIC 0x0801
+#define MAX1187X_TOUCH_REPORT_EXTENDED 0x0802
+#define MAX_REPORT_READERS 5
+#define DEBUG_STRING_LEN_MAX 60
+#define MAX_FW_RETRIES 5
+
+#define MAX1187X_PI 205887
+
+#define MAX1187X_TOUCH_CONFIG_MAX 65
+#define MAX1187X_CALIB_TABLE_MAX 74
+#define MAX1187X_PRIVATE_CONFIG_MAX 34
+#define MAX1187X_LOOKUP_TABLE_MAX 8
+#define MAX1187X_IMAGE_FACTOR_MAX 460
+
+#define MAX1187X_NO_BASELINE 0
+#define MAX1187X_FIX_BASELINE 1
+#define MAX1187X_AUTO_BASELINE 2
+
+struct max1187x_touch_report_header {
+ u16 header;
+ u16 report_id;
+ u16 report_size;
+ u16 touch_count:4;
+ u16 touch_status:4;
+ u16 reserved0:5;
+ u16 cycles:1;
+ u16 reserved1:2;
+ u16 button0:1;
+ u16 button1:1;
+ u16 button2:1;
+ u16 button3:1;
+ u16 reserved2:12;
+ u16 framecounter;
+};
+
+struct max1187x_touch_report_basic {
+ u16 finger_id:4;
+ u16 reserved0:4;
+ u16 finger_status:4;
+ u16 reserved1:4;
+ u16 x:12;
+ u16 reserved2:4;
+ u16 y:12;
+ u16 reserved3:4;
+ u16 z;
+};
+
+struct max1187x_touch_report_extended {
+ u16 finger_id:4;
+ u16 reserved0:4;
+ u16 finger_status:4;
+ u16 reserved1:4;
+ u16 x:12;
+ u16 reserved2:4;
+ u16 y:12;
+ u16 reserved3:4;
+ u16 z;
+ s16 xspeed;
+ s16 yspeed;
+ s8 xpixel;
+ s8 ypixel;
+ u16 area;
+ u16 xmin;
+ u16 xmax;
+ u16 ymin;
+ u16 ymax;
+};
+
+struct max1187x_board_config {
+ u16 config_id;
+ u16 chip_id;
+ u8 major_ver;
+ u8 minor_ver;
+ u8 protocol_ver;
+ u16 vendor_pin;
+ u16 config_touch[MAX1187X_TOUCH_CONFIG_MAX];
+ u16 config_cal[MAX1187X_CALIB_TABLE_MAX];
+ u16 config_private[MAX1187X_PRIVATE_CONFIG_MAX];
+ u16 config_lin_x[MAX1187X_LOOKUP_TABLE_MAX];
+ u16 config_lin_y[MAX1187X_LOOKUP_TABLE_MAX];
+ u16 config_ifactor[MAX1187X_IMAGE_FACTOR_MAX];
+};
+
+struct max1187x_virtual_key {
+ int index;
+ int keycode;
+ int x_position;
+ int y_position;
+};
+
+struct max1187x_fw_mapping {
+ u32 chip_id;
+ char *filename;
+ u32 filesize;
+ u32 filecrc16;
+ u32 file_codesize;
+};
+
+struct max1187x_pdata {
+ struct max1187x_board_config *fw_config;
+ u32 gpio_tirq;
+ u32 gpio_reset;
+ u32 num_fw_mappings;
+ struct max1187x_fw_mapping fw_mapping[MAX1187X_NUM_FW_MAPPINGS_MAX];
+ u32 defaults_allow;
+ u32 default_config_id;
+ u32 default_chip_id;
+ u32 i2c_words;
+ #define MAX1187X_REVERSE_X 0x0001
+ #define MAX1187X_REVERSE_Y 0x0002
+ #define MAX1187X_SWAP_XY 0x0004
+ u32 coordinate_settings;
+ u32 panel_min_x;
+ u32 panel_max_x;
+ u32 panel_min_y;
+ u32 panel_max_y;
+ u32 lcd_x;
+ u32 lcd_y;
+ u32 num_rows;
+ u32 num_cols;
+ #define MAX1187X_PROTOCOL_A 0
+ #define MAX1187X_PROTOCOL_B 1
+ #define MAX1187X_PROTOCOL_CUSTOM1 2
+ u16 input_protocol;
+ #define MAX1187X_UPDATE_NONE 0
+ #define MAX1187X_UPDATE_BIN 1
+ #define MAX1187X_UPDATE_CONFIG 2
+ #define MAX1187X_UPDATE_BOTH 3
+ u8 update_feature;
+ u8 support_htc_event;
+ u16 tw_mask;
+ u32 button_code0;
+ u32 button_code1;
+ u32 button_code2;
+ u32 button_code3;
+ #define MAX1187X_REPORT_MODE_BASIC 1
+ #define MAX1187X_REPORT_MODE_EXTEND 2
+ u8 report_mode;
+ struct max1187x_virtual_key *button_data;
+};
+
+#endif
+