@@ -556,6 +556,19 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
556556#define I2C_MCUX_LPI2C_SDA_INIT (n )
557557#endif /* CONFIG_I2C_MCUX_LPI2C_BUS_RECOVERY */
558558
559+ #define I2C_MCUX_LPI2C_MODULE_IRQ_CONNECT (n ) \
560+ do { \
561+ IRQ_CONNECT(DT_INST_IRQN(n), \
562+ DT_INST_IRQ(n, priority), \
563+ mcux_lpi2c_isr, \
564+ DEVICE_DT_INST_GET(n), 0); \
565+ irq_enable(DT_INST_IRQN(n)); \
566+ } while (false)
567+
568+ #define I2C_MCUX_LPI2C_MODULE_IRQ (n ) \
569+ IF_ENABLED(DT_INST_IRQ_HAS_IDX(n, 0), \
570+ (I2C_MCUX_LPI2C_MODULE_IRQ_CONNECT(n)))
571+
559572#define I2C_MCUX_LPI2C_INIT (n ) \
560573 PINCTRL_DT_INST_DEFINE(n); \
561574 \
@@ -586,12 +599,7 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
586599 \
587600 static void mcux_lpi2c_config_func_##n(const struct device *dev) \
588601 { \
589- IRQ_CONNECT(DT_INST_IRQN(n), \
590- DT_INST_IRQ(n, priority), \
591- mcux_lpi2c_isr, \
592- DEVICE_DT_INST_GET(n), 0); \
593- \
594- irq_enable(DT_INST_IRQN(n)); \
602+ I2C_MCUX_LPI2C_MODULE_IRQ(n); \
595603 }
596604
597605DT_INST_FOREACH_STATUS_OKAY (I2C_MCUX_LPI2C_INIT )
0 commit comments