1 /*
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 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 int intc_xmc4xxx_gpio_disable_interrupt(int port_id, int pin);
42 
43 #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_XMC4XXX_INTC_H_ */
44