Subject: Re: [PATCH 15/16] Add device tree for Ebony

From: Segher Boessenkool <[email-masked]>
Date: Wed, 14 Feb 2007 18:51:27 +0100

>>>> +	UIC0: interrupt-controller { /* UIC0 */
>>>
>>>> +		#address-cells = <0>;
>>>> +		#size-cells = <0>;
>>>
>>> #address-cells = 0 never makes sense.
>>
>> Why not?  Children of this node have and need no reg property, and no
>> meaningful address.  Sounds like #address-cells = 0 to me.
>
> In fact, not only it does make perfect sense but it's also routinely
> used for ... interrupt controllers :-) That's among others why the
> interrupt map entries "second" part usually doesn't contain the address
> cells.

Can you please explain this in detail?  Children of such
a node (a node with #a = 0) have no "reg" property --
maybe something in the interrupt tree stuff still needs
a #a in the interrupt controller node, but I fail to
see what right now.

>>> You need a #address-cells, #size-cells here.
>>
>> Why?  The values inherited from the root node are perfectly ok here.
>
> Inheriting values is out of spec.

It's not just out of spec but directly contradicting it.

> The kernel somewhat does it but that's
> a bad habit, we should always have them explicit.

The kernel should really only do it on firmwares that
need this quirk.  Alternatively, some early fix up
pass could add the properties on such a firmware.

Segher