spi: spi-ti-qspi: add mmap mode read support
authorVignesh R <vigneshr@ti.com>
Fri, 11 Dec 2015 04:09:57 +0000 (09:39 +0530)
committerMark Brown <broonie@kernel.org>
Tue, 9 Feb 2016 19:34:43 +0000 (19:34 +0000)
commit4dea6c9b0b64fc4cbd543b5a3b6320218be8ca9c
tree0f0a7b1b097a62a59583f225c4fcf3af407c2aea
parent556351f14e74db4cd3ddde386457edce7bf0b27f
spi: spi-ti-qspi: add mmap mode read support

ti-qspi controller provides mmap port to read data from SPI flashes.
mmap port is enabled in QSPI_SPI_SWITCH_REG. ctrl module register may
also need to be accessed for some SoCs. The QSPI_SPI_SETUP_REGx needs to
be populated with flash specific information like read opcode, read
mode(quad, dual, normal), address width and dummy bytes. Once,
controller is in mmap mode, the whole flash memory is available as a
memory region at SoC specific address. This region can be accessed using
normal memcpy() (or mem-to-mem dma copy). The ti-qspi controller hardware
will internally communicate with SPI flash over SPI bus and get the
requested data.

Implement spi_flash_read() callback to support mmap read over SPI
flash devices. With this, the read throughput increases from ~100kB/s to
~2.5 MB/s.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-ti-qspi.c