(CR):[kane]:[kernel]: modify for capsensor Channel
authoryanfei <yanfei5@huaqin.com>
Tue, 6 Nov 2018 07:12:27 +0000 (15:12 +0800)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:45 +0000 (20:23 +0300)
Modify for capsensor Channel

Change-Id: Ide02383e7694e9373af6f8e3b422244eb16c2903
Signed-off-by: yanfei <yanfei5@huaqin.com>
arch/arm64/boot/dts/exynos/wing-sensor.dtsi
drivers/input/misc/sx933x.h
drivers/input/misc/sx933x_sar.c

index 0ca6cf9f0482017c5fccb2cacba09d0ad0a0f753..27b4bfc06f1a50f15ca109638c1618c8250374ee 100755 (executable)
                Semtech,nirq-gpio = <&gpa2 6 0>; /* IRQ */
                pinctrl-names = "default";
                pinctrl-0 = <&cap_int_status>;
-               Semtech,button-flag = <0x15>;
-               Semtech,reg-num = <23>;
-               Semtech,reg-init = <0x8020 0x1F0000
-                       0x8024 0x300008d7 /*again 6.6pf*/
-                       0x8028 0x24928000
-                       0x802C 0x300010d7
-                       0x8030 0x24960000
-                       0x8034 0x300010d7
-                       0x8038 0x24B20000
-                       0x803C 0x300004D4
-                       0x8040 0x25920000
-                       0x8044 0x300004D4
-                       0x8048 0x2C920000
-                       0x8054 0x02103010 /*ph0*/
-                       0x8058 0x20600C00
-                       0x805c 0x0
-                       0x8064 0x00900000 /*5mm th*/
-                       0x8070 0x0
-                       0x8074 0x02103110 /*ph1*/
-                       0x8084 0x00BB0000 /*5mm th*/
-                       0x8094 0x02103810 /*ph2*/
-                       0x80A4 0x00C60000 /*5mm th*/
-                       0x80B4 0x0010FF00
-                       0x80D4 0x00105A00
-                       0x4004 0x67 >;
+               Semtech,button-flag = <0x0b>;
+               Semtech,reg-num = <1>;
+               Semtech,reg-init = < 0x4004 0x7C >;
                };
 
 
index 750e818c6ea2ccac4cbe277195da3a9e5d61c6de..be30c21a0b0fa721927ba7907d739362d9f57853 100755 (executable)
 #define   SX933X_STAT0_BODYSTAT_PH0_FLAG      0x00000100
 
 /*      Chip ID        */
-#define SX933X_WHOAMI_VALUE                   0x00003114
+#define SX933X_WHOAMI_VALUE                   0x00003113
+#define SX933X_WHOAMI_VALUE_ALL                   0x00003100
+
 /*command*/
 #define SX933X_PHASE_CONTROL                  0x0000000F
 #define SX933X_COMPENSATION_CONTROL           0x0000000E
 #define SX933X_ENTER_CONTROL                  0x0000000D
 #define SX933X_EXIT_CONTROL                   0x0000000C
 
-
 #define SX933X_HARDWARE_CHECK_SUCCESS         1
 #define SX933X_HARDWARE_CHECK_FAIL            0
 
 
-
 /**************************************
  *   define platform data
  *
@@ -307,345 +307,434 @@ typedef struct totalButtonInformation *pbuttonInformation_t;
  * default
  */
 /*define the value without Phase enable settings for easy changes in driver*/
