Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755586AbbG1InV (ORCPT ); Tue, 28 Jul 2015 04:43:21 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:32962 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752397AbbG1InN (ORCPT ); Tue, 28 Jul 2015 04:43:13 -0400 From: Vignesh R To: Mark Brown , David Woodhouse , Brian Norris , Tony Lindgren , Russell King CC: Huang Shijie , Vignesh R , , , , , , Subject: [RFC PATCH 0/5] Add memory mapped read support for TI QSPI. Date: Tue, 28 Jul 2015 14:11:11 +0530 Message-ID: <1438072876-16338-1-git-send-email-vigneshr@ti.com> X-Mailer: git-send-email 2.4.6 MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2165 Lines: 51 This patch series adds support for memory mapped reads for TI QSPI driver. TI QSPI controller has memory mapped port (SFI translator interface [1]) through which SPI flash memories can be read using memcpy call. SFI translator takes care of generating appropriate SPI signals to read data from flash. This interface works only with SPI flash memories and cannot be used with other SPI devices. To use memory mapped port, the controller is switched to memory mapped interface by writing to QSPI_SPI_SWITCH_REG. The read_opcode, read mode, dummy bytes are set in QSPI_SPI_SETUPx_REG. Once switched, the SPI flash is available to SoC to read at specific address. This interface is disabled once memory mapped read is complete. For write, erase and interaction with non-flash SPI devices normal SPI interface is used. The m25p80 driver sets use_mmap_read flag in spi-message struct passed to spi-ti-qspi so as to indicate the read request is from mtd layer. spi-ti-qspi driver switches to memory mapped mode and does memcpy based on use_mmap_read flag. The read performace increased from ~100kB/s to ~2.5MB/s on DRA74 EVM. Tested on DRA74 EVM with spansion S25FL256S flash. Tested on AM437x sk evm with macronix MX66l51235l flash. [1] http://www.ti.com/lit/ug/spruhz6/spruhz6.pdf Section 24.5.4 QSPI Functional Description Vignesh R (5): spi: introduce flag for memory mapped read spi: spi-ti-qspi: Add memory mapped read support mtd: devices: m25p80: set flag to request memory mapped read ARM: dts: DRA7: Add memory map region entries for qspi ARM: dts: AM4372: Add memory map region entries for qspi arch/arm/boot/dts/am4372.dtsi | 4 +- arch/arm/boot/dts/dra7.dtsi | 6 +- drivers/mtd/devices/m25p80.c | 3 + drivers/spi/spi-ti-qspi.c | 129 ++++++++++++++++++++++++++++++++++++++++-- include/linux/spi/spi.h | 3 + 5 files changed, 138 insertions(+), 7 deletions(-) -- 2.4.6 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/