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