Hi Marek, On 6/28/19 2:21 AM, Marek Vasut wrote: > The battery backup can be disabled on this RTC, e.g. if populated right > out of production. Force the battery backup bit on to enable it. > > Signed-off-by: Marek Vasut <marex@xxxxxxx> > Cc: Arnaud Ebalard <arno@xxxxxxxxxxxx> > Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx> > --- > drivers/rtc/rtc-ds1307.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c > index 1f7e8aefc1eb..4af00cac1eff 100644 > --- a/drivers/rtc/rtc-ds1307.c > +++ b/drivers/rtc/rtc-ds1307.c > @@ -121,6 +121,8 @@ enum ds_type { > #define RX8130_REG_FLAG_AF BIT(3) > #define RX8130_REG_CONTROL0 0x1e > #define RX8130_REG_CONTROL0_AIE BIT(3) > +#define RX8130_REG_CONTROL1 0x0f I think it is surprising that RX8130_REG_CONTROL0 is defined absolute and RX8130_REG_CONTROL1 must be used with chip offset. Having this defined consistently would be nice. > +#define RX8130_REG_CONTROL1_INIEN BIT(4) > > #define MCP794XX_REG_CONTROL 0x07 > # define MCP794XX_BIT_ALM0_EN 0x10 > @@ -1750,6 +1752,11 @@ static int ds1307_probe(struct i2c_client *client, > DS1307_REG_HOUR << 4 | 0x08, hour); > } > break; > + case rx_8130: > + /* make sure that the backup battery is enabled */ > + regmap_write(ds1307->regmap, chip->offset + RX8130_REG_CONTROL1, > + RX8130_REG_CONTROL1_INIEN); > + break; Quick note: if a rechargeable battery or supercap is used the CHGEN bit must be set also. Regards, Bastian > default: > break; > } > > -- Pengutronix e.K. Industrial Linux Solutions http://www.pengutronix.de/ Peiner Str. 6-8, 31137 Hildesheim, Germany Amtsgericht Hildesheim, HRA 2686