diff options
Diffstat (limited to 'firmware/drivers/rtc/rtc_pcf50605.c')
-rw-r--r-- | firmware/drivers/rtc/rtc_pcf50605.c | 10 |
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 */ |
28 | static char alarm_disable[] = { 0x7f, 0x7f, 0x3f, 0x07, 0x3f, 0x1f, 0xff }; | 28 | static const char alarm_disable[] = { |
29 | 0x7f, 0x7f, 0x3f, 0x07, 0x3f, 0x1f, 0xff | ||
30 | }; | ||
29 | 31 | ||
30 | void rtc_init(void) | 32 | void 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 | } |