[U-Boot] soc vs. clocks in device-tree
Benjamin Tietz
uboot at dresden.micronet24.de
Thu Jun 23 20:53:23 CEST 2016
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 <uboot at dresden.micronet24.de> 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 at 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
More information about the U-Boot
mailing list