+#if 0
 static const struct smtc_reg_data sx933x_i2c_reg_setup[] =
 {
-       //
+       //ocean disable clock spreading
        {
-               .reg = SX933X_AFECTRL_REG,
+               .reg = SX933X_AFECTRL_REG, //0x4054
                .val = 0x00000400,
        },
        //
        {
-               .reg = SX933X_CLKGEN_REG,
+               .reg = SX933X_CLKGEN_REG, //0x4200
                .val = 0x00000008,
        },
        //
        {
-               .reg = SX933X_PINCFG_REG,
+               .reg = SX933X_PINCFG_REG, //0x42C0
                .val = 0x08000000,
        },
        {
-               .reg = SX933X_PINDOUT_REG,
+               .reg = SX933X_PINDOUT_REG, //0x42C4
                .val = 0x0000003F,
        },
        //
        {
-               .reg = SX933X_IRQCFG0_REG,
+               .reg = SX933X_IRQCFG0_REG, //0x800C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_IRQCFG1_REG,
+               .reg = SX933X_IRQCFG1_REG, //0x8010
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_IRQCFG2_REG,
+               .reg = SX933X_IRQCFG2_REG, //0x8014
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_IRQCFG3_REG,
+               .reg = SX933X_IRQCFG3_REG, //0x8018
                .val = 0x00000000,
        },
        //
        {
-               .reg = SX933X_SCANPERIOD_REG,
+               .reg = SX933X_SCANPERIOD_REG, //0x801C
                .val = 0x00000032,
        },
        {
-               .reg = SX933X_GNRLCTRL2_REG,
+               .reg = SX933X_GNRLCTRL2_REG, //0x8020
                .val = 0x3F001F, //enable phase0~phase4  0x00FF0001,
        },
        {
-               .reg = SX933X_AFEPARAMSPH0_REG,
-               .val = 0x00010001,
+               .reg = SX933X_AFEPARAMSPH0_REG, //0x8024
+               .val = 0x300008d7,
        },
        {
-               .reg = SX933X_AFEPHPH0_REG,
+               .reg = SX933X_AFEPHPH0_REG, //0x8028
                .val = 0x00A00BE3,
        },
        {
-               .reg = SX933X_AFEPARAMSPH1_REG,
+               .reg = SX933X_AFEPARAMSPH1_REG, //0x802C
                .val = 0x300004D4,
        },
        {
-               .reg = SX933X_AFEPHPH1_REG,
+               .reg = SX933X_AFEPHPH1_REG, //0x8030
                .val = 0x00,
        },
        {
-               .reg = SX933X_AFEPARAMSPH2_REG,
+               .reg = SX933X_AFEPARAMSPH2_REG, //0x8034
                .val = 0x300004D4,//0x44F,//AFE setting for phase2  3.85pf
        },
        {
-               .reg = SX933X_AFEPHPH2_REG,
+               .reg = SX933X_AFEPHPH2_REG, //0x8038
                .val = 0x00,//Configure for phase2
        },
        {
-               .reg = SX933X_AFEPARAMSPH3_REG,
+               .reg = SX933X_AFEPARAMSPH3_REG, //0x803C
                .val = 0x300004D4,//0x44F,//AFE setting for phase3 3.3pf
        },
        {
-               .reg = SX933X_AFEPHPH3_REG,
+               .reg = SX933X_AFEPHPH3_REG, //0x8040
                .val = 0x00,//Configure for phase3
        },
        {
-               .reg = SX933X_AFEPARAMSPH4_REG,
+               .reg = SX933X_AFEPARAMSPH4_REG, //0x8044
                .val = 0x300004D4,//0x44F,//AFE setting for phase4 9.9pf
        },
        {
-               .reg = SX933X_AFEPHPH4_REG,
+               .reg = SX933X_AFEPHPH4_REG, //0x8048
                .val = 0x00,//Configure for phase4
        },
        {
-               .reg = SX933X_AFEPARAMSPH5_REG,
+               .reg = SX933X_AFEPARAMSPH5_REG, //0x804c
                .val = 0x300004D4,
        },
        {
-               .reg = SX933X_AFEPHPH5_REG,
+               .reg = SX933X_AFEPHPH5_REG, //0x8050
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADCFILTPH0_REG,
+               .reg = SX933X_ADCFILTPH0_REG, //0x8054
                .val = 0x10162000,
        },
        {
-               .reg = SX933X_AVGBFILTPH0_REG,
+               .reg = SX933X_AVGBFILTPH0_REG, //0x8058
                .val = 0x20400017,
        },
        {
-               .reg = SX933X_AVGAFILTPH0_REG,
+               .reg = SX933X_AVGAFILTPH0_REG, //0x805C
                .val = 0x31CF9110,
        },
        {
-               .reg = SX933X_ADVDIG0PH0_REG,
+               .reg = SX933X_ADVDIG0PH0_REG, //0x8060
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH0_REG,
+               .reg = SX933X_ADVDIG1PH0_REG, //0x8064
                .val = 0x00,
        },
        {
-               .reg = SX933X_ADVDIG2PH0_REG,
+               .reg = SX933X_ADVDIG2PH0_REG, //0x8068
                .val = 0x00,
        },
        {
-               .reg = SX933X_ADVDIG3PH0_REG ,
+               .reg = SX933X_ADVDIG3PH0_REG , //0x806C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH0_REG,
+               .reg = SX933X_ADVDIG4PH0_REG, //0x8070
                .val = 0x10000,
        },
        {
-               .reg = SX933X_ADCFILTPH1_REG,
+               .reg = SX933X_ADCFILTPH1_REG, //0x8074
                .val = 0x100000,
        },
        {
-               .reg = SX933X_AVGBFILTPH1_REG,
+               .reg = SX933X_AVGBFILTPH1_REG, //0x8078
                .val = 0x20600C00,
        },
        {
-               .reg = SX933X_AVGAFILTPH1_REG,
+               .reg = SX933X_AVGAFILTPH1_REG, //0x807C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG0PH1_REG,
+               .reg = SX933X_ADVDIG0PH1_REG, //0x8080
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH1_REG,
+               .reg = SX933X_ADVDIG1PH1_REG, //0x8084
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG2PH1_REG,
+               .reg = SX933X_ADVDIG2PH1_REG, //0x8088
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG3PH1_REG ,
+               .reg = SX933X_ADVDIG3PH1_REG , //0x808C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH1_REG,
+               .reg = SX933X_ADVDIG4PH1_REG, //0x8090
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADCFILTPH2_REG,
+               .reg = SX933X_ADCFILTPH2_REG, //0x8094
                .val = 0x100000,
        },
        {
-               .reg = SX933X_AVGBFILTPH2_REG,
+               .reg = SX933X_AVGBFILTPH2_REG, //0x8098
                .val = 0x20600C00,
        },
        {
-               .reg = SX933X_AVGAFILTPH2_REG,
+               .reg = SX933X_AVGAFILTPH2_REG, //0x809C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG0PH2_REG,
+               .reg = SX933X_ADVDIG0PH2_REG, //0x80A0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH2_REG,
+               .reg = SX933X_ADVDIG1PH2_REG, //0x80A4
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG2PH2_REG,
+               .reg = SX933X_ADVDIG2PH2_REG, //0x80A8
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG3PH2_REG ,
+               .reg = SX933X_ADVDIG3PH2_REG , //0x80AC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH2_REG,
+               .reg = SX933X_ADVDIG4PH2_REG, //0x80B0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADCFILTPH3_REG,
+               .reg = SX933X_ADCFILTPH3_REG, //0x80B4
                .val = 0x100000,
        },
        {
-               .reg = SX933X_AVGBFILTPH3_REG,
+               .reg = SX933X_AVGBFILTPH3_REG, //0x80B8
                .val = 0x20600C00,
        },
        {
-               .reg = SX933X_AVGAFILTPH3_REG,
+               .reg = SX933X_AVGAFILTPH3_REG, //0x80BC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG0PH3_REG,
+               .reg = SX933X_ADVDIG0PH3_REG, //0x80C0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH3_REG,
+               .reg = SX933X_ADVDIG1PH3_REG, //0x80C4
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG2PH3_REG,
+               .reg = SX933X_ADVDIG2PH3_REG, //0x80C8
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG3PH3_REG ,
+               .reg = SX933X_ADVDIG3PH3_REG , //0x80CC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH3_REG,
+               .reg = SX933X_ADVDIG4PH3_REG, //0x80D0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADCFILTPH4_REG,
+               .reg = SX933X_ADCFILTPH4_REG, //0x80D4
                .val = 0x100000,
        },
        {
-               .reg = SX933X_AVGBFILTPH4_REG,
+               .reg = SX933X_AVGBFILTPH4_REG, //0x80D8
                .val = 0x20600C00,
        },
        {
-               .reg = SX933X_AVGAFILTPH4_REG,
+               .reg = SX933X_AVGAFILTPH4_REG, //0x80DC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG0PH4_REG,
+               .reg = SX933X_ADVDIG0PH4_REG, //0x80E0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH4_REG,
+               .reg = SX933X_ADVDIG1PH4_REG, //0x80E4
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG2PH4_REG,
+               .reg = SX933X_ADVDIG2PH4_REG, //0x80E8
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG3PH4_REG ,
+               .reg = SX933X_ADVDIG3PH4_REG , //0x80EC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH4_REG,
+               .reg = SX933X_ADVDIG4PH4_REG, //0x80F0
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADCFILTPH5_REG,
+               .reg = SX933X_ADCFILTPH5_REG, //0x80F4
                .val = 0x100000,
        },
        {
-               .reg = SX933X_AVGBFILTPH5_REG,
+               .reg = SX933X_AVGBFILTPH5_REG, //0x80F8
                .val = 0x20600C00,
        },
        {
-               .reg = SX933X_AVGAFILTPH5_REG,
+               .reg = SX933X_AVGAFILTPH5_REG, //0x80FC
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG0PH5_REG,
+               .reg = SX933X_ADVDIG0PH5_REG, //0x8100
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG1PH5_REG,
+               .reg = SX933X_ADVDIG1PH5_REG, //0x8104
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG2PH5_REG,
+               .reg = SX933X_ADVDIG2PH5_REG, //0x8108
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG3PH5_REG ,
+               .reg = SX933X_ADVDIG3PH5_REG , //0x810C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_ADVDIG4PH5_REG,
+               .reg = SX933X_ADVDIG4PH5_REG, //0x8110
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_REFCORRA_REG,
+               .reg = SX933X_REFCORRA_REG, //0x8124
                .val = 0x7B13B10,
        },
        {
-               .reg = SX933X_REFCORRB_REG,
+               .reg = SX933X_REFCORRB_REG, //0x8128
                .val = 0x4000000,
        },
        {
-               .reg = SX933X_SMARTSAR0A_REG,
+               .reg = SX933X_SMARTSAR0A_REG, //0x812C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_SMARTSAR1A_REG,
+               .reg = SX933X_SMARTSAR1A_REG, //0x8130
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_SMARTSAR2A_REG,
+               .reg = SX933X_SMARTSAR2A_REG, //0x8134
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_SMARTSAR0B_REG,
+               .reg = SX933X_SMARTSAR0B_REG, //0x8138
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_SMARTSAR1B_REG,
+               .reg = SX933X_SMARTSAR1B_REG, //0x813C
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_SMARTSAR2B_REG,
+               .reg = SX933X_SMARTSAR2B_REG, //0x8140
                .val = 0x00000000,
        },
        //
        {
-               .reg = SX933X_AUTOFREQ0_REG,
+               .reg = SX933X_AUTOFREQ0_REG, //0x8154
                .val = 0x00000000,
        },
        {
-               .reg = SX933X_AUTOFREQ1_REG,
+               .reg = SX933X_AUTOFREQ1_REG, //0x8158
                .val = 0x00000000,
        },
        //
        {
-               .reg = SX933X_HOSTIRQMSK_REG,
+               .reg = SX933X_HOSTIRQMSK_REG, //0x4004
                .val = 0x00000078,
        },
        {
-               .reg = SX933X_HOSTIRQCTRL_REG,
+               .reg = SX933X_HOSTIRQCTRL_REG, //0x4008
                .val = 0x00,
        }
 };
+#else
+static const struct smtc_reg_data sx933x_i2c_reg_setup[] =
+{      
+       {0x4004,0x7C},
+       {0x4008,0x00},
+       {0x4054,0x400},
+       {0x42C0,0x8000000},
+       {0x42C4,0x3F},
+       {0x800C,0x00},
+       {0x8010,0x00},
+       {0x8014,0x00},
+       {0x8018,0x00},
+       {0x801C,0x31},
+       {0x8020,0x1F001F},
+       {0x8024,0x100088F},
+       {0x8028,0x3FFE86DE},
+       {0x802C,0x100088F},
+       {0x8030,0x3FF782CF},
+       {0x8034,0x100088F},
+       {0x8038,0x3FBF82E9},
+       {0x803C,0x100088F},
+       {0x8040,0x3DFF82C8},
+       {0x8044,0x100088F},
+       {0x8048,0x2FFF82D1},
+       {0x804C,0x88E},
+       {0x8050,0x80001EE6},
+       {0x8054,0x10162815},
+       {0x8058,0x60600C31},
+       {0x805C,0x54AC4300},
+       {0x8060,0x00},
+       {0x8064,0x00},
+       {0x8068,0x00},
+       {0x806C,0x00},
+       {0x8070,0x00},
+       {0x8074,0x10162815},
+       {0x8078,0x60600C31},
+       {0x807C,0x54AC4300},
+       {0x8080,0x00},
+       {0x8084,0x00},
+       {0x8088,0x00},
+       {0x808C,0x00},
+       {0x8090,0x00},
+       {0x8094,0x10166400},
+       {0x8098,0x60400031},
+       {0x809C,0x54AC4300},
+       {0x80A0,0x00},
+       {0x80A4,0x00},
+       {0x80A8,0x00},
+       {0x80AC,0x00},
+       {0x80B0,0x00},
+       {0x80B4,0x10125F15},
+       {0x80B8,0x60600B31},
+       {0x80BC,0x54AC4300},
+       {0x80C0,0x00},
+       {0x80C4,0x00},
+       {0x80C8,0x00},
+       {0x80CC,0x00},
+       {0x80D0,0x00},
+       {0x80D4,0x10166400},
+       {0x80D8,0x60400031},
+       {0x80DC,0x54AC4300},
+       {0x80E0,0x00},
+       {0x80E4,0x00},
+       {0x80E8,0x00},
+       {0x80EC,0x00},
+       {0x80F0,0x00},
+       {0x80F4,0x10162800},
+       {0x80F8,0x20400031},
+       {0x80FC,0x54AC5300},
+       {0x8100,0x00},
+       {0x8104,0x00},
+       {0x8108,0x00},
+       {0x810C,0x00},
+       {0x8110,0x00},
+       {0x8124,0x400000A},
+       {0x8128,0x400000C},
+       {0x812C,0x00},
+       {0x8130,0x00},
+       {0x8134,0x00},
+       {0x8138,0x00},
+       {0x813C,0x00},
+       {0x8140,0x00},
+       {0x8144,0x00},
+       {0x8148,0x00},
+       {0x814C,0x00},
+       {0x81A4,0x1C40019},
+};
 
