diff --git a/drivers/counter/counter_mcux_qtmr.c b/drivers/counter/counter_mcux_qtmr.c index fed3c3cca3..2674f9f7db 100644 --- a/drivers/counter/counter_mcux_qtmr.c +++ b/drivers/counter/counter_mcux_qtmr.c @@ -98,13 +98,14 @@ static void mcux_qtmr_isr(const struct device *timers[]) } } -#define ADD_TIMER(node_id, n) timers_##n[DT_PROP(node_id, channel)] = DEVICE_DT_GET(node_id); +#define INIT_TIMER(node_id) [DT_PROP(node_id, channel)] = DEVICE_DT_GET(node_id), #define QTMR_DEVICE_INIT_MCUX(n) \ - static const struct device *timers_##n[4]; \ + static const struct device *const timers_##n[4] = { \ + DT_FOREACH_CHILD_STATUS_OKAY(DT_DRV_INST(n), INIT_TIMER) \ + }; \ static int init_irq_##n(const struct device *dev) \ { \ - DT_FOREACH_CHILD_STATUS_OKAY_VARGS(DT_DRV_INST(n), ADD_TIMER, n) \ IRQ_CONNECT(DT_INST_IRQN(n), DT_INST_IRQ(n, priority), mcux_qtmr_isr, \ timers_##n, 0); \ irq_enable(DT_INST_IRQN(n)); \