summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2008-05-05 12:37:42 +0000
committerNils Wallménius <nils@rockbox.org>2008-05-05 12:37:42 +0000
commit90a4a434308aa4c4303c09ee36812dcf7c43df6a (patch)
treec1d6d44f39c0c98c90a095bed3967fdd1f42715a
parent536d2feedb5c07f1dbe88020fde06a6354a5e405 (diff)
downloadrockbox-90a4a434308aa4c4303c09ee36812dcf7c43df6a.tar.gz
rockbox-90a4a434308aa4c4303c09ee36812dcf7c43df6a.zip
Alarm wake up support for Gigabeat S
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17376 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/config-gigabeat-s.h3
-rw-r--r--firmware/export/mc13783.h1
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/mc13783-imx31.c3
3 files changed, 7 insertions, 0 deletions
diff --git a/firmware/export/config-gigabeat-s.h b/firmware/export/config-gigabeat-s.h
index c1b7f93c89..68cc9160ff 100644
--- a/firmware/export/config-gigabeat-s.h
+++ b/firmware/export/config-gigabeat-s.h
@@ -48,6 +48,9 @@
48/* define this if you have a real-time clock */ 48/* define this if you have a real-time clock */
49#define CONFIG_RTC RTC_MC13783 49#define CONFIG_RTC RTC_MC13783
50 50
51/* Define if the device can wake from an RTC alarm */
52#define HAVE_RTC_ALARM
53
51/* Define this for LCD backlight available */ 54/* Define this for LCD backlight available */
52#define HAVE_BACKLIGHT 55#define HAVE_BACKLIGHT
53 56
diff --git a/firmware/export/mc13783.h b/firmware/export/mc13783.h
index bb9cf589aa..61d7b37a1c 100644
--- a/firmware/export/mc13783.h
+++ b/firmware/export/mc13783.h
@@ -277,5 +277,6 @@ int mc13783_write_regset(const unsigned char *regs, const uint32_t *data, int co
277uint32_t mc13783_read(unsigned address); 277uint32_t mc13783_read(unsigned address);
278int mc13783_read_multiple(unsigned start, uint32_t *buffer, int count); 278int mc13783_read_multiple(unsigned start, uint32_t *buffer, int count);
279int mc13783_read_regset(const unsigned char *regs, uint32_t *buffer, int count); 279int mc13783_read_regset(const unsigned char *regs, uint32_t *buffer, int count);
280void mc1378_alarm_start(void);
280 281
281#endif /* _MC13783_H_ */ 282#endif /* _MC13783_H_ */
diff --git a/firmware/target/arm/imx31/gigabeat-s/mc13783-imx31.c b/firmware/target/arm/imx31/gigabeat-s/mc13783-imx31.c
index 8f504746c3..20a54c5bb4 100644
--- a/firmware/target/arm/imx31/gigabeat-s/mc13783-imx31.c
+++ b/firmware/target/arm/imx31/gigabeat-s/mc13783-imx31.c
@@ -66,6 +66,9 @@ static __attribute__((noreturn)) void mc13783_interrupt_thread(void)
66 66
67 gpio_enable_event(MC13783_GPIO_NUM, MC13783_EVENT_ID); 67 gpio_enable_event(MC13783_GPIO_NUM, MC13783_EVENT_ID);
68 68
69 if (pending[1] & MC13783_TODA) /* only needs to be polled on startup */
70 mc1378_alarm_start();
71
69 /* Check initial states for events with a sense bit */ 72 /* Check initial states for events with a sense bit */
70 value = mc13783_read(MC13783_INTERRUPT_SENSE0); 73 value = mc13783_read(MC13783_INTERRUPT_SENSE0);
71 usb_set_status(value & MC13783_USB4V4); 74 usb_set_status(value & MC13783_USB4V4);