diff options
author | Qipan Li <Qipan.Li@csr.com> | 2014-09-02 17:02:34 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-04 23:37:23 +0100 |
commit | 810a58b0256b24f194dda5ca1e705204ca703f7b (patch) | |
tree | 1367104413c64322be9636aca122df7b0dd4d4c1 /drivers/spi/spi-sirf.c | |
parent | f2a08b404691ef3e7be6ce81c185335cfc68b6db (diff) | |
download | linux-810a58b0256b24f194dda5ca1e705204ca703f7b.tar.gz linux-810a58b0256b24f194dda5ca1e705204ca703f7b.tar.bz2 linux-810a58b0256b24f194dda5ca1e705204ca703f7b.zip |
spi: sirf: add fifo reset/start for cmd transfer
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>
Diffstat (limited to 'drivers/spi/spi-sirf.c')
-rw-r--r-- | drivers/spi/spi-sirf.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/spi/spi-sirf.c b/drivers/spi/spi-sirf.c index 1a5161336730..6f0602fd7401 100644 --- a/drivers/spi/spi-sirf.c +++ b/drivers/spi/spi-sirf.c @@ -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) >> |