From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthias Fuchs Date: Fri, 30 Jan 2009 22:11:18 +0100 Subject: [U-Boot] [RFC] fdt expert advice needed Message-ID: <200901302211.18504.matthias.fuchs@esd-electronics.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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