On 02/14/2014 03:35 AM, Mark Rutland wrote:
> On Fri, Feb 14, 2014 at 06:16:52AM +0000, Stephen Warren wrote:
>> clk-fixed-rate currently names clocks according to a node's name without
>> the unit address. When faced with the legal and technically correct DT
>> structure below, this causes rgistration attempts for 3 clocks with the
>> same name, 2 of which fail.
>>
>> clocks {
>> compatible = "simple-bus";
>> #address-cells = <1>;
>> #size-cells = <0>;
>>
>> clk_mmc: clock@0 {
>> compatible = "fixed-clock";
>> reg = <0>;
>> ...
>> clk_i2c: clock@1 {
>> compatible = "fixed-clock";
>> reg = <1>;
>> ...
>> clk_spi: clock@2 {
>> compatible = "fixed-clock";
>> reg = <2>;
>> ...
>
> I'd argue that this case isn't valid.
Well, it's very widely used, and was the result of numerous discussions
of how this kind of thing should be represented:-/
> The fixed-clock binding doesn't define a reg, yet simple bus binding
> implies that the reg property of child nodes should be interpretted as
> the same address space as their parent (MMIO in this case?). The
> fixed-clock nodes reg proeprties clearly aren't MMIO addresses.
>
> Additionally, the _requred_ ranges property is missing.
Perhaps we need to invent a simple-container instead then?
> It's just nonsensical; rename them to clock_{0,1,..} instead and get rid
> of the reg properties. Then they're named uniquely.
That's not legal either. DT node names are supposed to represent the
type of device/object (i.e. just "clock"), not the identity of the
device/object (i.e. not include IDs etc.). Hence, the node name needs to
be "clock" for all of them, and the unit address must be used to
differentiate them.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html