diff --git a/include/zephyr/devicetree.h b/include/zephyr/devicetree.h index 033345d1d89..38c5656079c 100644 --- a/include/zephyr/devicetree.h +++ b/include/zephyr/devicetree.h @@ -4234,6 +4234,14 @@ */ #define DT_INST_REG_SIZE(inst) DT_INST_REG_SIZE_BY_IDX(inst, 0) +/** + * @brief Get a `DT_DRV_COMPAT`'s number of interrupts + * + * @param inst instance number + * @return number of interrupts + */ +#define DT_INST_NUM_IRQS(inst) DT_NUM_IRQS(DT_DRV_INST(inst)) + /** * @brief Get a `DT_DRV_COMPAT` interrupt level * diff --git a/tests/lib/devicetree/api/src/main.c b/tests/lib/devicetree/api/src/main.c index 194efca01e8..9de03524d8a 100644 --- a/tests/lib/devicetree/api/src/main.c +++ b/tests/lib/devicetree/api/src/main.c @@ -751,6 +751,9 @@ ZTEST(devicetree_api, test_irq) /* DT_INST */ zassert_equal(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT), 1, ""); + /* DT_INST_NUM_IRQS */ + zassert_equal(DT_INST_NUM_IRQS(0), 3); + /* DT_INST_IRQ_HAS_IDX */ zassert_equal(DT_INST_IRQ_HAS_IDX(0, 0), 1, ""); zassert_equal(DT_INST_IRQ_HAS_IDX(0, 1), 1, "");