Line data Source code
1 1 : /* 2 : * Copyright (c) 2024 Meta 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** 8 : * @file 9 : * @brief Interrupt controller devicetree macro public API header file. 10 : */ 11 : 12 : #ifndef ZEPHYR_INCLUDE_DEVICETREE_INTERRUPT_CONTROLLER_H_ 13 : #define ZEPHYR_INCLUDE_DEVICETREE_INTERRUPT_CONTROLLER_H_ 14 : 15 : #ifdef __cplusplus 16 : extern "C" { 17 : #endif 18 : 19 : #include <zephyr/devicetree.h> 20 : #include <zephyr/sys/util_macro.h> 21 : 22 : /** 23 : * @defgroup devicetree-interrupt_controller Devicetree Interrupt Controller API 24 : * @ingroup devicetree 25 : * @{ 26 : */ 27 : 28 : /** 29 : * @brief Get the aggregator level of an interrupt controller 30 : * 31 : * @note Aggregator level is equivalent to IRQ_LEVEL + 1 (a 2nd level aggregator has Zephyr level 1 32 : * IRQ encoding) 33 : * 34 : * @param node_id node identifier of an interrupt controller 35 : * 36 : * @return Level of the interrupt controller 37 : */ 38 1 : #define DT_INTC_GET_AGGREGATOR_LEVEL(node_id) UTIL_INC(DT_IRQ_LEVEL(node_id)) 39 : 40 : /** 41 : * @brief Get the aggregator level of a `DT_DRV_COMPAT` interrupt controller 42 : * 43 : * @note Aggregator level is equivalent to IRQ_LEVEL + 1 (a 2nd level aggregator has Zephyr level 1 44 : * IRQ encoding) 45 : * 46 : * @param inst instance of an interrupt controller 47 : * 48 : * @return Level of the interrupt controller 49 : */ 50 1 : #define DT_INST_INTC_GET_AGGREGATOR_LEVEL(inst) DT_INTC_GET_AGGREGATOR_LEVEL(DT_DRV_INST(inst)) 51 : 52 : /** 53 : * @} 54 : */ 55 : 56 : #ifdef __cplusplus 57 : } 58 : #endif 59 : 60 : #endif /* ZEPHYR_INCLUDE_DEVICETREE_INTERRUPT_CONTROLLER_H_ */