From c8d77f93a6c8f95656a59cfc3b9fc866542f619d Mon Sep 17 00:00:00 2001 From: shengfei Xu Date: Fri, 3 Jun 2022 06:27:15 +0000 Subject: [PATCH] rtc: rockchip: fix the rtc status error Signed-off-by: shengfei Xu Change-Id: I26837e185488db88d42ba413653cb456d713fce2 --- drivers/rtc/rtc-rockchip.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-rockchip.c b/drivers/rtc/rtc-rockchip.c index 6bbf563c25b3..06b5e0f4d3e4 100644 --- a/drivers/rtc/rtc-rockchip.c +++ b/drivers/rtc/rtc-rockchip.c @@ -86,6 +86,9 @@ #define RTC_VREF_INIT 0x40 +#define D2A_POR_REG_SEL1 BIT(4) +#define D2A_POR_REG_SEL0 BIT(1) + #define NUM_TIME_REGS 8 #define NUM_ALARM_REGS 7 @@ -692,10 +695,18 @@ static int rockchip_rtc_probe(struct platform_device *pdev) return dev_err_probe(dev, ret, "Failed to add clk disable action."); - ret = rockchip_rtc_write(rtc->regmap, RTC_ANALOG_TEST, RTC_VREF_INIT); + ret = rockchip_rtc_update_bits(rtc->regmap, RTC_VPTAT_TRIM, + D2A_POR_REG_SEL1, + D2A_POR_REG_SEL1); if (ret) return dev_err_probe(&pdev->dev, ret, - "Failed to write RTC_ANALOG_TEST\n"); + "Failed to write RTC_VPTAT_TRIM\n"); + ret = rockchip_rtc_update_bits(rtc->regmap, RTC_ANALOG_EN, + D2A_POR_REG_SEL0, + 0x00); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "Failed to write RTC_ANALOG_EN\n"); ret = rockchip_rtc_update_bits(rtc->regmap, RTC_LDO_CTRL, RTC_D2A_XO_EN,