3636 ******************************************************************************
3737 */
3838#include " interrupt.h"
39-
39+ #if defined(STM32MP1xx)
40+ #include " lock_resource.h"
41+ #endif
4042#if !defined(HAL_EXTI_MODULE_DISABLED)
4143
4244/* Private Types */
@@ -177,8 +179,16 @@ void stm32_interrupt_enable(GPIO_TypeDef *port, uint16_t pin, callback_function_
177179
178180 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
179181
182+ #if defined(STM32MP1xx)
183+ PERIPH_LOCK (port);
184+ #endif
185+
180186 HAL_GPIO_Init (port, &GPIO_InitStruct);
181187
188+ #if defined(STM32MP1xx)
189+ PERIPH_UNLOCK (port);
190+ #endif
191+
182192 gpio_irq_conf[id].callback = callback;
183193
184194 // Enable and set EXTI Interrupt
@@ -236,7 +246,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
236246 }
237247}
238248
239- #if defined (STM32G0xx)
249+ #if defined (STM32G0xx) || defined (STM32MP1xx)
240250/* *
241251 * @brief EXTI line detection callback.
242252 * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
@@ -359,7 +369,7 @@ void EXTI4_IRQHandler(void)
359369 HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_4);
360370}
361371
362-
372+ # if !defined(STM32MP1xx)
363373/* *
364374 * @brief This function handles external line 5 to 9 interrupt request.
365375 * @param None
@@ -385,7 +395,119 @@ void EXTI15_10_IRQHandler(void)
385395 HAL_GPIO_EXTI_IRQHandler (pin);
386396 }
387397}
398+ #else /* STM32MP1xx */
399+
400+ /* *
401+ * @brief This function handles external line 5 interrupt request.
402+ * @param None
403+ * @retval None
404+ */
405+ void EXTI5_IRQHandler (void )
406+ {
407+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_5);
408+ }
409+
410+ /* *
411+ * @brief This function handles external line 6 interrupt request.
412+ * @param None
413+ * @retval None
414+ */
415+ void EXTI6_IRQHandler (void )
416+ {
417+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_6);
418+ }
419+
420+ /* *
421+ * @brief This function handles external line 7 interrupt request.
422+ * @param None
423+ * @retval None
424+ */
425+ void EXTI7_IRQHandler (void )
426+ {
427+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_7);
428+ }
429+
430+ /* *
431+ * @brief This function handles external line 8 interrupt request.
432+ * @param None
433+ * @retval None
434+ */
435+ void EXTI8_IRQHandler (void )
436+ {
437+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_8);
438+ }
439+
440+ /* *
441+ * @brief This function handles external line 9 interrupt request.
442+ * @param None
443+ * @retval None
444+ */
445+ void EXTI9_IRQHandler (void )
446+ {
447+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_9);
448+ }
449+
450+ /* *
451+ * @brief This function handles external line 10 interrupt request.
452+ * @param None
453+ * @retval None
454+ */
455+ void EXTI10_IRQHandler (void )
456+ {
457+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_10);
458+ }
459+
460+ /* *
461+ * @brief This function handles external line 11 interrupt request.
462+ * @param None
463+ * @retval None
464+ */
465+ void EXTI11_IRQHandler (void )
466+ {
467+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_11);
468+ }
469+
470+ /* *
471+ * @brief This function handles external line 12 interrupt request.
472+ * @param None
473+ * @retval None
474+ */
475+ void EXTI12_IRQHandler (void )
476+ {
477+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_12);
478+ }
479+
480+ /* *
481+ * @brief This function handles external line 13 interrupt request.
482+ * @param None
483+ * @retval None
484+ */
485+ void EXTI13_IRQHandler (void )
486+ {
487+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_13);
488+ }
489+
490+ /* *
491+ * @brief This function handles external line 14 interrupt request.
492+ * @param None
493+ * @retval None
494+ */
495+ void EXTI14_IRQHandler (void )
496+ {
497+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_14);
498+ }
499+
500+ /* *
501+ * @brief This function handles external line 15 interrupt request.
502+ * @param None
503+ * @retval None
504+ */
505+ void EXTI15_IRQHandler (void )
506+ {
507+ HAL_GPIO_EXTI_IRQHandler (GPIO_PIN_15);
508+ }
388509
510+ #endif /* !STM32MP1xx */
389511#ifdef __cplusplus
390512}
391513#endif
0 commit comments