]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
spi: sirf: add fifo reset/start for cmd transfer
authorQipan Li <Qipan.Li@csr.com>
Tue, 2 Sep 2014 09:02:34 +0000 (17:02 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 4 Sep 2014 22:37:23 +0000 (23:37 +0100)
for command mode spi transfer, HW spec requires to do fifo reset work to
clear FIFO status.

Signed-off-by: Qipan Li <Qipan.Li@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-sirf.c

index 1a5161336730137498443ad47b573ba1a0605dff..6f0602fd74012f298467397f0aca2d15709a5d15 100644 (file)
@@ -312,6 +312,8 @@ static int spi_sirfsoc_cmd_transfer(struct spi_device *spi,
        u32 cmd;
 
        sspi = spi_master_get_devdata(spi->master);
+       writel(SIRFSOC_SPI_FIFO_RESET, sspi->base + SIRFSOC_SPI_TXFIFO_OP);
+       writel(SIRFSOC_SPI_FIFO_START, sspi->base + SIRFSOC_SPI_TXFIFO_OP);
        memcpy(&cmd, sspi->tx, t->len);
        if (sspi->word_width == 1 && !(spi->mode & SPI_LSB_FIRST))
                cmd = cpu_to_be32(cmd) >>