Re: [PATCH 0/7] spi: spi-mem: Add a driver for NXP FlexSPI controller

From: Boris Brezillon
Date: Tue Sep 04 2018 - 08:43:34 EST


Hi Yogesh,

On Fri, 31 Aug 2018 15:59:57 +0530
Yogesh Gaur <yogeshnarayan.gaur@xxxxxxx> wrote:

> - Add a driver for NXP FlexSPI host controller
>
> FlexSPI is a flexsible SPI host controller [1], Chapter 30 page 1475,
> which supports two SPI channels and up to 4 external devices.
> Each channel supports Single/Dual/Quad/Octal mode data transfer (1/2/4/8 bidirectional data lines)
> i.e. FlexSPI acts as an interface to external devices, maximum 4, each with up to 8
> bidirectional data lines.
>
> FlexSPI controller is similar to the existing Freescale/NXP QuadSPI
> controller with advanced features.
>
> - Tested this driver with mtd_debug(Erase/Write/Read) utility and JFFS2
> filesystem mounting and booting on NXP LX2160ARDB[2] and LX2160AQDS targets.
> LX2160ARDB is having two NOR slave device connected on single bus A
> i.e. A0 and A1 (CS0 and CS1).
> LX2160AQDS is having two NOR slave device connected on separate buses
> one flash on A0 and second on B1 i.e. (CS0 and CS3).
> Verified this driver on following SPI NOR flashes:
> Micron, mt35xu512aba[3], [Read - 1 bit mode]
> Cypress, s25fl512s, [Read - 1/2/4 bit mode]
>
> Patch 1 adds variable size in spi_device struct, to save the
> size of connected slave device.
> Patch 2 adds flags for octal I/O data transfer.
> Support for octal flash commands and other framework changes would going to be done in different
> patch set.
> Patch 3 adds a driver for the NXP FlexSPI controller, driver is based on
> new spi-mem framework.

Can we please omit octa mode support for now and focus on
single/dual/quad SPI support? That is, drop patch 2, and do not set the
OCTAL flags in patch 3.

Regards,

Boris

> Patch 4 add binding file for this driver.
> Patch 5 add device node property for FlexSPI driver for lx2160 SoC.
> Patch 6 enables the config option.
> Patch 7 add MAINTAINERS file.
>
> [1] https://www.nxp.com/docs/en/reference-manual/IMXRT1050RM.pdf
> [2] https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=9721
> [3] https://patchwork.ozlabs.org/project/linux-mtd/list/?series=63445
>
> This series adds below patches:
> Yogesh Gaur (7):
> spi: add slave device size in spi_device struct
> spi: add flags for octal I/O data transfer
> spi: spi-mem: Add a driver for NXP FlexSPI controller
> dt-bindings: spi: add binding file for NXP FlexSPI driver
> arm64: dts: lx2160a: add fspi node property
> arm64: defconfig: enable NXP FlexSPI driver
> MAINTAINERS: add maintainers for the NXP FlexSPI driver
>
> .../devicetree/bindings/spi/spi-nxp-fspi.txt | 42 +
> MAINTAINERS | 6 +
> arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts | 21 +
> arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 12 +
> arch/arm64/configs/defconfig | 1 +
> drivers/mtd/devices/m25p80.c | 6 +
> drivers/mtd/spi-nor/spi-nor.c | 2 +
> drivers/spi/Kconfig | 10 +
> drivers/spi/Makefile | 1 +
> drivers/spi/spi-nxp-fspi.c | 1242 ++++++++++++++++++++
> include/linux/spi/spi.h | 4 +
> 11 files changed, 1347 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
> create mode 100644 drivers/spi/spi-nxp-fspi.c
>