
Dear Jagan,
NXP is coming up with new FlexSPI controller. It is similar to existing QSPI with enhanced feature-set. We have the driver ready as per existing framework i.e. driver/spi.
From recend discussion, we go to know about framework change. Migration of qspi drivers in u-boot-spi/drivers/mtd/spi-nor/
git://git.denx.de/u-boot-spi.git branch mtd-spinor-working.
We are in dilemma for sending FlexSPI driver upstream. Do we follow existing framework i.e. driver/spi or new proposed framework i.e. u-boot-spi/drivers/mtd/spi-nor/
Also, do we have any timeline of u-boot-spi/drivers/mtd/spi-nor/ to become default.
We have sent RFC version in Linux upstream for review. Please refer below
Regards, Prabhakar
-----Original Message----- From: linux-mtd [mailto:linux-mtd-bounces@lists.infradead.org] On Behalf Of Yogesh Gaur Sent: Wednesday, April 4, 2018 3:36 PM To: linux-mtd@lists.infradead.org Cc: boris.brezillon@free-electrons.com; Yogesh Narayan Gaur yogeshnarayan.gaur@nxp.com; marek.vasut@gmail.com; frieder.schrempf@exceet.de; Suresh Gupta suresh.gupta@nxp.com; cyrille.pitchen@wedev4u.fr; Han Xu han.xu@nxp.com; computersforpeace@gmail.com; festevam@gmail.com Subject: [RFC PATCH 0/4] mtd: spi-nor: Add NXP FlexSPI driver
Add NXP FlexSPI driver
NXP uses FlexSPI controller. The FlexSPI(Flex Serial Peripheral controller) acts as an interface to external serial flash devices, maximum 4, each with upto 8 bidirectional data lines.
(1) The FlexSPI controller is driven by the LUT(Look-up Table) registers. The LUT registers are a look-up-table for sequences of instructions. A valid sequence consists of four LUT registers.
(2) The definition of the LUT register shows below: --------------------------------------------------- | INSTR1 | PAD1 | OPRND1 | INSTR0 | PAD0 | OPRND0 | ---------------------------------------------------
There are several types of INSTRx, such as: CMD : the SPI NOR command. ADDR : the address for the SPI NOR command. DUMMY : the dummy cycles needed by the SPI NOR command. ....
There are several types of PADx, such as: PAD1 : use single I/O line. PAD2 : use dual I/O lines. PAD4 : use quad I/O lines. PAD8 : use octal I/O lines. ....
(3) LUTs are being created at run-time based on the commands passed from the spi-nor framework.
(4) Mode [single, dual, quad or octal] bit information derived from device tree by parsing spi-rx-bus-width and spi-tx-bus-width property.
(5) Tested this driver with the mtd_debug utility on NXP LX2160 emulator platform.
This series added below patches: - Added entry for mt35xu512aba NOR flash in spi_nor_ids table - Add flags for Octal I/O data transfer in spi/spi.h - Add binding file for NXP FlexSPI driver - Add NXP FlexSPI driver in mtd interface
Yogesh Gaur (4): mtd: spi-nor: Add entry for mt35xu512aba flash spi: add flags for octal I/O data transfer dt-bindings: Add binding file for NXP FlexSPI driver mtd: spi-nor: Add NXP FlexSPI driver
.../devicetree/bindings/mtd/nxp-flexspi.txt | 40 + MAINTAINERS | 7 + drivers/mtd/spi-nor/Kconfig | 7 + drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/nxp-flexspi.c | 1508 ++++++++++++++++++++ drivers/mtd/spi-nor/spi-nor.c | 7 +- include/linux/mtd/cfi.h | 1 + include/linux/mtd/spi-nor.h | 1 + include/linux/spi/spi.h | 2 + 9 files changed, 1573 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/mtd/nxp-flexspi.txt create mode 100644 drivers/mtd/spi-nor/nxp-flexspi.c
-- 1.9.1
______________________________________________________ Linux MTD discussion mailing list https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.infr...