Re: [U-Boot] soc vs. clocks in device-tree

2016-06-23 Thread Benjamin Tietz
Hi Simon,

On Tue, Jun 21, 2016 at 08:50:11PM -0600, Simon Glass wrote:
> Hi Benjamin,
> 
> On 20 June 2016 at 12:42, Benjamin Tietz  wrote:
> >
> > Hello,
> >
> > in my device-tree (for stm32f429 - as found in the linux kernel) exist
> > two branches /soc and /clocks. While /soc contains all embedded
> > functionality of the SOC, /clocks contain the external crystal, like in
> > the following snippet.
> >
> > / {
> > clocks {
> > clk_hse: clk-hse {
> > #clock-cells = <0>;
> > compatible = "fixed-clock";
> > clock-frequency = <0>;
> > };
> > };
> >
> > soc {
> > rcc: rcc@40023810 {
> > #clock-cells = <2>;
> > compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
> > reg = <0x40023800 0x400>;
> > clocks = <&clk_hse>;
> > };
> > ...
> > };
> > };
> >
> > While /soc is detected in u-boot using the simple-bus class, /clocks is
> > ignored completely, Because of that, the crystal isn't detected, too.
> > If I move the crystal into the /soc branch, it is found and can be
> > referenced.
> 
> Can you add this:
> 
> compatible = "simple-bus";

Thank you, that is the solution.

> 
> >
> > Poking through the code I haven't yet found the reason, why soc is
> > initialized as simple-bus and clocks is not. Could someone please
> > enlighten me?
> 
> No, I don't understand that either. From what I know of it, there is
> no special case logic for "soc".

There really is no special logic.  For the soc-part that line is hidden
within the processor-specific dts-file (armv7-m.dtsi in this case.).
The "clock" doesn't appear there, so no compatible line was parsed and
the node ignored.

> 
> > best regards
> > Benjamin Tietz
> 
> Regards,
> Simon

Regards
Benjamin
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] soc vs. clocks in device-tree

2016-06-21 Thread Simon Glass
Hi Benjamin,

On 20 June 2016 at 12:42, Benjamin Tietz  wrote:
>
> Hello,
>
> in my device-tree (for stm32f429 - as found in the linux kernel) exist
> two branches /soc and /clocks. While /soc contains all embedded
> functionality of the SOC, /clocks contain the external crystal, like in
> the following snippet.
>
> / {
> clocks {
> clk_hse: clk-hse {
> #clock-cells = <0>;
> compatible = "fixed-clock";
> clock-frequency = <0>;
> };
> };
>
> soc {
> rcc: rcc@40023810 {
> #clock-cells = <2>;
> compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
> reg = <0x40023800 0x400>;
> clocks = <&clk_hse>;
> };
> ...
> };
> };
>
> While /soc is detected in u-boot using the simple-bus class, /clocks is
> ignored completely, Because of that, the crystal isn't detected, too.
> If I move the crystal into the /soc branch, it is found and can be
> referenced.

Can you add this:

compatible = "simple-bus";

>
> Poking through the code I haven't yet found the reason, why soc is
> initialized as simple-bus and clocks is not. Could someone please
> enlighten me?

No, I don't understand that either. From what I know of it, there is
no special case logic for "soc".

> best regards
> Benjamin Tietz

Regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot