diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2017-01-25 19:32:15 -0500 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2017-01-26 23:07:49 -0500 |
commit | 58b849c451ac1281c14bfc535ab7f411a0b736e0 (patch) | |
tree | 035026a62581900f72fa0d90bd694a8a92372c00 /firmware/drivers/rtc/rtc_ds1339_ds3231.c | |
parent | 783c77531c35e62dd754c510c4f2beefe6df4a9d (diff) | |
download | rockbox-58b849c451ac1281c14bfc535ab7f411a0b736e0.tar.gz rockbox-58b849c451ac1281c14bfc535ab7f411a0b736e0.zip |
Move intrinsic RTC implmentation differences to driver files
Some drivers set tm_wday just fine and do not need it coerced to
be correct. Others set tm_yday, so don't overwrite what the driver
sets; just zero it inside if it can't fill the field. Move calls
to set_day_of_week() to the sorts of drivers that presumably
required the hammer (FS#11814) in get_time() where the weekday
isn't locked to the date.
Change-Id: Idd0ded6bfc9d9f48fcc1a6074068164c42fcf24a
Diffstat (limited to 'firmware/drivers/rtc/rtc_ds1339_ds3231.c')
-rw-r--r-- | firmware/drivers/rtc/rtc_ds1339_ds3231.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/firmware/drivers/rtc/rtc_ds1339_ds3231.c b/firmware/drivers/rtc/rtc_ds1339_ds3231.c index a813e8d999..8f2a531e5f 100644 --- a/firmware/drivers/rtc/rtc_ds1339_ds3231.c +++ b/firmware/drivers/rtc/rtc_ds1339_ds3231.c @@ -21,6 +21,7 @@ #include "rtc.h" #include "logf.h" #include "sw_i2c.h" +#include "timefuncs.h" #define RTC_ADDR 0xD0 @@ -122,10 +123,12 @@ int rtc_read_datetime(struct tm *tm) tm->tm_sec = BCD2DEC(buf[0] & 0x7f); tm->tm_min = BCD2DEC(buf[1] & 0x7f); tm->tm_hour = BCD2DEC(buf[2] & 0x3f); - tm->tm_wday = BCD2DEC(buf[3] & 0x7) - 1; /* timefuncs wants 0..6 for wday */ tm->tm_mday = BCD2DEC(buf[4] & 0x3f); tm->tm_mon = BCD2DEC(buf[5] & 0x1f) - 1; tm->tm_year = BCD2DEC(buf[6]) + 100; + tm->tm_yday = 0; /* Not implemented for now */ + + set_day_of_week(tm); return rc; } |