+#endif
 static struct _buttonInfo psmtcButtons[] =
 {
        {
index 7a3b112915e0f30cfa3759b3dd0a0869c6c86fc3..e28eeab7fa303e1696a4fe8c239c3c140d26d642 100755 (executable)
@@ -54,6 +54,7 @@
 #define MAIN_SENSOR            1 //CS1
 
 /* Failer Index */
+#define SX933x_ID_SUCCESS      0
 #define SX933x_ID_ERROR        1
 #define SX933x_NIRQ_ERROR      2
 #define SX933x_CONN_ERROR      3
@@ -208,7 +209,7 @@ static int sx933x_Hardware_Check(psx93XX_t this)
                this->failStatusCode = SX933x_I2C_ERROR;
        }
 
-       if(idCode!= SX933X_WHOAMI_VALUE)
+       if((idCode&0x00003100) != SX933X_WHOAMI_VALUE_ALL)
        {
                this->failStatusCode = SX933x_ID_ERROR;
        }
@@ -301,7 +302,6 @@ static ssize_t manual_offset_calibration_store(struct device *dev,
 
        return count;
 }
-
 /****************************************************************************/
 static ssize_t sx933x_register_write_store(struct device *dev,
                struct device_attribute *attr,  const char *buf, size_t count)
@@ -316,7 +316,6 @@ static ssize_t sx933x_register_write_store(struct device *dev,
        }
 
        sx933x_i2c_write_16bit(this, reg_address, val);
-
        LOG_DBG("%s - Register(0x%x) data(0x%x)\n",__func__, reg_address, val);
        return count;
 }
