diff options
author | David Jung <djung@nvidia.com> | 2012-10-24 15:39:38 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 12:40:53 -0700 |
commit | d43a3b75cd57ffe9541a290477d77d31670087bc (patch) | |
tree | e5bbbf0193fd17da264d96cd4bf4a0247c82127e /include/linux | |
parent | 76cfbe51f9def54f2254f4fde5bebf37524b26c7 (diff) |
input: touch: raydium: updates for slow scanning
Raydium code drop.
Update for Raydium touch for
Pluto slow scanning
Bug 1054801
Change-Id: Id182035bf7e51ba3431c392ee10a95b5bc518157
Signed-off-by: David Jung <djung@nvidia.com>
Reviewed-on: http://git-master/r/147343
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Rebase-Id: R0e9b674d090f90bc23a43c16873f75856ed926a6
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/spi/rm31080a_ctrl.h | 108 | ||||
-rw-r--r-- | include/linux/spi/rm31080a_ts.h | 148 |
2 files changed, 136 insertions, 120 deletions
diff --git a/include/linux/spi/rm31080a_ctrl.h b/include/linux/spi/rm31080a_ctrl.h index bb87a14a5415..0aaba60e37be 100644 --- a/include/linux/spi/rm31080a_ctrl.h +++ b/include/linux/spi/rm31080a_ctrl.h @@ -26,17 +26,17 @@ #define RM31080B1_REG_BANK0_0EH 0x0E #define RM31080B1_REG_BANK0_11H 0x11 -typedef enum -{ +enum NOISE_DETECTOR_RET_t { ND_NORMAL = 0, ND_DETECTOR_OFF, ND_BASELINE_NOT_READY, ND_NOISE_DETECTED, ND_LEAVE_NOISE_MODE -}NOISE_DETECTOR_RET_t; +}; -//Tchreg.h -#define ADFC 0x10 // Adaptive digital filter +/* Tchreg.h */ +/* Adaptive digital filter */ +#define ADFC 0x10 #define FILTER_THRESHOLD_MODE 0x08 #define FILTER_NONTHRESHOLD_MODE 0x00 @@ -65,22 +65,22 @@ struct rm31080a_ctrl_para { unsigned char bICVersion; #endif - //Marty added - unsigned char bChannelDetectorNum; // Noise_Detector - unsigned char bChannelDetectorDummy; // Noise_Detector - signed char bNoiseThresholdMax; // Noise_Detector - signed char bNoiseThresholdMin; // Noise_Detector - signed char bNoiseThresholdLowMax; // Noise_Detector - signed char bNoiseThresholdLowMin; // Noise_Detector - unsigned char bBaselineReady; // Noise_Detector - unsigned char bNoiseDetectThd; // Noise_Detector + /* Marty added */ + unsigned char bChannelDetectorNum; /* Noise_Detector */ + unsigned char bChannelDetectorDummy; /* Noise_Detector */ + signed char bNoiseThresholdMax; /* Noise_Detector */ + signed char bNoiseThresholdMin; /* Noise_Detector */ + signed char bNoiseThresholdLowMax; /* Noise_Detector */ + signed char bNoiseThresholdLowMin; /* Noise_Detector */ + unsigned char bBaselineReady; /* Noise_Detector */ + unsigned char bNoiseDetectThd; /* Noise_Detector */ unsigned char bNewNoiseRepeatTimes; - unsigned char bRepeatTimes[2]; // Noise_Detector + unsigned char bRepeatTimes[2]; /* Noise_Detector */ unsigned char bIdleRepeatTimes[2]; - unsigned char bSenseNumber; // Noise_Detector - unsigned char bfADFC; // Noise_Detector - unsigned char bfTHMode; // Noise_Detector - unsigned char bfAnalogFilter; // Noise_Detector + unsigned char bSenseNumber; /* Noise_Detector */ + unsigned char bfADFC; /* Noise_Detector */ + unsigned char bfTHMode; /* Noise_Detector */ + unsigned char bfAnalogFilter; /* Noise_Detector */ unsigned char bXChannel[4]; unsigned char bYChannel[2]; unsigned char bDummyChannel[4]; @@ -96,42 +96,42 @@ struct rm31080a_ctrl_para { unsigned char bNoisePipelineBase; unsigned char bTime2Idle; unsigned char bfPowerMode; - unsigned char bfIdleMessage; - unsigned char bDummyRunCycle; + unsigned char bfIdleMessage; + unsigned char bDummyRunCycle; #if ENABLE_FILTER_SWITCH - unsigned char bReg1_09h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg1_43h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg1_48h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg1_49h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg1_4Ah[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg1_4Bh[2]; // 0: Digital Filter 1: Analog Filter - - unsigned char bReg0_40h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_41h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_42h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_43h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_20h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_21h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_22h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_23h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_24h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_25h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_26h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_27h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_28h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_29h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Ah[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Bh[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Ch[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Dh[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Eh[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_2Fh[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_30h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_31h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_32h[2]; // 0: Digital Filter 1: Analog Filter - unsigned char bReg0_33h[2]; // 0: Digital Filter 1: Analog Filter + unsigned char bReg1_09h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg1_43h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg1_48h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg1_49h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg1_4Ah[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg1_4Bh[2]; /*0: Digital Filter 1: Analog Filter*/ + + unsigned char bReg0_40h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_41h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_42h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_43h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_20h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_21h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_22h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_23h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_24h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_25h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_26h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_27h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_28h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_29h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Ah[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Bh[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Ch[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Dh[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Eh[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_2Fh[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_30h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_31h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_32h[2]; /*0: Digital Filter 1: Analog Filter*/ + unsigned char bReg0_33h[2]; /*0: Digital Filter 1: Analog Filter*/ #endif }; @@ -147,7 +147,7 @@ void rm31080_ctrl_set_baseline(void *arg); unsigned char rm31080_ctrl_get_noise_mode(unsigned char *p); void rm31080_ctrl_get_parameter(void *arg); int rm31080_soft_average(signed char *pSource); -NOISE_DETECTOR_RET_t rm_noise_detect(signed char *pSource); +int rm_noise_detect(signed char *pSource); int rm_noise_main(signed char *pSource); #if ENABLE_T007B1_SETTING @@ -165,4 +165,4 @@ void rm31080_ctrl_set_analog_baseline(void *arg); #endif #endif void rm_set_repeat_times(u8 u8Times); -#endif //_RM31080A_CTRL_H_ +#endif /* _RM31080A_CTRL_H_ */ diff --git a/include/linux/spi/rm31080a_ts.h b/include/linux/spi/rm31080a_ts.h index 4545e18264ae..53eab5ad77d7 100644 --- a/include/linux/spi/rm31080a_ts.h +++ b/include/linux/spi/rm31080a_ts.h @@ -3,78 +3,77 @@ #define ENABLE_RAW_DATA_QUEUE -#define ENABLE_TOUCH_RESPONSE_TEST 1 //Roger -#define ENABLE_RESOLUTION_SWITCH 1 //Alex -#define ENABLE_FILTER_SWITCH 0 //Cage -#define ENABLE_NEW_NOISE_MODE 0 //Marty -#define NOISE_SUM_CHECK 0 //Nelson -#define ENABLE_CALIBRATTION_BY_FIRMWARE 1 -#define ENABLE_NEW_PARAMETER 1 -#define ENABLE_ST_SCAN 0 - -#define ENABLE_T007B1_SETTING 1 +#define ENABLE_TOUCH_RESPONSE_TEST 1 /*Roger*/ +#define ENABLE_RESOLUTION_SWITCH 1 /*Alex*/ +#define ENABLE_FILTER_SWITCH 0 /*Cage*/ +#define ENABLE_NEW_NOISE_MODE 0 /*Marty*/ +#define NOISE_SUM_CHECK 0 /*Nelson*/ +#define ENABLE_CALIBRATTION_BY_FIRMWARE 1 +#define ENABLE_NEW_PARAMETER 1 + +#define ENABLE_T007B1_SETTING 1 #define ENABLE_T007B1_STABLE_IDLE_MODE 1 +#define ENABLE_T007_ST_SCAN 1 + #define T007B1_ST_DATA_ADDR 0x1CA0 + #define T007C1_ST_DATA_ADDR 0x0514 + #define T007B1_ST_NO_SWAP 1 +#define RM_MAX_CHANNEL_COUNT 128 +#define RM_MAX_MT_COUNT 2048 + /* Define for T007 A6/B1 IC version ckeck */ -#define T007A6 0xD0 +#define T007A6 0xD0 #define T007_VERSION_B 0xB0 - #define T007B1 0xB0 - #define T007B2 0xB1 + #define T007B1 0xB0 + #define T007B2 0xB1 #define T007_VERSION_C 0xC0 #define VERSION_A_PARAMETER_OFFSET 0x00 #define VERSION_B_PARAMETER_OFFSET 0x01 #define VERSION_C_PARAMETER_OFFSET 0x02 #define PARAMETER_AMOUNT 384 -#define RM_MAX_CHANNEL_COUNT 120 - -#define RM_IOCTL_REPORT_POINT 0x1001 -#define RM_IOCTL_SET_HAL_PID 0x1002 -#define RM_IOCTL_INIT_START 0x1003 -#define RM_IOCTL_INIT_END 0x1004 -#define RM_IOCTL_FINISH_CALC 0x1005 -#define RM_IOCTL_SCRIBER_CTRL 0x1006 -#define RM_IOCTL_READ_RAW_DATA 0x1007 -#define RM_IOCTL_AUTOSCAN_CTRL 0x1008 -#define RM_IOCTL_NOISE_CHECK 0x1009 -#define RM_IOCTL_GET_PARAMETER 0x100A -#define RM_IOCTL_SET_PARAMETER 0x100B -#define RM_IOCTL_SEND_BASELINE 0x100C -#define RM_IOCTL_SEND_ANALOG_BASELINE 0x100D -#define RM_IOCTL_SET_VARIABLE 0x1010 - #define RM_VARIABLE_SELF_TEST_RESULT 0x01 - #define RM_VARIABLE_SCRIBER_FLAG 0x02 - #define RM_VARIABLE_AUTOSCAN_FLAG 0x03 - #define RM_VARIABLE_VERSION 0x04 - #define RM_VARIABLE_REPEAT 0x06 -#define RM_IOCTL_GET_VARIABLE 0x1011 - #define RM_VARIABLE_PLATFORM_ID 0x01 - -#define RM_INPUT_RESOLUTION_X 4096 -#define RM_INPUT_RESOLUTION_Y 4096 - -#define RM_TS_SIGNAL 44 -#define RM_TS_MAX_POINTS 16 - -#define RM_SIGNAL_INTR 0x00000001 -#define RM_SIGNAL_SUSPEND 0x00000002 -#define RM_SIGNAL_RESUME 0x00000003 -#define RM_SIGNAL_CHANGE_PARA 0x00000004 - #define RM_SIGNAL_PARA_SMOOTH 0x00 - #define RM_SIGNAL_PARA_SELF_TEST 0x01 - - -#define RM_SELF_TEST_STATUS_FINISH 0 -#define RM_SELF_TEST_STATUS_TESTING 1 -#define RM_SELF_TEST_RESULT_FAIL 0 -#define RM_SELF_TEST_RESULT_PASS 1 - - -#define RM_PLATFORM_KAI_PCB 0x00 -#define RM_PLATFORM_KAI 0x01 -#define RM_PLATFORM_CARDHU 0x02 -#define RM_PLATFORM_DALMORE 0x03 -#define RM_PLATFORM_PLUTO 0x04 + +#define RM_IOCTL_REPORT_POINT 0x1001 +#define RM_IOCTL_SET_HAL_PID 0x1002 +#define RM_IOCTL_INIT_START 0x1003 +#define RM_IOCTL_INIT_END 0x1004 +#define RM_IOCTL_FINISH_CALC 0x1005 +#define RM_IOCTL_SCRIBER_CTRL 0x1006 +#define RM_IOCTL_READ_RAW_DATA 0x1007 +#define RM_IOCTL_AUTOSCAN_CTRL 0x1008 +#define RM_IOCTL_NOISE_CHECK 0x1009 +#define RM_IOCTL_GET_PARAMETER 0x100A +#define RM_IOCTL_SET_PARAMETER 0x100B +#define RM_IOCTL_SEND_BASELINE 0x100C +#define RM_IOCTL_SEND_ANALOG_BASELINE 0x100D +#define RM_IOCTL_SET_VARIABLE 0x1010 + #define RM_VARIABLE_SELF_TEST_RESULT 0x01 + #define RM_VARIABLE_SCRIBER_FLAG 0x02 + #define RM_VARIABLE_AUTOSCAN_FLAG 0x03 + #define RM_VARIABLE_VERSION 0x04 + #define RM_VARIABLE_REPEAT 0x06 +#define RM_IOCTL_GET_VARIABLE 0x1011 + #define RM_VARIABLE_PLATFORM_ID 0x01 + +#define RM_INPUT_RESOLUTION_X 4096 +#define RM_INPUT_RESOLUTION_Y 4096 + +#define RM_TS_SIGNAL 44 +#define RM_TS_MAX_POINTS 16 + +#define RM_SIGNAL_INTR 0x00000001 +#define RM_SIGNAL_SUSPEND 0x00000002 +#define RM_SIGNAL_RESUME 0x00000003 +#define RM_SIGNAL_CHANGE_PARA 0x00000004 + #define RM_SIGNAL_PARA_SMOOTH 0x00 + #define RM_SIGNAL_PARA_SELF_TEST 0x01 + + +#define RM_SELF_TEST_STATUS_FINISH 0 +#define RM_SELF_TEST_STATUS_TESTING 1 +#define RM_SELF_TEST_RESULT_FAIL 0 +#define RM_SELF_TEST_RESULT_PASS 1 + #define RM_PLATFORM_K007 0x00 #define RM_PLATFORM_K107 0x01 @@ -84,13 +83,30 @@ #define RM_PLATFORM_A110 0x10 #define RM_PLATFORM_A10L 0x11 -typedef struct { +#define RM_COMMAND_SLOW_SCAN 16 + +struct rm_cmd_element { + unsigned char addr; + unsigned char value; +}; + +struct rm_cmd_list { + unsigned char count; + struct rm_cmd_element cmd[0]; +}; + +struct rm_cmd_slow_scan { + unsigned char count; + struct rm_cmd_element cmd[RM_COMMAND_SLOW_SCAN]; +}; + +struct rm_touch_event { unsigned char ucTouchCount; unsigned char ucID[RM_TS_MAX_POINTS]; unsigned short usX[RM_TS_MAX_POINTS]; unsigned short usY[RM_TS_MAX_POINTS]; unsigned short usZ[RM_TS_MAX_POINTS]; -} rm_touch_event; +}; struct rm_spi_ts_platform_data { int gpio_reset; @@ -100,7 +116,7 @@ struct rm_spi_ts_platform_data { int platform_id; unsigned char *name_of_clock; unsigned char *name_of_3v3; - unsigned char *name_of_1v8; + unsigned char *name_of_1v8; }; int rm31080_spi_byte_write(unsigned char u8Addr, unsigned char u8Value); @@ -110,4 +126,4 @@ void rm31080_disable_touch(void); void rm31080_enable_touch(void); void rm31080_set_autoscan(unsigned char val); -#endif //_RM31080A_TS_H_ +#endif /*_RM31080A_TS_H_*/ |