Line data Source code
1 0 : /*
2 : * Copyright (c) 2024-2025 Renesas Electronics Corporation
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_RZ_EXT_IRQ_H_
8 : #define ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_RZ_EXT_IRQ_H_
9 :
10 0 : #define RZ_EXT_IRQ_TRIG_FALLING 0
11 0 : #define RZ_EXT_IRQ_TRIG_RISING 1
12 0 : #define RZ_EXT_IRQ_TRIG_BOTH_EDGE 2
13 0 : #define RZ_EXT_IRQ_TRIG_LEVEL_LOW 3
14 :
15 : /** RZ external interrupt callback */
16 1 : typedef void (*intc_rz_ext_irq_callback_t)(void *arg);
17 :
18 : /**
19 : * @brief Enable external interrupt for specified channel.
20 : *
21 : * @param dev: pointer to interrupt controller instance
22 : * @return 0 on success, or negative value on error
23 : */
24 1 : int intc_rz_ext_irq_enable(const struct device *dev);
25 :
26 : /**
27 : * @brief Disable external interrupt for specified channel.
28 : *
29 : * @param dev: pointer to interrupt controller instance
30 : * @return 0 on success, or negative value on error
31 : */
32 1 : int intc_rz_ext_irq_disable(const struct device *dev);
33 :
34 : /**
35 : * @brief Updates the user callback
36 : *
37 : * @param dev: pointer to interrupt controller instance
38 : * @param cb: callback to set
39 : * @param arg: user data passed to callback
40 : * @return 0 on success, or negative value on error
41 : */
42 1 : int intc_rz_ext_irq_set_callback(const struct device *dev, intc_rz_ext_irq_callback_t cb,
43 : void *arg);
44 :
45 : /**
46 : * @brief Change trigger external interrupt type for specified channel.
47 : *
48 : * @param dev: pointer to interrupt controller instance
49 : * @param trig: trigger type to be changed
50 : * @return 0 on success, or negative value on error
51 : */
52 1 : int intc_rz_ext_irq_set_type(const struct device *dev, uint8_t trig);
53 :
54 : #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_RZ_EXT_IRQ_H_ */
|