Skip to content

Commit 7fc9c26

Browse files
ofirshefabiobaltieri
authored andcommitted
drivers: spi_nxp_lpspi: Fix slave select and add pcsActiveHighOrLow
1. Set correct slave chip select instead of hardcoding to pcs 0. 2. Add pcsActiveHighOrLow configuration for handling active-high/low CS. Signed-off-by: Ofir Shemesh <[email protected]>
1 parent 183b74c commit 7fc9c26

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/spi/spi_nxp_lpspi/spi_nxp_lpspi_common.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ int spi_mcux_configure(const struct device *dev, const struct spi_config *spi_cf
5656
return -EINVAL;
5757
}
5858

59-
if (spi_cfg->slave > LPSPI_CHIP_SELECT_COUNT) {
59+
if (spi_cfg->slave > (LPSPI_CHIP_SELECT_COUNT - 1)) {
6060
LOG_ERR("Peripheral %d select exceeds max %d", spi_cfg->slave,
6161
LPSPI_CHIP_SELECT_COUNT - 1);
6262
return -EINVAL;
@@ -103,6 +103,9 @@ int spi_mcux_configure(const struct device *dev, const struct spi_config *spi_cf
103103
master_config.pcsToSckDelayInNanoSec = config->pcs_sck_delay;
104104
master_config.lastSckToPcsDelayInNanoSec = config->sck_pcs_delay;
105105
master_config.betweenTransferDelayInNanoSec = config->transfer_delay;
106+
master_config.whichPcs = spi_cfg->slave + kLPSPI_Pcs0;
107+
master_config.pcsActiveHighOrLow = (spi_cfg->operation & SPI_CS_ACTIVE_HIGH)
108+
? kLPSPI_PcsActiveHigh : kLPSPI_PcsActiveLow;
106109
master_config.pinCfg = config->data_pin_config;
107110
master_config.dataOutConfig = config->output_config ? kLpspiDataOutTristate :
108111
kLpspiDataOutRetained;

0 commit comments

Comments
 (0)