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 transfer_delay;
const struct pinctrl_dev_config *pincfg;
lpspi_pin_config_t data_pin_config;
};
#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.betweenTransferDelayInNanoSec = config->transfer_delay;
master_config.pinCfg = config->data_pin_config;
if (!device_is_ready(config->clock_dev)) {
LOG_ERR("clock control device not ready");
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_PROP(n, transfer_delay)), \
.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 = { \

View file

@ -1,4 +1,4 @@
# Copyright (c) 2018, NXP
# Copyright (c) 2018,2023 NXP
# SPDX-License-Identifier: Apache-2.0
description: NXP i.MX LPSPI controller
@ -34,3 +34,15 @@ properties:
description: |
Delay in nanoseconds from the chip select deassert to the next chip
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.