mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 02:35:28 +00:00
stm32f3: Use the correct RTC ALARM IRQ
On STM32F0, a single IRQ is used for all RTC events, including RTC_ALARM and RTC_WAKEUP, and this IRQ is named RTC_WAKEUP. We use RTC_WAKEUP IRQ in our code while we actually meant to capture RTC alarm event. On STM32F3, RTC_WAKEUP and RTC_ALARM are separate IRQs and thus we're having problem. Let's make it explicit which RTC IRQ we want to use and fix our code to use RTC_ALARM. BRANCH=None BUG=chrome-os-partner:33219 TEST=Run 'rtc_alarm' on Ryu and verify the EC gets interrupted after a second. Change-Id: Ib1a14a5da49d709a4d071d44fbfa46544cc5929b Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/224998 Reviewed-by: Alec Berg <alecaberg@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
This commit is contained in:
committed by
chrome-internal-fetch
parent
965e6bd9f9
commit
eab146be79
@@ -194,7 +194,7 @@ void __rtc_alarm_irq(void)
|
||||
|
||||
reset_rtc_alarm(&rtc, &rtcss);
|
||||
}
|
||||
DECLARE_IRQ(STM32_IRQ_RTC_WAKEUP, __rtc_alarm_irq, 1);
|
||||
DECLARE_IRQ(STM32_IRQ_RTC_ALARM, __rtc_alarm_irq, 1);
|
||||
|
||||
static void config_hispeed_clock(void)
|
||||
{
|
||||
@@ -437,7 +437,7 @@ void rtc_init(void)
|
||||
/* Enable RTC alarm interrupt */
|
||||
STM32_RTC_CR |= STM32_RTC_CR_ALRAIE | STM32_RTC_CR_BYPSHAD;
|
||||
STM32_EXTI_RTSR |= EXTI_RTC_ALR_EVENT;
|
||||
task_enable_irq(STM32_IRQ_RTC_WAKEUP);
|
||||
task_enable_irq(STM32_IRQ_RTC_ALARM);
|
||||
|
||||
rtc_lock_regs();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define STM32_IRQ_WWDG 0
|
||||
#define STM32_IRQ_PVD 1
|
||||
#define STM32_IRQ_RTC_WAKEUP 2
|
||||
#define STM32_IRQ_RTC_ALARM 2
|
||||
#define STM32_IRQ_FLASH 3
|
||||
#define STM32_IRQ_RCC 4
|
||||
#define STM32_IRQ_EXTI0_1 5
|
||||
|
||||
Reference in New Issue
Block a user