Commit 004f15b6000e220b74433b190e60805ce8776d92

Authored by Poddar, Sourav
Committed by Jagannadha Sutradharudu Teki
1 parent 62d206dc31

sf: Add memory mapped read support

Qspi controller can have a memory mapped port which can be used for
data read. Added support to enable memory mapped port read.

This patch enables the following:
- It enables exchange of memory map address between mtd and qspi
through the introduction of "memory_map" flag.
- Add support to communicate to the driver that memory mapped
 transfer is to be started through introduction of new flags like
"SPI_XFER_MEM_MAP" and "SPI_XFER_MEM_MAP_END".

This will enable the spi controller to do memory mapped configurations
if required.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>

Showing 3 changed files with 6 additions and 0 deletions Side-by-side Diff

drivers/mtd/spi/sf_ops.c
... ... @@ -269,7 +269,9 @@
269 269  
270 270 /* Handle memory-mapped SPI */
271 271 if (flash->memory_map) {
  272 + spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP);
272 273 memcpy(data, flash->memory_map + offset, len);
  274 + spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP_END);
273 275 return 0;
274 276 }
275 277  
drivers/mtd/spi/sf_probe.c
... ... @@ -203,6 +203,7 @@
203 203 flash->page_size = (ext_jedec == 0x4d00) ? 512 : 256;
204 204 flash->sector_size = params->sector_size;
205 205 flash->size = flash->sector_size * params->nr_sectors;
  206 + flash->memory_map = spi->memory_map;
206 207  
207 208 /* Compute erase sector and command */
208 209 if (params->flags & SECT_4K) {
... ... @@ -27,6 +27,8 @@
27 27 /* SPI transfer flags */
28 28 #define SPI_XFER_BEGIN 0x01 /* Assert CS before transfer */
29 29 #define SPI_XFER_END 0x02 /* Deassert CS after transfer */
  30 +#define SPI_XFER_MMAP 0x08 /* Memory Mapped start */
  31 +#define SPI_XFER_MMAP_END 0x10 /* Memory Mapped End */
30 32  
31 33 /* Header byte that marks the start of the message */
32 34 #define SPI_PREAMBLE_END_BYTE 0xec
... ... @@ -46,6 +48,7 @@
46 48 unsigned int bus;
47 49 unsigned int cs;
48 50 unsigned int max_write_size;
  51 + void *memory_map;
49 52 };
50 53  
51 54 /**