Message ID | 20170223140124.57639-1-sean.nyekjaer@prevas.dk |
---|---|
State | Accepted |
Headers | show |
On 23/02/2017 at 15:01:24 +0100, Sean Nyekjaer wrote: > Read control registers one by one and bulk read time registers. > This fixes when the clock is read, the watchdog counter register is zeroed. > > Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk> > --- > Changes since v1: > - fixed indentation > - use of more defines > > drivers/rtc/rtc-pcf2127.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > Applied, thanks.
diff --git a/drivers/rtc/rtc-pcf2127.c b/drivers/rtc/rtc-pcf2127.c index 2bfdf638b673..f33447c5db85 100644 --- a/drivers/rtc/rtc-pcf2127.c +++ b/drivers/rtc/rtc-pcf2127.c @@ -52,9 +52,20 @@ static int pcf2127_rtc_read_time(struct device *dev, struct rtc_time *tm) struct pcf2127 *pcf2127 = dev_get_drvdata(dev); unsigned char buf[10]; int ret; + int i; - ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_CTRL1, buf, - sizeof(buf)); + for (i = 0; i <= PCF2127_REG_CTRL3; i++) { + ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL1 + i, + (unsigned int *)(buf + i)); + if (ret) { + dev_err(dev, "%s: read error\n", __func__); + return ret; + } + } + + ret = regmap_bulk_read(pcf2127->regmap, PCF2127_REG_SC, + (buf + PCF2127_REG_SC), + ARRAY_SIZE(buf) - PCF2127_REG_SC); if (ret) { dev_err(dev, "%s: read error\n", __func__); return ret;
Read control registers one by one and bulk read time registers. This fixes when the clock is read, the watchdog counter register is zeroed. Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk> --- Changes since v1: - fixed indentation - use of more defines drivers/rtc/rtc-pcf2127.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)