[U-Boot] mtd: spi-nor: new NXP FlexSPI driver location & framework to use ?
Prabhakar Kushwaha
prabhakar.kushwaha at nxp.com
Fri May 11 05:38:59 UTC 2018
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 at lists.infradead.org] On Behalf Of Yogesh Gaur
Sent: Wednesday, April 4, 2018 3:36 PM
To: linux-mtd at lists.infradead.org
Cc: boris.brezillon at free-electrons.com; Yogesh Narayan Gaur <yogeshnarayan.gaur at nxp.com>; marek.vasut at gmail.com; frieder.schrempf at exceet.de; Suresh Gupta <suresh.gupta at nxp.com>; cyrille.pitchen at wedev4u.fr; Han Xu <han.xu at nxp.com>; computersforpeace at gmail.com; festevam at 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.infradead.org%2Fmailman%2Flistinfo%2Flinux-mtd%2F&data=02%7C01%7Cprabhakar.kushwaha%40nxp.com%7Cb557330f496845b8dfca08d59a13f8fb%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636584332936008995&sdata=4WB9Fl8nOebX6WirthlEtXC306vjv6Is0ovJc1wHIWU%3D&reserved=0
More information about the U-Boot
mailing list