On 02/18/2014 04:23 AM, Mark Rutland wrote: > On Fri, Feb 14, 2014 at 04:43:04PM +0000, Stephen Warren wrote: >> 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:-/ > > Maybe we have to live with it then. :/ Great:-) ... >>> 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. > > As far as I can see from ePAPR, the only requriement is: > > The node-name shall start with a lower or uppercase character and > should describe the general class of device. > > IMO clock_1 describes the general class of device as well as clock@1, > while also not filling a unexpected property with a meaningless value. I believe section 2.2.2 "Generic Names Recommendation" is the source of the rule that nodes should be named after the type of object rather than the identity. """ The name of a node should be somewhat generic, reflecting the function of the device and not its precise programming model. If appropriate, the name should be one of the following choices: * atm * cache-controller * compact-flash * can * cpu ... """ (I note e.g. "cpu" not "cpu-1", "cpu_2", etc.) -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html