diff --git a/drivers/gpio/gpio_stm32.c b/drivers/gpio/gpio_stm32.c index 4dc077bc5a1..eea08be5d2a 100644 --- a/drivers/gpio/gpio_stm32.c +++ b/drivers/gpio/gpio_stm32.c @@ -522,10 +522,7 @@ static int gpio_stm32_pin_interrupt_configure(struct device *dev, stm32_exti_trigger(pin, edge); - if (stm32_exti_enable(pin) != 0) { - err = -EIO; - goto release_lock; - } + stm32_exti_enable(pin); release_lock: #if defined(CONFIG_STM32H7_DUAL_CORE) diff --git a/drivers/interrupt_controller/intc_exti_stm32.c b/drivers/interrupt_controller/intc_exti_stm32.c index 0b7be3281b8..dfb14af6a67 100644 --- a/drivers/interrupt_controller/intc_exti_stm32.c +++ b/drivers/interrupt_controller/intc_exti_stm32.c @@ -89,30 +89,25 @@ struct stm32_exti_data { struct __exti_cb cb[ARRAY_SIZE(exti_irq_table)]; }; -int stm32_exti_enable(int line) +void stm32_exti_enable(int line) { int irqnum = 0; - /* Enable requested line interrupt */ - if (line < 32) { - LL_EXTI_EnableIT_0_31(1 << line); - } else { + if (line >= ARRAY_SIZE(exti_irq_table)) { __ASSERT_NO_MSG(line); } - /* Get matching exti irq mathcing provided line thanks to irq_table */ - if (line < ARRAY_SIZE(exti_irq_table)) { - irqnum = exti_irq_table[line]; - if (irqnum == 0xFF) - return 0; - } else { - return -ENOTSUP; + /* Get matching exti irq provided line thanks to irq_table */ + irqnum = exti_irq_table[line]; + if (irqnum == 0xFF) { + __ASSERT_NO_MSG(line); } + /* Enable requested line interrupt */ + LL_EXTI_EnableIT_0_31(1 << line); + /* Enable exti irq interrupt */ irq_enable(irqnum); - - return 0; } void stm32_exti_disable(int line) diff --git a/include/drivers/interrupt_controller/exti_stm32.h b/include/drivers/interrupt_controller/exti_stm32.h index 7cb1fdeec38..9a7548b3cbb 100644 --- a/include/drivers/interrupt_controller/exti_stm32.h +++ b/include/drivers/interrupt_controller/exti_stm32.h @@ -31,7 +31,7 @@ * * @param line EXTI# line */ -int stm32_exti_enable(int line); +void stm32_exti_enable(int line); /** * @brief disable EXTI interrupt for specific line