[PATCH 2/5] arm: dts: lpc32xx: fix improper usage of ranges property

Arnd Bergmann arnd at arndb.de
Wed Oct 14 13:07:06 PDT 2015


On Wednesday 14 October 2015 19:23:09 Joachim Eastwood wrote:
> >
> > /ahb5 {
> >         ranges = <0 0x20000000 0x10000000>;
> >
> >         apb {
> >                 ranges = <0 0x80000 0x20000>;
> >         };
> > };
> > /ahb6 {
> >         ranges = <0 0x30000000 0x10000000>,           /* AHB registers */
> >                  <0x80000000 0x80000000 0x40000000>, /* EMC DYCS0/1 */
> >                  <0xE0000000 0xE0000000 0x04000000>; /* EMC CS0-3 */
> >
> >         memory-controller at 1080000 {
> >                 reg = <0x1080000 0x10000>;
> >         };
> > };
> 
> Sorry for hijacking the thread, but I have related question to this.
> 
> What is the advantage of using a hierarchical bus structure in dt?
> I thought the recommendation, at least for new device trees, was to
> keep it flat under a "soc"-node.
> 
> If doesn't offer any advantages why not remove instead of adding the
> ranges property which seems to grow a bit complex now?
> Of course removing it would create a lot of churn because of the
> re-indentation but at least the end result would be simpler.

The general recommendation is to have the DT structure resemble
the hardware as closely as possible. If the chip has a clear
hierarchy and you know it, then it's best to describe it that way.

The reason for having a single 'soc' node in a lot of the modern
dtsi files is that either it's not documented, or they use AXI
'buses' that are not really hierarchical but are point-to-point
connections.

	Arnd



More information about the linux-arm-kernel mailing list