Line data Source code
1 0 : /*
2 : * Copyright (c) 2022 Schlumberger
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_XMC4XXX_INTC_H_
8 : #define ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_XMC4XXX_INTC_H_
9 :
10 : /**
11 : * @brief Enable interrupt for specific port_id and pin combination
12 : *
13 : * @param port_id Port index
14 : * @param pin pin Pin the port
15 : * @param mode Level or edge interrupt
16 : * @param trig Trigger edge type (falling, rising or both)
17 : * @param fn Callback function
18 : * @param user_data Parameter to the interrupt callback
19 : *
20 : * @retval 0 On success
21 : * @retval -ENOTSUP If the specific port_id/pin combination is not supported or
22 : * not defined in the dts
23 : * @retval -EBUSY If the interrupt line is already used by a different port_id/pin
24 : * @retval -EINVAL If the trigger combination is invalid
25 : *
26 : */
27 :
28 1 : int intc_xmc4xxx_gpio_enable_interrupt(int port_id, int pin, enum gpio_int_mode mode,
29 : enum gpio_int_trig trig, void(*fn)(const struct device*, int), void *user_data);
30 :
31 : /**
32 : * @brief Disable interrupt for specific port_id and pin combination
33 : *
34 : * @param port_id Port index
35 : * @param pin pin Pin the port
36 : * @retval 0 On susccess
37 : * @retval -EINVAL If the specific port_id and pin combination has no interrupt
38 : * enabled
39 : */
40 :
41 1 : int intc_xmc4xxx_gpio_disable_interrupt(int port_id, int pin);
42 :
43 : #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_XMC4XXX_INTC_H_ */
|