diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-12-22 23:48:32 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-12-22 23:48:32 +0000 |
commit | e57471a1bed393c1ab8c8560134b2818b4b96ffd (patch) | |
tree | e9845478dfb8752194fc03fd725197ac2c6fdf4d | |
parent | 0dac8b77b8214f3f2b4a082e9d512b2352459742 (diff) | |
download | rockbox-e57471a1bed393c1ab8c8560134b2818b4b96ffd.tar.gz rockbox-e57471a1bed393c1ab8c8560134b2818b4b96ffd.zip |
H300: RTC support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8284 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/statusbar.c | 7 | ||||
-rw-r--r-- | apps/settings.h | 2 | ||||
-rw-r--r-- | firmware/SOURCES | 2 | ||||
-rw-r--r-- | firmware/drivers/rtc.c | 30 | ||||
-rw-r--r-- | firmware/export/config-h300.h | 3 |
5 files changed, 41 insertions, 3 deletions
diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c index 56d1647d9b..80de707a72 100644 --- a/apps/gui/statusbar.c +++ b/apps/gui/statusbar.c | |||
@@ -93,10 +93,15 @@ | |||
93 | 7*ICONS_SPACING | 93 | 7*ICONS_SPACING |
94 | #define STATUSBAR_LOCKR_WIDTH 5 | 94 | #define STATUSBAR_LOCKR_WIDTH 5 |
95 | 95 | ||
96 | #if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) | ||
96 | #define STATUSBAR_DISK_WIDTH 12 | 97 | #define STATUSBAR_DISK_WIDTH 12 |
97 | #define STATUSBAR_DISK_X_POS(statusbar_width) statusbar_width - \ | 98 | #define STATUSBAR_DISK_X_POS(statusbar_width) statusbar_width - \ |
98 | STATUSBAR_DISK_WIDTH | 99 | STATUSBAR_DISK_WIDTH |
99 | #define STATUSBAR_TIME_X_END(statusbar_width) statusbar_width-1 | 100 | #else |
101 | #define STATUSBAR_DISK_WIDTH 0 | ||
102 | #endif | ||
103 | #define STATUSBAR_TIME_X_END(statusbar_width) statusbar_width - 1 - \ | ||
104 | STATUSBAR_DISK_WIDTH | ||
100 | 105 | ||
101 | struct gui_syncstatusbar statusbars; | 106 | struct gui_syncstatusbar statusbars; |
102 | 107 | ||
diff --git a/apps/settings.h b/apps/settings.h index 4bc0904fe4..263147c92c 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -53,7 +53,7 @@ | |||
53 | #define SETTINGS_CANCEL2 BUTTON_MODE | 53 | #define SETTINGS_CANCEL2 BUTTON_MODE |
54 | #define SETTINGS_PREV BUTTON_LEFT | 54 | #define SETTINGS_PREV BUTTON_LEFT |
55 | #define SETTINGS_NEXT BUTTON_RIGHT | 55 | #define SETTINGS_NEXT BUTTON_RIGHT |
56 | #define SETTINGS_ACCEPT BUTTON_MODE | 56 | #define SETTINGS_ACCEPT BUTTON_ON |
57 | 57 | ||
58 | #elif CONFIG_KEYPAD == RECORDER_PAD | 58 | #elif CONFIG_KEYPAD == RECORDER_PAD |
59 | #define SETTINGS_INC BUTTON_UP | 59 | #define SETTINGS_INC BUTTON_UP |
diff --git a/firmware/SOURCES b/firmware/SOURCES index ce5ec7f803..7f07598273 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -105,7 +105,7 @@ drivers/pcf50606.c | |||
105 | #if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO) | 105 | #if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO) |
106 | drivers/pcf50605.c | 106 | drivers/pcf50605.c |
107 | #endif | 107 | #endif |
108 | #if CONFIG_RTC == RTC_M41ST84W | 108 | #if (CONFIG_RTC == RTC_M41ST84W) || (CONFIG_RTC == RTC_PCF50606) |
109 | drivers/rtc.c | 109 | drivers/rtc.c |
110 | #endif | 110 | #endif |
111 | drivers/serial.c | 111 | drivers/serial.c |
diff --git a/firmware/drivers/rtc.c b/firmware/drivers/rtc.c index b77db8b865..0e6d68eb1a 100644 --- a/firmware/drivers/rtc.c +++ b/firmware/drivers/rtc.c | |||
@@ -21,12 +21,41 @@ | |||
21 | #include "i2c.h" | 21 | #include "i2c.h" |
22 | #include "rtc.h" | 22 | #include "rtc.h" |
23 | #include "kernel.h" | 23 | #include "kernel.h" |
24 | #include "system.h" | ||
25 | #include "pcf50606.h" | ||
24 | #include <stdbool.h> | 26 | #include <stdbool.h> |
25 | 27 | ||
26 | #define RTC_ADR 0xd0 | 28 | #define RTC_ADR 0xd0 |
27 | #define RTC_DEV_WRITE (RTC_ADR | 0x00) | 29 | #define RTC_DEV_WRITE (RTC_ADR | 0x00) |
28 | #define RTC_DEV_READ (RTC_ADR | 0x01) | 30 | #define RTC_DEV_READ (RTC_ADR | 0x01) |
29 | 31 | ||
32 | #if CONFIG_RTC == RTC_PCF50606 | ||
33 | void rtc_init(void) | ||
34 | { | ||
35 | } | ||
36 | int rtc_read_datetime(unsigned char* buf) { | ||
37 | int rc; | ||
38 | int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
39 | |||
40 | rc = pcf50606_read_multiple(0x0a, buf, 7); | ||
41 | |||
42 | set_irq_level(oldlevel); | ||
43 | |||
44 | return rc; | ||
45 | } | ||
46 | |||
47 | int rtc_write_datetime(unsigned char* buf) { | ||
48 | int rc; | ||
49 | int oldlevel = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
50 | |||
51 | rc = pcf50606_write_multiple(0x0a, buf, 7); | ||
52 | |||
53 | set_irq_level(oldlevel); | ||
54 | |||
55 | return rc; | ||
56 | } | ||
57 | |||
58 | #else | ||
30 | void rtc_init(void) | 59 | void rtc_init(void) |
31 | { | 60 | { |
32 | unsigned char data; | 61 | unsigned char data; |
@@ -278,5 +307,6 @@ int rtc_write_datetime(unsigned char* buf) { | |||
278 | 307 | ||
279 | return rc; | 308 | return rc; |
280 | } | 309 | } |
310 | #endif /* CONFIG_RTC == RTC_PCF50606 */ | ||
281 | 311 | ||
282 | #endif /* CONFIG_RTC */ | 312 | #endif /* CONFIG_RTC */ |
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h index 54a2ef543f..2698d12098 100644 --- a/firmware/export/config-h300.h +++ b/firmware/export/config-h300.h | |||
@@ -30,6 +30,9 @@ | |||
30 | /* Define this if you do software codec */ | 30 | /* Define this if you do software codec */ |
31 | #define CONFIG_CODEC SWCODEC | 31 | #define CONFIG_CODEC SWCODEC |
32 | 32 | ||
33 | /* define this if you have a real-time clock */ | ||
34 | #define CONFIG_RTC RTC_PCF50606 | ||
35 | |||
33 | /* Define this if you have an remote lcd */ | 36 | /* Define this if you have an remote lcd */ |
34 | #define HAVE_REMOTE_LCD | 37 | #define HAVE_REMOTE_LCD |
35 | 38 | ||