From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Boris BREZILLON <b.brezillon.dev@gmail.com>
Cc: devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
dev@linux-sunxi.org, linux-kernel@vger.kernel.org,
Rob Herring <rob.herring@calxeda.com>,
linux-mtd@lists.infradead.org,
Grant Likely <grant.likely@linaro.org>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH v2 04/14] mtd: nand: define struct nand_timings
Date: Wed, 12 Mar 2014 13:07:37 -0600 [thread overview]
Message-ID: <20140312190737.GA27388@obsidianresearch.com> (raw)
In-Reply-To: <53208F7D.8090104@gmail.com>
On Wed, Mar 12, 2014 at 05:46:53PM +0100, Boris BREZILLON wrote:
> >>I see at least 3 of those timings that could be useful (for the moment) :
> >>- tR: this one should be used to fill the chip_delay field
> >>- tPROG and tBERS: could be used within nand_wait to choose the timeo
> >> value appropriately.
> >IIRC these timing values are really only necessary if the controller
> >does not support the READY/BUSY input, in that case drivers typically
> >seem to use 'chip_delay' which is the maximum possible command
> >execution time (a sleep long enough to guarentee that READY/BUSY is
> >de-asserted).
> You're right about tR (or chip_delay): it's only used when there are
> no R/B pin. I experienced it when I tried the RB_NONE case in the
> sunxi driver: the default chip_delay set by the NAND core code was
> too small to fit the NAND chip requirements.
>
> Anyway, I really think the chip_delay field should be set according
> to NAND chip characteristics not harcoded in NAND controller driver
> code (as currently done).
Drivers these days are often taking this value from the DT node
property 'chip-delay'. I think this would be nice to have in common
code too...
> tPROG and tBERS, would be used in nand_wait function and do not
> depend on the R/B pin. These are just used as timeouts.
tPROG/tBERS have that special mode where R/B remains asserted but you
can still issue a status read to the chip to check on the command, so
the timeout required here is just a big number to detect failed NAND
controllers, it isn't really too important to have an exact value..
> >>Or should I create a new struct for these timings ?
> >>In the latter case how should I name it ?
> >struct onfi_command_timings ?
>
> I'm not a big fan of this name. I think timing structs should not
> contain onfi in their names, because these timings are also
> available on non ONFI chips.
Explicitly defering to the ONFI spec makes it clear what the
definition of the timing parameter actually is.
If JEDEC has a different model then drivers will need to configure
their interfaces a little differently.
So we might end up with a jedec_sdr_timings too :|
> What do you think ?
I'd focus on getting the bus timings working before tackling too much
more ...
Jason
WARNING: multiple messages have this Message-ID (diff)
From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v2 04/14] mtd: nand: define struct nand_timings
Date: Wed, 12 Mar 2014 13:07:37 -0600 [thread overview]
Message-ID: <20140312190737.GA27388@obsidianresearch.com> (raw)
In-Reply-To: <53208F7D.8090104@gmail.com>
On Wed, Mar 12, 2014 at 05:46:53PM +0100, Boris BREZILLON wrote:
> >>I see at least 3 of those timings that could be useful (for the moment) :
> >>- tR: this one should be used to fill the chip_delay field
> >>- tPROG and tBERS: could be used within nand_wait to choose the timeo
> >> value appropriately.
> >IIRC these timing values are really only necessary if the controller
> >does not support the READY/BUSY input, in that case drivers typically
> >seem to use 'chip_delay' which is the maximum possible command
> >execution time (a sleep long enough to guarentee that READY/BUSY is
> >de-asserted).
> You're right about tR (or chip_delay): it's only used when there are
> no R/B pin. I experienced it when I tried the RB_NONE case in the
> sunxi driver: the default chip_delay set by the NAND core code was
> too small to fit the NAND chip requirements.
>
> Anyway, I really think the chip_delay field should be set according
> to NAND chip characteristics not harcoded in NAND controller driver
> code (as currently done).
Drivers these days are often taking this value from the DT node
property 'chip-delay'. I think this would be nice to have in common
code too...
> tPROG and tBERS, would be used in nand_wait function and do not
> depend on the R/B pin. These are just used as timeouts.
tPROG/tBERS have that special mode where R/B remains asserted but you
can still issue a status read to the chip to check on the command, so
the timeout required here is just a big number to detect failed NAND
controllers, it isn't really too important to have an exact value..
> >>Or should I create a new struct for these timings ?
> >>In the latter case how should I name it ?
> >struct onfi_command_timings ?
>
> I'm not a big fan of this name. I think timing structs should not
> contain onfi in their names, because these timings are also
> available on non ONFI chips.
Explicitly defering to the ONFI spec makes it clear what the
definition of the timing parameter actually is.
If JEDEC has a different model then drivers will need to configure
their interfaces a little differently.
So we might end up with a jedec_sdr_timings too :|
> What do you think ?
I'd focus on getting the bus timings working before tackling too much
more ...
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Boris BREZILLON <b.brezillon.dev@gmail.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>,
David Woodhouse <dwmw2@infradead.org>,
Grant Likely <grant.likely@linaro.org>,
Brian Norris <computersforpeace@gmail.com>,
Rob Herring <rob.herring@calxeda.com>,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mtd@lists.infradead.org, dev@linux-sunxi.org
Subject: Re: [RFC PATCH v2 04/14] mtd: nand: define struct nand_timings
Date: Wed, 12 Mar 2014 13:07:37 -0600 [thread overview]
Message-ID: <20140312190737.GA27388@obsidianresearch.com> (raw)
In-Reply-To: <53208F7D.8090104@gmail.com>
On Wed, Mar 12, 2014 at 05:46:53PM +0100, Boris BREZILLON wrote:
> >>I see at least 3 of those timings that could be useful (for the moment) :
> >>- tR: this one should be used to fill the chip_delay field
> >>- tPROG and tBERS: could be used within nand_wait to choose the timeo
> >> value appropriately.
> >IIRC these timing values are really only necessary if the controller
> >does not support the READY/BUSY input, in that case drivers typically
> >seem to use 'chip_delay' which is the maximum possible command
> >execution time (a sleep long enough to guarentee that READY/BUSY is
> >de-asserted).
> You're right about tR (or chip_delay): it's only used when there are
> no R/B pin. I experienced it when I tried the RB_NONE case in the
> sunxi driver: the default chip_delay set by the NAND core code was
> too small to fit the NAND chip requirements.
>
> Anyway, I really think the chip_delay field should be set according
> to NAND chip characteristics not harcoded in NAND controller driver
> code (as currently done).
Drivers these days are often taking this value from the DT node
property 'chip-delay'. I think this would be nice to have in common
code too...
> tPROG and tBERS, would be used in nand_wait function and do not
> depend on the R/B pin. These are just used as timeouts.
tPROG/tBERS have that special mode where R/B remains asserted but you
can still issue a status read to the chip to check on the command, so
the timeout required here is just a big number to detect failed NAND
controllers, it isn't really too important to have an exact value..
> >>Or should I create a new struct for these timings ?
> >>In the latter case how should I name it ?
> >struct onfi_command_timings ?
>
> I'm not a big fan of this name. I think timing structs should not
> contain onfi in their names, because these timings are also
> available on non ONFI chips.
Explicitly defering to the ONFI spec makes it clear what the
definition of the timing parameter actually is.
If JEDEC has a different model then drivers will need to configure
their interfaces a little differently.
So we might end up with a jedec_sdr_timings too :|
> What do you think ?
I'd focus on getting the bus timings working before tackling too much
more ...
Jason
next prev parent reply other threads:[~2014-03-12 19:07 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-29 14:34 [RFC PATCH v2 00/14] mtd: nand: add sunxi NAND Flash Controller support Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
[not found] ` < 1391006064-28890-4-git-send-email-b.brezillon.dev@gmail.com>
2014-01-29 14:34 ` [RFC PATCH v2 01/14] mtd: nand: retrieve ECC requirements from Hynix READ ID byte 4 Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 02/14] of: mtd: add NAND ECC level requirements retrieval Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 03/14] of: mtd: add documentation for nand-ecc-level property Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 17:53 ` Ezequiel Garcia
2014-01-29 17:53 ` Ezequiel Garcia
2014-01-29 17:53 ` Ezequiel Garcia
2014-01-29 18:39 ` Boris BREZILLON
2014-01-29 18:39 ` Boris BREZILLON
2014-01-29 18:39 ` Boris BREZILLON
2014-02-05 11:15 ` Grant Likely
2014-02-05 11:15 ` Grant Likely
2014-02-05 11:15 ` Grant Likely
2014-02-05 13:34 ` Boris BREZILLON
2014-02-05 13:34 ` Boris BREZILLON
2014-02-05 13:34 ` Boris BREZILLON
2014-02-05 13:34 ` Boris BREZILLON
2014-02-05 14:19 ` Ezequiel Garcia
2014-02-05 14:19 ` Ezequiel Garcia
2014-02-05 14:19 ` Ezequiel Garcia
2014-02-17 16:43 ` Grant Likely
2014-02-17 16:43 ` Grant Likely
2014-02-17 16:43 ` Grant Likely
2014-02-17 18:19 ` Ezequiel Garcia
2014-02-17 18:19 ` Ezequiel Garcia
2014-02-17 18:19 ` Ezequiel Garcia
2014-01-29 14:34 ` [RFC PATCH v2 04/14] mtd: nand: define struct nand_timings Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-03-10 13:44 ` Boris BREZILLON
2014-03-10 13:44 ` Boris BREZILLON
2014-03-10 13:44 ` Boris BREZILLON
2014-03-11 18:55 ` Jason Gunthorpe
2014-03-11 18:55 ` Jason Gunthorpe
2014-03-11 18:55 ` Jason Gunthorpe
2014-03-12 16:46 ` Boris BREZILLON
2014-03-12 16:46 ` Boris BREZILLON
2014-03-12 16:46 ` Boris BREZILLON
2014-03-12 16:46 ` Boris BREZILLON
2014-03-12 19:07 ` Jason Gunthorpe [this message]
2014-03-12 19:07 ` Jason Gunthorpe
2014-03-12 19:07 ` Jason Gunthorpe
2014-03-12 20:18 ` Warner Losh
2014-03-12 20:18 ` Warner Losh
2014-03-12 20:18 ` Warner Losh
2014-01-29 14:34 ` [RFC PATCH v2 05/14] mtd: nand: add ONFI timing mode to nand_timings converter Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 06/14] of: mtd: add NAND timing mode retrieval support Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 07/14] of: mtd: add documentation for the ONFI NAND timing mode property Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 08/14] mtd: nand: add sunxi NAND flash controller support Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 17:56 ` Jason Gunthorpe
2014-01-29 17:56 ` Jason Gunthorpe
2014-01-29 17:56 ` Jason Gunthorpe
2014-01-29 18:46 ` Ezequiel Garcia
2014-01-29 18:46 ` Ezequiel Garcia
2014-01-29 18:46 ` Ezequiel Garcia
2014-01-29 18:46 ` Ezequiel Garcia
2014-01-29 19:10 ` Jason Gunthorpe
2014-01-29 19:10 ` Jason Gunthorpe
2014-01-29 19:10 ` Jason Gunthorpe
2014-01-29 19:10 ` Jason Gunthorpe
2014-01-30 8:57 ` [linux-sunxi] " Boris BREZILLON
2014-01-30 8:57 ` Boris BREZILLON
2014-01-30 8:57 ` [linux-sunxi] " Boris BREZILLON
2014-03-10 11:17 ` Boris BREZILLON
2014-03-10 11:17 ` Boris BREZILLON
2014-03-10 11:17 ` Boris BREZILLON
2014-03-10 11:17 ` [linux-sunxi] " Boris BREZILLON
2014-03-10 11:37 ` Lucas Stach
2014-03-10 11:37 ` Lucas Stach
2014-03-10 11:37 ` Lucas Stach
2014-03-10 11:37 ` Lucas Stach
2014-03-11 18:45 ` Jason Gunthorpe
2014-03-11 18:45 ` Jason Gunthorpe
2014-03-11 18:45 ` Jason Gunthorpe
2014-03-11 18:45 ` [linux-sunxi] " Jason Gunthorpe
2014-01-29 19:02 ` Boris BREZILLON
2014-01-29 19:02 ` Boris BREZILLON
2014-01-29 19:02 ` Boris BREZILLON
2014-01-30 11:22 ` Boris BREZILLON
2014-01-30 11:22 ` Boris BREZILLON
2014-01-30 11:22 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 09/14] mtd: nand: add sunxi NFC dt bindings doc Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 17:11 ` Rob Herring
2014-01-29 17:11 ` Rob Herring
2014-01-29 17:11 ` Rob Herring
2014-01-29 17:11 ` Rob Herring
2014-01-29 17:12 ` Rob Herring
2014-01-29 17:12 ` Rob Herring
2014-01-29 17:12 ` Rob Herring
2014-01-29 17:12 ` Rob Herring
2014-01-29 18:01 ` Boris BREZILLON
2014-01-29 18:01 ` Boris BREZILLON
2014-01-29 18:01 ` Boris BREZILLON
2014-01-29 18:02 ` Gupta, Pekon
2014-01-29 18:02 ` Gupta, Pekon
2014-01-29 18:02 ` Gupta, Pekon
[not found] ` <20980858CB6D3A4BAE95CA194937D5E73EA6C01D-yXqyApvAXouIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2014-01-29 18:30 ` Boris BREZILLON
2014-01-29 18:33 ` Boris BREZILLON
2014-01-29 18:33 ` Boris BREZILLON
2014-01-29 18:36 ` Gupta, Pekon
2014-01-29 18:36 ` Gupta, Pekon
2014-01-29 18:36 ` Gupta, Pekon
2014-01-29 22:37 ` [linux-sunxi] " Henrik Nordström
2014-01-29 22:37 ` Henrik Nordström
2014-01-29 22:37 ` Henrik Nordström
2014-01-29 22:37 ` [linux-sunxi] " Henrik Nordström
2014-01-30 8:38 ` boris brezillon dev
2014-01-30 8:38 ` boris brezillon dev
2014-01-30 8:38 ` boris brezillon dev
2014-01-30 8:38 ` [linux-sunxi] " boris brezillon dev
2014-01-30 8:46 ` boris brezillon dev
2014-01-30 8:46 ` boris brezillon dev
2014-01-30 8:46 ` boris brezillon dev
2014-01-30 8:46 ` [linux-sunxi] " boris brezillon dev
2014-01-29 14:34 ` [RFC PATCH v2 10/14] ARM: dt/sunxi: add NFC node to Allwinner A20 SoC Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 11/14] ARM: dt/sunxi: add NFC pinctrl pin definitions Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 12/14] ARM: sunxi/dt: enable NAND on cubietruck board Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 13/14] mtd: nand: add sunxi HW ECC support Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` [RFC PATCH v2 14/14] ARM: sunxi/dt: enable HW ECC on cubietruck board Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-29 14:34 ` Boris BREZILLON
2014-01-30 13:39 ` [RFC PATCH pre-v3 08/14] mtd: nand: add sunxi NAND flash controller support Boris BREZILLON
2014-01-30 13:39 ` Boris BREZILLON
2014-01-30 13:39 ` Boris BREZILLON
2014-01-30 13:39 ` Boris BREZILLON
2014-01-30 14:36 ` Russell King - ARM Linux
2014-01-30 14:36 ` Russell King - ARM Linux
2014-01-30 14:36 ` Russell King - ARM Linux
2014-01-30 15:04 ` Boris BREZILLON
2014-01-30 15:04 ` Boris BREZILLON
2014-01-30 15:04 ` Boris BREZILLON
2014-01-30 15:04 ` Boris BREZILLON
2014-01-30 13:41 ` [RFC PATCH pre-v3 13/14] mtd: nand: add sunxi HW ECC support Boris BREZILLON
2014-01-30 13:41 ` Boris BREZILLON
2014-01-30 13:41 ` Boris BREZILLON
2014-01-30 13:41 ` Boris BREZILLON
2014-01-30 13:46 ` [RFC PATCH pre-v3 07/14] of: mtd: add documentation for the ONFI NAND timing mode property Boris BREZILLON
2014-01-30 13:46 ` Boris BREZILLON
2014-01-30 13:46 ` Boris BREZILLON
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140312190737.GA27388@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.com \
--cc=b.brezillon.dev@gmail.com \
--cc=computersforpeace@gmail.com \
--cc=dev@linux-sunxi.org \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=grant.likely@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=maxime.ripard@free-electrons.com \
--cc=rob.herring@calxeda.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.