summaryrefslogtreecommitdiff
path: root/chip/stm32/gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/stm32/gpio.c')
-rw-r--r--chip/stm32/gpio.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/chip/stm32/gpio.c b/chip/stm32/gpio.c
index 69f3cadb4e..a89f046a01 100644
--- a/chip/stm32/gpio.c
+++ b/chip/stm32/gpio.c
@@ -98,6 +98,19 @@ int gpio_enable_interrupt(enum gpio_signal signal)
return EC_SUCCESS;
}
+int gpio_disable_interrupt(enum gpio_signal signal)
+{
+ const struct gpio_info *g = gpio_list + signal;
+
+ /* Fail if not implemented or no interrupt handler */
+ if (!g->mask || signal >= GPIO_IH_COUNT)
+ return EC_ERROR_INVAL;
+
+ STM32_EXTI_IMR &= ~g->mask;
+
+ return EC_SUCCESS;
+}
+
int gpio_clear_pending_interrupt(enum gpio_signal signal)
{
const struct gpio_info *g = gpio_list + signal;