[PATCH 1/2] clk: fixed-rate: use full DT node name
From: Stephen Warren <hidden>
Date: 2014-02-18 17:34:36
Also in:
linux-devicetree
On 02/18/2014 04:23 AM, Mark Rutland wrote:
On Fri, Feb 14, 2014 at 04:43:04PM +0000, Stephen Warren wrote:quoted
On 02/14/2014 03:35 AM, Mark Rutland wrote:quoted
On Fri, Feb 14, 2014 at 06:16:52AM +0000, Stephen Warren wrote:quoted
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 at 0 { compatible = "fixed-clock"; reg = <0>; ... clk_i2c: clock at 1 { compatible = "fixed-clock"; reg = <1>; ... clk_spi: clock at 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:-) ...
quoted
quoted
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 at 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.)