[U-Boot] [RFC] fdt expert advice needed

Matthias Fuchs
2009-01-30T21:11:18Z

Hi FDT experts,

some time ago I posted a patch to fix U-Boot's approach to
set all ns16550 compatible nodes' clock-frequency property
in ppc4xx device tree's:

do_fixup_by_compat_u32(blob, "ns16550", "clock-frequency", gd->uart_clk, 1);

Typically this works fine. It is intended to configure all CPU internal UART's clock.
We have some additional UARTs attached to an external bus. From the device
tree's point of view they have a different path, but are also ns16550 compatible.

So the above line will also overwrite thier clock-frequency. This must not be done,
because they have a separate external clock and the value in the device tree is correct!

Now I want to replace the above code to only touch the ns16550 compatible nodes
that are direct childs of /plb/opb. Not those under /plb/ebc and even not those under
/plb/opb/ebc. This is not easy to do with the fdt API. Below you find my first and dirty
hack.

Isn't there a more simple way to do so? Don't bother me about the printf, variable names etc.
It's just for discussion.

Please tell me if I have to explain my code :-)

Matthias