#define   RZN1_RTC_CTL0_SLSB_SUBU 0
 #define   RZN1_RTC_CTL0_SLSB_SCMP BIT(4)
 #define   RZN1_RTC_CTL0_AMPM BIT(5)
+#define   RZN1_RTC_CTL0_CEST BIT(6)
 #define   RZN1_RTC_CTL0_CE BIT(7)
 
 #define RZN1_RTC_CTL1 0x04
 static int rzn1_rtc_probe(struct platform_device *pdev)
 {
        struct rzn1_rtc *rtc;
+       u32 val;
        int irq;
        int ret;
 
         * Ensure the clock counter is enabled.
         * Set 24-hour mode and possible oscillator offset compensation in SUBU mode.
         */
+       val = readl(rtc->base + RZN1_RTC_CTL0) & ~RZN1_RTC_CTL0_CE;
+       writel(val, rtc->base + RZN1_RTC_CTL0);
+       /* Wait 2-4 32k clock cycles for the disabled controller */
+       ret = readl_poll_timeout(rtc->base + RZN1_RTC_CTL0, val,
+                                !(val & RZN1_RTC_CTL0_CEST), 62, 123);
+       if (ret)
+               goto dis_runtime_pm;
+
        writel(RZN1_RTC_CTL0_CE | RZN1_RTC_CTL0_AMPM | RZN1_RTC_CTL0_SLSB_SUBU,
               rtc->base + RZN1_RTC_CTL0);