Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3769a375 authored by Sean Nyekjaer's avatar Sean Nyekjaer Committed by Alexandre Belloni
Browse files

rtc: pcf2127: bulk read only date and time registers.



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: default avatarSean Nyekjaer <sean.nyekjaer@prevas.dk>
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
parent 34f54f57
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -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;