brcm2708: rename target to bcm27xx
[openwrt/staging/wigyori.git] / target / linux / bcm27xx / patches-4.19 / 950-0366-rtc-rv3028-Add-backup-switchover-mode-support.patch
1 From fb4e195012c405a04b1a7a86e240ceada0c8aa65 Mon Sep 17 00:00:00 2001
2 From: Phil Howard <phil@gadgetoid.com>
3 Date: Fri, 29 Mar 2019 10:53:14 +0000
4 Subject: [PATCH] rtc: rv3028: Add backup switchover mode support
5
6 Signed-off-by: Phil Howard <phil@pimoroni.com>
7 ---
8 drivers/rtc/rtc-rv3028.c | 17 +++++++++++++++++
9 1 file changed, 17 insertions(+)
10
11 --- a/drivers/rtc/rtc-rv3028.c
12 +++ b/drivers/rtc/rtc-rv3028.c
13 @@ -74,6 +74,7 @@
14
15 #define RV3028_BACKUP_TCE BIT(5)
16 #define RV3028_BACKUP_TCR_MASK GENMASK(1,0)
17 +#define RV3028_BACKUP_BSM_MASK 0x0C
18
19 #define OFFSET_STEP_PPT 953674
20
21 @@ -601,6 +602,7 @@ static int rv3028_probe(struct i2c_clien
22 struct rv3028_data *rv3028;
23 int ret, status;
24 u32 ohms;
25 + u8 bsm;
26 struct nvmem_config nvmem_cfg = {
27 .name = "rv3028_nvram",
28 .word_size = 1,
29 @@ -671,6 +673,21 @@ static int rv3028_probe(struct i2c_clien
30 if (ret)
31 return ret;
32
33 + /* setup backup switchover mode */
34 + if (!device_property_read_u8(&client->dev, "backup-switchover-mode",
35 + &bsm)) {
36 + if (bsm <= 3) {
37 + ret = regmap_update_bits(rv3028->regmap, RV3028_BACKUP,
38 + RV3028_BACKUP_BSM_MASK,
39 + (bsm & 0x03) << 2);
40 +
41 + if (ret)
42 + return ret;
43 + } else {
44 + dev_warn(&client->dev, "invalid backup switchover mode value\n");
45 + }
46 + }
47 +
48 /* setup trickle charger */
49 if (!device_property_read_u32(&client->dev, "trickle-resistor-ohms",
50 &ohms)) {