Skip to content

mtd: spi-nor: add a new framework for SPI NOR

Huang Shijie linux-arm-kernel linux-devicetree linux-mtd linux-spi 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest0 of 7 patches 0 repliesNew
  2. v21 of 4 patches 0 repliesSuperseded

Patches in v4 No applies recorded yet

None of the 7 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [PATCH v4 0/7] mtd: spi-nor: add a new framework for SPI NOR

? 2014?01?17? 16:39, Jagan Teki ??:

Quoted 19 lines · Huang Shijie
Quoted 18 lines · Jagan Teki
Quoted 7 lines
Quoted 7 lines
Quoted 2 lines

My basic question is like I have a qspi spi controller in my SOC and I designed two boards B1 and B2

okay.

Quoted 3 lines

B1 with quad spi controller connected with non-flash as a slave and B2 with quad spi controller connected
with quad flash as a slave.

Quoted 6 lines
Quoted 3 lines

You can use the framework for B2. But for B1, you should not use the framework, since this framework is just for the SPI-NOR. If you do not connected with a NOR, i think it's better to code another driver for your controller.

Means we have two separate controller drivers for same controller one with spi-nor and
another with spi is it?

Take drivers/spi/spi-imx.c for example, if you connect a NOR to it, you only need to add a NOR device node in the device tree. In the probe, it will call the m25p80.c to probe the NOR device.

Quoted 6 lines
Quoted 3 lines

But if we connect other device to it. you should set another device node for it.

I am not sure if your controller driver can works as the spi-imx.c

My question here was - this new framework suggest to write a two different controller
drivers one is for non spi-nor and spi-nor models? do you agree that?

If your controller can either connects to a NOR, or can connects to other devices, it means your controller is a _BUS_.
You just need to write the bus driver for your controller, such as the spi-imx.c and drivers/bus/imx-weim.c do.

Since you have connect a device to your controller. you also need to write a driver for your device, such as the m25p80.c is for your spi nor device.

Just think about that how do you code your driver for SPI NOR _without_ this framework:
do your driver need to call the m25p80.c? if you do call the m25p80.c, you actually write your so-called "two drivers" :)

This framework does not change any logic for the current kernel, except adding a layer. With the new layer, we can code the
driver for the controllers which is a SPI-NOR controller, not a SPI bus controller.

Quoted 5 lines

And also one important note from your design was spi-nor mode is completely bypassing
Linux spi core is that the good idea?

yes. I think it's a good idea.

As Mark even pointed, the freescale's Quadspi controller is not a SPI controller, it is a SPI-NOR controller, it does _not_ need the LINUX SPI core.

thanks
Huang Shijie