Unverified Commit 2df201e0 authored by Linus Walleij's avatar Linus Walleij Committed by Mark Brown
Browse files

spi: Support high CS when using descriptors



All controllers using GPIO descriptors can by definition
support high CS connections, so just enforce this when
registering an SPI controller.

This fixes a regression where controllers were missing
SPI_CS_HIGH, the drivers would fail like this:

spi spi0.0: setup: unsupported mode bits 4
cdns-spi fd0b0000.spi: can't setup spi0.0, status -22

This is because as using descriptors moves the CS inversion
logic over to gpiolib, all such controllers are registered
with CS active high.

Cc: Jan Kotas <jank@cadence.com>
Reported-by: default avatarJan Kotas <jank@cadence.com>
Tested-by: default avatarJan Kotas <jank@cadence.com>
Fixes: f3186dd8 ("spi: Optionally use GPIO descriptors for CS GPIOs")
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f0125f1a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2279,6 +2279,11 @@ int spi_register_controller(struct spi_controller *ctlr)
			status = spi_get_gpio_descs(ctlr);
			if (status)
				return status;
			/*
			 * A controller using GPIO descriptors always
			 * supports SPI_CS_HIGH if need be.
			 */
			ctlr->mode_bits |= SPI_CS_HIGH;
		} else {
			/* Legacy code path for GPIOs from DT */
			status = of_spi_register_master(ctlr);