mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
spi: a3700: Allow to enable or disable FIFO mode
The armada 3700 SPI controller allows to make transfers without using the 32 bytes RFIFO and WFIFO. This commit enable switching between FIFO and non-FIFO mode, which is necessary to implement full-duplex transfers. Signed-off-by: Maxime Chevallier <maxime.chevallier@smile.fr> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
abf3a49e50
commit
a456c9320d
@ -185,12 +185,15 @@ static int a3700_spi_pin_mode_set(struct a3700_spi *a3700_spi,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void a3700_spi_fifo_mode_set(struct a3700_spi *a3700_spi)
|
||||
static void a3700_spi_fifo_mode_set(struct a3700_spi *a3700_spi, bool enable)
|
||||
{
|
||||
u32 val;
|
||||
|
||||
val = spireg_read(a3700_spi, A3700_SPI_IF_CFG_REG);
|
||||
val |= A3700_SPI_FIFO_MODE;
|
||||
if (enable)
|
||||
val |= A3700_SPI_FIFO_MODE;
|
||||
else
|
||||
val &= ~A3700_SPI_FIFO_MODE;
|
||||
spireg_write(a3700_spi, A3700_SPI_IF_CFG_REG, val);
|
||||
}
|
||||
|
||||
@ -291,7 +294,7 @@ static int a3700_spi_init(struct a3700_spi *a3700_spi)
|
||||
a3700_spi_deactivate_cs(a3700_spi, i);
|
||||
|
||||
/* Enable FIFO mode */
|
||||
a3700_spi_fifo_mode_set(a3700_spi);
|
||||
a3700_spi_fifo_mode_set(a3700_spi, true);
|
||||
|
||||
/* Set SPI mode */
|
||||
a3700_spi_mode_set(a3700_spi, master->mode_bits);
|
||||
|
Loading…
Reference in New Issue
Block a user