spi: rspi: Add support for LSB-first word order
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 18 Feb 2020 10:58:09 +0000 (11:58 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 19 Feb 2020 00:08:24 +0000 (00:08 +0000)
All RSPI variants support selecting the word order.
Advertize support for LSB-first order, and act upon the flag being set.

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

index 7a1e6d5..aef05f2 100644 (file)
@@ -933,6 +933,8 @@ static int rspi_prepare_message(struct spi_controller *ctlr,
                rspi->spcmd |= SPCMD_CPOL;
        if (spi->mode & SPI_CPHA)
                rspi->spcmd |= SPCMD_CPHA;
+       if (spi->mode & SPI_LSB_FIRST)
+               rspi->spcmd |= SPCMD_LSBF;
 
        /* Configure slave signal to assert */
        rspi->spcmd |= SPCMD_SSLA(spi->cs_gpiod ? rspi->ctlr->unused_native_cs
@@ -1255,7 +1257,8 @@ static int rspi_probe(struct platform_device *pdev)
        ctlr->transfer_one = ops->transfer_one;
        ctlr->prepare_message = rspi_prepare_message;
        ctlr->unprepare_message = rspi_unprepare_message;
-       ctlr->mode_bits = SPI_CPHA | SPI_CPOL | SPI_LOOP | ops->extra_mode_bits;
+       ctlr->mode_bits = SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST | SPI_LOOP |
+                         ops->extra_mode_bits;
        ctlr->flags = ops->flags;
        ctlr->dev.of_node = pdev->dev.of_node;
        ctlr->use_gpio_descriptors = true;