The chip select polarity flag is declared as supported
but is not handled in the code.

Signed-off-by: Sergey Suloev <ssul...@orpaltech.com>
---
 drivers/spi/spi-sun6i.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/spi/spi-sun6i.c b/drivers/spi/spi-sun6i.c
index 88ad45e..78acc1f 100644
--- a/drivers/spi/spi-sun6i.c
+++ b/drivers/spi/spi-sun6i.c
@@ -193,6 +193,12 @@ static void sun6i_spi_set_cs(struct spi_device *spi, bool 
enable)
        else
                reg &= ~SUN6I_TFR_CTL_CS_LEVEL;
 
+       /* Handle chip select "reverse" polarity */
+       if (spi->mode & SPI_CS_HIGH)
+               reg &= ~SUN6I_TFR_CTL_SPOL;
+       else
+               reg |= SUN6I_TFR_CTL_SPOL;
+
        /* We want to control the chip select manually */
        reg |= SUN6I_TFR_CTL_CS_MANUAL;
 
-- 
2.16.2

Reply via email to