mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 08:44:14 +08:00
rtc: ds1307: enable rx8130's backup battery, make it chargeable optionally
The ds1307 charger infrastructure now allows to add a rx8130 charger setup that.. - does not depend on trickle-resistor-ohms - does not use DS13XX_TRICKLE_CHARGER_MAGIC trickle-charge select (TCS) bits - keeps previous no-charge behavior for device trees without aux-voltage-chargeable Make that happen. 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-9-bst@pengutronix.de
This commit is contained in:
parent
0874734e09
commit
0026f1604c
@ -122,6 +122,9 @@ 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 0x1f
|
||||
#define RX8130_REG_CONTROL1_INIEN BIT(4)
|
||||
#define RX8130_REG_CONTROL1_CHGEN BIT(5)
|
||||
|
||||
#define MCP794XX_REG_CONTROL 0x07
|
||||
# define MCP794XX_BIT_ALM0_EN 0x10
|
||||
@ -541,6 +544,16 @@ static u8 do_trickle_setup_ds1339(struct ds1307 *ds1307, u32 ohms, bool diode)
|
||||
return setup;
|
||||
}
|
||||
|
||||
static u8 do_trickle_setup_rx8130(struct ds1307 *ds1307, u32 ohms, bool diode)
|
||||
{
|
||||
/* make sure that the backup battery is enabled */
|
||||
u8 setup = RX8130_REG_CONTROL1_INIEN;
|
||||
if (diode)
|
||||
setup |= RX8130_REG_CONTROL1_CHGEN;
|
||||
|
||||
return setup;
|
||||
}
|
||||
|
||||
static irqreturn_t rx8130_irq(int irq, void *dev_id)
|
||||
{
|
||||
struct ds1307 *ds1307 = dev_id;
|
||||
@ -1029,6 +1042,8 @@ static const struct chip_desc chips[last_ds_type] = {
|
||||
.offset = 0x10,
|
||||
.irq_handler = rx8130_irq,
|
||||
.rtc_ops = &rx8130_rtc_ops,
|
||||
.trickle_charger_reg = RX8130_REG_CONTROL1,
|
||||
.do_trickle_setup = &do_trickle_setup_rx8130,
|
||||
},
|
||||
[m41t0] = {
|
||||
.rtc_ops = &m41txx_rtc_ops,
|
||||
|
Loading…
Reference in New Issue
Block a user