diff --git a/drivers/spi/spi_mcux_dspi.c b/drivers/spi/spi_mcux_dspi.c index 21539641f58..d5ae5786c4e 100644 --- a/drivers/spi/spi_mcux_dspi.c +++ b/drivers/spi/spi_mcux_dspi.c @@ -654,7 +654,6 @@ static int spi_mcux_configure(const struct device *dev, #endif data->ctx.config = spi_cfg; - spi_context_cs_configure(&data->ctx); return 0; } @@ -746,6 +745,7 @@ static int spi_mcux_release(const struct device *dev, static int spi_mcux_init(const struct device *dev) { + int err; struct spi_mcux_data *data = dev->data; #ifdef CONFIG_DSPI_MCUX_EDMA enum dma_channel_filter spi_filter = DMA_CHANNEL_NORMAL; @@ -763,6 +763,12 @@ static int spi_mcux_init(const struct device *dev) config->irq_config_func(dev); #endif data->dev = dev; + + err = spi_context_cs_configure_all(&data->ctx); + if (err < 0) { + return err; + } + spi_context_unlock_unconditionally(&data->ctx); return 0; @@ -856,6 +862,7 @@ static const struct spi_driver_api spi_mcux_driver_api = { 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) \ TX_DMA_CONFIG(id) RX_DMA_CONFIG(id) \ }; \ static const struct spi_mcux_config spi_mcux_config_##id = { \