summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/zinitix_touch.h
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /drivers/input/touchscreen/zinitix_touch.h
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'drivers/input/touchscreen/zinitix_touch.h')
-rw-r--r--drivers/input/touchscreen/zinitix_touch.h249
1 files changed, 249 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/zinitix_touch.h b/drivers/input/touchscreen/zinitix_touch.h
new file mode 100644
index 00000000..2f0c5d9c
--- /dev/null
+++ b/drivers/input/touchscreen/zinitix_touch.h
@@ -0,0 +1,249 @@
+/*
+ *
+ * Zinitix touch driver
+ *
+ * Copyright (C) 2009 Zinitix, Inc.
+ *
+ * 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 ZINITIX_HEADER
+
+#define ABS_MT_TRACKING_ID 1
+
+#define ZINITIX_HEADER
+
+#define TS_DRVIER_VERSION "3.0.20"
+
+#define TOUCH_MODE 0
+
+/* if you want to use firmware setting, set this value.
+interrupt mask / button num / finger num */
+#define USING_CHIP_SETTING 0
+
+
+/* max 10 */
+#define MAX_SUPPORTED_FINGER_NUM 2
+#define REAL_SUPPORTED_FINGER_NUM 2
+
+
+/* max 8 */
+#define MAX_SUPPORTED_BUTTON_NUM 8
+#define SUPPORTED_BUTTON_NUM 2
+
+/* Upgrade Method*/
+#define TOUCH_ONESHOT_UPGRADE 1
+/* if you use isp mode, you must add i2c device :
+name = "zinitix_isp" , addr 0x50*/
+
+#define USE_HW_CALIBRATION 1
+
+/* resolution offset */
+#define ABS_PT_OFFSET 1
+
+#define TOUCH_FORCE_UPGRADE 1
+#define USE_CHECKSUM 0 // BT4x3 only
+
+#define CHIP_POWER_OFF_DELAY 100 /*ms*/
+#define CHIP_POWER_OFF_AF_FZ_DELAY 250 /*ms*/
+#define CHIP_ON_DELAY 150 /*ms*/
+#define CHIP_ON_AF_FZ_DELAY 250 /*ms*/
+#define DELAY_FOR_SIGNAL_DELAY 30 /*us*/
+#define DELAY_FOR_TRANSCATION 50
+#define DELAY_FOR_POST_TRANSCATION 10
+
+
+#if !USE_HW_CALIBRATION
+#define CALIBRATION_AREA 0x3800
+#endif
+
+#define FIRMWARE_VERSION_POS 0x6410
+
+enum _zinitix_power_control {
+ POWER_OFF,
+ POWER_ON,
+ RESET_LOW,
+ RESET_HIGH,
+};
+
+/* Button Enum */
+enum _zinitix_button_event {
+ ICON_BUTTON_UNCHANGE,
+ ICON_BUTTON_DOWN,
+ ICON_BUTTON_UP,
+};
+
+
+/* ESD Protection */
+/*second : if 0, no use. if you have to use, 3 is recommended*/
+#define ZINITIX_ESD_TIMER_INTERVAL 0
+#define ZINITIX_SCAN_RATE_HZ 70
+#define ZINITIX_CHECK_ESD_TIMER 4
+
+
+/*Test Mode (Monitoring Raw Data) */
+#define USE_TEST_RAW_TH_DATA_MODE 1
+#if USE_TEST_RAW_TH_DATA_MODE
+
+#define X_RAW_DATA 16
+#define Y_RAW_DATA 10
+#define MAX_TEST_RAW_DATA (X_RAW_DATA*Y_RAW_DATA) // 14 x 10
+#define MAX_TEST_POINT_INFO 3 /* status register + x + y*/
+#define MAX_RAW_DATA \
+ (MAX_TEST_RAW_DATA + MAX_TEST_POINT_INFO*MAX_SUPPORTED_FINGER_NUM + 2)
+/* preriod raw data interval*/
+#define ZINITIX_RAW_DATA_ESD_TIMER_INTERVAL 1
+#define TOUCH_TEST_RAW_MODE 51
+#define TOUCH_NORMAL_MODE 48
+#define TOUCH_ZINITIX_BASELINED_RAW_MODE 3
+#define TOUCH_ZINITIX_PROCESSED_RAW_MODE 4
+#define TOUCH_ZINITIX_CAL_N_MODE 8
+#define ZINITIX_MENU_KEY 131
+#define ZINITIX_HOME_KEY 134
+#define ZINITIX_BACK_KEY 137
+
+#define CAL_MIN_NUM 1360
+#define CAL_MAX_NUM 2040
+#define INT_WAIT_TIME 50
+
+#define FULL_X_DATA 20
+#define FULL_Y_DATA 16
+#define SCANTIME_RAWDATA (FULL_X_DATA*FULL_Y_DATA)
+
+struct _raw_ioctl {
+ int sz;
+ u8 *buf;
+};
+
+struct _reg_ioctl{
+ int addr;
+ int *val;
+} ;
+
+#endif
+
+/* Other Things */
+#define ZINITIX_INIT_RETRY_CNT 3
+#define I2C_SUCCESS 0
+#define I2C_FAIL 1
+
+#define INIT_RETRY_COUNT 2
+
+
+/*---------------------------------------------------------------------*/
+
+/* Register Map*/
+#define ZINITIX_SWRESET_CMD 0x0000
+#define ZINITIX_WAKEUP_CMD 0x0001
+
+#define ZINITIX_IDLE_CMD 0x0004
+#define ZINITIX_SLEEP_CMD 0x0005
+
+#define ZINITIX_CLEAR_INT_STATUS_CMD 0x0003
+#define ZINITIX_CALIBRATE_CMD 0x0006
+#define ZINITIX_SAVE_STATUS_CMD 0x0007
+#define ZINITIX_SAVE_CALIBRATION_CMD 0x0008
+#define ZINITIX_RECALL_FACTORY_CMD 0x000f
+
+
+#define ZINITIX_TOUCH_MODE 0x0010
+#define ZINITIX_CHIP_REVISION 0x0011
+#define ZINITIX_FIRMWARE_VERSION 0x0012
+#define ZINITIX_DATA_VERSION_REG 0x0013
+#define ZINITIX_TSP_TYPE 0x0014
+#define ZINITIX_SUPPORTED_FINGER_NUM 0x0015
+#define ZINITIX_MAX_Y_NUM 0x0016
+#define ZINITIX_EEPROM_INFO 0x0018
+#define ZINITIX_CAL_N_TOTAL_NUM 0x001B
+
+#define ZINITIX_TOTAL_NUMBER_OF_X 0x0060
+#define ZINITIX_TOTAL_NUMBER_OF_Y 0x0061
+
+#define ZINITIX_BUTTON_SUPPORTED_NUM 0x00B0
+
+
+#define ZINITIX_X_RESOLUTION 0x00C0
+#define ZINITIX_Y_RESOLUTION 0x00C1
+
+
+#define ZINITIX_POINT_STATUS_REG 0x0080
+#define ZINITIX_ICON_STATUS_REG 0x00A0
+
+#define ZINITIX_RAWDATA_REG 0x0200
+
+#define ZINITIX_EEPROM_INFO_REG 0x0018
+
+#define ZINITIX_INT_ENABLE_FLAG 0x00f0
+#define ZINITIX_PERIODICAL_INTERRUPT_INTERVAL 0x00f1
+
+#define ZINITIX_CHECK_REG0 0x00AC
+#define ZINITIX_CHECK_REG1 0x00AD
+#define ZINITIX_CHECK_REG2 0x00AE
+#define ZINITIX_CHECK_REG3 0x00AF
+
+
+/* Interrupt & status register flag bit
+-------------------------------------------------
+*/
+#define BIT_PT_CNT_CHANGE 0
+#define BIT_DOWN 1
+#define BIT_MOVE 2
+#define BIT_UP 3
+#define BIT_HOLD 4
+#define BIT_LONG_HOLD 5
+#define RESERVED_0 6
+#define RESERVED_1 7
+#define BIT_WEIGHT_CHANGE 8
+#define BIT_PT_NO_CHANGE 9
+#define BIT_REJECT 10
+#define BIT_PT_EXIST 11
+#define RESERVED_2 12
+#define RESERVED_3 13
+#define RESERVED_4 14
+#define BIT_ICON_EVENT 15
+
+/* button */
+#define BIT_O_ICON0_DOWN 0
+#define BIT_O_ICON1_DOWN 1
+#define BIT_O_ICON2_DOWN 2
+#define BIT_O_ICON3_DOWN 3
+#define BIT_O_ICON4_DOWN 4
+#define BIT_O_ICON5_DOWN 5
+#define BIT_O_ICON6_DOWN 6
+#define BIT_O_ICON7_DOWN 7
+
+#define BIT_O_ICON0_UP 8
+#define BIT_O_ICON1_UP 9
+#define BIT_O_ICON2_UP 10
+#define BIT_O_ICON3_UP 11
+#define BIT_O_ICON4_UP 12
+#define BIT_O_ICON5_UP 13
+#define BIT_O_ICON6_UP 14
+#define BIT_O_ICON7_UP 15
+
+
+#define SUB_BIT_EXIST 0
+#define SUB_BIT_DOWN 1
+#define SUB_BIT_MOVE 2
+#define SUB_BIT_UP 3
+#define SUB_BIT_UPDATE 4
+#define SUB_BIT_WAIT 5
+
+
+#define zinitix_bit_set(val, n) ((val) &= ~(1<<(n)), (val) |= (1<<(n)))
+#define zinitix_bit_clr(val, n) ((val) &= ~(1<<(n)))
+#define zinitix_bit_test(val, n) ((val) & (1<<(n)))
+#define zinitix_swap_v(a, b, t) ((t) = (a), (a) = (b), (b) = (t))
+#define zinitix_swap_16(s) (((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
+
+#endif /*ZINITIX_HEADER*/
+
+