summaryrefslogtreecommitdiffstatshomepage
path: root/ports/stm32/stm32_it.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/stm32_it.c')
-rw-r--r--ports/stm32/stm32_it.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/ports/stm32/stm32_it.c b/ports/stm32/stm32_it.c
index 4bf509bb94..3639e2f049 100644
--- a/ports/stm32/stm32_it.c
+++ b/ports/stm32/stm32_it.c
@@ -343,14 +343,22 @@ void OTG_FS_IRQHandler(void) {
}
#endif
#if MICROPY_HW_USB_HS
+#if defined(STM32N6)
+void USB1_OTG_HS_IRQHandler(void) {
+ IRQ_ENTER(USB1_OTG_HS_IRQn);
+ HAL_PCD_IRQHandler(&pcd_hs_handle);
+ IRQ_EXIT(USB1_OTG_HS_IRQn);
+}
+#else
void OTG_HS_IRQHandler(void) {
IRQ_ENTER(OTG_HS_IRQn);
HAL_PCD_IRQHandler(&pcd_hs_handle);
IRQ_EXIT(OTG_HS_IRQn);
}
#endif
+#endif
-#if MICROPY_HW_USB_FS || MICROPY_HW_USB_HS
+#if (MICROPY_HW_USB_FS || MICROPY_HW_USB_HS) && !defined(STM32N6)
/**
* @brief This function handles USB OTG Common FS/HS Wakeup functions.
* @param *pcd_handle for FS or HS
@@ -421,7 +429,7 @@ void OTG_FS_WKUP_IRQHandler(void) {
}
#endif
-#if MICROPY_HW_USB_HS
+#if MICROPY_HW_USB_HS && !defined(STM32N6)
/**
* @brief This function handles USB OTG HS Wakeup IRQ Handler.
* @param None
@@ -480,7 +488,7 @@ void ETH_WKUP_IRQHandler(void) {
}
#endif
-#if defined(STM32H5)
+#if defined(STM32H5) || defined(STM32N6)
void TAMP_IRQHandler(void) {
IRQ_ENTER(TAMP_IRQn);
Handle_EXTI_Irq(EXTI_RTC_TAMP);
@@ -502,6 +510,9 @@ void TAMP_STAMP_IRQHandler(void) {
#if defined(STM32H5)
void RTC_IRQHandler(void)
+#elif defined(STM32N6)
+#define RTC_WKUP_IRQn RTC_S_IRQn
+void RTC_S_IRQHandler(void)
#else
void RTC_WKUP_IRQHandler(void)
#endif
@@ -509,8 +520,8 @@ void RTC_WKUP_IRQHandler(void)
IRQ_ENTER(RTC_WKUP_IRQn);
#if defined(STM32G0) || defined(STM32G4) || defined(STM32WL)
RTC->MISR &= ~RTC_MISR_WUTMF; // clear wakeup interrupt flag
- #elif defined(STM32H5)
- RTC->SCR = RTC_SCR_CWUTF; // clear wakeup interrupt flag
+ #elif defined(STM32H5) || defined(STM32N6)
+ LL_RTC_ClearFlag_WUT(RTC);
#elif defined(STM32H7A3xx) || defined(STM32H7A3xxQ) || defined(STM32H7B3xx) || defined(STM32H7B3xxQ)
RTC->SR &= ~RTC_SR_WUTF; // clear wakeup interrupt flag
#else
@@ -520,6 +531,12 @@ void RTC_WKUP_IRQHandler(void)
IRQ_EXIT(RTC_WKUP_IRQn);
}
+#if defined(STM32N6)
+void RTC_IRQHandler(void) {
+ RTC_S_IRQHandler();
+}
+#endif
+
#if defined(STM32F0) || defined(STM32G0) || defined(STM32L0)
#if defined(STM32G0)