linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] mtd: nand: Sunxi calculate timing cfg
Date: Tue, 9 Jun 2015 16:20:07 +0200	[thread overview]
Message-ID: <20150609162007.7b19e8e2@bbrezillon> (raw)
In-Reply-To: <5576E7C2.10604@ultimaker.com>

On Tue, 09 Jun 2015 15:18:58 +0200
Roy Spliet <r.spliet@ultimaker.com> wrote:


>  >> +
>  >> +static s32 sunxi_nand_lookup_timing(const s32 *lut, lut, u32 
> period, u32 clk_period)
>  > I'm not sure the period name is appropriate here, what you're actually
>  > passing is the timing you're expecting.
>  > How about renaming it 'min_timing'
> 
> What it encodes is the minimum or maximum time or delay for given timing
> parameter in picoseconds. Given this definition, I think period actually
> describes the parameter better than "min_timing". Alternatively, I could go
> for period_ps or perhaps timing_period_ps (with matching clk_period_ps).

Hm, I don't agree here. From my POV, a period is something used to
describe cyclic operations. If you take a clk, the period encodes the
time required a clk cycle (a rising and a falling edge).
Here the timings you're passing are not cyclic at all.

> 
>  >> +{
>  >> +    u32 clks = (period + clk_period - 1) / clk_period;
>  >     u32 clks = DIV_ROUND_UP(period, clk_period);
>  >
>  > And again, IMO the variable name does not match what it's really
>  > encoding. How about div or divisor ?
> 
> This value encodes the period in number of clock cycles. If period_ps is
> acceptable, how about period_cycles here?

I'd rather use clk_cycles, or just cycles then.


>  >> +    tADL = DIV_ROUND_UP(timings->tADL_min, min_clk_period) >> 3;
>  >> +    tWHR = DIV_ROUND_UP(timings->tWHR_min, min_clk_period) >> 3;
>  >> +    tRHW = sunxi_nand_lookup_timing(tRHW_lut, timings->tRHW_min,
>  >> +            min_clk_period);
>  >> +    tCAD = 0x7;
>  >> +    chip->timing_cfg = (tWB & 0x3) |
>  >> +               (tADL & 0x3) << 2 |
>  >> +               (tWHR & 0x3) << 4 |
>  >> +               (tRHW & 0x3) << 6 |
>  >> +               (tCAD & 0x7) << 8;
>  >> +    /* \todo A83 has some more bits for CDQSS, CS, CLHZ, CCS, WC */
>  > Use the "TODO:" or "FIXME:" keywords so that people greping on these
>  > pattern will be able to find them.
> 
> I used \todo as the (assumed) preferred notation for doxygen (... but 
> omitted
> the second * denoting doxygen documentation formatting) Eclipse picks it up
> fine, but if you prefer TODO: for your toolchain, it's the same to me.

It depends on the kernel coding style rules, and AFAIR they use the
TODO and FIXME (in capital letters) keywords.


>  >>      /*
>  >> -     * TODO: replace these magic values with proper flags as soon as we
>  >> -     * know what they are encoding.
>  >> +     * TODO: replace this magic values with EDO flag
>  >>       */
>  >>      writel(0x100, nfc->regs + NFC_REG_TIMING_CTL);
>  >> -    writel(0x7ff, nfc->regs + NFC_REG_TIMING_CFG);
>  > Are you planning to post another patch defining the EDO mode flag and
>  > using it instead of keeping this magic value (note that I'm not
>  > asking you to make this change in the same patch, but that would be
>  > great to have it in the same patch series) ?
> 
> I agree that it would be good, but it is derived from the 6th ID byte, which
> I have already seen omitted in several datasheets. I'm not sure if we can do
> this without at least offering the option for overriding this value in 
> the DT?

Actually, I was just asking for a flag definition. You can keep the
assignment here till we find a proper solution to extract it from the
read-id (or ONFI information).


-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  reply	other threads:[~2015-06-09 14:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-09 11:31 [PATCH v2] mtd: nand: Sunxi calculate timing cfg Roy Spliet
2015-06-09 12:23 ` Boris Brezillon
2015-06-09 13:18   ` Roy Spliet
2015-06-09 14:20     ` Boris Brezillon [this message]
2015-06-10  7:31       ` Roy Spliet
     [not found]       ` <5577E783.8050900@ultimaker.com>
2015-06-10  7:45         ` Boris Brezillon
2015-06-09 12:29 ` 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=20150609162007.7b19e8e2@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 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).