summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Jung <djung@nvidia.com>2012-10-24 15:39:38 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:40:53 -0700
commitd43a3b75cd57ffe9541a290477d77d31670087bc (patch)
treee5bbbf0193fd17da264d96cd4bf4a0247c82127e /include/linux
parent76cfbe51f9def54f2254f4fde5bebf37524b26c7 (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.h108
-rw-r--r--include/linux/spi/rm31080a_ts.h148
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_*/