From: Jon Hunter <jon-hunter@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Christoph Fritz <chf.fritz@googlemail.com>,
Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
Daniel Mack <daniel@zonque.org>,
linux-omap@vger.kernel.org
Subject: Re: ARM: dts: omap3: NAND support - how?
Date: Fri, 19 Apr 2013 10:56:28 -0500 [thread overview]
Message-ID: <5171692C.1080407@ti.com> (raw)
In-Reply-To: <20130419154804.GH10155@atomide.com>
On 04/19/2013 10:48 AM, Tony Lindgren wrote:
> * Jon Hunter <jon-hunter@ti.com> [130419 08:41]:
>> On 04/19/2013 09:53 AM, Christoph Fritz wrote:
>>> -static int omap2_nand_gpmc_retime(
>>> - struct omap_nand_platform_data *gpmc_nand_data,
>>> - struct gpmc_timings *gpmc_t)
>>> -{
>>> - struct gpmc_timings t;
>>> - int err;
>>> -
>>> - memset(&t, 0, sizeof(t));
>>> - t.sync_clk = gpmc_t->sync_clk;
>>> - t.cs_on = gpmc_t->cs_on;
>>> - t.adv_on = gpmc_t->adv_on;
>>> -
>>> - /* Read */
>>> - t.adv_rd_off = gpmc_t->adv_rd_off;
>>> - t.oe_on = t.adv_on;
>>> - t.access = gpmc_t->access;
>>> - t.oe_off = gpmc_t->oe_off;
>>> - t.cs_rd_off = gpmc_t->cs_rd_off;
>>> - t.rd_cycle = gpmc_t->rd_cycle;
>>> -
>>> - /* Write */
>>> - t.adv_wr_off = gpmc_t->adv_wr_off;
>>> - t.we_on = t.oe_on;
>>> - if (cpu_is_omap34xx()) {
>>> - t.wr_data_mux_bus = gpmc_t->wr_data_mux_bus;
>>> - t.wr_access = gpmc_t->wr_access;
>>> - }
>>> - t.we_off = gpmc_t->we_off;
>>> - t.cs_wr_off = gpmc_t->cs_wr_off;
>>> - t.wr_cycle = gpmc_t->wr_cycle;
>>> -
>>> - err = gpmc_cs_set_timings(gpmc_nand_data->cs, &t);
>>> - if (err)
>>> - return err;
>>> -
>>> - return 0;
>>> -}
>>> -
>>> static bool gpmc_hwecc_bch_capable(enum omap_ecc ecc_opt)
>>> {
>>> /* support only OMAP3 class */
>>> @@ -131,7 +93,7 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>>> gpmc_get_client_irq(GPMC_IRQ_COUNT_EVENT);
>>>
>>> if (gpmc_t) {
>>> - err = omap2_nand_gpmc_retime(gpmc_nand_data, gpmc_t);
>>> + err = gpmc_cs_set_timings(gpmc_nand_data->cs, gpmc_t);
>>> if (err < 0) {
>>> dev_err(dev, "Unable to set gpmc timings: %d\n", err);
>>> return err;
>>>
>>
>> Thanks for sending this. I would agree with this approach. The retime
>> function seems very redundant looking at what it does.
>>
>> Grep'ing through the source, the only place I see a board file call
>> gpmc_nand_init() and pass timings is in
>> arch/arm/mach-omap2/board-flash.c. To keep the gpmc configuration
>> consistent, I would also suggest making the following change so that
>> oe_on and we_on are programmed as they would be by the current retime
>> function.
>
> What about DVFS though? The L3 clock can get rescaled with DVFS,
> and after that the retime function needs to get called. We are
> not doing it in the mainline tree, but at least n8x0 - n900 vendor
> trees were doing it.
I wondered if you would mention that ;-)
If you look at the implementation of the omap2_nand_gpmc_retime(), it
does not actually perform any retiming base upon frequency whatsoever
(unlike smc91c96_gpmc_retime). So right now omap2_nand_gpmc_retime is a
basic wrapper around gpmc_cs_set_timings() really adding no value.
Hence, I agree with Christoph's patch to remove it.
Cheers
Jon
next prev parent reply other threads:[~2013-04-19 15:56 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-18 19:03 ARM: dts: omap3: NAND support - how? Christoph Fritz
2013-04-18 19:39 ` Jon Hunter
2013-04-18 20:23 ` Christoph Fritz
2013-04-18 22:28 ` Jon Hunter
2013-04-18 22:48 ` Christoph Fritz
2013-04-18 23:24 ` Jon Hunter
2013-04-18 23:26 ` Jon Hunter
2013-04-19 9:01 ` Christoph Fritz
2013-04-19 12:02 ` Christoph Fritz
2013-04-19 14:00 ` Jon Hunter
2013-04-19 14:53 ` Christoph Fritz
2013-04-19 15:36 ` Jon Hunter
2013-04-19 15:48 ` Tony Lindgren
2013-04-19 15:56 ` Jon Hunter [this message]
2013-04-19 16:15 ` Tony Lindgren
2013-04-19 16:29 ` [PATCH] ARM: OMAP2+: nand: reorganize gpmc timing values Christoph Fritz
2013-04-19 16:29 ` Christoph Fritz
2013-05-16 15:49 ` Tony Lindgren
2013-05-16 15:49 ` Tony Lindgren
2013-04-19 12:57 ` ARM: dts: omap3: NAND support - how? Jon Hunter
2013-04-19 13:06 ` Christoph Fritz
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=5171692C.1080407@ti.com \
--to=jon-hunter@ti.com \
--cc=chf.fritz@googlemail.com \
--cc=daniel@zonque.org \
--cc=javier.martinez@collabora.co.uk \
--cc=linux-omap@vger.kernel.org \
--cc=tony@atomide.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.