[PATCH v4 0/7] mtd: spi-nor: add a new framework for SPI NOR
Jagan Teki
jagannadh.teki at gmail.com
Wed Jan 15 14:15:21 EST 2014
Hi,
On Wed, Dec 25, 2013 at 11:20 AM, Huang Shijie <b32955 at freescale.com> wrote:
> 1.) Why add a new framework for SPI NOR?
> The SPI-NOR controller such as Freescale's Quadspi controller is working
> in a different way from the SPI bus. It should knows the NOR commands to
> find the right LUT sequence. Unfortunately, the current code can not meet
> this requirement.
>
> 2.) How does this patch set do?
> This patch set adds a new spi-nor layer.
> Before this patch, the layer is like:
>
> MTD
> ------------------------
> m25p80
> ------------------------
> spi bus driver
> ------------------------
> SPI NOR chip
>
> After this patch, the layer is like:
> MTD
> ------------------------
> spi-nor
> ------------------------
> m25p80
> ------------------------
> spi bus driver
> ------------------------
> SPI NOR chip
>
> With the spi-nor controller driver(Freescale Quadspi), it looks like:
> MTD
> ------------------------
> spi-nor
> ------------------------
> fsl-quadspi
> ------------------------
> SPI NOR chip
I'm new to this thread, may be I'll ask basic questions.
1) what does m25p80 contains with your new framework - will excludes
quad stuff if they add
2) I didn't understand why the controller driver fsl-quadspi will be
in mtd becuase as it's (q)spi driver
may does flash or non-flash functionalities if ie, the case should be
part of drivers/spi/*
3) Can you explain your framework precisely take an example of like
spi_controller_A with spi_flash_A
and qspi_controller_B and qspi_flash_B - how will this new framework operates.
>
> 3.) more details
> This patch set adds a new data structrue spi_nor{}, clones most the common
> code to spi-nor.c. Add spi_nor_xfer_cfg {} for the fundamental primitives:
> read_xfer/write_xfer.
>
> Make the m25p80.c/fsl_quaspi.c use the new APIs.
>
> 4.) Change log:
> v3 --> v4:
> [1] move the wait_till_ready to the @read hook.
> [2] convert to linux-doc style comment.
> [3] remove the some DT property for QuadSPI driver, such as
> "fsl,nor-size".
> [4] others
>
> v2 --> v3:
> [1] add prepare/unprepare hooks for spi_nor{}.
> [2] add a new "priv" field for spi_nor{}.
> [3] add the Freescale Quadspi driver which supports the Quad read by
> default.
>
> v1 --> v2:
> [1] follow Angus's advice, add more hooks and data structrures.
> [2] others.
>
>
> Huang Shijie (7):
> mtd: spi-nor: copy the SPI NOR commands to a new header file
> mtd: spi-nor: add the basic data structures
> mtd: spi-nor: add the framework for SPI NOR
> mtd: m25p80: use the SPI nor framework
> mtd: spi-nor: add a helper to find the spi_device_id
> Documentation: add the binding file for Freescale QuadSPI driver
> mtd: spi-nor: Add Freescale QuadSPI driver
>
> .../devicetree/bindings/mtd/fsl-quadspi.txt | 26 +
> drivers/mtd/Kconfig | 2 +
> drivers/mtd/Makefile | 1 +
> drivers/mtd/devices/Kconfig | 2 +-
> drivers/mtd/devices/m25p80.c | 1275 ++------------------
> drivers/mtd/spi-nor/Kconfig | 12 +
> drivers/mtd/spi-nor/Makefile | 2 +
> drivers/mtd/spi-nor/fsl-quadspi.c | 957 +++++++++++++++
> drivers/mtd/spi-nor/spi-nor.c | 1093 +++++++++++++++++
> include/linux/mtd/spi-nor.h | 194 +++
> 10 files changed, 2387 insertions(+), 1177 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
> create mode 100644 drivers/mtd/spi-nor/Kconfig
> create mode 100644 drivers/mtd/spi-nor/Makefile
> create mode 100644 drivers/mtd/spi-nor/fsl-quadspi.c
> create mode 100644 drivers/mtd/spi-nor/spi-nor.c
> create mode 100644 include/linux/mtd/spi-nor.h
>
--
Thanks,
Jagan.
More information about the linux-arm-kernel
mailing list