Commit 2c1b7bbe authored by Amit Kumar Mahapatra's avatar Amit Kumar Mahapatra Committed by Mark Brown

spi: Fix SPI slave probe failure

While adding a SPI device, the SPI core ensures that multiple logical CS
doesn't map to the same physical CS. For example, spi->chip_select[0] !=
spi->chip_select[1] and so forth. However, unlike the SPI master, the SPI
slave doesn't have the list of chip selects, this leads to probe failure
when the SPI controller is configured as slave. Update the
__spi_add_device() function to perform this check only if the SPI
controller is configured as master.

Fixes: 4d8ff6b0 ("spi: Add multi-cs memories support in SPI core")
Signed-off-by: default avatarAmit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Link: https://msgid.link/r/20240617153052.26636-1-amit.kumar-mahapatra@amd.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent d6a711a8
...@@ -689,10 +689,12 @@ static int __spi_add_device(struct spi_device *spi) ...@@ -689,10 +689,12 @@ static int __spi_add_device(struct spi_device *spi)
* Make sure that multiple logical CS doesn't map to the same physical CS. * Make sure that multiple logical CS doesn't map to the same physical CS.
* For example, spi->chip_select[0] != spi->chip_select[1] and so on. * For example, spi->chip_select[0] != spi->chip_select[1] and so on.
*/ */
for (idx = 0; idx < SPI_CS_CNT_MAX; idx++) { if (!spi_controller_is_target(ctlr)) {
status = spi_dev_check_cs(dev, spi, idx, spi, idx + 1); for (idx = 0; idx < SPI_CS_CNT_MAX; idx++) {
if (status) status = spi_dev_check_cs(dev, spi, idx, spi, idx + 1);
return status; if (status)
return status;
}
} }
/* Set the bus ID string */ /* Set the bus ID string */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment