summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-12-22 23:48:32 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-12-22 23:48:32 +0000
commite57471a1bed393c1ab8c8560134b2818b4b96ffd (patch)
treee9845478dfb8752194fc03fd725197ac2c6fdf4d
parent0dac8b77b8214f3f2b4a082e9d512b2352459742 (diff)
downloadrockbox-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.c7
-rw-r--r--apps/settings.h2
-rw-r--r--firmware/SOURCES2
-rw-r--r--firmware/drivers/rtc.c30
-rw-r--r--firmware/export/config-h300.h3
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
101struct gui_syncstatusbar statusbars; 106struct 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)
106drivers/pcf50605.c 106drivers/pcf50605.c
107#endif 107#endif
108#if CONFIG_RTC == RTC_M41ST84W 108#if (CONFIG_RTC == RTC_M41ST84W) || (CONFIG_RTC == RTC_PCF50606)
109drivers/rtc.c 109drivers/rtc.c
110#endif 110#endif
111drivers/serial.c 111drivers/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
33void rtc_init(void)
34{
35}
36int 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
47int 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
30void rtc_init(void) 59void 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