summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/stm32/gpio-stm32f.c3
-rw-r--r--chip/stm32/gpio-stm32f0.c3
-rw-r--r--chip/stm32/gpio-stm32l.c3
3 files changed, 6 insertions, 3 deletions
diff --git a/chip/stm32/gpio-stm32f.c b/chip/stm32/gpio-stm32f.c
index 79fc2235d0..eb733e470b 100644
--- a/chip/stm32/gpio-stm32f.c
+++ b/chip/stm32/gpio-stm32f.c
@@ -231,7 +231,8 @@ void gpio_interrupt(void)
{
int bit;
const struct gpio_info *g;
- uint32_t pending = STM32_EXTI_PR;
+ /* process only GPIO EXTINTs (EXTINT0..15) not other EXTINTs */
+ uint32_t pending = STM32_EXTI_PR & 0xFFFF;
STM32_EXTI_PR = pending;
diff --git a/chip/stm32/gpio-stm32f0.c b/chip/stm32/gpio-stm32f0.c
index 8e756ab183..a6d1b7b87c 100644
--- a/chip/stm32/gpio-stm32f0.c
+++ b/chip/stm32/gpio-stm32f0.c
@@ -232,7 +232,8 @@ void gpio_interrupt(void)
{
int bit;
const struct gpio_info *g;
- uint32_t pending = STM32_EXTI_PR;
+ /* process only GPIO EXTINTs (EXTINT0..15) not other EXTINTs */
+ uint32_t pending = STM32_EXTI_PR & 0xFFFF;
STM32_EXTI_PR = pending;
diff --git a/chip/stm32/gpio-stm32l.c b/chip/stm32/gpio-stm32l.c
index ca627dd701..edc2fba652 100644
--- a/chip/stm32/gpio-stm32l.c
+++ b/chip/stm32/gpio-stm32l.c
@@ -236,7 +236,8 @@ void gpio_interrupt(void)
{
int bit;
const struct gpio_info *g;
- uint32_t pending = STM32_EXTI_PR;
+ /* process only GPIO EXTINTs (EXTINT0..15) not other EXTINTs */
+ uint32_t pending = STM32_EXTI_PR & 0xFFFF;
STM32_EXTI_PR = pending;