diff --git a/drivers/spi/spi_mcux_flexcomm.c b/drivers/spi/spi_mcux_flexcomm.c index 7f882b4e50d..9b96f6a690f 100644 --- a/drivers/spi/spi_mcux_flexcomm.c +++ b/drivers/spi/spi_mcux_flexcomm.c @@ -213,7 +213,6 @@ static int spi_mcux_configure(const struct device *dev, SPI_SetDummyData(base, 0); data->ctx.config = spi_cfg; - spi_context_cs_configure(&data->ctx); } else { spi_slave_config_t slave_config; @@ -674,6 +673,7 @@ static int spi_mcux_release(const struct device *dev, static int spi_mcux_init(const struct device *dev) { + int err; const struct spi_mcux_config *config = dev->config; struct spi_mcux_data *data = dev->data; @@ -693,6 +693,12 @@ static int spi_mcux_init(const struct device *dev) } #endif /* CONFIG_SPI_MCUX_FLEXCOMM_DMA */ + + err = spi_context_cs_configure_all(&data->ctx); + if (err < 0) { + return err; + } + spi_context_unlock_unconditionally(&data->ctx); return 0; @@ -762,6 +768,7 @@ static void spi_mcux_config_func_##id(const struct device *dev) \ static struct spi_mcux_data spi_mcux_data_##id = { \ SPI_CONTEXT_INIT_LOCK(spi_mcux_data_##id, ctx), \ SPI_CONTEXT_INIT_SYNC(spi_mcux_data_##id, ctx), \ + SPI_CONTEXT_CS_GPIOS_INITIALIZE(DT_DRV_INST(id), ctx) \ SPI_DMA_CHANNELS(id) \ }; \ DEVICE_DT_INST_DEFINE(id, \