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

Jagan Teki jagannadh.teki at gmail.com
Thu Jan 16 04:39:13 EST 2014


Hi Huang Shijie,

Thanks for your response, please see below.

On Thu, Jan 16, 2014 at 2:41 PM, Huang Shijie <b32955 at freescale.com> wrote:
> 于 2014年01月16日 03:15, Jagan Teki 写道:
>
>> 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

Just for looking on your new framework, is that above link correct.
I guess it should be MTD -- m25p80 -- spi-nor -- spi bus driver -- SPI NOR chip

Because m25p80 will register to mtd core on top and will call spi core
data transfer.

Correct me if am wrong.

>>>
>>>    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
>
> sorry, i do not understand your meaning.
>
> do you think the m25p80 can not support the quad read after this patch set?
>
>
>
>> 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/*
>
> Please read this thread, Mark though it should be spi nor driver:
>
> http://marc.info/?l=linux-arm-kernel&m=137782885415953&w=2
>
>> 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.
>>
> The framework is just cloned from the m25p80.c, and extract the common code,
> and provides more
> hooks such as
>
> @prepare/unpreare: used to do some work before or after the
>              read/write/erase/lock/unlock.
>     @read_xfer/write_xfer: We can use these two hooks to code all
>              the following hooks if the driver tries to implement them
>              by itself.
>     @read_reg: used to read the registers, such as read status register,
>              read configure register.
>     @write_reg: used to write the registers, such as write enable,
>              erase sector.
>     @read_id: read out the ID info.
>     @wait_till_ready: wait till the NOR becomes ready.
>     @read: read out the data from the NOR.
>     @write: write data to the NOR.
>     @erase: erase a sector of the NOR.
>

My basic question is like I have a qspi spi controller in my SOC and I
designed two boards B1 and B2
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.

Now please tell me how your framework works in this case? how many
drivers do I need to right
and call traces.

-- 
Thanks,
Jagan.



More information about the linux-arm-kernel mailing list