summaryrefslogtreecommitdiff
path: root/firmware/drivers/rtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/rtc.c')
-rw-r--r--firmware/drivers/rtc.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/firmware/drivers/rtc.c b/firmware/drivers/rtc.c
index 30bbb6dfcb..b77db8b865 100644
--- a/firmware/drivers/rtc.c
+++ b/firmware/drivers/rtc.c
@@ -249,4 +249,34 @@ int rtc_read_multiple(unsigned char address, unsigned char *buf, int numbytes)
249 i2c_end(); 249 i2c_end();
250 return ret; 250 return ret;
251} 251}
252#endif 252
253int rtc_read_datetime(unsigned char* buf) {
254 int rc;
255
256 rc = rtc_read_multiple(1, buf, 7);
257
258 /* Adjust weekday */
259 if(buf[3] == 7)
260 buf[3]=0;
261
262 return rc;
263}
264
265int rtc_write_datetime(unsigned char* buf) {
266 int i;
267 int rc = 0;
268
269 /* Adjust weekday */
270 if(buf[3] == 0)
271 buf[3] = 7;
272
273 for (i = 0; i < 7 ; i++)
274 {
275 rc |= rtc_write(i+1, buf[i]);
276 }
277 rc |= rtc_write(8, 0x80); /* Out=1, calibration = 0 */
278
279 return rc;
280}
281
282#endif /* CONFIG_RTC */