linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* m25p80 quad support questions
@ 2014-01-09  9:12 Geert Uytterhoeven
  2014-01-09 14:44 ` Geert Uytterhoeven
  0 siblings, 1 reply; 3+ messages in thread
From: Geert Uytterhoeven @ 2014-01-09  9:12 UTC (permalink / raw)
  To: Sourav Poddar, Brian Norris; +Cc: MTD Maling List

Hi Sourav, Brian,

I'm working on adding QSPI support to a SPI master driver, so I'm very
interested in your work to add quad read support to m25p80.
Thanks for that!

However, I have a few questions/comments:

1. Up to version 2 of "drivers: mtd: m25p80: Add quad read support",
the driver set rx_nbits to indicate it wants to use Quad SPI transfers:

+ t[1].rx_nbits = flash->quad_read ? SPI_NBITS_QUAD : 1;

(http://patchwork.ozlabs.org/patch/286109/).

However, this is not present in later versions, nor in the current version
in -next.

It's my understanding the default (single transfer mode) will be used if
rx_nbits is zero, cfr. drivers/spi/spi.c:__spi_async():

                if (xfer->tx_buf && !xfer->tx_nbits)
                        xfer->tx_nbits = SPI_NBITS_SINGLE;
                if (xfer->rx_buf && !xfer->rx_nbits)
                        xfer->rx_nbits = SPI_NBITS_SINGLE;

Does it really use quad transfers without setting rx_nbits to SPI_NBITS_QUAD?

2. IMHO checking for Quad support in the SPI master (master->mode_bits)
and in the SPI FLASH chip is not sufficient. A quad-capable SPI FLASH
may be wired to a quad-capable SPI master using 4-wire mode, either
physically or through pin control.
So I think we need a m25p,quad-read property in DT.

Thanks for your answers!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: m25p80 quad support questions
  2014-01-09  9:12 m25p80 quad support questions Geert Uytterhoeven
@ 2014-01-09 14:44 ` Geert Uytterhoeven
  2014-01-09 19:04   ` sourav
  0 siblings, 1 reply; 3+ messages in thread
From: Geert Uytterhoeven @ 2014-01-09 14:44 UTC (permalink / raw)
  To: Sourav Poddar, Brian Norris; +Cc: MTD Maling List, linux-spi

CC linux-spi, and more information below.

On Thu, Jan 9, 2014 at 10:12 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> Hi Sourav, Brian,
>
> I'm working on adding QSPI support to a SPI master driver, so I'm very
> interested in your work to add quad read support to m25p80.
> Thanks for that!
>
> However, I have a few questions/comments:
>
> 1. Up to version 2 of "drivers: mtd: m25p80: Add quad read support",
> the driver set rx_nbits to indicate it wants to use Quad SPI transfers:
>
> + t[1].rx_nbits = flash->quad_read ? SPI_NBITS_QUAD : 1;
>
> (http://patchwork.ozlabs.org/patch/286109/).
>
> However, this is not present in later versions, nor in the current version
> in -next.
>
> It's my understanding the default (single transfer mode) will be used if
> rx_nbits is zero, cfr. drivers/spi/spi.c:__spi_async():
>
>                 if (xfer->tx_buf && !xfer->tx_nbits)
>                         xfer->tx_nbits = SPI_NBITS_SINGLE;
>                 if (xfer->rx_buf && !xfer->rx_nbits)
>                         xfer->rx_nbits = SPI_NBITS_SINGLE;
>
> Does it really use quad transfers without setting rx_nbits to SPI_NBITS_QUAD?

I can confirm that the SPI master driver is called with rx_nbits == 1, while
using the 0x6b QOR command.

> 2. IMHO checking for Quad support in the SPI master (master->mode_bits)
> and in the SPI FLASH chip is not sufficient. A quad-capable SPI FLASH
> may be wired to a quad-capable SPI master using 4-wire mode, either
> physically or through pin control.
> So I think we need a m25p,quad-read property in DT.

Sorry, this issue is moot. I missed that spi_device.mode (as set from DT
spi-rx-bus-width and spi-tx-bus-width) is also taken into account.

Thanks again!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: m25p80 quad support questions
  2014-01-09 14:44 ` Geert Uytterhoeven
@ 2014-01-09 19:04   ` sourav
  0 siblings, 0 replies; 3+ messages in thread
From: sourav @ 2014-01-09 19:04 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Brian Norris, MTD Maling List, linux-spi

On Thursday 09 January 2014 08:14 PM, Geert Uytterhoeven wrote:
> CC linux-spi, and more information below.
>
> On Thu, Jan 9, 2014 at 10:12 AM, Geert Uytterhoeven
> <geert@linux-m68k.org>  wrote:
>> Hi Sourav, Brian,
>>
>> I'm working on adding QSPI support to a SPI master driver, so I'm very
>> interested in your work to add quad read support to m25p80.
>> Thanks for that!
>>
>> However, I have a few questions/comments:
>>
>> 1. Up to version 2 of "drivers: mtd: m25p80: Add quad read support",
>> the driver set rx_nbits to indicate it wants to use Quad SPI transfers:
>>
>> + t[1].rx_nbits = flash->quad_read ? SPI_NBITS_QUAD : 1;
>>
>> (http://patchwork.ozlabs.org/patch/286109/).
>>
>> However, this is not present in later versions, nor in the current version
>> in -next.

May be, but I suppose all the quad related patches are pushed to l2-mtd. 
You can
check it in that  branch.
>>
>> It's my understanding the default (single transfer mode) will be used if
>> rx_nbits is zero, cfr. drivers/spi/spi.c:__spi_async():
>>
>>                  if (xfer->tx_buf&&  !xfer->tx_nbits)
>>                          xfer->tx_nbits = SPI_NBITS_SINGLE;
>>                  if (xfer->rx_buf&&  !xfer->rx_nbits)
>>                          xfer->rx_nbits = SPI_NBITS_SINGLE;
>>
>> Does it really use quad transfers without setting rx_nbits to SPI_NBITS_QUAD?
> I can confirm that the SPI master driver is called with rx_nbits == 1, while
> using the 0x6b QOR command.
>
>> 2. IMHO checking for Quad support in the SPI master (master->mode_bits)
>> and in the SPI FLASH chip is not sufficient. A quad-capable SPI FLASH
>> may be wired to a quad-capable SPI master using 4-wire mode, either
>> physically or through pin control.
>> So I think we need a m25p,quad-read property in DT.
We need the following to support quad,
1. controller side support -- > spi->mode should be set
2. flash support ---> provided as a flag.
3. Individuall transfer set --> done by t. rx/tx_nbits.
> Sorry, this issue is moot. I missed that spi_device.mode (as set from DT
> spi-rx-bus-width and spi-tx-bus-width) is also taken into account.
>
> Thanks again!
>
> Gr{oetje,eeting}s,
>
>                          Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                  -- Linus Torvalds

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-01-09 19:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-09  9:12 m25p80 quad support questions Geert Uytterhoeven
2014-01-09 14:44 ` Geert Uytterhoeven
2014-01-09 19:04   ` sourav

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).