Patchwork [PATCHv3,0/2] m25p80: QUAD read support + cleanup.

login
register
mail settings
Submitter Poddar, Sourav
Date Nov. 8, 2013, 4:24 a.m.
Message ID <527C677E.1030404@ti.com>
Download mbox | patch
Permalink /patch/289691/
State New
Headers show

Comments

Poddar, Sourav - Nov. 8, 2013, 4:24 a.m.
Hi Brian,
On Thursday 07 November 2013 11:59 PM, Brian Norris wrote:
> + Huang
>
> On Wed, Nov 06, 2013 at 08:05:33PM +0530, Sourav Poddar wrote:
>> Patch series does the following:
>> 1. Cleanup the m25p80 driver to convert bool check for
>>     read into an enum. This will help adding more read
>>     commands into the driver easily.
>>
>> 2. Add quad read support for spansion and macronix flash devices.
> Do we have any testing results? I know that some QSPI controllers still
> need some more work to be able to support this, but has someone tested
> this current patch set with a "true" SPI controller on mainline?
>
I have tested this with a 3.12-rc6  based internal kernel(as dt patches 
are not in).
  You can check the controller at drivers/spi/spi-ti-qspi.c. From driver 
perspective, there
is an additional patch[1] required, it was pulled in by Mark, and I can 
see it in his tree.
Testing details:
flash_erase the entire chip
mtd write the flash with a particular pattern
mtd read the flash

> Bri
> an
Poddar, Sourav - Nov. 8, 2013, 12:47 p.m.
On Friday 08 November 2013 09:54 AM, Sourav Poddar wrote:
> Hi Brian,
> On Thursday 07 November 2013 11:59 PM, Brian Norris wrote:
>> + Huang
>>
>> On Wed, Nov 06, 2013 at 08:05:33PM +0530, Sourav Poddar wrote:
>>> Patch series does the following:
>>> 1. Cleanup the m25p80 driver to convert bool check for
>>>     read into an enum. This will help adding more read
>>>     commands into the driver easily.
>>>
>>> 2. Add quad read support for spansion and macronix flash devices.
>> Do we have any testing results? I know that some QSPI controllers still
>> need some more work to be able to support this, but has someone tested
>> this current patch set with a "true" SPI controller on mainline?
>>
> I have tested this with a 3.12-rc6  based internal kernel(as dt 
> patches are not in).
>  You can check the controller at drivers/spi/spi-ti-qspi.c. From 
> driver perspective, there
> is an additional patch[1] required, it was pulled in by Mark, and I 
> can see it in his tree.
> Testing details:
> flash_erase the entire chip
> mtd write the flash with a particular pattern
> mtd read the flash
> diff the write and the read value.
>
Just to add more info:
I have tested this on
1. DRA7xx having Spansion S25FL256S flash
2. AM43xx having Macronix MX66L51235F
> [1]:
> Add dual/quad read mode bit flag for the master controller.
> These check will be used in the spi framework to determine
> whether the master controller can do dual/quad read respectively.
>
> Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
> ---
> v1->v2
> Added dual mode bit also.
>  drivers/spi/spi-ti-qspi.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
> index e12d962..7a45c3e 100644
> --- a/drivers/spi/spi-ti-qspi.c
> +++ b/drivers/spi/spi-ti-qspi.c
> @@ -472,7 +472,7 @@ static int ti_qspi_probe(struct platform_device 
> *pdev)
>      if (!master)
>          return -ENOMEM;
>
> -    master->mode_bits = SPI_CPOL | SPI_CPHA;
> +    master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_RX_DUAL | SPI_RX_QUAD;
>
>      master->bus_num = -1;
>      master->flags = SPI_MASTER_HALF_DUPLEX;
>
>> Bri
>> an
>

Patch

diff the write and the read value.

[1]:
Add dual/quad read mode bit flag for the master controller.
These check will be used in the spi framework to determine
whether the master controller can do dual/quad read respectively.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
---
v1->v2
Added dual mode bit also.
  drivers/spi/spi-ti-qspi.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
index e12d962..7a45c3e 100644
--- a/drivers/spi/spi-ti-qspi.c
+++ b/drivers/spi/spi-ti-qspi.c
@@ -472,7 +472,7 @@  static int ti_qspi_probe(struct platform_device *pdev)
      if (!master)
          return -ENOMEM;

-    master->mode_bits = SPI_CPOL | SPI_CPHA;
+    master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_RX_DUAL | SPI_RX_QUAD;

      master->bus_num = -1;
      master->flags = SPI_MASTER_HALF_DUPLEX;