summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2017-01-25 19:32:15 -0500
committerMichael Sevakis <jethead71@rockbox.org>2017-01-26 23:07:49 -0500
commit58b849c451ac1281c14bfc535ab7f411a0b736e0 (patch)
tree035026a62581900f72fa0d90bd694a8a92372c00 /firmware/target/arm
parent783c77531c35e62dd754c510c4f2beefe6df4a9d (diff)
downloadrockbox-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/target/arm')
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c5
-rw-r--r--firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
index 39cecc5291..6f6b58ca35 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c
@@ -23,6 +23,7 @@
23#include "kernel.h" 23#include "kernel.h"
24#include "system.h" 24#include "system.h"
25#include "pmu-target.h" 25#include "pmu-target.h"
26#include "timefuncs.h"
26 27
27void rtc_init(void) 28void rtc_init(void)
28{ 29{
@@ -41,10 +42,12 @@ int rtc_read_datetime(struct tm *tm)
41 tm->tm_sec = buf[0]; 42 tm->tm_sec = buf[0];
42 tm->tm_min = buf[1]; 43 tm->tm_min = buf[1];
43 tm->tm_hour = buf[2]; 44 tm->tm_hour = buf[2];
44 tm->tm_wday = buf[3];
45 tm->tm_mday = buf[4]; 45 tm->tm_mday = buf[4];
46 tm->tm_mon = buf[5] - 1; 46 tm->tm_mon = buf[5] - 1;
47 tm->tm_year = buf[6] + 100; 47 tm->tm_year = buf[6] + 100;
48 tm->tm_yday = 0; /* Not implemented for now */
49
50 set_day_of_week(tm);
48 51
49 return 0; 52 return 0;
50} 53}
diff --git a/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c
index 76ef8ecb00..384cded758 100644
--- a/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c
+++ b/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c
@@ -23,6 +23,7 @@
23#include "kernel.h" 23#include "kernel.h"
24#include "system.h" 24#include "system.h"
25#include "pmu-target.h" 25#include "pmu-target.h"
26#include "timefuncs.h"
26 27
27void rtc_init(void) 28void rtc_init(void)
28{ 29{
@@ -41,10 +42,12 @@ int rtc_read_datetime(struct tm *tm)
41 tm->tm_sec = buf[0]; 42 tm->tm_sec = buf[0];
42 tm->tm_min = buf[1]; 43 tm->tm_min = buf[1];
43 tm->tm_hour = buf[2]; 44 tm->tm_hour = buf[2];
44 tm->tm_wday = buf[3];
45 tm->tm_mday = buf[4]; 45 tm->tm_mday = buf[4];
46 tm->tm_mon = buf[5] - 1; 46 tm->tm_mon = buf[5] - 1;
47 tm->tm_year = buf[6] + 100; 47 tm->tm_year = buf[6] + 100;
48 tm->tm_yday = 0; /* Not implemented for now */
49
50 set_day_of_week(tm);
48 51
49 return 0; 52 return 0;
50} 53}