@@ -341,6 +340,52 @@ static ssize_t sx933x_register_read_store(struct device *dev,
        LOG_DBG("%s - Register(0x%2x) data(0x%4x) nirq_state(%d)\n",__func__, regist, val, nirq_state);
        return count;
 }
+static void read_dbg_raw(psx93XX_t this)
+{
+       u32 uData;
+       s32 ref_raw, ant_raw;
+
+       sx933x_i2c_read_16bit(this, 0x81A4, &uData);
+
+       //MANT_MLB
+       uData &= ~(0x7 << 3); //PH0
+       sx933x_i2c_write_16bit(this, 0x81A4, uData);
+       sx933x_i2c_read_16bit(this, 0x81B0, &uData);
+       ant_raw = (s32)uData>>10;
+
+       //MANT_REF
+       uData &= ~(0x7 << 3);
+       uData |= 4 << 3; //PH4
+       sx933x_i2c_write_16bit(this, 0x81A4, uData);
+       sx933x_i2c_read_16bit(this, 0x81B0, &uData);
+       ref_raw = (s32)uData>>10;
+       LOG_DBG("MANT_MLB = %d REF = %d \n", ant_raw, ref_raw);
+
+       //MANT__HB
+       uData &= ~(0x7 << 3);
+       uData |= 1 << 3; //PH1
+       sx933x_i2c_write_16bit(this, 0x81A4, uData);
+       sx933x_i2c_read_16bit(this, 0x81B0, &uData);
+       ant_raw = (s32)uData>>10;
+       LOG_DBG("MANT__HB = %d REF = %d \n", ant_raw, ref_raw);
+
+       //DIV_ANT
+       uData &= ~(0x7 << 3);
+       uData |= 3 << 3; //PH3
+       sx933x_i2c_write_16bit(this, 0x81A4, uData);
+       sx933x_i2c_read_16bit(this, 0x81B0, &uData);
+       ant_raw = (s32)uData>>10;
+
+       //DIV_REF
+       uData &= ~(0x7 << 3);
+       uData |= 2 << 3; //PH2
+       sx933x_i2c_write_16bit(this, 0x81A4, uData);
+       sx933x_i2c_read_16bit(this, 0x81B0, &uData);
+       ref_raw = (s32)uData>>10;
+
+       LOG_DBG("DIV_ANT = %d DIV_REF = %d \n", ant_raw, ref_raw);
+
+}
 
 static void read_rawData(psx93XX_t this)
 {
@@ -350,7 +395,7 @@ static void read_rawData(psx93XX_t this)
        s32 diff;
        u32 uData;
        u16 offset;
-       //s32 state = 0;
+       s32 state = 0;
 
        if(this)
        {
@@ -365,13 +410,30 @@ static void read_rawData(psx93XX_t this)
                        diff = (s32)uData>>10;
                        sx933x_i2c_read_16bit(this, SX933X_OFFSETPH0_REG + index*2, &uData);
                        offset = (u16)(uData & 0x7FFF);
-                       //state = psmtcButtons[csx].state;
-                       LOG_DBG("[PH: %d] Useful = %d Average = %d, DIFF = %d Offset = %d \n",
-                                       csx,useful,average,diff,offset);
+                       state = psmtcButtons[csx].state;
+                       LOG_DBG("[PH: %d] Useful = %d Average = %d, DIFF = %d Offset = %d state = %d \n",
+                                       csx,useful,average,diff,offset, state);
                }
        }
