From: Bastian Krause Date: Thu, 17 Sep 2020 18:32:45 +0000 (+0200) Subject: rtc: ds1307: consider aux-voltage-chargeable X-Git-Tag: Ubuntu-5.10.0-12.13~1624^2~18 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=0874734e09af5cc05439dbe2c8ff704f14d679f5;p=mirror_ubuntu-hirsute-kernel.git rtc: ds1307: consider aux-voltage-chargeable Prefer aux-voltage-chargeable over trickle-diode-disable and set diode accordingly. This is then passed to the chip's appropriate charge setup function. Signed-off-by: Bastian Krause Signed-off-by: Alexandre Belloni Link: https://lore.kernel.org/r/20200917183246.19446-8-bst@pengutronix.de --- diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index fdd6f9fda6f9..03e166d2b0f8 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -1313,7 +1313,7 @@ static int ds1307_nvram_write(void *priv, unsigned int offset, void *val, static u8 ds1307_trickle_init(struct ds1307 *ds1307, const struct chip_desc *chip) { - u32 ohms; + u32 ohms, chargeable; bool diode = chip->charge_default; if (!chip->do_trickle_setup) @@ -1323,8 +1323,27 @@ static u8 ds1307_trickle_init(struct ds1307 *ds1307, &ohms) && chip->requires_trickle_resistor) return 0; - if (device_property_read_bool(ds1307->dev, "trickle-diode-disable")) + /* aux-voltage-chargeable takes precedence over the deprecated + * trickle-diode-disable + */ + if (!device_property_read_u32(ds1307->dev, "aux-voltage-chargeable", + &chargeable)) { + switch (chargeable) { + case 0: + diode = false; + break; + case 1: + diode = true; + break; + default: + dev_warn(ds1307->dev, + "unsupported aux-voltage-chargeable value\n"); + break; + } + } else if (device_property_read_bool(ds1307->dev, + "trickle-diode-disable")) { diode = false; + } return chip->do_trickle_setup(ds1307, ohms, diode); }