spi: spi-imx: set max_native_cs for imx51/imx53/imx6 variants

The ecspi IP block on imx51/imx53/imx6 have four native chip
selects. Tell that to the spi core so that any non-gpio chip selects
get validated against that upper bound.

Also set the SPI_MASTER_GPIO_SS so that the core verifies that, in the
case where both native and gpio chip selects are in use, there is at
least one leftover native chip select (or "channel", in the ecspi
language) for use by the slaves sitting on gpio chip selects.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Link: https://lore.kernel.org/r/20230425134527.483607-3-linux@rasmusvillemoes.dk
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Rasmus Villemoes 2023-04-25 15:45:26 +02:00 committed by Mark Brown
parent d9032b3045
commit 8ce1bb9a59
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1761,6 +1761,11 @@ static int spi_imx_probe(struct platform_device *pdev)
*/
controller->mode_bits |= SPI_CS_WORD;
if (is_imx51_ecspi(spi_imx) || is_imx53_ecspi(spi_imx)) {
controller->max_native_cs = 4;
controller->flags |= SPI_MASTER_GPIO_SS;
}
spi_imx->spi_drctl = spi_drctl;
init_completion(&spi_imx->xfer_done);