summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2007-03-03 00:11:20 +0000
committerRobert Kukla <roolku@rockbox.org>2007-03-03 00:11:20 +0000
commitae08eeb4ffeadb7b89f913180bdac099fc5c5071 (patch)
treef17480217ca239b14a6b4ec97d7cb45bf8840cc6
parent909b9462da8387e1c8379a52058c61bf18e222e5 (diff)
downloadrockbox-ae08eeb4ffeadb7b89f913180bdac099fc5c5071.tar.gz
rockbox-ae08eeb4ffeadb7b89f913180bdac099fc5c5071.zip
remove runtime detection of h1x0 series RTC MOD, but leave driver code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12554 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/gui/gwps-common.c7
-rw-r--r--apps/gui/statusbar.c9
-rw-r--r--apps/menus/settings_menu.c30
-rw-r--r--apps/misc.c7
-rw-r--r--apps/recorder/recording.c9
-rw-r--r--apps/scrobbler.c6
-rw-r--r--firmware/common/timefuncs.c13
-rw-r--r--firmware/drivers/fat.c20
-rw-r--r--firmware/drivers/rtc/rtc_ds1339_ds3231.c12
-rw-r--r--firmware/export/config-h120.h11
-rw-r--r--firmware/export/rtc.h7
11 files changed, 11 insertions, 120 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index d59ac130fc..b321d3b133 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -23,9 +23,7 @@
23#include <stdlib.h> 23#include <stdlib.h>
24#include "system.h" 24#include "system.h"
25#include "settings.h" 25#include "settings.h"
26#ifdef CONFIG_RTC
27#include "rtc.h" 26#include "rtc.h"
28#endif
29#include "audio.h" 27#include "audio.h"
30#include "status.h" 28#include "status.h"
31#include "power.h" 29#include "power.h"
@@ -974,11 +972,6 @@ static char* get_tag(struct wps_data* wps_data,
974#ifdef CONFIG_RTC 972#ifdef CONFIG_RTC
975 case 'c': /* Real Time Clock display */ 973 case 'c': /* Real Time Clock display */
976 *flags |= WPS_REFRESH_DYNAMIC; 974 *flags |= WPS_REFRESH_DYNAMIC;
977#if CONFIG_RTC == RTC_DS1339_DS3231
978 if(!rtc_detected)
979 return NULL;
980 else
981#endif
982 { 975 {
983 int value; 976 int value;
984 char *format = 0; 977 char *format = 0;
diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c
index a36ae15974..fbd8943315 100644
--- a/apps/gui/statusbar.c
+++ b/apps/gui/statusbar.c
@@ -28,9 +28,6 @@
28#include "powermgmt.h" 28#include "powermgmt.h"
29#include "usb.h" 29#include "usb.h"
30#include "led.h" 30#include "led.h"
31#ifdef CONFIG_RTC
32#include "rtc.h"
33#endif
34 31
35#include "status.h" /* needed for battery_state global var */ 32#include "status.h" /* needed for battery_state global var */
36#include "action.h" /* for keys_locked */ 33#include "action.h" /* for keys_locked */
@@ -242,9 +239,6 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw)
242 bar->info.led = led_read(HZ/2); /* delay should match polling interval */ 239 bar->info.led = led_read(HZ/2); /* delay should match polling interval */
243#endif 240#endif
244#ifdef CONFIG_RTC 241#ifdef CONFIG_RTC
245#if CONFIG_RTC == RTC_DS1339_DS3231
246 if(rtc_detected)
247#endif
248 { 242 {
249 struct tm* tm = get_time(); 243 struct tm* tm = get_time();
250 bar->info.hour = tm->tm_hour; 244 bar->info.hour = tm->tm_hour;
@@ -330,9 +324,6 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw)
330 gui_statusbar_icon_lock_remote(display); 324 gui_statusbar_icon_lock_remote(display);
331#endif 325#endif
332#ifdef CONFIG_RTC 326#ifdef CONFIG_RTC
333#if CONFIG_RTC == RTC_DS1339_DS3231
334 if(rtc_detected)
335#endif
336 gui_statusbar_time(display, bar->info.hour, bar->info.minute); 327 gui_statusbar_time(display, bar->info.hour, bar->info.minute);
337#endif /* CONFIG_RTC */ 328#endif /* CONFIG_RTC */
338#if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) 329#if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD)
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index 050bf88d82..8caa5fd8b0 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -38,12 +38,6 @@
38#ifdef HAVE_RTC_ALARM 38#ifdef HAVE_RTC_ALARM
39#include "alarm_menu.h" 39#include "alarm_menu.h"
40#endif 40#endif
41#ifdef CONFIG_RTC
42#include "rtc.h"
43#endif
44
45/* callback to display rtc menus dynamically */
46int rtc_detect_callback(int action,const struct menu_item_ex *this_item);
47 41
48/***********************************/ 42/***********************************/
49/* TAGCACHE MENU */ 43/* TAGCACHE MENU */
@@ -208,7 +202,7 @@ static int timedate_set(void)
208 202
209MENUITEM_FUNCTION(time_set, ID2P(LANG_TIME), timedate_set, NULL, NOICON); 203MENUITEM_FUNCTION(time_set, ID2P(LANG_TIME), timedate_set, NULL, NOICON);
210MENUITEM_SETTING(timeformat, &global_settings.timeformat, NULL); 204MENUITEM_SETTING(timeformat, &global_settings.timeformat, NULL);
211MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), rtc_detect_callback, NOICON, &time_set, &timeformat); 205MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), 0, NOICON, &time_set, &timeformat);
212#endif 206#endif
213 207
214/* System menu */ 208/* System menu */
@@ -216,7 +210,7 @@ MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL);
216 210
217#ifdef HAVE_RTC_ALARM 211#ifdef HAVE_RTC_ALARM
218MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU), 212MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU),
219 (menu_function)alarm_screen, rtc_detect_callback, NOICON); 213 (menu_function)alarm_screen, NULL, NOICON);
220#endif 214#endif
221 215
222/* Limits menu */ 216/* Limits menu */
@@ -358,23 +352,3 @@ MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
358 &bookmark_settings_menu, &browse_langs, &voice_settings_menu ); 352 &bookmark_settings_menu, &browse_langs, &voice_settings_menu );
359/* SETTINGS MENU */ 353/* SETTINGS MENU */
360/***********************************/ 354/***********************************/
361
362/* callback to display rtc menus dynamically */
363int rtc_detect_callback(int action,const struct menu_item_ex *this_item)
364{
365 if (action != ACTION_REQUEST_MENUITEM)
366 return action;
367
368#if defined(CONFIG_RTC) && CONFIG_RTC == RTC_DS1339_DS3231
369 if ((this_item == &time_menu) ||
370 (this_item == &alarm_screen_call))
371 {
372 if (!rtc_detected)
373 return ACTION_EXIT_MENUITEM;
374 }
375#else
376 (void)this_item;
377#endif
378
379 return action;
380}
diff --git a/apps/misc.c b/apps/misc.c
index 339bc1d0b7..22f6fb50a6 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -60,7 +60,6 @@
60#include "gui/gwps-common.h" 60#include "gui/gwps-common.h"
61 61
62#include "misc.h" 62#include "misc.h"
63#include "rtc.h"
64 63
65/* Format a large-range value for output, using the appropriate unit so that 64/* Format a large-range value for output, using the appropriate unit so that
66 * the displayed value is in the range 1 <= display < 1000 (1024 for "binary" 65 * the displayed value is in the range 1 <= display < 1000 (1024 for "binary"
@@ -415,12 +414,6 @@ void screen_dump(void)
415#endif 414#endif
416 415
417#ifdef CONFIG_RTC 416#ifdef CONFIG_RTC
418#if CONFIG_RTC == RTC_DS1339_DS3231
419 if(!rtc_detected)
420 create_numbered_filename(filename, "", "dump_", ".bmp", 4
421 IF_CNFN_NUM_(, NULL));
422 else
423#endif
424 create_datetime_filename(filename, "", "dump ", ".bmp", false); 417 create_datetime_filename(filename, "", "dump ", ".bmp", false);
425#else 418#else
426 create_numbered_filename(filename, "", "dump_", ".bmp", 4 419 create_numbered_filename(filename, "", "dump_", ".bmp", 4
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 2c5fc32b28..8eea24d82d 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -68,9 +68,6 @@
68#include "screen_access.h" 68#include "screen_access.h"
69#include "action.h" 69#include "action.h"
70#include "radio.h" 70#include "radio.h"
71#ifdef CONFIG_RTC
72#include "rtc.h"
73#endif
74#ifdef HAVE_RECORDING 71#ifdef HAVE_RECORDING
75 72
76static bool in_screen = false; 73static bool in_screen = false;
@@ -524,12 +521,6 @@ char *rec_create_filename(char *buffer)
524#ifdef CONFIG_RTC 521#ifdef CONFIG_RTC
525 /* We'll wait at least up to the start of the next second so no duplicate 522 /* We'll wait at least up to the start of the next second so no duplicate
526 names are created */ 523 names are created */
527#if CONFIG_RTC == RTC_DS1339_DS3231
528 if(!rtc_detected)
529 return create_numbered_filename(buffer, buffer, "rec_", ext, 4
530 IF_CNFN_NUM_(, &file_number));
531 else
532#endif
533 return create_datetime_filename(buffer, buffer, "R", ext, true); 524 return create_datetime_filename(buffer, buffer, "R", ext, true);
534#else 525#else
535 return create_numbered_filename(buffer, buffer, "rec_", ext, 4 526 return create_numbered_filename(buffer, buffer, "rec_", ext, 4
diff --git a/apps/scrobbler.c b/apps/scrobbler.c
index 1c0d98cbc6..a339429cab 100644
--- a/apps/scrobbler.c
+++ b/apps/scrobbler.c
@@ -35,7 +35,6 @@ http://www.audioscrobbler.net/wiki/Portable_Player_Logging
35#ifdef CONFIG_RTC 35#ifdef CONFIG_RTC
36#include "time.h" 36#include "time.h"
37#include "timefuncs.h" 37#include "timefuncs.h"
38#include "rtc.h"
39#endif 38#endif
40 39
41#include "scrobbler.h" 40#include "scrobbler.h"
@@ -209,11 +208,6 @@ void scrobbler_change_event(struct mp3entry *id)
209 logf("SCROBBLER: add pending"); 208 logf("SCROBBLER: add pending");
210 copy_mp3entry(&scrobbler_entry, id); 209 copy_mp3entry(&scrobbler_entry, id);
211#ifdef CONFIG_RTC 210#ifdef CONFIG_RTC
212#if CONFIG_RTC == RTC_DS1339_DS3231
213 if(!rtc_detected)
214 timestamp = 0;
215 else
216#endif
217 timestamp = mktime(get_time()); 211 timestamp = mktime(get_time());
218#else 212#else
219 timestamp = 0; 213 timestamp = 0;
diff --git a/firmware/common/timefuncs.c b/firmware/common/timefuncs.c
index 881bc23e53..e48aadd0a2 100644
--- a/firmware/common/timefuncs.c
+++ b/firmware/common/timefuncs.c
@@ -49,19 +49,6 @@ struct tm *get_time(void)
49#ifdef CONFIG_RTC 49#ifdef CONFIG_RTC
50 static long timeout = 0; 50 static long timeout = 0;
51 51
52#if CONFIG_RTC == RTC_DS1339_DS3231
53 if(!rtc_detected) {
54 tm.tm_sec = 0;
55 tm.tm_min = 0;
56 tm.tm_hour = 0;
57 tm.tm_mday = 1;
58 tm.tm_mon = 0;
59 tm.tm_year = 70;
60 tm.tm_wday = 1;
61 tm.tm_yday = 0; /* Not implemented for now */
62 tm.tm_isdst = -1; /* Not implemented for now */
63 } else
64#endif
65 /* Don't read the RTC more than once per second */ 52 /* Don't read the RTC more than once per second */
66 if (current_tick > timeout) { 53 if (current_tick > timeout) {
67 char rtcbuf[7]; 54 char rtcbuf[7];
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index e4e77627d0..e3e1a755cb 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -31,9 +31,6 @@
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
37 34
38#define BYTES2INT16(array,pos) \ 35#define BYTES2INT16(array,pos) \
39 (array[pos] | (array[pos+1] << 8 )) 36 (array[pos] | (array[pos+1] << 8 ))
@@ -948,10 +945,6 @@ static void fat_time(unsigned short* date,
948{ 945{
949#ifdef CONFIG_RTC 946#ifdef CONFIG_RTC
950 struct tm* tm = get_time(); 947 struct tm* tm = get_time();
951#if CONFIG_RTC == RTC_DS1339_DS3231
952 if(rtc_detected)
953 {
954#endif /* CONFIG_RTC == RTC_DS1339_DS3231 */
955 948
956 if (date) 949 if (date)
957 *date = ((tm->tm_year - 80) << 9) | 950 *date = ((tm->tm_year - 80) << 9) |
@@ -965,14 +958,7 @@ static void fat_time(unsigned short* date,
965 958
966 if (tenth) 959 if (tenth)
967 *tenth = (tm->tm_sec & 1) * 100; 960 *tenth = (tm->tm_sec & 1) * 100;
968 961#else
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 {
976 /* non-RTC version returns an increment from the supplied time, or a 962 /* non-RTC version returns an increment from the supplied time, or a
977 * fixed standard time/date if no time given as input */ 963 * fixed standard time/date if no time given as input */
978 bool next_day = false; 964 bool next_day = false;
@@ -1039,9 +1025,9 @@ static void fat_time(unsigned short* date,
1039 } 1025 }
1040 if (tenth) 1026 if (tenth)
1041 *tenth = 0; 1027 *tenth = 0;
1042 } 1028#endif /* CONFIG_RTC */
1043#endif /* !defined(CONFIG_RTC) || CONFIG_RTC == RTC_DS1339_DS3231 */
1044} 1029}
1030
1045static int write_long_name(struct fat_file* file, 1031static int write_long_name(struct fat_file* file,
1046 unsigned int firstentry, 1032 unsigned int firstentry,
1047 unsigned int numentries, 1033 unsigned int numentries,
diff --git a/firmware/drivers/rtc/rtc_ds1339_ds3231.c b/firmware/drivers/rtc/rtc_ds1339_ds3231.c
index 7396c2e0a1..e343c96169 100644
--- a/firmware/drivers/rtc/rtc_ds1339_ds3231.c
+++ b/firmware/drivers/rtc/rtc_ds1339_ds3231.c
@@ -22,17 +22,10 @@
22 22
23#define RTC_ADDR 0xD0 23#define RTC_ADDR 0xD0
24 24
25bool rtc_detected = false;
26
27void rtc_init(void) 25void rtc_init(void)
28{ 26{
29 char byte;
30
31 sw_i2c_init(); 27 sw_i2c_init();
32 28
33 /* read one byte from RTC; 0 on success */
34 rtc_detected = !sw_i2c_read(RTC_ADDR, 0, &byte, 1);
35
36#ifdef HAVE_RTC_ALARM 29#ifdef HAVE_RTC_ALARM
37 /* Check + save alarm bit first, before the power thread starts watching */ 30 /* Check + save alarm bit first, before the power thread starts watching */
38 rtc_check_alarm_started(false); 31 rtc_check_alarm_started(false);
@@ -72,7 +65,8 @@ bool rtc_check_alarm_flag(void)
72 sw_i2c_read(RTC_ADDR, 0x0f, buf, 1); 65 sw_i2c_read(RTC_ADDR, 0x0f, buf, 1);
73 if (buf[0] & 0x02) flag = true; 66 if (buf[0] & 0x02) flag = true;
74 67
75 rtc_enable_alarm(false); 68 buf[0] = 0x00;
69 sw_i2c_write(RTC_ADDR, 0x0f, buf, 1);
76 70
77 return flag; 71 return flag;
78} 72}
@@ -109,7 +103,7 @@ bool rtc_enable_alarm(bool enable)
109{ 103{
110 unsigned char buf[2]; 104 unsigned char buf[2];
111 105
112 buf[0] = enable ? 0x26 : 0x04; /* BBSQI INTCN A2IE vs INTCH only */ 106 buf[0] = enable ? 0x26 : 0x24; /* BBSQI INTCN A2IE vs INTCH only */
113 buf[1] = 0x00; /* reset alarm flags (and OSF for good measure) */ 107 buf[1] = 0x00; /* reset alarm flags (and OSF for good measure) */
114 108
115 sw_i2c_write(RTC_ADDR, 0x0e, buf, 2); 109 sw_i2c_write(RTC_ADDR, 0x0e, buf, 2);
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index 1791bdf78b..e7fb73ea0f 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -45,16 +45,7 @@
45/* Define this if you do software codec */ 45/* Define this if you do software codec */
46#define CONFIG_CODEC SWCODEC 46#define CONFIG_CODEC SWCODEC
47 47
48/* Set to 1 if you want to build with RTC support */ 48/* Define this if you have an remote lcd */
49#if 0
50#ifndef SIMULATOR
51/* RTC is autodetected on target only */
52#define CONFIG_RTC RTC_DS1339_DS3231
53#define HAVE_RTC_ALARM
54#endif
55#endif
56
57 /* Define this if you have an remote lcd */
58#define HAVE_REMOTE_LCD 49#define HAVE_REMOTE_LCD
59 50
60#define CONFIG_LCD LCD_S1D15E06 51#define CONFIG_LCD LCD_S1D15E06
diff --git a/firmware/export/rtc.h b/firmware/export/rtc.h
index 1b0d215371..eea83d85bb 100644
--- a/firmware/export/rtc.h
+++ b/firmware/export/rtc.h
@@ -20,7 +20,8 @@
20#define _RTC_H_ 20#define _RTC_H_
21 21
22#include <stdbool.h> 22#include <stdbool.h>
23#include <system.h> 23#include "system.h"
24#include "config.h"
24 25
25#ifdef CONFIG_RTC 26#ifdef CONFIG_RTC
26 27
@@ -28,10 +29,6 @@ extern const int dayname[];
28 29
29extern const int monthname[]; 30extern const int monthname[];
30 31
31#if CONFIG_RTC == RTC_DS1339_DS3231
32extern bool rtc_detected;
33#endif
34
35/* Common functions for all targets */ 32/* Common functions for all targets */
36void rtc_init(void); 33void rtc_init(void);
37int rtc_read_datetime(unsigned char* buf); 34int rtc_read_datetime(unsigned char* buf);