@@ -222,11 +222,15 @@ struct rockchip_thermal_data {
222222#define GRF_TSADC_TESTBIT_L 0x0e648
223223#define GRF_TSADC_TESTBIT_H 0x0e64c
224224
225+ #define PX30_GRF_SOC_CON2 0x0408
226+
225227#define GRF_SARADC_TESTBIT_ON (0x10001 << 2)
226228#define GRF_TSADC_TESTBIT_H_ON (0x10001 << 2)
227229#define GRF_TSADC_VCM_EN_L (0x10001 << 7)
228230#define GRF_TSADC_VCM_EN_H (0x10001 << 7)
229231
232+ #define GRF_CON_TSADC_CH_INV (0x10001 << 1)
233+
230234#define MIN_TEMP (-40000)
231235#define MAX_TEMP (125000)
232236
@@ -635,6 +639,14 @@ static void rk_tsadcv3_initialize(struct regmap *grf, void __iomem *regs,
635639 regs + TSADCV2_AUTO_CON );
636640}
637641
642+ static void rk_tsadcv4_initialize (struct regmap * grf , void __iomem * regs ,
643+ enum tshut_polarity tshut_polarity )
644+ {
645+ rk_tsadcv2_initialize (grf , regs , tshut_polarity );
646+ if (!IS_ERR (grf ))
647+ regmap_write (grf , PX30_GRF_SOC_CON2 , GRF_CON_TSADC_CH_INV );
648+ }
649+
638650static void rk_tsadcv2_irq_ack (void __iomem * regs )
639651{
640652 u32 val ;
@@ -879,7 +891,7 @@ static const struct rockchip_tsadc_chip px30_tsadc_data = {
879891 .tshut_mode = TSHUT_MODE_CRU , /* default TSHUT via CRU */
880892 .tshut_temp = 95000 ,
881893
882- .initialize = rk_tsadcv2_initialize ,
894+ .initialize = rk_tsadcv4_initialize ,
883895 .irq_ack = rk_tsadcv3_irq_ack ,
884896 .control = rk_tsadcv3_control ,
885897 .get_temp = rk_tsadcv2_get_temp ,
0 commit comments