• Vignesh R's avatar
    spi: spi-ti-qspi: add mmap mode read support · 4dea6c9b
    Vignesh R authored
    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: default avatarVignesh R <vigneshr@ti.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    4dea6c9b
spi-ti-qspi.c 15.5 KB