diff options
-rw-r--r-- | chip/stm32/gpio.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chip/stm32/gpio.c b/chip/stm32/gpio.c index 69f3cadb4e..8c4ca4d02e 100644 --- a/chip/stm32/gpio.c +++ b/chip/stm32/gpio.c @@ -105,7 +105,8 @@ int gpio_clear_pending_interrupt(enum gpio_signal signal) if (!g->mask || signal >= GPIO_IH_COUNT) return EC_ERROR_INVAL; - STM32_EXTI_PR |= g->mask; + /* Write 1 to clear interrupt */ + STM32_EXTI_PR = g->mask; return EC_SUCCESS; } @@ -120,6 +121,7 @@ void __keep gpio_interrupt(void) uint32_t pending = STM32_EXTI_PR & 0xFFFF; uint8_t signal; + /* Write 1 to clear interrupt */ STM32_EXTI_PR = pending; while (pending) { |