Lines Matching +full:stm32f1 +full:- +full:pinctrl

2  * Copyright (c) 2016 Open-RnD Sp. z o.o.
4 * Copyright (c) 2019-23 Linaro Limited
6 * SPDX-License-Identifier: Apache-2.0
18 #include <stm32_ll_gpio.h> /* For STM32F1 series */
23 #include <zephyr/dt-bindings/pinctrl/stm32-pinctrl-common.h> /* For STM32L0 series */
40 static IRQn_Type exti_irq_table[NUM_EXTI_LINES] = {[0 ... NUM_EXTI_LINES - 1] = 0xFF};
50 /* per-line callbacks */
133 struct stm32_exti_data *data = dev->data; in stm32_exti_isr()
139 for (uint8_t i = 0; i <= range->len; i++) { in stm32_exti_isr()
140 line_num = range->start + i; in stm32_exti_isr()
149 if (!data->cb[line_num].cb) { in stm32_exti_isr()
153 /* `line` can be passed as-is because LL_EXTI_LINE_n is (1 << n) */ in stm32_exti_isr()
154 data->cb[line_num].cb(line, data->cb[line_num].data); in stm32_exti_isr()
200 * - populates line_range_x from line_range dt property
201 * - fill exti_irq_table through stm32_fill_irq_table()
202 * - calls IRQ_CONNECT for each interrupt and matching line_range
320 struct stm32_exti_data *data = dev->data; in stm32_gpio_intc_set_irq_callback()
323 if ((data->cb[line_num].cb == cb) && (data->cb[line_num].data == user)) { in stm32_gpio_intc_set_irq_callback()
327 /* if callback already exists/maybe-running return busy */ in stm32_gpio_intc_set_irq_callback()
328 if (data->cb[line_num].cb != NULL) { in stm32_gpio_intc_set_irq_callback()
329 return -EBUSY; in stm32_gpio_intc_set_irq_callback()
332 data->cb[line_num].cb = cb; in stm32_gpio_intc_set_irq_callback()
333 data->cb[line_num].data = user; in stm32_gpio_intc_set_irq_callback()
341 struct stm32_exti_data *data = dev->data; in stm32_gpio_intc_remove_irq_callback()
344 data->cb[line_num].cb = NULL; in stm32_gpio_intc_remove_irq_callback()
345 data->cb[line_num].data = NULL; in stm32_gpio_intc_remove_irq_callback()