-}
+       read_dbg_raw(this);
 
+}
+static ssize_t sx933x_all_reg_data_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+       u32 val=0;
+       u16 regist = 0;
+       char *p = buf;
+       int i;
+       psx93XX_t this = dev_get_drvdata(dev);
+       for (i = 0; i < ARRAY_SIZE(sx933x_i2c_reg_setup); i++)
+       {
+               regist = (u16)(sx933x_i2c_reg_setup[i].reg);
+               sx933x_i2c_read_16bit(this, regist, &val);
+               p += snprintf(p, PAGE_SIZE, "reg=(0x%04x)  value=0x%04x\n",
+                       regist,val);
+       }
+       return (p-buf);
+}
 static ssize_t sx933x_raw_data_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
        char *p = buf;
@@ -390,7 +452,7 @@ static ssize_t sx933x_raw_data_show(struct device *dev, struct device_attribute
                        diff = (s32)uData>>10;
                        sx933x_i2c_read_16bit(this, SX933X_OFFSETPH0_REG + csx*8, &uData);
                        offset = (u16)(uData & 0x7FFF);
-                       p += snprintf(p, PAGE_SIZE, "[PH: %d] Useful = %d, Average = %d, DIFF = %d Offset = %d \n",
+                       p += snprintf(p, PAGE_SIZE, "[PH: %d] Useful = %d, Average = %d, DIFF = %d Offset = %d\n",
                                        csx,useful,average,diff,offset);
                }
        }
