summaryrefslogtreecommitdiff
path: root/firmware/drivers/rtc/rtc_pcf50605.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/rtc/rtc_pcf50605.c')
-rw-r--r--firmware/drivers/rtc/rtc_pcf50605.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/firmware/drivers/rtc/rtc_pcf50605.c b/firmware/drivers/rtc/rtc_pcf50605.c
index fedcdd3cdf..93fa391ae3 100644
--- a/firmware/drivers/rtc/rtc_pcf50605.c
+++ b/firmware/drivers/rtc/rtc_pcf50605.c
@@ -25,7 +25,9 @@
25#include <stdbool.h> 25#include <stdbool.h>
26 26
27/* Values which each disable one alarm time register */ 27/* Values which each disable one alarm time register */
28static char alarm_disable[] = { 0x7f, 0x7f, 0x3f, 0x07, 0x3f, 0x1f, 0xff }; 28static const char alarm_disable[] = {
29 0x7f, 0x7f, 0x3f, 0x07, 0x3f, 0x1f, 0xff
30};
29 31
30void rtc_init(void) 32void rtc_init(void)
31{ 33{
@@ -68,14 +70,16 @@ bool rtc_enable_alarm(bool enable)
68 pcf50605_write_multiple(0x14, alarm_disable + 3, 4); 70 pcf50605_write_multiple(0x14, alarm_disable + 3, 4);
69 /* Unmask the alarm interrupt (might be unneeded) */ 71 /* Unmask the alarm interrupt (might be unneeded) */
70 pcf50605_write(0x5, pcf50605_read(0x5) & ~0x80); 72 pcf50605_write(0x5, pcf50605_read(0x5) & ~0x80);
71 /* Make sure wake on RTC is set */ 73 /* Make sure wake on RTC is set when shutting down */
72 pcf50605_write(0x8, pcf50605_read(0x8) | 0x10); 74 pcf50605_wakeup_flags |= 0x10;
73 } else { 75 } else {
74 /* We use this year to indicate a disabled alarm. If you happen to live 76 /* We use this year to indicate a disabled alarm. If you happen to live
75 * around this time and are annoyed by this, feel free to seek out my 77 * around this time and are annoyed by this, feel free to seek out my
76 * grave and do something nasty to it. 78 * grave and do something nasty to it.
77 */ 79 */
78 pcf50605_write(0x17, 0x99); 80 pcf50605_write(0x17, 0x99);
81 /* Make sure we don't wake on RTC after shutting down */
82 pcf50605_wakeup_flags &= ~0x10;
79 } 83 }
80 return false; 84 return false;
81} 85}