Devicetree
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
To: Russell King <rmk-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: John Jacques <john.jacques-M7mHMAq9Yzo@public.gmane.org>,
	linuxppc-dev list
	<linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Torez Smith <torez-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	Mark Brown <broonie-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
Subject: Re: ARM clock API to PowerPC
Date: Thu, 13 Aug 2009 09:47:31 +1000	[thread overview]
Message-ID: <1250120851.3587.71.camel@pasglop> (raw)
In-Reply-To: <20090812234048.GB7118-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>

> > Ok. So I may have misunderstood what names were for. In my mind, those
> > were the name of the clock input on the HW device :-)
> 
> Oh, I do hope I didn't say that was wrong, because that is quite
> correct.  What the idea with passing a NULL 'name' with drivers
> which only had one input was to force people to avoid using 'name'
> as the sole way to match.

I see. So basically, they are meant to be the input names, but have been
abused by people to be "global scope" clock names and hence mess
happened.

> When I originally wrote the AMBA primecell drivers, I did use things
> like 'UARTCLK' and 'AACICLK' for the clk_get() name - since these
> were the name on the device, and that really only provided people
> with a bad example to follow.  Especially if you consider that the
> hardware I had was FPGA based development boards where the clocking
> layout lent itself well to ignoring the 'dev' argument.

Right.

> > Right. I didn't intend to name the clock sources. I intended to name the
> > clock -inputs- of a given device. IE. clk_get(dev, name) in my mind
> > meant "give me the clock provider that feeds my "name" input).
> 
> That's absolutely the right way to look at it!

Cool :-) It did feel right indeed.

> > Allright but passing a NULL doesn't help for drivers with multiple clock
> > inputs. IE. How do you want to deal with that ? Do you want to deprecate
> > the named API and instead provide a new clk_get_for_input(dev,
> > clk_input) (clk_input could be name or numerical ... tbd) ?
> 
> NULL certainly doesn't help for drivers with multiple clock inputs.
> For those, you have to explicitly name the input.  To take the
> example commits I pointed at (the OMAP watchdog driver) OMAP blocks
> generally have two clock inputs - a functional clock and an
> interface clock.

Right, that's a common setup.

> Originally, the driver was effectively setup to match by clock source
> name (wdt2_fck, wdt2_ick) which was SoC specific.  What the commits
> did was convert things to looking using the names of the inputs
> (aka consumer name) - so dev + "fck" and dev + "ick".

Ok, cool, so we are on the same page.

> That results in clkdev looking up the clocks for device "omap_wdt"
> for inputs "fck" and "ick" respectively.  On OMAP1 platforms, there
> isn't an "ick" as such, so there's a match-any-device dummy "ick"
> entry.  On OMAP2 and OMAP3 (the later revs) there are specific
> clocks for these, and so the dummy entry is missing.
> 
> So, the approach I took was: where it is well defined that a device
> has only one clock input, we pass a NULL name.  If it has more than
> one clock input, we pass the specific consumer name required.

Makes sense. I think this will work beautifully with the device-tree too
with the idea of having properties that then provide the binding for a
given clock input to the clock provider and the clock ID on that
provider (my proposal makes the later a number because doing strings can
be awkward in OF land in such mapping tables but I might go back to
strings, we'll see).

> > Or am I missing a piece of the puzzle ?
> 
> Maybe - and since you're just starting to look at clkdev, I'll point
> out that it's actually not intuitive which way around the "wildcard"
> matching works in clkdev.  The clk_get() arguments aren't the
> wildcards, they're in the clk_lookup structure.  Yes, it seems odd,
> but if you consider it from the point of view of the platform code
> wanting to match clocks to a specific set of devices and clock inputs,
> it's actually the way around that you want.

Ok. I'll read up a bit and see if I can get my head around it.

Thanks !

Cheers,
Ben.

  parent reply	other threads:[~2009-08-12 23:47 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-12  7:57 ARM clock API to PowerPC Benjamin Herrenschmidt
2009-08-12  8:29 ` Benjamin Herrenschmidt
2009-08-12 17:31   ` Mitch Bradley
     [not found]     ` <4A82FC63.7020705-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2009-08-12 21:30       ` Benjamin Herrenschmidt
2009-08-12 11:19 ` Josh Boyer
     [not found]   ` <20090812111954.GB31596-jnIq6iUNB1CO8iYQgJmm/0EOCMrvLtNR@public.gmane.org>
2009-08-12 13:40     ` Kumar Gala
     [not found]       ` <4A90486C-8BF5-428C-9FD8-830D822C0D40-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2009-08-12 21:29         ` Benjamin Herrenschmidt
2009-08-13  8:59           ` Li Yang-R58472
     [not found]             ` <3A45394FD742FA419B760BB8D398F9ED59DE33-bKEhWGtIRUJ4Lp7cDGe+DVjVikpgYyvb5NbjCUgZEJk@public.gmane.org>
2009-08-14  9:29               ` Benjamin Herrenschmidt
2009-08-14 11:29                 ` Guennadi Liakhovetski
     [not found]                   ` <Pine.LNX.4.64.0908141255230.5980-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2009-08-14 12:07                     ` Benjamin Herrenschmidt
2009-08-15 12:43                       ` Russell King
     [not found]                         ` <20090815124347.GB16112-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2009-08-15 22:18                           ` Benjamin Herrenschmidt
2009-08-16  5:09                             ` Grant Likely
2009-08-12 12:35 ` Mark Brown
     [not found]   ` <20090812123551.GC11227-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2009-08-12 21:34     ` Benjamin Herrenschmidt
2009-08-12 21:44       ` Mark Brown
     [not found]         ` <20090812214444.GA4731-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2009-08-12 21:56           ` Benjamin Herrenschmidt
2009-08-12 22:20             ` Mark Brown
     [not found]               ` <20090812222031.GC4731-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2009-08-12 22:32                 ` Benjamin Herrenschmidt
2009-08-12 23:00                   ` Mark Brown
     [not found]                     ` <20090812230023.GB7519-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2009-08-12 23:15                       ` Benjamin Herrenschmidt
2009-08-12 22:28             ` Russell King
2009-08-12 22:45               ` Mark Brown
     [not found]               ` <20090812222843.GA7118-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2009-08-12 22:52                 ` Benjamin Herrenschmidt
2009-08-12 23:40                   ` Russell King
     [not found]                     ` <20090812234048.GB7118-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2009-08-12 23:47                       ` Benjamin Herrenschmidt [this message]
2009-08-13  3:45                       ` Benjamin Herrenschmidt

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=1250120851.3587.71.camel@pasglop \
    --to=benh-xvmvhmargas8u2djnn8i7kb+6bgklq7r@public.gmane.org \
    --cc=broonie-GFdadSzt00ze9xe1eoZjHA@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=john.jacques-M7mHMAq9Yzo@public.gmane.org \
    --cc=linuxppc-dev-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
    --cc=rmk-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=torez-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.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