On 9/5/19 3:00 PM, Marek Vasut wrote: > On 8/30/19 12:42 PM, Bastian Krause wrote: >> 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. > > It's because this old patch was rebased from before the regmap changes > were even in. > >>> +#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. > > By rechargable battery, you mean coin cell one ? Yes, some rechargeable lithium coin/button cell. Or in my case a ELNA 0.2F 3.3V supercap. Regards, Bastian -- Pengutronix e.K. Industrial Linux Solutions http://www.pengutronix.de/ Peiner Str. 6-8, 31137 Hildesheim, Germany Amtsgericht Hildesheim, HRA 2686