drivers: rtc: max313xx: Ensure correct date is read after setting
authorMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Mon, 20 Jan 2025 01:59:41 +0000 (14:59 +1300)
committerTom Rini <trini@konsulko.com>
Sun, 26 Jan 2025 17:33:13 +0000 (11:33 -0600)
When setting the time on the MAX31343, the time is not updated
for one second, and reading the time in this interval will give
the old time. Wait one second after writing so that the date
command will show the correct time when setting the clock.

Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Cc: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Chris Packham <judge.packham@gmail.com>
drivers/rtc/max313xx.c

index ccfd6b6..2cb3f24 100644 (file)
@@ -307,6 +307,11 @@ static int max313xx_set_time(struct udevice *dev, const struct rtc_time *t)
                if (ret)
                        return ret;
 
+               break;
+       case ID_MAX31343:
+               /* Time is not updated for 1 second after writing */
+               /* Sleep here so the date command shows the new time */
+               mdelay(1000);
                break;
        default:
                break;