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