summaryrefslogtreecommitdiff
path: root/firmware/drivers/fat.c
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2007-02-28 13:20:36 +0000
committerRobert Kukla <roolku@rockbox.org>2007-02-28 13:20:36 +0000
commit50b5ee4781a44234b4ea5dccf3be6ae5ec9fd324 (patch)
treed5197ea90c5dcfa574b84743ecbbd7fa2a754e55 /firmware/drivers/fat.c
parent343c428f2cf97c82540aecf07d154e43ff40e79a (diff)
downloadrockbox-50b5ee4781a44234b4ea5dccf3be6ae5ec9fd324.tar.gz
rockbox-50b5ee4781a44234b4ea5dccf3be6ae5ec9fd324.zip
FS#6419 - driver for H1x0 series RTC Mod with runtime detection
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12520 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/fat.c')
-rw-r--r--firmware/drivers/fat.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index e3e1a755cb..e4e77627d0 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -31,6 +31,9 @@
31#include "rbunicode.h" 31#include "rbunicode.h"
32#include "logf.h" 32#include "logf.h"
33#include "atoi.h" 33#include "atoi.h"
34#ifdef CONFIG_RTC
35#include "rtc.h"
36#endif
34 37
35#define BYTES2INT16(array,pos) \ 38#define BYTES2INT16(array,pos) \
36 (array[pos] | (array[pos+1] << 8 )) 39 (array[pos] | (array[pos+1] << 8 ))
@@ -945,6 +948,10 @@ static void fat_time(unsigned short* date,
945{ 948{
946#ifdef CONFIG_RTC 949#ifdef CONFIG_RTC
947 struct tm* tm = get_time(); 950 struct tm* tm = get_time();
951#if CONFIG_RTC == RTC_DS1339_DS3231
952 if(rtc_detected)
953 {
954#endif /* CONFIG_RTC == RTC_DS1339_DS3231 */
948 955
949 if (date) 956 if (date)
950 *date = ((tm->tm_year - 80) << 9) | 957 *date = ((tm->tm_year - 80) << 9) |
@@ -958,7 +965,14 @@ static void fat_time(unsigned short* date,
958 965
959 if (tenth) 966 if (tenth)
960 *tenth = (tm->tm_sec & 1) * 100; 967 *tenth = (tm->tm_sec & 1) * 100;
961#else 968
969#if CONFIG_RTC == RTC_DS1339_DS3231
970 }
971 else
972#endif /* CONFIG_RTC == RTC_DS1339_DS3231 */
973#endif /* CONFIG_RTC */
974#if !defined(CONFIG_RTC) || CONFIG_RTC == RTC_DS1339_DS3231
975 {
962 /* non-RTC version returns an increment from the supplied time, or a 976 /* non-RTC version returns an increment from the supplied time, or a
963 * fixed standard time/date if no time given as input */ 977 * fixed standard time/date if no time given as input */
964 bool next_day = false; 978 bool next_day = false;
@@ -1025,9 +1039,9 @@ static void fat_time(unsigned short* date,
1025 } 1039 }
1026 if (tenth) 1040 if (tenth)
1027 *tenth = 0; 1041 *tenth = 0;
1028#endif /* CONFIG_RTC */ 1042 }
1043#endif /* !defined(CONFIG_RTC) || CONFIG_RTC == RTC_DS1339_DS3231 */
1029} 1044}
1030
1031static int write_long_name(struct fat_file* file, 1045static int write_long_name(struct fat_file* file,
1032 unsigned int firstentry, 1046 unsigned int firstentry,
1033 unsigned int numentries, 1047 unsigned int numentries,