The MAX31331 was not correctly updating the seconds when setting the time and would return the seconds previously set.
Like the MAX31343, a delay needs to be added after setting the time. Wait one second after writing so that the date command shows the correct time. Reviewed-by: Chris Packham <chris.pack...@alliedtelesis.co.nz> Reviewed-by: Bruce Adams <bruce.ad...@alliedtelesis.co.nz> Signed-off-by: Ben Hoelker <ben.hoel...@alliedtelesis.co.nz> --- drivers/rtc/max313xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/rtc/max313xx.c b/drivers/rtc/max313xx.c index 2cb3f245041..f0d38b10c97 100644 --- a/drivers/rtc/max313xx.c +++ b/drivers/rtc/max313xx.c @@ -308,6 +308,7 @@ static int max313xx_set_time(struct udevice *dev, const struct rtc_time *t) return ret; break; + case ID_MAX31331: case ID_MAX31343: /* Time is not updated for 1 second after writing */ /* Sleep here so the date command shows the new time */ -- 2.50.1 base-commit: 0c558bbad9e7581808b358091d1fd979f860e8ac branch: master