[v3] rtc: pcf85363/pcf85263: fix error that failed to run hwclock -w

From: Biwen Li
Date: Mon Aug 26 2019 - 01:23:55 EST


Issue:
- hwclock -w
hwclock: RTC_SET_TIME: Invalid argument

Why:
- Relative patch: https://lkml.org/lkml/2019/4/3/55 , this patch
will always check for unwritable registers, it will compare reg
with max_register in regmap_writeable.
- In drivers/rtc/rtc-pcf85363.c, CTRL_STOP_EN is 0x2e, but DT_100THS
is 0, max_regiter is 0x2f, then reg will be equal to 0x30,
0x30 < 0x2f is false,so regmap_writeable will return false.

How:
- increase max_register to skip failed
when checking max_register.

Signed-off-by: Biwen Li <biwen.li@xxxxxxx>
---
Change in v3:
- replace old scheme with new scheme:
increase max_register.

Change in v2:
- add Why and How into commit message.

drivers/rtc/rtc-pcf85363.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-pcf85363.c b/drivers/rtc/rtc-pcf85363.c
index a075e77617dc..e9d4ef59febd 100644
--- a/drivers/rtc/rtc-pcf85363.c
+++ b/drivers/rtc/rtc-pcf85363.c
@@ -336,7 +336,8 @@ static const struct pcf85x63_config pcf_85263_config = {
.regmap = {
.reg_bits = 8,
.val_bits = 8,
- .max_register = 0x2f,
+ .max_register = 0x2f * 2, /* skip failed when
+ checking max_register */
},
.num_nvram = 1
};
--
2.17.1