diff options
author | Phil Howard <phil@gadgetoid.com> | 2019-03-29 10:53:14 +0000 |
---|---|---|
committer | popcornmix <popcornmix@gmail.com> | 2019-05-14 00:08:27 +0100 |
commit | e0ebe930e2c7d90503ce2544e416471c1de000df (patch) | |
tree | 8b5117a70460fc0252b6301ebba194d3ea519472 /drivers/rtc | |
parent | 3ea9af8bc4eaac0cca72d603ed081973bce91bcf (diff) | |
download | linux-rpi3-e0ebe930e2c7d90503ce2544e416471c1de000df.tar.gz linux-rpi3-e0ebe930e2c7d90503ce2544e416471c1de000df.tar.bz2 linux-rpi3-e0ebe930e2c7d90503ce2544e416471c1de000df.zip |
rtc: rv3028: Add backup switchover mode support
Signed-off-by: Phil Howard <phil@pimoroni.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-rv3028.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-rv3028.c b/drivers/rtc/rtc-rv3028.c index d04c2d481655..b69d8e6408aa 100644 --- a/drivers/rtc/rtc-rv3028.c +++ b/drivers/rtc/rtc-rv3028.c @@ -74,6 +74,7 @@ #define RV3028_BACKUP_TCE BIT(5) #define RV3028_BACKUP_TCR_MASK GENMASK(1,0) +#define RV3028_BACKUP_BSM_MASK 0x0C #define OFFSET_STEP_PPT 953674 @@ -601,6 +602,7 @@ static int rv3028_probe(struct i2c_client *client) struct rv3028_data *rv3028; int ret, status; u32 ohms; + u8 bsm; struct nvmem_config nvmem_cfg = { .name = "rv3028_nvram", .word_size = 1, @@ -671,6 +673,21 @@ static int rv3028_probe(struct i2c_client *client) if (ret) return ret; + /* setup backup switchover mode */ + if (!device_property_read_u8(&client->dev, "backup-switchover-mode", + &bsm)) { + if (bsm <= 3) { + ret = regmap_update_bits(rv3028->regmap, RV3028_BACKUP, + RV3028_BACKUP_BSM_MASK, + (bsm & 0x03) << 2); + + if (ret) + return ret; + } else { + dev_warn(&client->dev, "invalid backup switchover mode value\n"); + } + } + /* setup trickle charger */ if (!device_property_read_u32(&client->dev, "trickle-resistor-ohms", &ohms)) { |