summaryrefslogtreecommitdiffstatshomepage
path: root/stmhal/stm32_it.c
diff options
context:
space:
mode:
Diffstat (limited to 'stmhal/stm32_it.c')
-rw-r--r--stmhal/stm32_it.c64
1 files changed, 43 insertions, 21 deletions
diff --git a/stmhal/stm32_it.c b/stmhal/stm32_it.c
index 371d20dd7c..fec663ea74 100644
--- a/stmhal/stm32_it.c
+++ b/stmhal/stm32_it.c
@@ -80,8 +80,8 @@
#include "dma.h"
extern void __fatal_error(const char*);
-extern PCD_HandleTypeDef pcd_handle;
-
+extern PCD_HandleTypeDef pcd_fs_handle;
+extern PCD_HandleTypeDef pcd_hs_handle;
/******************************************************************************/
/* Cortex-M4 Processor Exceptions Handlers */
/******************************************************************************/
@@ -305,28 +305,25 @@ void SysTick_Handler(void) {
* @retval None
*/
#if defined(USE_USB_FS)
-#define OTG_XX_IRQHandler OTG_FS_IRQHandler
-#define OTG_XX_WKUP_IRQHandler OTG_FS_WKUP_IRQHandler
-#elif defined(USE_USB_HS)
-#define OTG_XX_IRQHandler OTG_HS_IRQHandler
-#define OTG_XX_WKUP_IRQHandler OTG_HS_WKUP_IRQHandler
+void OTG_FS_IRQHandler(void) {
+ HAL_PCD_IRQHandler(&pcd_fs_handle);
+}
#endif
-
-#if defined(OTG_XX_IRQHandler)
-void OTG_XX_IRQHandler(void) {
- HAL_PCD_IRQHandler(&pcd_handle);
+#if defined(USE_USB_HS)
+void OTG_HS_IRQHandler(void) {
+ HAL_PCD_IRQHandler(&pcd_hs_handle);
}
#endif
+#if defined(USE_USB_FS) || defined(USE_USB_HS)
/**
- * @brief This function handles USB OTG FS or HS Wakeup IRQ Handler.
- * @param None
+ * @brief This function handles USB OTG Common FS/HS Wakeup functions.
+ * @param *pcd_handle for FS or HS
* @retval None
*/
-#if defined(OTG_XX_WKUP_IRQHandler)
-void OTG_XX_WKUP_IRQHandler(void) {
+STATIC void OTG_CMD_WKUP_Handler(PCD_HandleTypeDef *pcd_handle) {
- if ((&pcd_handle)->Init.low_power_enable) {
+ if (pcd_handle->Init.low_power_enable) {
/* Reset SLEEPDEEP bit of Cortex System Control Register */
SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
@@ -353,16 +350,41 @@ void OTG_XX_WKUP_IRQHandler(void) {
{}
/* ungate PHY clock */
- __HAL_PCD_UNGATE_PHYCLOCK((&pcd_handle));
+ __HAL_PCD_UNGATE_PHYCLOCK(pcd_handle);
}
-#ifdef USE_USB_FS
+
+}
+#endif
+
+#if defined(USE_USB_FS)
+/**
+ * @brief This function handles USB OTG FS Wakeup IRQ Handler.
+ * @param None
+ * @retval None
+ */
+void OTG_FS_WKUP_IRQHandler(void) {
+
+ OTG_CMD_WKUP_Handler(&pcd_fs_handle);
+
/* Clear EXTI pending Bit*/
__HAL_USB_FS_EXTI_CLEAR_FLAG();
-#elif defined(USE_USB_HS)
- /* Clear EXTI pending Bit*/
- __HAL_USB_HS_EXTI_CLEAR_FLAG();
+
+}
#endif
+#if defined(USE_USB_HS)
+/**
+ * @brief This function handles USB OTG HS Wakeup IRQ Handler.
+ * @param None
+ * @retval None
+ */
+void OTG_HS_WKUP_IRQHandler(void) {
+
+ OTG_CMD_WKUP_Handler(&pcd_hs_handle);
+
+ /* Clear EXTI pending Bit*/
+ __HAL_USB_HS_EXTI_CLEAR_FLAG();
+
}
#endif