From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
To: Daniel Mack <zonque@gmail.com>
Cc: linux-kernel@vger.kernel.org,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Mike Turquette <mturquette@ti.com>,
linux ARM <linux-arm-kernel@lists.infradead.org>,
Grant Likely <grant.likely@secretlab.ca>,
Rob Herring <rob.herring@calxeda.com>,
devicetree-discuss@lists.ozlabs.org
Subject: Re: [RFC] Common clock framework for external clock generators
Date: Sun, 14 Oct 2012 12:59:02 +0200 [thread overview]
Message-ID: <507A9AF6.4030008@gmail.com> (raw)
In-Reply-To: <50785EBF.3060508@gmail.com>
Adding LAKML and devtree as there might be people willing to comment about
DT representation of i2c-attached clock generators, too.
On 10/12/2012 08:17 PM, Daniel Mack wrote:
> On 11.10.2012 18:00, Sebastian Hesselbarth wrote:
>> [...]
>> Does any of you work rely on a working si5351 driver?
>
> Yes, it does actually. I can hack around it for now, but at some point,
> a proper driver is needed. And yours looks quite feature complete, so it
> would be easiest to finish this one :)
Well, yes it is some kind of feature complete except regmap and DT. Adding
regmap to the driver should be quite easy but with DT I am still thinking
of the best way to represent the internal connections between OSC, PLLs, and
CLKOUTs. In the last version of the driver I had a callback that was
board specific to setup these connections but with DT there will be no board
specific code anymore.
Maybe one of the common clk maintainers can give a hint how this could be
done in a clean way. The question is how to represent a i2c-attached clock
generator config in DT where you want to setup clock parents of CLKOUTs and
PLLs.
A possible solution would be something like this:
si5351a@60 {
compatible = "silabs,si5351a";
reg = <0x60>;
si_osc: osc {
compatible = "fixed-clock";
clock-frequency = <270000000>;
};
si_plla: pll@0 {
compatible = "silabs,si5351-pll";
/* hook-up plla to osc input */
clocks = <&si_osc>;
};
si_clkout0: clkout@0 {
compatible = "silabs,si5351-clkout";
/* hook-up clkout0 to plla */
clocks = <&si_plla>;
/* request target frequency */
clock-frequency = <148500000>;
};
};
Although this perfectly describes the clock hierarchy I still don't like
the sub-node style. Another flat solution would be something like:
si_osc: osc {
compatible = "fixed-clock";
clock-frequency = <270000000>;
};
si5351a@60 {
compatible = "silabs,si5351a";
reg = <0x60>;
clocks = <&si_osc>;
si5351-pll-config = <0 0 /* pll A to osc */
1 0>; /* pll B to osc */
si5351-clock-config = <0 0 148500000 /* clkout 0 to pll A, 148.5MHz */
1 0 0 /* clkout 1 to pll A, disabled */
2 1 24000000>; /* clkout 2 to pll B, 24.0Mhz */
};
> Do you still have access to hardware you wrote the driver for? Let me
> know if you need any help around here.
Yes, hardware is still available although I only have access to the Si5351a
with 3 clkouts. The code should be compatible for Si5351a with 8 clkouts and
code skeleton for 5351b (OSC and VXCO input) and 5351c (OSC and CLKIN) is
there but untested.
I've transferred the current driver version to my repository to work on. As soon
as I have regmap done, I will push it online and give you a note.
Sebastian
next prev parent reply other threads:[~2012-10-14 10:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-10 1:11 [RFC] Common clock framework for external clock generators Sebastian Hesselbarh
2012-05-13 12:29 ` Mark Brown
2012-05-13 16:30 ` Sebastian Hesselbarh
2012-05-13 16:43 ` Mark Brown
2012-05-13 17:11 ` Sebastian Hesselbarh
2012-05-13 17:16 ` Mark Brown
2012-05-14 18:08 ` Turquette, Mike
2012-05-14 18:12 ` Mark Brown
2012-10-11 8:34 ` Daniel Mack
2012-10-11 16:00 ` Sebastian Hesselbarth
2012-10-12 18:17 ` Daniel Mack
2012-10-14 10:59 ` Sebastian Hesselbarth [this message]
2012-10-14 11:13 ` Daniel Mack
2012-10-14 16:16 ` Sebastian Hesselbarth
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=507A9AF6.4030008@gmail.com \
--to=sebastian.hesselbarth@gmail.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@ti.com \
--cc=rob.herring@calxeda.com \
--cc=zonque@gmail.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 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).