]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/rtc/rtc-rx8025.c
rtc: rx8025: round up to nearest minute for a minute accuracy alarm
[karo-tx-linux.git] / drivers / rtc / rtc-rx8025.c
index 259995281e0df910a6bac4438fe5696a99a07bea..e117a8f6d025e259fe1e515fdb1daa190d90717c 100644 (file)
@@ -344,7 +344,17 @@ static int rx8025_set_alarm(struct device *dev, struct rtc_wkalrm *t)
        if (client->irq <= 0)
                return -EINVAL;
 
-       /* Hardware alarm precision is 1 minute! */
+       /*
+        * Hardware alarm precision is 1 minute!
+        * round up to nearest minute
+        */
+       if (t->time.tm_sec) {
+               time64_t alarm_time = rtc_tm_to_time64(&t->time);
+
+               alarm_time += 60 - t->time.tm_sec;
+               rtc_time64_to_tm(alarm_time, &t->time);
+       }
+
        ald[0] = bin2bcd(t->time.tm_min);
        if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224)
                ald[1] = bin2bcd(t->time.tm_hour);