rtc: rv8803: Clear V1F when setting the time
authorBenoît Thébaudeau <benoit@wsystem.com>
Thu, 21 Jul 2016 10:41:32 +0000 (12:41 +0200)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Thu, 28 Jul 2016 07:59:43 +0000 (09:59 +0200)
V1F indicates that the time accuracy may have been compromised because
of a voltage drop (possibly only temporary) below VLOW1, which stops the
temperature compensation. When the time is set, the accuracy is
restored, so V1F should be cleared in order to indicate this and to be
able to detect the next temperature compensation loss. This is the same
principle as for V2F, which is cleared when the time is set to indicate
that the time is no longer invalid and to be able to detect the next
data loss.

Signed-off-by: Benoît Thébaudeau <benoit@wsystem.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-rv8803.c

index 24c688eec527f88dda6a73ec36cb48b05594bd23..9a2f6a95d5a7cf5757308c3ce6668e2f78d20c35 100644 (file)
@@ -265,7 +265,7 @@ static int rv8803_set_time(struct device *dev, struct rtc_time *tm)
        }
 
        ret = rv8803_write_reg(rv8803->client, RV8803_FLAG,
-                              flags & ~RV8803_FLAG_V2F);
+                              flags & ~(RV8803_FLAG_V1F | RV8803_FLAG_V2F));
 
        mutex_unlock(&rv8803->flags_lock);