]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
rtc: pcf85063: add power loss detection during probe
authorAlexander Feilke <alexander.feilke@ew.tq-group.com>
Fri, 22 May 2026 15:39:28 +0000 (17:39 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 5 Jun 2026 16:14:24 +0000 (10:14 -0600)
Retrofit from upstream linux to try resetting the device after power loss.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Alexander Feilke <alexander.feilke@ew.tq-group.com>
drivers/rtc/pcf85063.c

index 107e8b4d4c8db5ae84ece1323aa9950be5b719d9..421c42c0b81ac6bec2dbd5a80ccbbe2407b6677b 100644 (file)
@@ -185,6 +185,20 @@ static int pcf85063_probe(struct udevice *dev)
                return err;
        }
 
+       /*
+        * If a Power loss is detected, SW reset the device.
+        * From PCF85063A datasheet:
+        * There is a low probability that some devices will have corruption
+        * of the registers after the automatic power-on reset...
+        */
+       if (tmp & PCF85063_REG_SC_OS) {
+               dev_warn(dev, "POR issue detected, sending a SW reset\n");
+               err = dm_i2c_reg_clrset(dev, PCF85063_REG_CTRL1,
+                                       0xff, PCF85063_REG_CTRL1_SWR);
+               if (err < 0)
+                       dev_warn(dev, "SW reset failed, trying to continue\n");
+       }
+
        err = pcf85063_load_capacitance(dev);
        if (err < 0)
                dev_warn(dev, "failed to set xtal load capacitance: %d",