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

From: Segher Boessenkool <[email-masked]>
Date: Thu, 15 Feb 2007 01:03:08 +0100

>> There cannot *exist* any children of the node.  Unless
>> your hardware is really weird.  I guess it is :-)
>>
>> In such a case, you just don't put a "reg" property in
>> the kid nodes.
>
> No. The #address-cells in the interrupt controller is necessary to
> define the size of the unit address part of the unit interrupt 
> specifier
> of interrupt children. Re-read your spec :-)

Like I said (perhaps elsewhere in this thread), there
might be something in the interrupt mapping spec yes.

But I don't see what...  read on...

> Having it set to 0 provides the necessary definition so that the "right
> hand" members of an interrupt map don't need a unit address in their
> unit interrupt specifier.

And a missing #address-cells property means 0 for the
purpose of interrupt mapping.  Here, have some quotes
from the spec:

> For nodes that represent devices, the number of cells to represent a 
> unit interrupt specifier  is the  sum of the "#address-cells"  and 
> "#interrupt-cells"  properties; for nodes that do  not represent 
> devices, there is no relevant "#address-cells"  value, so that the 
> number of cells  is solely determined by the "#interrupt-cells" value. 
>  The latter case exists due to the nature of representing interrupt 
> mapping outside the context of the normal device tree.

> Note that the "open-pic" node does not have a "#address-cells" 
> property, so that  the number of cells for the parent unit interrupt 
> specifiers is 2 (which is the value of its "#interrupt-cells" 
> property).

> if present( "#address-cells", parent-node )
> 	#cells = valueof( "#address-cells", parent-node )
> else #cells = 0   then

Segher