spi: rspi: Add support for multiple native chip selects
authorGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 2 Jan 2020 13:38:21 +0000 (14:38 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 7 Jan 2020 22:33:47 +0000 (22:33 +0000)
RSPI variants on some SuperH or R-Mobile SoCs support multiple native
chip selects. Add support for this by configuring the SSL Assert Signal
Setting.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20200102133822.29346-6-geert+renesas@glider.be
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-rspi.c

index 9eabef3..2f5a856 100644 (file)
 #define SPCMD_SPIMOD_DUAL      SPCMD_SPIMOD0
 #define SPCMD_SPIMOD_QUAD      SPCMD_SPIMOD1
 #define SPCMD_SPRW             0x0010  /* SPI Read/Write Access (Dual/Quad) */
-#define SPCMD_SSLA_MASK                0x0030  /* SSL Assert Signal Setting (RSPI) */
+#define SPCMD_SSLA(i)          ((i) << 4)      /* SSL Assert Signal Setting */
 #define SPCMD_BRDV_MASK                0x000c  /* Bit Rate Division Setting */
 #define SPCMD_CPOL             0x0002  /* Clock Polarity Setting */
 #define SPCMD_CPHA             0x0001  /* Clock Phase Setting */
@@ -933,6 +933,9 @@ static int rspi_prepare_message(struct spi_controller *ctlr,
        if (spi->mode & SPI_CPHA)
                rspi->spcmd |= SPCMD_CPHA;
 
+       /* Configure slave signal to assert */
+       rspi->spcmd |= SPCMD_SSLA(spi->chip_select);
+
        /* CMOS output mode and MOSI signal from previous transfer */
        rspi->sppcr = 0;
        if (spi->mode & SPI_LOOP)