On 10/04/2025 11:25:48+0300, Ciprian Costea wrote:
From: Ciprian Marian Costea <ciprianmarian.costea@xxxxxxxxxxx>
If the RTC is not linked to any battery, the oscillator is stopped at
startup and a SW reset command is generated to the PCF85063 RTC.
Manually start the oscillator in case the PCF85063 RTC is not battery
backed.
No, there is no point in starting the oscillator with a know wrong
time/date. The oscillator must only be started once the time is known
good, that is in .set_time
Co-developed-by: Larisa Grigore <larisa.grigore@xxxxxxx>
Signed-off-by: Larisa Grigore <larisa.grigore@xxxxxxx>
Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@xxxxxxxxxxx>
---
drivers/rtc/rtc-pcf85063.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/rtc/rtc-pcf85063.c b/drivers/rtc/rtc-pcf85063.c
index 4fa5c4ecdd5a..6de7344d2469 100644
--- a/drivers/rtc/rtc-pcf85063.c
+++ b/drivers/rtc/rtc-pcf85063.c
@@ -590,6 +590,14 @@ static int pcf85063_probe(struct i2c_client *client)
i2c_set_clientdata(client, pcf85063);
+ if (of_property_read_bool(client->dev.of_node, "no-battery")) {
+ err = regmap_update_bits(pcf85063->regmap, PCF85063_REG_SC,
+ PCF85063_REG_SC_OS, 0);
+ if (err)
+ return dev_err_probe(&client->dev, err,
+ "Failed to start the oscillator\n");
+ }
+
err = regmap_read(pcf85063->regmap, PCF85063_REG_SC, &tmp);
if (err)
return dev_err_probe(&client->dev, err, "RTC chip is not present\n");
--
2.45.2