diff options
Diffstat (limited to 'drivers/input/touchscreen/zinitix_touch.h')
| -rw-r--r-- | drivers/input/touchscreen/zinitix_touch.h | 249 |
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*/ + + |
