[RFC PATCH 0/4] mtd: spi-nor: Add NXP FlexSPI driver

Yogesh Gaur yogeshnarayan.gaur at nxp.com
Wed Apr 4 03:06:07 PDT 2018

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


More information about the linux-mtd mailing list