From f90c3560255d01db802c608bbf0a85e655b80bf3 Mon Sep 17 00:00:00 2001 From: Daniel DeGrasse Date: Mon, 7 Mar 2022 11:34:08 -0600 Subject: [PATCH] drivers: spi: enable pinctrl for kinetis dspi driver Enable pinctrl unconditionally for kinetis dspi driver Signed-off-by: Daniel DeGrasse --- drivers/spi/Kconfig.mcux_dspi | 1 + drivers/spi/spi_mcux_dspi.c | 9 +++++++++ dts/bindings/spi/nxp,kinetis-dspi.yaml | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/spi/Kconfig.mcux_dspi b/drivers/spi/Kconfig.mcux_dspi index 1fef7982000..c4947702e1a 100644 --- a/drivers/spi/Kconfig.mcux_dspi +++ b/drivers/spi/Kconfig.mcux_dspi @@ -7,6 +7,7 @@ config SPI_MCUX_DSPI bool "MCUX SPI driver" depends on HAS_MCUX && CLOCK_CONTROL + select PINCTRL help Enable support for mcux spi driver. diff --git a/drivers/spi/spi_mcux_dspi.c b/drivers/spi/spi_mcux_dspi.c index 86554bfda3b..a46200e20b5 100644 --- a/drivers/spi/spi_mcux_dspi.c +++ b/drivers/spi/spi_mcux_dspi.c @@ -11,6 +11,7 @@ #include #include #include +#include #ifdef CONFIG_DSPI_MCUX_EDMA #include #include @@ -47,6 +48,7 @@ struct spi_mcux_config { bool enable_rxfifo_overwrite; bool enable_modified_timing_format; bool is_dma_chn_shared; + const struct pinctrl_dev_config *pincfg; }; struct spi_mcux_data { @@ -767,6 +769,11 @@ static int spi_mcux_init(const struct device *dev) config->irq_config_func(dev); #endif + err = pinctrl_apply_state(config->pincfg, PINCTRL_STATE_DEFAULT); + if (err != 0) { + return err; + } + data->dev = dev; err = spi_context_cs_configure_all(&data->ctx); @@ -861,6 +868,7 @@ static const struct spi_driver_api spi_mcux_driver_api = { #endif #define SPI_MCUX_DSPI_DEVICE(id) \ + PINCTRL_DT_INST_DEFINE(id); \ static void spi_mcux_config_func_##id(const struct device *dev);\ TX_BUFFER(id); \ RX_BUFFER(id); \ @@ -894,6 +902,7 @@ static const struct spi_driver_api spi_mcux_driver_api = { DT_INST_PROP(id, modified_timing_format), \ .is_dma_chn_shared = \ DT_INST_PROP(id, nxp_rx_tx_chn_share), \ + .pincfg = PINCTRL_DT_INST_DEV_CONFIG_GET(id), \ }; \ DEVICE_DT_INST_DEFINE(id, \ &spi_mcux_init, \ diff --git a/dts/bindings/spi/nxp,kinetis-dspi.yaml b/dts/bindings/spi/nxp,kinetis-dspi.yaml index cf617ed03c5..3d523f45b88 100644 --- a/dts/bindings/spi/nxp,kinetis-dspi.yaml +++ b/dts/bindings/spi/nxp,kinetis-dspi.yaml @@ -5,7 +5,7 @@ description: NXP Kinetis DSPI controller compatible: "nxp,kinetis-dspi" -include: spi-controller.yaml +include: ["spi-controller.yaml", "pinctrl-device.yaml"] properties: reg: