@ -43,9 +43,6 @@ LOG_MODULE_REGISTER(mcux_lpi2c);
@@ -43,9 +43,6 @@ LOG_MODULE_REGISTER(mcux_lpi2c);
struct mcux_lpi2c_config {
DEVICE_MMIO_NAMED_ROM ( reg_base ) ;
# ifdef CONFIG_NXP_LP_FLEXCOMM
const struct device * parent_dev ;
# endif
const struct device * clock_dev ;
clock_control_subsys_t clock_subsys ;
void ( * irq_config_func ) ( const struct device * dev ) ;
@ -335,15 +332,7 @@ static int mcux_lpi2c_init(const struct device *dev)
@@ -335,15 +332,7 @@ static int mcux_lpi2c_init(const struct device *dev)
return error ;
}
# if CONFIG_NXP_LP_FLEXCOMM
/* When using LP Flexcomm driver, register the interrupt handler
* so we receive notification from the LP Flexcomm interrupt handler .
*/
nxp_lp_flexcomm_setirqhandler ( config - > parent_dev , dev ,
LP_FLEXCOMM_PERIPH_LPI2C , mcux_lpi2c_isr ) ;
# else
config - > irq_config_func ( dev ) ;
# endif
i2c_rtio_init ( data - > ctx , dev ) ;
@ -377,21 +366,31 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
@@ -377,21 +366,31 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
IF_ENABLED ( DT_INST_IRQ_HAS_IDX ( n , 0 ) , \
( I2C_MCUX_LPI2C_MODULE_IRQ_CONNECT ( n ) ) )
# ifdef CONFIG_NXP_LP_FLEXCOMM
# define PARENT_DEV(n) \
. parent_dev = DEVICE_DT_GET ( DT_INST_PARENT ( n ) ) ,
# else
# define PARENT_DEV(n)
# endif /* CONFIG_NXP_LP_FLEXCOMM */
/* When using LP Flexcomm driver, register the interrupt handler
* so we receive notification from the LP Flexcomm interrupt handler .
*/
# define I2C_MCUX_LPI2C_LPFLEXCOMM_IRQ_FUNC(n) \
nxp_lp_flexcomm_setirqhandler ( DEVICE_DT_GET ( DT_INST_PARENT ( n ) ) , \
DEVICE_DT_INST_GET ( n ) , \
LP_FLEXCOMM_PERIPH_LPI2C , \
mcux_lpi2c_isr )
# define I2C_MCUX_LPI2C_IRQ_SETUP_FUNC(n) \
COND_CODE_1 ( DT_NODE_HAS_COMPAT ( DT_INST_PARENT ( n ) , \
nxp_lp_flexcomm ) , \
( I2C_MCUX_LPI2C_LPFLEXCOMM_IRQ_FUNC ( n ) ) , \
( I2C_MCUX_LPI2C_MODULE_IRQ ( n ) ) )
# define I2C_MCUX_LPI2C_INIT(n) \
PINCTRL_DT_INST_DEFINE ( n ) ; \
\
static void mcux_lpi2c_config_func_ # # n ( const struct device * dev ) ; \
static void mcux_lpi2c_config_func_ # # n ( const struct device * dev ) \
{ \
I2C_MCUX_LPI2C_IRQ_SETUP_FUNC ( n ) ; \
} \
\
static const struct mcux_lpi2c_config mcux_lpi2c_config_ # # n = { \
DEVICE_MMIO_NAMED_ROM_INIT ( reg_base , DT_DRV_INST ( n ) ) , \
PARENT_DEV ( n ) \
. clock_dev = DEVICE_DT_GET ( DT_INST_CLOCKS_CTLR ( n ) ) , \
. clock_subsys = \
( clock_control_subsys_t ) DT_INST_CLOCKS_CELL ( n , name ) , \
@ -417,11 +416,6 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
@@ -417,11 +416,6 @@ static const struct i2c_driver_api mcux_lpi2c_driver_api = {
& mcux_lpi2c_data_ # # n , \
& mcux_lpi2c_config_ # # n , POST_KERNEL , \
CONFIG_I2C_INIT_PRIORITY , \
& mcux_lpi2c_driver_api ) ; \
\
static void mcux_lpi2c_config_func_ # # n ( const struct device * dev ) \
{ \
I2C_MCUX_LPI2C_MODULE_IRQ ( n ) ; \
}
& mcux_lpi2c_driver_api ) ;
DT_INST_FOREACH_STATUS_OKAY ( I2C_MCUX_LPI2C_INIT )