public inbox for linux-sh@vger.kernel.org
 help / color / mirror / Atom feed
From: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
To: linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 3/6] ARM: mach-shmobile: extend clock definitions on
Date: Mon, 05 Jul 2010 15:04:37 +0000	[thread overview]
Message-ID: <Pine.LNX.4.64.1007051618430.2152@axis700.grange> (raw)
In-Reply-To: <Pine.LNX.4.64.1006301137290.17489@axis700.grange>

On Mon, 5 Jul 2010, Magnus Damm wrote:

> On Fri, Jul 2, 2010 at 9:33 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
> > On Fri, 2 Jul 2010, Magnus Damm wrote:
> >> On Wed, Jun 30, 2010 at 6:55 PM, Guennadi Liakhovetski
> >> <g.liakhovetski@gmx.de> wrote:
> >> > Add definitions for DV_CLKI and HDMI clocks, extend support for PLLC2 and some
> >> > other clocks.
> >> >
> >> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> >> > --- a/arch/arm/mach-shmobile/clock-sh7372.c
> >> > +++ b/arch/arm/mach-shmobile/clock-sh7372.c
> >> > @@ -50,6 +50,12 @@
> >> >  #define SMSTPCR3       0xe615013c
> >> >  #define SMSTPCR4       0xe6150140
> >> >
> >> > +/* Fixed 27 MHz video clock from DV_CLKI pin */
> >> > +static struct clk dv_clki_clk = {
> >> > +       .name           = "dv_clki",
> >> > +       .rate           = 27000000,
> >> > +};
> >>
> >> Hm, 27MHz is a board property, not a cpu property.
> >
> > Well, yes, but I think somewhere something suggested, that 27MHz is what
> > you're actually supposed to provide there. Otherwise your board can always
> > just call clk_set_rate(), right? Or what's the preferred way to let
> > platforms set up clocks?
> 
> You're not supposed to set that clock to any special frequency at all.
> It's totally up to the board designer. On the AP4EVB board it happens
> to be set to 27 MHz. I suggest that you make the clock non-static and
> use clk_set_rate() in the board code.

Hm, is exporting the clock object really better than doing a 
'clk_get(NULL, "name")'?

> >> Also, you don't want to use "name" in struct clk. clkdev is used for
> >> lookup these days.
> >
> > Right, it is not needed, thanks.
> >
> >> >  /* PLLC2 */
> >> > +
> >> > +/* Indices are important - they are the actual src selecting values */
> >> > +static struct clk *pllc2_parent[] = {
> >> > +       [0] = &extal1_div2_clk,
> >> > +       [1] = &extal2_div2_clk,
> >> > +       [2] = &dv_clki_div2_clk,
> >> > +       [3] = NULL,     /* extal2_div4 not implemented yet*/
> >> > +};
> >>
> >> Why not implemented yet?
> >
> > Because it's not used yet. Should I implement it anyway?
> 
> Is it needed by your other patches at this point?
> 
> So far the clock routing has been static, so no clocks have got their
> parents updated over time. This patch adds a much needed parent
> selection support, but only implementing some of the parents does not
> make so much sense to me.

I'll remove the last entry.

> >> > +       /*
> >> > +        * TODO: If the PLL is off, mult should be = 1, but the clock must be
> >> > +        * stopped during re-parenting, a better solution to this conflict
> >> > +        * should be found.
> >> > +        */
> >> > +       mult = (((__raw_readl(PLLC2CR) >> 24) & 0x3f) + 1) * 2;
> >>
> >> Yes, this needs to be fixed.
> >
> > You mean now or in the future? If now - I don't see a reasonable fix so
> > far... Do you?
> 
> I'm not sure which way is the best, but I think this patch breaks the
> case when the PLL is turned off.

Ok, I can re-add the test and just add a line

		clk->rate = pllc2_recalc(clk);

in pllc2_enable()? This even makes sense in a way - if we know, that 
after enabling the ->rate can get out of sync with the actual frequency... 
I'll prepare an updated patch to make it easier to see.

Thanks
Guennadi
---
Guennadi Liakhovetski

  parent reply	other threads:[~2010-07-05 15:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-30  9:55 [PATCH 3/6] ARM: mach-shmobile: extend clock definitions on sh7372 Guennadi Liakhovetski
2010-07-02  8:21 ` [PATCH 3/6] ARM: mach-shmobile: extend clock definitions on Magnus Damm
2010-07-02 12:33 ` Guennadi Liakhovetski
2010-07-05  4:20 ` Magnus Damm
2010-07-05 15:04 ` Guennadi Liakhovetski [this message]
2010-07-06  9:46 ` Magnus Damm

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=Pine.LNX.4.64.1007051618430.2152@axis700.grange \
    --to=g.liakhovetski@gmx.de \
    --cc=linux-fbdev@vger.kernel.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