Message ID | 20200117155001.v2.1.I7dbd712cfe0bdf7b53d9ef9791072b7e9c6d3c33@changeid |
---|---|
State | Superseded, archived |
Headers | show |
Series | [v2] dt-bindings: timer: Use non-empty ranges in example | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | warning | "total: 0 errors, 1 warnings, 27 lines checked" |
robh/dt-meta-schema | fail | build log |
Hi, On Fri, Jan 17, 2020 at 3:50 PM Douglas Anderson <dianders@chromium.org> wrote: > > On many arm64 qcom device trees, running `make dtbs_check` yells: > > timer@17c20000: #size-cells:0:0: 1 was expected > > It appears that someone was trying to assert the fact that sub-nodes > describing frames would never have a size that's more than 32-bits > big. That does indeed appear to be true for all cases I could find. > > Currently many arm64 qcom device tree files have a #address-cells and > about in commit bede7d2dc8f3 ("arm64: dts: qcom: sdm845: Increase > address and size cells for soc"). That means the only way we can > shrink them down is to use a non-empty ranges. > > Since forever it has said in "writing-bindings.txt" to "DO use > non-empty 'ranges' to limit the size of child buses/devices". I guess > we should start listening to it. > > I believe (but am not certain) that this also means that we should use > "ranges" to simplify the "reg" of our sub devices by specifying an > offset. Let's update the example in the bindings to make this > obvious. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> > --- > See: > https://lore.kernel.org/r/20191212113540.7.Ia9bd3fca24ad34a5faaf1c3e58095c74b38abca1@changeid > > ...for the patch that sparked this change. > > Changes in v2: > - Fixed my typo 0xf0000000 => 0xf0001000 > > .../devicetree/bindings/timer/arm,arch_timer_mmio.yaml | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml b/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml > index b3f0fe96ff0d..b92d958d7541 100644 > --- a/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml > +++ b/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml > @@ -99,22 +99,22 @@ examples: > compatible = "arm,armv7-timer-mem"; > #address-cells = <1>; > #size-cells = <1>; > - ranges; > + ranges = <0 0xf0001000 0x1000>; > reg = <0xf0000000 0x1000>; > clock-frequency = <50000000>; > > - frame@f0001000 { > + frame@0 { > frame-number = <0>; > interrupts = <0 13 0x8>, > <0 14 0x8>; > - reg = <0xf0001000 0x1000>, > - <0xf0002000 0x1000>; > + reg = <0x0000 0x1000>, > + <0x1000 0x1000>; > }; > > frame@f0003000 { > frame-number = <1>; > interrupts = <0 15 0x8>; > - reg = <0xf0003000 0x1000>; > + reg = <0x2000 0x1000>; Wow, how many stupid mistakes can I make in one small change? :( I forgot to change the node name. v3 is now at: https://lore.kernel.org/r/20200117155303.v3.1.I7dbd712cfe0bdf7b53d9ef9791072b7e9c6d3c33@changeid -Doug
diff --git a/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml b/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml index b3f0fe96ff0d..b92d958d7541 100644 --- a/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml +++ b/Documentation/devicetree/bindings/timer/arm,arch_timer_mmio.yaml @@ -99,22 +99,22 @@ examples: compatible = "arm,armv7-timer-mem"; #address-cells = <1>; #size-cells = <1>; - ranges; + ranges = <0 0xf0001000 0x1000>; reg = <0xf0000000 0x1000>; clock-frequency = <50000000>; - frame@f0001000 { + frame@0 { frame-number = <0>; interrupts = <0 13 0x8>, <0 14 0x8>; - reg = <0xf0001000 0x1000>, - <0xf0002000 0x1000>; + reg = <0x0000 0x1000>, + <0x1000 0x1000>; }; frame@f0003000 { frame-number = <1>; interrupts = <0 15 0x8>; - reg = <0xf0003000 0x1000>; + reg = <0x2000 0x1000>; }; };
On many arm64 qcom device trees, running `make dtbs_check` yells: timer@17c20000: #size-cells:0:0: 1 was expected It appears that someone was trying to assert the fact that sub-nodes describing frames would never have a size that's more than 32-bits big. That does indeed appear to be true for all cases I could find. Currently many arm64 qcom device tree files have a #address-cells and about in commit bede7d2dc8f3 ("arm64: dts: qcom: sdm845: Increase address and size cells for soc"). That means the only way we can shrink them down is to use a non-empty ranges. Since forever it has said in "writing-bindings.txt" to "DO use non-empty 'ranges' to limit the size of child buses/devices". I guess we should start listening to it. I believe (but am not certain) that this also means that we should use "ranges" to simplify the "reg" of our sub devices by specifying an offset. Let's update the example in the bindings to make this obvious. Signed-off-by: Douglas Anderson <dianders@chromium.org> --- See: https://lore.kernel.org/r/20191212113540.7.Ia9bd3fca24ad34a5faaf1c3e58095c74b38abca1@changeid ...for the patch that sparked this change. Changes in v2: - Fixed my typo 0xf0000000 => 0xf0001000 .../devicetree/bindings/timer/arm,arch_timer_mmio.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)