rtc: ds1307: apply DS13XX_TRICKLE_CHARGER_MAGIC only conditionally
authorBastian Krause <bst@pengutronix.de>
Thu, 17 Sep 2020 18:32:42 +0000 (20:32 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 24 Sep 2020 07:56:03 +0000 (09:56 +0200)
commit462eb736db3db76899022e4e4db788a7b6efbe09
tree5518cd7bed833ffbf08e24959809cf404e9c87c0
parent40d58c9742286ef95ef8dc5885d4043224490c82
rtc: ds1307: apply DS13XX_TRICKLE_CHARGER_MAGIC only conditionally

DS13XX_TRICKLE_CHARGER_MAGIC sets the trickle-charge select (TCS) bits
(7..4). The datasheet of Maxim Integrated's DS1339 [1] for instance
reads:

"To prevent accidental enabling, only a pattern on 1010 enables the
trickle charger. All other patterns disable the trickle charger."

Since not all RTCs connected to a backup battery or supercap use these
bits DS13XX_TRICKLE_CHARGER_MAGIC should not get applied for all charger
setups unconditionally.
Epson's RX8130 is such an example: Instead of TCS bits "SMPTSEL1",
"SMPTSEL0",  "CHGEN" and "INIEN" are expected as bit 7..4.

DS1339 and DS1340 are currently the only RTCs in the ds1307 driver that
apply DS13XX_TRICKLE_CHARGER_MAGIC to their setup register value. So
apply DS13XX_TRICKLE_CHARGER_MAGIC in do_trickle_setup_ds1339() which
is used by both RTCs.

[1] https://datasheets.maximintegrated.com/en/ds/DS1339-DS1339U.pdf
[2] https://support.epson.biz/td/api/doc_check.php?dl=app_RX8130CE

Signed-off-by: Bastian Krause <bst@pengutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20200917183246.19446-5-bst@pengutronix.de
drivers/rtc/rtc-ds1307.c