drivers: spi: mcux_lpspi: allow to configure data pins

Add binding properties to allow configuring the direction of data pins
SDI and SDO.

Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
This commit is contained in:
Manuel Arguelles 2023-07-06 17:28:20 -03:00 committed by Carles Cufí
commit cd78028e15
2 changed files with 17 additions and 1 deletions

View file

@ -33,6 +33,7 @@ struct spi_mcux_config {
uint32_t sck_pcs_delay; uint32_t sck_pcs_delay;
uint32_t transfer_delay; uint32_t transfer_delay;
const struct pinctrl_dev_config *pincfg; const struct pinctrl_dev_config *pincfg;
lpspi_pin_config_t data_pin_config;
}; };
#ifdef CONFIG_SPI_MCUX_LPSPI_DMA #ifdef CONFIG_SPI_MCUX_LPSPI_DMA
@ -212,6 +213,8 @@ static int spi_mcux_configure(const struct device *dev,
master_config.lastSckToPcsDelayInNanoSec = config->sck_pcs_delay; master_config.lastSckToPcsDelayInNanoSec = config->sck_pcs_delay;
master_config.betweenTransferDelayInNanoSec = config->transfer_delay; master_config.betweenTransferDelayInNanoSec = config->transfer_delay;
master_config.pinCfg = config->data_pin_config;
if (!device_is_ready(config->clock_dev)) { if (!device_is_ready(config->clock_dev)) {
LOG_ERR("clock control device not ready"); LOG_ERR("clock control device not ready");
return -ENODEV; return -ENODEV;
@ -638,6 +641,7 @@ static const struct spi_driver_api spi_mcux_driver_api = {
DT_INST_NODE_HAS_PROP(n, transfer_delay), \ DT_INST_NODE_HAS_PROP(n, transfer_delay), \
DT_INST_PROP(n, transfer_delay)), \ DT_INST_PROP(n, transfer_delay)), \
.pincfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \ .pincfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
.data_pin_config = DT_INST_ENUM_IDX(n, data_pin_config),\
}; \ }; \
\ \
static struct spi_mcux_data spi_mcux_data_##n = { \ static struct spi_mcux_data spi_mcux_data_##n = { \

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018, NXP # Copyright (c) 2018,2023 NXP
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
description: NXP i.MX LPSPI controller description: NXP i.MX LPSPI controller
@ -34,3 +34,15 @@ properties:
description: | description: |
Delay in nanoseconds from the chip select deassert to the next chip Delay in nanoseconds from the chip select deassert to the next chip
select assert. If not set, the minimum supported delay is used. select assert. If not set, the minimum supported delay is used.
data-pin-config:
type: string
enum:
- "sdi-in,sdo-out"
- "sdi-in,sdi-out"
- "sdo-in,sdo-out"
- "sdo-in,sdi-out"
default: "sdi-in,sdo-out"
description: |
Configures which pins (SDO and SDI) are used for input and output data
during single bit transfers.