| From c91a8597734d13ebb5ac7393fa6f100d70f15664 Mon Sep 17 00:00:00 2001 |
| From: Phil Howard <phil@gadgetoid.com> |
| Date: Fri, 29 Mar 2019 10:53:14 +0000 |
| Subject: [PATCH] rtc: rv3028: Add backup switchover mode support |
| |
| Signed-off-by: Phil Howard <phil@pimoroni.com> |
| --- |
| drivers/rtc/rtc-rv3028.c | 17 +++++++++++++++++ |
| 1 file changed, 17 insertions(+) |
| |
| --- a/drivers/rtc/rtc-rv3028.c |
| +++ b/drivers/rtc/rtc-rv3028.c |
| @@ -73,6 +73,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 |
| |
| @@ -600,6 +601,7 @@ static int rv3028_probe(struct i2c_clien |
| 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_clien |
| 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)) { |