Commit 6046f540 authored by Linus Walleij's avatar Linus Walleij Committed by Mark Brown

spi: cadence: Fix default polarity of native chipselect

The Cadence controller also supports platforms specifying
native chipselects. When I enforce the use of high CS
for drivers opting in for using GPIO descriptors, I
inadvertedly switched the driver to also use active
high chip select for native chip selects.

Fix this by inverting the logic in the callback for the
native chip select. Rename the parameter from "is_high"
(which is interpreted as being high when 0, which is
confusing, I will not make any drug-related jokes here)
to "enabled" which is more intuitive, especially now that
it is true when CS is supposed to be enabled.

Cc: Wei Yongjun <weiyongjun1@huawei.com>
Fixes: cfeefa79 ("spi: cadence: Convert to use CS GPIO descriptors")
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6e0a32d6
...@@ -172,16 +172,16 @@ static void cdns_spi_init_hw(struct cdns_spi *xspi) ...@@ -172,16 +172,16 @@ static void cdns_spi_init_hw(struct cdns_spi *xspi)
/** /**
* cdns_spi_chipselect - Select or deselect the chip select line * cdns_spi_chipselect - Select or deselect the chip select line
* @spi: Pointer to the spi_device structure * @spi: Pointer to the spi_device structure
* @is_high: Select(0) or deselect (1) the chip select line * @enable: Select (1) or deselect (0) the chip select line
*/ */
static void cdns_spi_chipselect(struct spi_device *spi, bool is_high) static void cdns_spi_chipselect(struct spi_device *spi, bool enable)
{ {
struct cdns_spi *xspi = spi_master_get_devdata(spi->master); struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
u32 ctrl_reg; u32 ctrl_reg;
ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR); ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR);
if (is_high) { if (!enable) {
/* Deselect the slave */ /* Deselect the slave */
ctrl_reg |= CDNS_SPI_CR_SSCTRL; ctrl_reg |= CDNS_SPI_CR_SSCTRL;
} else { } else {
......
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