summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2005-12-11 00:47:40 +0000
committerDave Chapman <dave@dchapman.com>2005-12-11 00:47:40 +0000
commit790b365595ce0e3407777b9ff37494ec7fe7db0f (patch)
tree0af5f8bcbe9c4b5edbdb55f137f02fc0989480d0 /firmware/drivers
parent6ddfac0806a15a8771725ec4fdc39247f36949ff (diff)
downloadrockbox-790b365595ce0e3407777b9ff37494ec7fe7db0f.tar.gz
rockbox-790b365595ce0e3407777b9ff37494ec7fe7db0f.zip
Reworking of Archos RTC code to create a (slightly) more abstract RTC api
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8216 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-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 */