FS#10569 RTC driver cleanup

Change the RTC drivers so that the rtc_(read|write)_datetime functions now deal directly with the tm struct instead of passing a string of bcd digits to/from (set|get)_time .
This simplifies drivers for rtc's that do not use a bcd representation internally and cleans up some target specific code and #ifdefs in generic code. Implement simple stubs for the sim to avoid #ifdefing for that too.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22839 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Nils Wallménius 2009-09-26 14:58:32 +00:00
parent 66d5bd7cf8
commit c8b87d76eb
16 changed files with 452 additions and 373 deletions

View file

@ -142,25 +142,17 @@ int rtc_write(int address, int value)
return 0;
}
int rtc_read_datetime(unsigned char* buf)
int rtc_read_datetime(struct tm *tm)
{
time_t now = time(NULL);
struct tm *teem = localtime(&now);
buf[0] = (teem->tm_sec%10) | ((teem->tm_sec/10) << 4);
buf[1] = (teem->tm_min%10) | ((teem->tm_min/10) << 4);
buf[2] = (teem->tm_hour%10) | ((teem->tm_hour/10) << 4);
buf[3] = (teem->tm_wday);
buf[4] = (teem->tm_mday%10) | ((teem->tm_mday/10) << 4);
buf[5] = ((teem->tm_year-100)%10) | (((teem->tm_year-100)/10) << 4);
buf[6] = ((teem->tm_mon+1)%10) | (((teem->tm_mon+1)/10) << 4);
*tm = *localtime(&now);
return 0;
}
int rtc_write_datetime(unsigned char* buf)
int rtc_write_datetime(const struct tm *tm)
{
(void)buf;
(void)tm;
return 0;
}