diff options
author | Dave Chapman <dave@dchapman.com> | 2005-12-11 00:47:40 +0000 |
---|---|---|
committer | Dave Chapman <dave@dchapman.com> | 2005-12-11 00:47:40 +0000 |
commit | 790b365595ce0e3407777b9ff37494ec7fe7db0f (patch) | |
tree | 0af5f8bcbe9c4b5edbdb55f137f02fc0989480d0 /firmware/drivers/rtc.c | |
parent | 6ddfac0806a15a8771725ec4fdc39247f36949ff (diff) | |
download | rockbox-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/rtc.c')
-rw-r--r-- | firmware/drivers/rtc.c | 32 |
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 | |
253 | int 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 | |||
265 | int 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 */ | ||