summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/rm31080a_ctrl.c
diff options
context:
space:
mode:
authorXiaohui Tao <xtao@nvidia.com>2012-10-17 11:35:32 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:39:08 -0700
commit9913af364edf43e01d55426204870bf7129e6501 (patch)
treebcde1ea1ce40480a33e0466086fedec7b11d6752 /drivers/input/touchscreen/rm31080a_ctrl.c
parent394e38834fde1336d13e0815f8c8127db5c73f95 (diff)
input: touch: raydium: updates for RM31100 chip
Raydium code drop. Add support for the new Raydium chip; Working for both the old chip and new one Bug 1162178 Signed-off-by: Xiaohui Tao <xtao@nvidia.com> Reviewed-on: http://git-master/r/145319 (cherry picked from commit df26903f2f776b20a4b70eb0a16e9cf65b2a216c) Signed-off-by: David Jung <djung@nvidia.com> Change-Id: Ibbb0e8dc92241753799b91fd2f37263a28404dc1 Reviewed-on: http://git-master/r/146047 Reviewed-by: Thomas Cherry <tcherry@nvidia.com> Rebase-Id: Rdb927e43c13350627e071f61f5847918311da3da
Diffstat (limited to 'drivers/input/touchscreen/rm31080a_ctrl.c')
-rw-r--r--drivers/input/touchscreen/rm31080a_ctrl.c410
1 files changed, 207 insertions, 203 deletions
diff --git a/drivers/input/touchscreen/rm31080a_ctrl.c b/drivers/input/touchscreen/rm31080a_ctrl.c
index 516d2bd785d5..e1f1f8f73290 100644
--- a/drivers/input/touchscreen/rm31080a_ctrl.c
+++ b/drivers/input/touchscreen/rm31080a_ctrl.c
@@ -24,7 +24,7 @@
//DEFINITIONS
//=============================================================================
#define RM31080_RAW_DATA_LENGTH 2048
-#define MAX_AVERAGE_TIMES 128
+#define MAX_AVERAGE_TIMES 128
//=============================================================================
//STRUCTURE DECLARATION
//=============================================================================
@@ -60,7 +60,7 @@ unsigned char bfSign[60];
//=============================================================================
// Description:
-// Control functions for Touch IC
+// Control functions for Touch IC
// Input:
//
// Output:
@@ -71,7 +71,7 @@ int rm31080_ctrl_clear_int(void)
{
u8 flag;
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion == T007_VERSION_B)
+ if (g_stCtrl.bICVersion != T007A6)
return rm31080_spi_byte_read(RM31080B1_REG_BANK0_02H, &flag);
else
#endif
@@ -101,9 +101,9 @@ void rm31080_ctrl_wait_for_scan_finish(void)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
//Marty added
int rm31080_soft_average(signed char *pSource)
@@ -269,7 +269,7 @@ int rm31080_soft_average(signed char *pSource)
bResult1 = (s16Sum / g_bMFCounter[bMaxBlockId]);
//if (g_stCtrl.bfNoiseDetector)
//{
- // bResult1 = (s16)bResult1 * 4 / 5;
+ // bResult1 = (s16)bResult1 * 4 / 5;
//}
}
}
@@ -286,7 +286,7 @@ int rm31080_soft_average(signed char *pSource)
bResult2 = (bMax + bMin) / 2;
//if (g_stCtrl.bfNoiseDetector)
//{
- // bResult2 = (s16)bResult2 * 4 / 5;
+ // bResult2 = (s16)bResult2 * 4 / 5;
//}
}
@@ -315,7 +315,7 @@ int rm31080_soft_average(signed char *pSource)
bResult0 = (s16Sum / g_stCtrl.bNoiseRepeatTimes); // + 0x80;
//if (g_stCtrl.bfNoiseDetector)
//{
- // bResult0 = (s16)bResult0 * 4 / 5;
+ // bResult0 = (s16)bResult0 * 4 / 5;
//}
if (g_stCtrl.bfMediumFilter & 0x01) {
@@ -378,33 +378,33 @@ int rm31080_soft_average(signed char *pSource)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
void rm_set_repeat_times(u8 u8Times)
{
u8 bReg1_1Fh = 0x00;
u8 u8Reg = 0x00;
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion == T007_VERSION_B)
+ if (g_stCtrl.bICVersion != T007A6)
{
- u8Reg = g_stCtrl.bSenseNumber - 1;
- rm31080_spi_byte_write(0x0A, u8Reg&0x0F);
- rm31080_spi_byte_write(0x0E, u8Times&0x1F);
- if (g_stCtrl.bfADFC)
- bReg1_1Fh |= ADFC;
-
- if (g_stCtrl.bfTHMode)
- bReg1_1Fh |= FILTER_THRESHOLD_MODE;
- else
- bReg1_1Fh &= ~FILTER_NONTHRESHOLD_MODE;
- //bReg1_1Fh |= FILTER_NONTHRESHOLD_MODE;
+ u8Reg = g_stCtrl.bSenseNumber - 1;
+ rm31080_spi_byte_write(0x0A, u8Reg&0x0F);
+ rm31080_spi_byte_write(0x0E, u8Times&0x1F);
+ if ((g_stCtrl.bfADFC) && (g_stCtrl.bICVersion != T007_VERSION_C))
+ bReg1_1Fh |= ADFC;
+
+ if (g_stCtrl.bfTHMode)
+ bReg1_1Fh |= FILTER_THRESHOLD_MODE;
+ else
+ bReg1_1Fh &= ~FILTER_NONTHRESHOLD_MODE;
+ //bReg1_1Fh |= FILTER_NONTHRESHOLD_MODE;
- if (u8Times != REPEAT_1)
- bReg1_1Fh |= 0x44; //Marty 20120820
+ if (u8Times != REPEAT_1)
+ bReg1_1Fh |= 0x44; //Marty 20120820
- rm31080_spi_byte_write(RM31080_REG_1F, bReg1_1Fh);
+ rm31080_spi_byte_write(RM31080_REG_1F, bReg1_1Fh);
}
else
#endif
@@ -432,9 +432,9 @@ void rm_set_repeat_times(u8 u8Times)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
NOISE_DETECTOR_RET_t rm_noise_detect(signed char *pSource)
{
@@ -451,7 +451,7 @@ NOISE_DETECTOR_RET_t rm_noise_detect(signed char *pSource)
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion == T007_VERSION_B)
+ if (g_stCtrl.bICVersion != T007A6)
{
wSENum = 0;
return ND_DETECTOR_OFF;
@@ -481,9 +481,10 @@ NOISE_DETECTOR_RET_t rm_noise_detect(signed char *pSource)
for (i = 0; i < XNum; i++) {
if (g_stCtrl.bADCNumber) {
if ((i == g_stCtrl.bDummyChannel[0])
- || (i == g_stCtrl.bDummyChannel[1])
- || (i == g_stCtrl.bDummyChannel[2])
- || (i == g_stCtrl.bDummyChannel[3])) {
+ || (i == g_stCtrl.bDummyChannel[1])
+ || (i == g_stCtrl.bDummyChannel[2])
+ || (i == g_stCtrl.bDummyChannel[3]))
+ {
continue;
}
} else {
@@ -670,7 +671,7 @@ int rm_noise_main(signed char *pSource)
iRet = 0;
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion != T007_VERSION_B)
+ if (g_stCtrl.bICVersion == T007A6)
#endif
{
#if ENABLE_NEW_NOISE_MODE
@@ -688,9 +689,9 @@ int rm_noise_main(signed char *pSource)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
void rm31080_ctrl_set_baseline(void *arg)
{
@@ -708,9 +709,9 @@ void rm31080_ctrl_set_baseline(void *arg)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
void rm31080_ctrl_set_analog_baseline(void *arg)
{
@@ -727,9 +728,9 @@ void rm31080_ctrl_set_analog_baseline(void *arg)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
void rm31080_ctrl_init(void)
{
@@ -747,6 +748,7 @@ void rm31080_ctrl_init(void)
g_stCtrl.bfNoisePreHold = 0;
g_stCtrl.bfTouched = 0;
g_stCtrl.bfExitNoiseMode = 0;
+ g_stCtrl.bDummyRunCycle = 1;
g_stCtrl.u16DataLength = RM31080_RAW_DATA_LENGTH;
g_bfFirstAverage = 0;
@@ -763,9 +765,9 @@ void rm31080_ctrl_init(void)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
unsigned char rm31080_ctrl_get_noise_mode(u8 * p)
{
@@ -793,9 +795,9 @@ void rm31080b_sw_reset(void)
// Description: Set T007B analog filter repeat
//
// Input:
-// Analog average tap number
+// Analog average tap number
// Output:
-// none
+// none
//=============================================================================
void rm31080b_analog_filter_config(unsigned char u8Amount)
{
@@ -814,9 +816,9 @@ void rm31080b_analog_filter_config(unsigned char u8Amount)
// Description: Set T007B digital filter repeat
//
// Input:
-// Digital average tap number
+// Digital average tap number
// Output:
-// none
+// none
//=============================================================================
void rm31080b_digital_filter_config(unsigned char u8Amount)
{
@@ -835,22 +837,22 @@ void rm31080b_digital_filter_config(unsigned char u8Amount)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
#if ENABLE_FILTER_SWITCH
void rm31080_analog_filter_config(u8 bRepeatTimes)
{
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion != T007_VERSION_B)
+ if (g_stCtrl.bICVersion == T007A6)
#endif
{
//u8 bReg0_1Fh = 0x00;
//InitChargePump();
- rm31080_spi_byte_write(0x7F, 0x01); // Switch to 0x01
+ rm31080_spi_byte_write(0x7F, 0x01); // Switch to 0x01
rm31080_spi_byte_write(0x09, g_stCtrl.bReg1_09h[1]);
rm31080_spi_byte_write(0x43, g_stCtrl.bReg1_43h[1]);
@@ -859,7 +861,7 @@ void rm31080_analog_filter_config(u8 bRepeatTimes)
rm31080_spi_byte_write(0x4A, g_stCtrl.bReg1_4Ah[1]);
rm31080_spi_byte_write(0x4B, g_stCtrl.bReg1_4Bh[1]);
- rm31080_spi_byte_write(0x7F, 0x00); // Switch to BANK0
+ rm31080_spi_byte_write(0x7F, 0x00); // Switch to BANK0
#if 0
rm31080_spi_byte_write(0x0E, ( 0x38 | 0x00)); //bSenseNumber = 8, REPEAT_1
@@ -907,118 +909,118 @@ void rm31080_analog_filter_config(u8 bRepeatTimes)
void rm31080_digital_filter_config(void)
{
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion != T007_VERSION_B)
+ if (g_stCtrl.bICVersion == T007A6)
#endif
- {
- //u8 bReg0_1Fh = 0x00;
+ {
+ //u8 bReg0_1Fh = 0x00;
- //InitChargePump();
- rm31080_spi_byte_write(0x7F, 0x01); // Switch to BANK1
+ //InitChargePump();
+ rm31080_spi_byte_write(0x7F, 0x01); // Switch to BANK1
- rm31080_spi_byte_write(0x09, g_stCtrl.bReg1_09h[0]);
- rm31080_spi_byte_write(0x43, g_stCtrl.bReg1_43h[0]);
- rm31080_spi_byte_write(0x48, g_stCtrl.bReg1_48h[0]);
- rm31080_spi_byte_write(0x49, g_stCtrl.bReg1_49h[0]);
- rm31080_spi_byte_write(0x4A, g_stCtrl.bReg1_4Ah[0]);
- rm31080_spi_byte_write(0x4B, g_stCtrl.bReg1_4Bh[0]);
+ rm31080_spi_byte_write(0x09, g_stCtrl.bReg1_09h[0]);
+ rm31080_spi_byte_write(0x43, g_stCtrl.bReg1_43h[0]);
+ rm31080_spi_byte_write(0x48, g_stCtrl.bReg1_48h[0]);
+ rm31080_spi_byte_write(0x49, g_stCtrl.bReg1_49h[0]);
+ rm31080_spi_byte_write(0x4A, g_stCtrl.bReg1_4Ah[0]);
+ rm31080_spi_byte_write(0x4B, g_stCtrl.bReg1_4Bh[0]);
- rm31080_spi_byte_write(0x7F, 0x00); // Switch to 0x00
+ rm31080_spi_byte_write(0x7F, 0x00); // Switch to 0x00
- #if 0
- rm31080_spi_byte_write(0x0E, ( 0x38 | 0x04)); //bSenseNumber = 8, REPEAT_5
+ #if 0
+ rm31080_spi_byte_write(0x0E, ( 0x38 | 0x04)); //bSenseNumber = 8, REPEAT_5
- rm31080_spi_byte_read(0x1F, &bReg0_1Fh);
- bReg0_1Fh = bReg0_1Fh & 0xF8;
- bReg0_1Fh = bReg0_1Fh | 0x07;//REPEAT_5
+ rm31080_spi_byte_read(0x1F, &bReg0_1Fh);
+ bReg0_1Fh = bReg0_1Fh & 0xF8;
+ bReg0_1Fh = bReg0_1Fh | 0x07;//REPEAT_5
- rm31080_spi_byte_write(0x1F, bReg0_1Fh);
- #endif
- rm_set_repeat_times(g_stCtrl.bRepeatTimes[0]);
+ rm31080_spi_byte_write(0x1F, bReg0_1Fh);
+ #endif
+ rm_set_repeat_times(g_stCtrl.bRepeatTimes[0]);
-// -------- Set Driving / Sensing Control Mode --------
- if(!g_stCtrl.bfAnalogFilter)
- {
- rm31080_spi_byte_write(RM31080_REG_10, 0x10 |0x40); //ACC | DDSC
- }
+ // -------- Set Driving / Sensing Control Mode --------
+ if(!g_stCtrl.bfAnalogFilter)
+ {
+ rm31080_spi_byte_write(RM31080_REG_10, 0x10 |0x40); //ACC | DDSC
+ }
-// -------- Set PGA/DAC --------
- rm31080_spi_byte_write(0x6B, 0x04); //EN_C0
-
-// -------- Scan Time Setting --------
- rm31080_spi_byte_write(RM31080_REG_42, g_stCtrl.bReg0_42h[g_stCtrl.bfAnalogFilter]); //LACTIVE
- rm31080_spi_byte_write(RM31080_REG_43, g_stCtrl.bReg0_43h[g_stCtrl.bfAnalogFilter]); //LACTIVE
-
- rm31080_spi_byte_write(0x20, g_stCtrl.bReg0_20h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x21, g_stCtrl.bReg0_21h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x22, g_stCtrl.bReg0_22h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x23, g_stCtrl.bReg0_23h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x24, g_stCtrl.bReg0_24h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x25, g_stCtrl.bReg0_25h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x26, g_stCtrl.bReg0_26h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x27, g_stCtrl.bReg0_27h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x28, g_stCtrl.bReg0_28h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x29, g_stCtrl.bReg0_29h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2A, g_stCtrl.bReg0_2Ah[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2B, g_stCtrl.bReg0_2Bh[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2C, g_stCtrl.bReg0_2Ch[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2D, g_stCtrl.bReg0_2Dh[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2E, g_stCtrl.bReg0_2Eh[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x2F, g_stCtrl.bReg0_2Fh[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x30, g_stCtrl.bReg0_30h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x31, g_stCtrl.bReg0_31h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x32, g_stCtrl.bReg0_32h[g_stCtrl.bfAnalogFilter]);
- rm31080_spi_byte_write(0x33, g_stCtrl.bReg0_33h[g_stCtrl.bfAnalogFilter]);
- }
+ // -------- Set PGA/DAC --------
+ rm31080_spi_byte_write(0x6B, 0x04); //EN_C0
+
+ // -------- Scan Time Setting --------
+ rm31080_spi_byte_write(RM31080_REG_42, g_stCtrl.bReg0_42h[g_stCtrl.bfAnalogFilter]); //LACTIVE
+ rm31080_spi_byte_write(RM31080_REG_43, g_stCtrl.bReg0_43h[g_stCtrl.bfAnalogFilter]); //LACTIVE
+
+ rm31080_spi_byte_write(0x20, g_stCtrl.bReg0_20h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x21, g_stCtrl.bReg0_21h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x22, g_stCtrl.bReg0_22h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x23, g_stCtrl.bReg0_23h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x24, g_stCtrl.bReg0_24h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x25, g_stCtrl.bReg0_25h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x26, g_stCtrl.bReg0_26h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x27, g_stCtrl.bReg0_27h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x28, g_stCtrl.bReg0_28h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x29, g_stCtrl.bReg0_29h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2A, g_stCtrl.bReg0_2Ah[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2B, g_stCtrl.bReg0_2Bh[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2C, g_stCtrl.bReg0_2Ch[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2D, g_stCtrl.bReg0_2Dh[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2E, g_stCtrl.bReg0_2Eh[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x2F, g_stCtrl.bReg0_2Fh[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x30, g_stCtrl.bReg0_30h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x31, g_stCtrl.bReg0_31h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x32, g_stCtrl.bReg0_32h[g_stCtrl.bfAnalogFilter]);
+ rm31080_spi_byte_write(0x33, g_stCtrl.bReg0_33h[g_stCtrl.bfAnalogFilter]);
+ }
}
void rm31080_filter_config(void)
{
#if ENABLE_FILTER_SWITCH
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion != T007_VERSION_B)
+ if (g_stCtrl.bICVersion == T007A6)
#endif
- {
- if (g_stCtrl.bfAnalogFilter)
{
-#if ENABLE_NEW_NOISE_MODE
- if ((g_stCtrl.bfNoiseMode & 0x02) && g_stCtrl.bfNoiseDetector)
+ if (g_stCtrl.bfAnalogFilter)
{
- if (g_stCtrl.bfNoiseModeDetector)
+#if ENABLE_NEW_NOISE_MODE
+ if ((g_stCtrl.bfNoiseMode & 0x02) && g_stCtrl.bfNoiseDetector)
{
- rm_set_repeat_times(g_stCtrl.bNewNoiseRepeatTimes);
+ if (g_stCtrl.bfNoiseModeDetector)
+ {
+ rm_set_repeat_times(g_stCtrl.bNewNoiseRepeatTimes);
+ }
+ else
+ {
+ rm_set_repeat_times(g_stCtrl.bRepeatTimes[1]);
+ }
}
else
- {
rm_set_repeat_times(g_stCtrl.bRepeatTimes[1]);
- }
- }
- else
- rm_set_repeat_times(g_stCtrl.bRepeatTimes[1]);
#else
- rm31080_analog_filter_config(g_stCtrl.bRepeatTimes[1]);
+ rm31080_analog_filter_config(g_stCtrl.bRepeatTimes[1]);
#endif
- //rm_printk("Analog Setting with %d Repeat Times \n", (g_stCtrl.bRepeatTimes[1] + 1));
- }
- else
- {
-#if ENABLE_NEW_NOISE_MODE
- if ((g_stCtrl.bfNoiseMode & 0x02) && g_stCtrl.bfNoiseDetector)
+ //rm_printk("Analog Setting with %d Repeat Times \n", (g_stCtrl.bRepeatTimes[1] + 1));
+ }
+ else
{
- if (g_stCtrl.bfNoiseModeDetector)
+#if ENABLE_NEW_NOISE_MODE
+ if ((g_stCtrl.bfNoiseMode & 0x02) && g_stCtrl.bfNoiseDetector)
{
- rm_set_repeat_times(g_stCtrl.bNewNoiseRepeatTimes);
+ if (g_stCtrl.bfNoiseModeDetector)
+ {
+ rm_set_repeat_times(g_stCtrl.bNewNoiseRepeatTimes);
+ }
+ else
+ {
+ rm31080_digital_filter_config();
+ }
}
else
- {
- rm31080_digital_filter_config();
- }
- }
- else
#endif
- rm31080_digital_filter_config();
- //rm_printk("Digital Setting with %d Repeat Times \n", (g_stCtrl.bRepeatTimes[0]));
- }
- //rm_printk("Disable Analog Filter\n");
+ rm31080_digital_filter_config();
+ //rm_printk("Digital Setting with %d Repeat Times \n", (g_stCtrl.bRepeatTimes[0]));
+ }
+ } //rm_printk("Disable Analog Filter\n");
#endif
}
@@ -1027,9 +1029,9 @@ void rm31080_filter_config(void)
// Description:
//
// Input:
-// N/A
+// N/A
// Output:
-// N/A
+// N/A
//=============================================================================
void rm31080_ctrl_get_parameter(void *arg)
{
@@ -1070,7 +1072,7 @@ void rm31080_ctrl_get_parameter(void *arg)
g_stCtrl.bMFBlockNumber = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 26]; // Noise_Detector
g_stCtrl.bRepeatTimes[0] = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 4]; // Noise_Detector
g_stCtrl.bRepeatTimes[1] = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 5]; // Noise_Detector
- g_stCtrl.bIdleRepeatTimes[0] = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 6];
+ g_stCtrl.bIdleRepeatTimes[0] = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 6];
g_stCtrl.bSenseNumber = pPara[PARA_BASIC_LEN + 11]; // Noise_Detector
g_stCtrl.bfADFC = pPara[PARA_BASIC_LEN + 4]; // Noise_Detector
g_stCtrl.bfTHMode = pPara[PARA_BASIC_LEN + PARA_HARDWARE_LEN + 10]; // Noise_Detector
@@ -1086,6 +1088,8 @@ void rm31080_ctrl_get_parameter(void *arg)
g_stCtrl.bMTTouchThreshold = pPara[192];
g_stCtrl.bTime2Idle = pPara[194];
g_stCtrl.bfPowerMode= pPara[195];
+ g_stCtrl.bfIdleMessage = pPara[207];
+ g_stCtrl.bDummyRunCycle = pPara[31];
//
// Store dummy channel to skip it, data sequence:
// Dummy[0](single end) | raw_data | dummy[1](single end) dummy[2](single end) | raw_data | dummy[3](single end)
@@ -1142,8 +1146,8 @@ void rm31080_ctrl_get_parameter(void *arg)
#if ENABLE_RESOLUTION_SWITCH
g_stCtrl.u16ResolutionX = ((u16) pPara[PARA_BASIC_LEN + 13]) << 8 | ((u16)pPara[PARA_BASIC_LEN + 12]);
g_stCtrl.u16ResolutionY = ((u16) pPara[PARA_BASIC_LEN + 15]) << 8 | ((u16)pPara[PARA_BASIC_LEN + 14]);
-// printk("g_stCtrl.u16ResolutionX=%d", g_stCtrl.u16ResolutionX);
-// printk("g_stCtrl.u16ResolutionY=%d", g_stCtrl.u16ResolutionY);
+ //printk("===========================================================================================>g_stCtrl.u16ResolutionX=%d\n", g_stCtrl.u16ResolutionX);
+ //printk("===========================================================================================>g_stCtrl.u16ResolutionY=%d\n", g_stCtrl.u16ResolutionY);
if ((g_stCtrl.u16ResolutionX == 0) || (g_stCtrl.u16ResolutionY == 0)) {
g_stCtrl.u16ResolutionX = RM_INPUT_RESOLUTION_X;
g_stCtrl.u16ResolutionY = RM_INPUT_RESOLUTION_Y;
@@ -1152,73 +1156,73 @@ void rm31080_ctrl_get_parameter(void *arg)
#if ENABLE_FILTER_SWITCH
#if ENABLE_T007B1_SETTING
- if (g_stCtrl.bICVersion != T007_VERSION_B)
+ if (g_stCtrl.bICVersion == T007A6)
#endif
- {
- g_stCtrl.bReg1_09h[0] = pPara[327]; // Addr. 0327
- g_stCtrl.bReg1_09h[1] = pPara[328]; // Addr. 0328
- g_stCtrl.bReg1_43h[0] = pPara[337]; // Addr. 0337
- g_stCtrl.bReg1_43h[1] = pPara[338]; // Addr. 0338
- g_stCtrl.bReg1_48h[0] = pPara[339]; // Addr. 0339
- g_stCtrl.bReg1_48h[1] = pPara[340]; // Addr. 0340
- g_stCtrl.bReg1_49h[0] = pPara[341]; // Addr. 0341
- g_stCtrl.bReg1_49h[1] = pPara[342]; // Addr. 0342
- g_stCtrl.bReg1_4Ah[0] = pPara[343]; // Addr. 0343
- g_stCtrl.bReg1_4Ah[1] = pPara[344]; // Addr. 0344
- g_stCtrl.bReg1_4Bh[0] = pPara[345]; // Addr. 0345
- g_stCtrl.bReg1_4Bh[1] = pPara[346]; // Addr. 0346
-
- g_stCtrl.bReg0_40h[0] = pPara[258];
- g_stCtrl.bReg0_40h[1] = pPara[259];
- g_stCtrl.bReg0_41h[0] = pPara[260];
- g_stCtrl.bReg0_41h[1] = pPara[261];
- g_stCtrl.bReg0_42h[0] = pPara[262]; // Addr. 0262
- g_stCtrl.bReg0_42h[1] = pPara[263]; // Addr. 0263
- g_stCtrl.bReg0_43h[0] = pPara[264]; // Addr. 0264
- g_stCtrl.bReg0_43h[1] = pPara[265]; // Addr. 0265
-
-// time chart
- g_stCtrl.bReg0_20h[0] = pPara[213]; // Addr. 0213
- g_stCtrl.bReg0_20h[1] = pPara[214]; // Addr. 0214
- g_stCtrl.bReg0_21h[0] = pPara[215]; // Addr. 0215
- g_stCtrl.bReg0_21h[1] = pPara[216]; // Addr. 0216
- g_stCtrl.bReg0_22h[0] = pPara[217]; // Addr. 0217
- g_stCtrl.bReg0_22h[1] = pPara[218]; // Addr. 0218
- g_stCtrl.bReg0_23h[0] = pPara[219]; // Addr. 0219
- g_stCtrl.bReg0_23h[1] = pPara[220]; // Addr. 0220
- g_stCtrl.bReg0_24h[0] = pPara[221]; // Addr. 0221
- g_stCtrl.bReg0_24h[1] = pPara[222]; // Addr. 0222
- g_stCtrl.bReg0_25h[0] = pPara[223]; // Addr. 0223
- g_stCtrl.bReg0_25h[1] = pPara[224]; // Addr. 0224
- g_stCtrl.bReg0_26h[0] = pPara[225]; // Addr. 0225
- g_stCtrl.bReg0_26h[1] = pPara[226]; // Addr. 0226
- g_stCtrl.bReg0_27h[0] = pPara[227]; // Addr. 0227
- g_stCtrl.bReg0_27h[1] = pPara[228]; // Addr. 0228
- g_stCtrl.bReg0_28h[0] = pPara[229]; // Addr. 0229
- g_stCtrl.bReg0_28h[1] = pPara[230]; // Addr. 0230
- g_stCtrl.bReg0_29h[0] = pPara[231]; // Addr. 0231
- g_stCtrl.bReg0_29h[1] = pPara[232]; // Addr. 0232
- g_stCtrl.bReg0_2Ah[0] = pPara[233]; // Addr. 0233
- g_stCtrl.bReg0_2Ah[1] = pPara[234]; // Addr. 0234
- g_stCtrl.bReg0_2Bh[0] = pPara[235]; // Addr. 0235
- g_stCtrl.bReg0_2Bh[1] = pPara[236]; // Addr. 0236
- g_stCtrl.bReg0_2Ch[0] = pPara[237]; // Addr. 0237
- g_stCtrl.bReg0_2Ch[1] = pPara[238]; // Addr. 0238
- g_stCtrl.bReg0_2Dh[0] = pPara[239]; // Addr. 0239
- g_stCtrl.bReg0_2Dh[1] = pPara[240]; // Addr. 0240
- g_stCtrl.bReg0_2Eh[0] = pPara[241]; // Addr. 0241
- g_stCtrl.bReg0_2Eh[1] = pPara[242]; // Addr. 0242
- g_stCtrl.bReg0_2Fh[0] = pPara[243]; // Addr. 0243
- g_stCtrl.bReg0_2Fh[1] = pPara[244]; // Addr. 0244
- g_stCtrl.bReg0_30h[0] = pPara[245]; // Addr. 0245
- g_stCtrl.bReg0_30h[1] = pPara[246]; // Addr. 0246
- g_stCtrl.bReg0_31h[0] = pPara[247]; // Addr. 0247
- g_stCtrl.bReg0_31h[1] = pPara[248]; // Addr. 0248
- g_stCtrl.bReg0_32h[0] = pPara[249]; // Addr. 0249
- g_stCtrl.bReg0_32h[1] = pPara[250]; // Addr. 0250
- g_stCtrl.bReg0_33h[0] = pPara[251]; // Addr. 0251
- g_stCtrl.bReg0_33h[1] = pPara[252]; // Addr. 0252
- }
+ {
+ g_stCtrl.bReg1_09h[0] = pPara[327]; // Addr. 0327
+ g_stCtrl.bReg1_09h[1] = pPara[328]; // Addr. 0328
+ g_stCtrl.bReg1_43h[0] = pPara[337]; // Addr. 0337
+ g_stCtrl.bReg1_43h[1] = pPara[338]; // Addr. 0338
+ g_stCtrl.bReg1_48h[0] = pPara[339]; // Addr. 0339
+ g_stCtrl.bReg1_48h[1] = pPara[340]; // Addr. 0340
+ g_stCtrl.bReg1_49h[0] = pPara[341]; // Addr. 0341
+ g_stCtrl.bReg1_49h[1] = pPara[342]; // Addr. 0342
+ g_stCtrl.bReg1_4Ah[0] = pPara[343]; // Addr. 0343
+ g_stCtrl.bReg1_4Ah[1] = pPara[344]; // Addr. 0344
+ g_stCtrl.bReg1_4Bh[0] = pPara[345]; // Addr. 0345
+ g_stCtrl.bReg1_4Bh[1] = pPara[346]; // Addr. 0346
+
+ g_stCtrl.bReg0_40h[0] = pPara[258];
+ g_stCtrl.bReg0_40h[1] = pPara[259];
+ g_stCtrl.bReg0_41h[0] = pPara[260];
+ g_stCtrl.bReg0_41h[1] = pPara[261];
+ g_stCtrl.bReg0_42h[0] = pPara[262]; // Addr. 0262
+ g_stCtrl.bReg0_42h[1] = pPara[263]; // Addr. 0263
+ g_stCtrl.bReg0_43h[0] = pPara[264]; // Addr. 0264
+ g_stCtrl.bReg0_43h[1] = pPara[265]; // Addr. 0265
+
+ // time chart
+ g_stCtrl.bReg0_20h[0] = pPara[213]; // Addr. 0213
+ g_stCtrl.bReg0_20h[1] = pPara[214]; // Addr. 0214
+ g_stCtrl.bReg0_21h[0] = pPara[215]; // Addr. 0215
+ g_stCtrl.bReg0_21h[1] = pPara[216]; // Addr. 0216
+ g_stCtrl.bReg0_22h[0] = pPara[217]; // Addr. 0217
+ g_stCtrl.bReg0_22h[1] = pPara[218]; // Addr. 0218
+ g_stCtrl.bReg0_23h[0] = pPara[219]; // Addr. 0219
+ g_stCtrl.bReg0_23h[1] = pPara[220]; // Addr. 0220
+ g_stCtrl.bReg0_24h[0] = pPara[221]; // Addr. 0221
+ g_stCtrl.bReg0_24h[1] = pPara[222]; // Addr. 0222
+ g_stCtrl.bReg0_25h[0] = pPara[223]; // Addr. 0223
+ g_stCtrl.bReg0_25h[1] = pPara[224]; // Addr. 0224
+ g_stCtrl.bReg0_26h[0] = pPara[225]; // Addr. 0225
+ g_stCtrl.bReg0_26h[1] = pPara[226]; // Addr. 0226
+ g_stCtrl.bReg0_27h[0] = pPara[227]; // Addr. 0227
+ g_stCtrl.bReg0_27h[1] = pPara[228]; // Addr. 0228
+ g_stCtrl.bReg0_28h[0] = pPara[229]; // Addr. 0229
+ g_stCtrl.bReg0_28h[1] = pPara[230]; // Addr. 0230
+ g_stCtrl.bReg0_29h[0] = pPara[231]; // Addr. 0231
+ g_stCtrl.bReg0_29h[1] = pPara[232]; // Addr. 0232
+ g_stCtrl.bReg0_2Ah[0] = pPara[233]; // Addr. 0233
+ g_stCtrl.bReg0_2Ah[1] = pPara[234]; // Addr. 0234
+ g_stCtrl.bReg0_2Bh[0] = pPara[235]; // Addr. 0235
+ g_stCtrl.bReg0_2Bh[1] = pPara[236]; // Addr. 0236
+ g_stCtrl.bReg0_2Ch[0] = pPara[237]; // Addr. 0237
+ g_stCtrl.bReg0_2Ch[1] = pPara[238]; // Addr. 0238
+ g_stCtrl.bReg0_2Dh[0] = pPara[239]; // Addr. 0239
+ g_stCtrl.bReg0_2Dh[1] = pPara[240]; // Addr. 0240
+ g_stCtrl.bReg0_2Eh[0] = pPara[241]; // Addr. 0241
+ g_stCtrl.bReg0_2Eh[1] = pPara[242]; // Addr. 0242
+ g_stCtrl.bReg0_2Fh[0] = pPara[243]; // Addr. 0243
+ g_stCtrl.bReg0_2Fh[1] = pPara[244]; // Addr. 0244
+ g_stCtrl.bReg0_30h[0] = pPara[245]; // Addr. 0245
+ g_stCtrl.bReg0_30h[1] = pPara[246]; // Addr. 0246
+ g_stCtrl.bReg0_31h[0] = pPara[247]; // Addr. 0247
+ g_stCtrl.bReg0_31h[1] = pPara[248]; // Addr. 0248
+ g_stCtrl.bReg0_32h[0] = pPara[249]; // Addr. 0249
+ g_stCtrl.bReg0_32h[1] = pPara[250]; // Addr. 0250
+ g_stCtrl.bReg0_33h[0] = pPara[251]; // Addr. 0251
+ g_stCtrl.bReg0_33h[1] = pPara[252]; // Addr. 0252
+ }
#endif
}