Commit fa274252 authored by Luis Ubieda's avatar Luis Ubieda Committed by github-actions[bot]
Browse files

drivers: i2c_rtio: Use flexcomm interface to manage interrupts

Some NXP SoC's have a FlexComm interface that manages the
interrupts.

Applying 482e39ea9556f53adbb7f67d0d0da3d17bbbae90 on RTIO-version.

Authored-by: default avatarMahesh Mahadevan <mahesh.mahadevan@nxp.com>
Signed-off-by: default avatarLuis Ubieda <luisf@croxel.com>
(cherry picked from commit 797772fc)
parent 8c8b95ec
Loading
Loading
Loading
Loading
+14 −6
Changes for drivers/i2c/i2c_mcux_lpi2c_rtio.c: 14 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -350,6 +350,19 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
#define I2C_MCUX_LPI2C_SDA_INIT(n)
#endif /* CONFIG_I2C_MCUX_LPI2C_BUS_RECOVERY */

#define I2C_MCUX_LPI2C_MODULE_IRQ_CONNECT(n)				\
	do {								\
		IRQ_CONNECT(DT_INST_IRQN(n),				\
			DT_INST_IRQ(n, priority),			\
			mcux_lpi2c_isr,					\
			DEVICE_DT_INST_GET(n), 0);			\
		irq_enable(DT_INST_IRQN(n));				\
	} while (false)

#define I2C_MCUX_LPI2C_MODULE_IRQ(n)					\
	IF_ENABLED(DT_INST_IRQ_HAS_IDX(n, 0),				\
		(I2C_MCUX_LPI2C_MODULE_IRQ_CONNECT(n)))

#define I2C_MCUX_LPI2C_INIT(n)						\
	PINCTRL_DT_INST_DEFINE(n);					\
									\
@@ -386,12 +399,7 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
									\
	static void mcux_lpi2c_config_func_##n(const struct device *dev)\
	{								\
		IRQ_CONNECT(DT_INST_IRQN(n),				\
				DT_INST_IRQ(n, priority),		\
				mcux_lpi2c_isr,				\
				DEVICE_DT_INST_GET(n), 0);		\
									\
		irq_enable(DT_INST_IRQN(n));				\
		I2C_MCUX_LPI2C_MODULE_IRQ(n);				\
	}

DT_INST_FOREACH_STATUS_OKAY(I2C_MCUX_LPI2C_INIT)