@@ -418,7 +480,7 @@ static ssize_t sx933x_hardware_id_show(struct device *dev, struct device_attribu
        int ret;
        u32 idCode;
        u8 loop = 0;
-       int result = 0;
+       int result = 1;
 
        psx93XX_t this = dev_get_drvdata(dev);
        this->failStatusCode = 0;
@@ -441,9 +503,9 @@ static ssize_t sx933x_hardware_id_show(struct device *dev, struct device_attribu
                result = SX933x_I2C_ERROR;
        }
 
-       if(idCode!= SX933X_WHOAMI_VALUE)
+       if((idCode&0x00003100)== SX933X_WHOAMI_VALUE_ALL)
        {
-               result = SX933x_ID_ERROR;
+               result = SX933x_ID_SUCCESS;
        }
        if(result == 0)
                result = SX933X_HARDWARE_CHECK_SUCCESS;
@@ -458,6 +520,7 @@ static DEVICE_ATTR(register_read,0664, NULL,sx933x_register_read_store);
 static DEVICE_ATTR(raw_data,0664,sx933x_raw_data_show,NULL);
 static DEVICE_ATTR(diff_data,0664,sx933x_diff_data_show,NULL);
 static DEVICE_ATTR(hardware_id,0664,sx933x_hardware_id_show,NULL);
+static DEVICE_ATTR(all_reg_value,0664,sx933x_all_reg_data_show,NULL);
 
 static struct attribute *sx933x_attributes[] =
 {
@@ -468,6 +531,7 @@ static struct attribute *sx933x_attributes[] =
        &dev_attr_raw_data.attr,
        &dev_attr_diff_data.attr,
        &dev_attr_hardware_id.attr,
+       &dev_attr_all_reg_value.attr,
        NULL,
 };
 static struct attribute_group sx933x_attr_group =
@@ -638,7 +702,9 @@ static void touchProcess(psx93XX_t this)
                                }
                        } else if (touchFlag == pCurrentButton->ProxMask) {
                                if (pCurrentButton->state == PROXACTIVE)
+                               {
                                        LOG_DBG(" %s already PROXACTIVE\n", pCurrentButton->name);
+                               }
                                else {
                                        input_report_abs(input, ABS_DISTANCE, 1);
                                        input_sync(input);
@@ -773,7 +839,6 @@ static int capsensor_set_enable(struct sensors_classdev *sensors_cdev,
        bool disableFlag = true;
        int i = 0;
        u32 temp = 0x0;
-
        for (i = 0; i < ARRAY_SIZE(psmtcButtons); i++) {
                if (strcmp(sensors_cdev->name, psmtcButtons[i].name) == 0) {
                        if (enable == 1) {