mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
rtc: rx8025: round up to nearest minute for a minute accuracy alarm
The alarm for rx8025 only has a minute accuracy, so round up to nearest minute when setting alarm. Without doing this, rtctest blocks one day after setting alarm to 5 seconds later. pcf8563 and hym8563 also have similar handling. Signed-off-by: Akinobu Mita <[email protected]> Cc: Wolfgang Grandegger <[email protected]> Cc: Alessandro Zummo <[email protected]> Cc: Alexandre Belloni <[email protected]> Signed-off-by: Alexandre Belloni <[email protected]>
This commit is contained in:
parent
9dbe385296
commit
302c5608e9
1 changed files with 11 additions and 1 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue