diff --git a/drivers/rtc/rtc-pcf85063.c b/drivers/rtc/rtc-pcf85063.c index fdbc07f14036a..8da2e4e097f7e 100644 --- a/drivers/rtc/rtc-pcf85063.c +++ b/drivers/rtc/rtc-pcf85063.c @@ -585,7 +585,15 @@ static int pcf85063_probe(struct i2c_client *client) dev_err(&client->dev, "RTC chip is not present\n"); return err; } + ret = regmap_read(pcf85063->regmap, PCF85063_REG_SC, &tmp); + if (ret < 0) + return ret; + // cleat the OS Bit if it is set + if ((tmp & (1 << (8 - 1)))) { + tmp = tmp & (~(1 << (8 - 1))); + regmap_write(pcf85063->regmap, PCF85063_REG_SC, tmp); + } pcf85063->rtc = devm_rtc_allocate_device(&client->dev); if (IS_ERR(pcf85063->rtc)) return PTR_ERR(pcf85063->rtc);