spi: rockchip: support lsb-first mode
authorEmil Renner Berthing <kernel@esmil.dk>
Wed, 31 Oct 2018 10:57:11 +0000 (11:57 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 5 Nov 2018 11:42:43 +0000 (11:42 +0000)
Add missing support for lsb-first mode.

Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-rockchip.c

index 9e47e81553a1f9817173c1115bd55d520fe35bc1..3912526ead6641067e189a825c9df8ebf8faabfc 100644 (file)
@@ -476,6 +476,8 @@ static void rockchip_spi_config(struct rockchip_spi *rs,
 
        cr0 |= rs->rsd << CR0_RSD_OFFSET;
        cr0 |= (spi->mode & 0x3U) << CR0_SCPH_OFFSET;
+       if (spi->mode & SPI_LSB_FIRST)
+               cr0 |= CR0_FBM_LSB << CR0_FBM_OFFSET;
 
        if (xfer->rx_buf && xfer->tx_buf)
                cr0 |= CR0_XFM_TR << CR0_XFM_OFFSET;
@@ -681,7 +683,7 @@ static int rockchip_spi_probe(struct platform_device *pdev)
 
        master->auto_runtime_pm = true;
        master->bus_num = pdev->id;
-       master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP;
+       master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP | SPI_LSB_FIRST;
        master->num_chipselect = ROCKCHIP_SPI_MAX_CS_NUM;
        master->dev.of_node = pdev->dev.of_node;
        master->bits_per_word_mask = SPI_BPW_MASK(16) | SPI_BPW_MASK(8) | SPI_BPW_MASK(4);