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

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
...@@ -2279,6 +2279,11 @@ int spi_register_controller(struct spi_controller *ctlr) ...@@ -2279,6 +2279,11 @@ int spi_register_controller(struct spi_controller *ctlr)
status = spi_get_gpio_descs(ctlr); status = spi_get_gpio_descs(ctlr);
if (status) if (status)
return status; return status;
/*
* A controller using GPIO descriptors always
* supports SPI_CS_HIGH if need be.
*/
ctlr->mode_bits |= SPI_CS_HIGH;
} else { } else {
/* Legacy code path for GPIOs from DT */ /* Legacy code path for GPIOs from DT */
status = of_spi_register_master(ctlr); status = of_spi_register_master(ctlr);
......
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