Arm boards syscon 'unit_address_format' clean-ups
Subsystems (6)
Rob Herring
maintainerv2 cover Arm boards syscon 'unit_address_format' clean-ups
This series addresses the last of the dtc 'unit_address_format' warnings in the tree.
The remaining issue was dealing with the node names on 2 bindings for Arm Ltd boards syscon child nodes: register-bit-led and Versatile ICST. Both of these used an offset property for register address rather than 'reg' which is the preference nowadays. With a 'reg' property, then we can have a proper node name and unit-address. This series adds support for using 'reg' instead and updates the node names and unit-addresses.
The dts file changes have inter-dependencies, but the clock and led changes can go via each subsystem.
Rob
Rob Herring (8):
dt-bindings: leds: Convert register-bit-led binding to DT schema
dt-bindings: leds: register-bit-led: Use 'reg' instead of 'offset'
leds: syscon: Support 'reg' in addition to 'offset' for register
address
dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset'
for VCO register address
clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset'
for register address
ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
ARM: dts: arm: Update ICST clock nodes 'reg' and node names
kbuild: Enable dtc 'unit_address_format' warning by default
.../bindings/clock/arm,syscon-icst.yaml | 5 + .../bindings/leds/register-bit-led.txt | 94 ------------------ .../bindings/leds/register-bit-led.yaml | 95 +++++++++++++++++++ arch/arm/boot/dts/arm-realview-eb.dtsi | 42 +++++--- arch/arm/boot/dts/arm-realview-pb1176.dts | 42 +++++--- arch/arm/boot/dts/arm-realview-pb11mp.dts | 48 +++++++--- arch/arm/boot/dts/arm-realview-pbx.dtsi | 42 +++++--- arch/arm/boot/dts/integrator.dtsi | 23 +++-- arch/arm/boot/dts/integratorap-im-pd1.dts | 9 +- arch/arm/boot/dts/integratorap.dts | 15 ++- arch/arm/boot/dts/integratorcp.dts | 9 +- arch/arm/boot/dts/mps2.dtsi | 10 +- arch/arm/boot/dts/versatile-ab-ib2.dts | 6 +- arch/arm/boot/dts/versatile-ab.dts | 27 ++++-- arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 ++++-- drivers/clk/versatile/clk-icst.c | 3 +- drivers/leds/leds-syscon.c | 3 +- scripts/Makefile.lib | 1 - 18 files changed, 316 insertions(+), 185 deletions(-) delete mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.txt create mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.yaml
Signature · 1 line
2.30.2
Rob Herring
maintainerPATCH v2 1/8 dt-bindings: leds: Convert register-bit-led binding to DT schema
Convert the register-bit-led binding to DT schema format.
As the example just repeats nearly identical nodes, trim it down to a few nodes and use some documented values for 'linux,default-trigger'.
---
v2:
- Drop undocumented linux,default-trigger values
--- .../bindings/leds/register-bit-led.txt | 94 ------------------- .../bindings/leds/register-bit-led.yaml | 78 +++++++++++++++ 2 files changed, 78 insertions(+), 94 deletions(-) delete mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.txt create mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.yaml
Documentation/devicetree/bindings/leds/register-bit-led.txt deleted +0 -94
@@ -1,94 +0,0 @@ -Device Tree Bindings for Register Bit LEDs - -Register bit leds are used with syscon multifunctional devices -where single bits in a certain register can turn on/off a -single LED. The register bit LEDs appear as children to the -syscon device, with the proper compatible string. For the -syscon bindings see: -Documentation/devicetree/bindings/mfd/syscon.yaml - -Each LED is represented as a sub-node of the syscon device. Each -node's name represents the name of the corresponding LED. - -LED sub-node properties: - -Required properties: -- compatible : must be "register-bit-led" -- offset : register offset to the register controlling this LED -- mask : bit mask for the bit controlling this LED in the register - typically 0x01, 0x02, 0x04 ... - -Optional properties: -- label : (optional) - see Documentation/devicetree/bindings/leds/common.txt -- linux,default-trigger : (optional) - see Documentation/devicetree/bindings/leds/common.txt -- default-state: (optional) The initial state of the LED - see Documentation/devicetree/bindings/leds/common.txt - -Example: - -syscon: syscon@10000000 { - compatible = "arm,realview-pb1176-syscon", "syscon"; - reg = <0x10000000 0x1000>; - - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x01>; - label = "versatile:0"; - linux,default-trigger = "heartbeat"; - default-state = "on"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x02>; - label = "versatile:1"; - linux,default-trigger = "mmc0"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x04>; - label = "versatile:2"; - linux,default-trigger = "cpu0"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x08>; - label = "versatile:3"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x10>; - label = "versatile:4"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x20>; - label = "versatile:5"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x40>; - label = "versatile:6"; - default-state = "off"; - }; - [email protected] { - compatible = "register-bit-led"; - offset = <0x08>; - mask = <0x80>; - label = "versatile:7"; - default-state = "off"; - }; -};
Documentation/devicetree/bindings/leds/register-bit-led.yaml new file +78 -0
78 lines not on this page · raw message
Signature · 1 line
2.30.2
Re: [PATCH v2 1/8] dt-bindings: leds: Convert register-bit-led binding to DT schema
Quoted 9 lines · Rob Herring
Convert the register-bit-led binding to DT schema format.
As the example just repeats nearly identical nodes, trim it down to a few nodes and use some documented values for 'linux,default-trigger'.
Cc Linus Walleij <[email protected]>Cc Pavel Machek <[email protected]>Signed-off-by Rob Herring <[email protected]>
Thanks for doing this!
Quoted 2 lines
v2:
- Drop undocumented linux,default-trigger values
Will this lead to warnings? People tend to want to use these.
(Possibly we could actually create operating-system independent triggers that make sense on any system. But it's another can of worms we don't need to open today.)
Documentation/devicetree/bindings/leds/register-bit-led.yaml line 34
Quoted 5 lines
Documentation/devicetree/bindings/leds/register-bit-led.yaml new file +5
-0+ enum: + [ 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, + 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000, + 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000 ]
That's an interesting looking enum :D
But I can't think of anything better, so:
Yours,
Linus Walleij
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Rob Herring
maintainerRe: [PATCH v2 1/8] dt-bindings: leds: Convert register-bit-led binding to DT schema
Quoted 12 lines · Linus Walleij
Quoted 9 lines · Rob Herring
Convert the register-bit-led binding to DT schema format.
As the example just repeats nearly identical nodes, trim it down to a few nodes and use some documented values for 'linux,default-trigger'.
Cc Linus Walleij <[email protected]>Cc Pavel Machek <[email protected]>Signed-off-by Rob Herring <[email protected]>
Quoted 6 lines
Thanks for doing this!
Quoted 2 lines
v2:
- Drop undocumented linux,default-trigger valuesWill this lead to warnings? People tend to want to use these.
Yes. The list for linux,default-trigger was purposely limited rather than just throw in all the occurrences we could find. It's kind of a mess with similar or overlapping names.
There's other and better ways to do this now. There's the 'function' property and you can link to another device.
Quoted 11 lines
(Possibly we could actually create operating-system independent triggers that make sense on any system. But it's another can of worms we don't need to open today.)
Documentation/devicetree/bindings/leds/register-bit-led.yaml line 34
Quoted 5 lines
Documentation/devicetree/bindings/leds/register-bit-led.yaml new file +5
-0+ enum: + [ 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, + 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000, + 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000 ]
Quoted 3 lines
That's an interesting looking enum :D
But I can't think of anything better, so:
We could define our own type, but I can't say I recall the need for this elsewhere.
Quoted 1 line
Reviewed-by Linus Walleij <[email protected]>
Thanks.
Rob
Re: [PATCH v2 1/8] dt-bindings: leds: Convert register-bit-led binding to DT schema
In reply to Rob HerringQuoted 13 lines · Rob Herring
Convert the register-bit-led binding to DT schema format.
As the example just repeats nearly identical nodes, trim it down to a few nodes and use some documented values for 'linux,default-trigger'.
Cc Linus Walleij <[email protected]>Cc Pavel Machek <[email protected]>Signed-off-by Rob Herring <[email protected]>---
v2:
- Drop undocumented linux,default-trigger values
Quoted 7 lines
--- .../bindings/leds/register-bit-led.txt | 94 ------------------- .../bindings/leds/register-bit-led.yaml | 78 +++++++++++++++ 2 files changed, 78 insertions(+), 94 deletions(-) delete mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.txt create mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.yaml
Applied, thanks!
Rob Herring
maintainerPATCH v2 2/8 dt-bindings: leds: register-bit-led: Use 'reg' instead of 'offset'
In reply to Rob Herring'reg' is the standard property for defining register banks/addresses. Add it to use for the register address and deprecate 'offset'. This also allows for using standard node names with unit-addresses. However, since it is quite possible to have multiple nodes at the same register address, allow for the unit-address to optionally have the bit offset. The unit-address format is '@<reg address>[,<bit offset>]'. This matches the format recently added for nvmem binding which has the same issue.
--- .../bindings/leds/register-bit-led.yaml | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/leds/register-bit-led.yaml +21 -4
@@ -20,9 +20,19 @@ allOf: - $ref: /schemas/leds/common.yaml# properties: + $nodename: + description: + The unit-address is in the form of @<reg addr>,<bit offset> + pattern: '^led@[0-9a-f]+,[0-9a-f]{1,2}$' + compatible: const: register-bit-led + reg: + description: + The register address and size + maxItems: 1 + mask: description: bit mask for the bit controlling this LED in the register
@@ -37,11 +47,12 @@ properties: description: register offset to the register controlling this LED $ref: /schemas/types.yaml#/definitions/uint32 + deprecated: true required: - compatible - mask - - offset + - reg unevaluatedProperties: false
@@ -51,24 +62,30 @@ examples: syscon@10000000 { compatible = "arm,realview-pb1176-syscon", "syscon"; reg = <0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x10000000 0x1000>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2";
Signature · 1 line
2.30.2
Re: [PATCH v2 2/8] dt-bindings: leds: register-bit-led: Use 'reg' instead of 'offset'
Quoted 9 lines · Rob Herring
'reg' is the standard property for defining register banks/addresses. Add it to use for the register address and deprecate 'offset'. This also allows for using standard node names with unit-addresses. However, since it is quite possible to have multiple nodes at the same register address, allow for the unit-address to optionally have the bit offset. The unit-address format is '@<reg address>[,<bit offset>]'. This matches the format recently added for nvmem binding which has the same issue.
Quoted 8 lines
Cc Pavel Machek <[email protected]>Cc Linus Walleij <[email protected]>Signed-off-by Rob Herring <[email protected]>--- .../bindings/leds/register-bit-led.yaml | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-)
Applied, thanks!
Rob Herring
maintainerPATCH v2 3/8 leds: syscon: Support 'reg' in addition to 'offset' for register address
In reply to Rob HerringThe register-bit-led binding now also supports 'reg' in addition to 'offset' for the register address. Add support to the driver to get the address from 'reg'.
--- drivers/leds/leds-syscon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/leds/leds-syscon.c +2 -1
@@ -81,7 +81,8 @@ static int syscon_led_probe(struct platform_device *pdev) sled->map = map; -if (of_property_read_u32 (np,"offset" , &sled->offset)) +if (of_property_read_u32 (np,"reg" , &sled->offset) && +of_property_read_u32 (np,"offset" , &sled->offset))return -EINVAL ;if (of_property_read_u32 (np,"mask" , &sled->mask))return -EINVAL ;
Signature · 1 line
2.30.2
Rob Herring
maintainerPATCH v2 4/8 dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset' for VCO register address
In reply to Rob Herring'reg' is the standard property for defining register banks/addresses. Add it to use for the VCO register address and deprecate 'vco-offset'. This will also allow for using standard node names with unit-addresses.
---
v2:
- Fix 'deprecated'
--- Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml | 5 +++++ 1 file changed, 5 insertions(+)
Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml +5 -0
@@ -69,6 +69,10 @@ properties: - arm,impd1-vco1 - arm,impd1-vco2 + reg: + maxItems: 1 + description: The VCO register + clocks: description: Parent clock for the ICST VCO maxItems: 1
@@ -83,6 +87,7 @@ properties: vco-offset: $ref: '/schemas/types.yaml#/definitions/uint32' description: Offset to the VCO register for the oscillator + deprecated: true required: - "#clock-cells"
Signature · 1 line
2.30.2
Re: [PATCH v2 4/8] dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset' for VCO register address
Quoting Rob Herring (2021-09-13 12:28:12)
Quoted 4 lines
'reg' is the standard property for defining register banks/addresses. Add it to use for the VCO register address and deprecate 'vco-offset'. This will also allow for using standard node names with unit-addresses.
Quoted 8 lines
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Cc Michael Turquette <[email protected]>Signed-off-by Rob Herring <[email protected]>---
Re: [PATCH v2 4/8] dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset' for VCO register address
In reply to Rob HerringQuoted 10 lines · Rob Herring
'reg' is the standard property for defining register banks/addresses. Add it to use for the VCO register address and deprecate 'vco-offset'. This will also allow for using standard node names with unit-addresses.
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Cc Michael Turquette <[email protected]>Signed-off-by Rob Herring <[email protected]>
Yeah this is better, dunno why I did it like that. I guess it was the Wild West of DT bindings back then.
Yours,
Linus Walleij
Rob Herring
maintainerPATCH v2 5/8 clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
In reply to Rob HerringThe ICST binding now also supports 'reg' in addition to 'vco-offset' for the VCO register address. Add support to the driver to get the VCO address from 'reg'.
--- drivers/clk/versatile/clk-icst.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/clk/versatile/clk-icst.c +2 -1
@@ -501,7 +501,8 @@ static void __init of_syscon_icst_setup(struct device_node *np)return ; } -if (of_property_read_u32 (np,"vco-offset" , &icst_desc.vco_offset)) { +if (of_property_read_u32 (np,"reg" , &icst_desc.vco_offset) && +of_property_read_u32 (np,"vco-offset" , &icst_desc.vco_offset)) {pr_err ("no VCO register offset for ICST clock\n" );return ; }
Signature · 1 line
2.30.2
Re: [PATCH v2 5/8] clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
Quoting Rob Herring (2021-09-13 12:28:13)
Quoted 10 lines
The ICST binding now also supports 'reg' in addition to 'vco-offset' for the VCO register address. Add support to the driver to get the VCO address from 'reg'.
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Signed-off-by Rob Herring <[email protected]>---
I don't think this driver is changing much so you can take it through DT tree if you prefer.
Rob Herring
maintainerRe: [PATCH v2 5/8] clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
Quoted 12 lines · Stephen Boyd
Quoting Rob Herring (2021-09-13 12:28:13)
Quoted 10 lines
The ICST binding now also supports 'reg' in addition to 'vco-offset' for the VCO register address. Add support to the driver to get the VCO address from 'reg'.
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Signed-off-by Rob Herring <[email protected]>---
Quoted 4 lines
Reviewed-by Stephen Boyd <[email protected]>I don't think this driver is changing much so you can take it through DT tree if you prefer.
clk tree is fine. :)
Rob
Stephen Boyd
maintainerRe: [PATCH v2 5/8] clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
Quoting Rob Herring (2021-09-14 15:00:08)
Quoted 13 lines · Stephen Boyd
Quoted 12 lines
Quoting Rob Herring (2021-09-13 12:28:13)
Quoted 10 lines
The ICST binding now also supports 'reg' in addition to 'vco-offset' for the VCO register address. Add support to the driver to get the VCO address from 'reg'.
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Signed-off-by Rob Herring <[email protected]>---
Quoted 7 lines
Quoted 4 lines
Reviewed-by Stephen Boyd <[email protected]>I don't think this driver is changing much so you can take it through DT tree if you prefer.
clk tree is fine. :)
Alright alright
Re: [PATCH v2 5/8] clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
In reply to Rob HerringQuoted 9 lines · Rob Herring
The ICST binding now also supports 'reg' in addition to 'vco-offset' for the VCO register address. Add support to the driver to get the VCO address from 'reg'.
Cc Linus Walleij <[email protected]>Cc Stephen Boyd <[email protected]>Signed-off-by Rob Herring <[email protected]>
This is nice.
Yours,
Linus Walleij
Rob Herring
maintainerPATCH v2 6/8 ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
In reply to Rob HerringAdd a 'reg' entry for register-bit-led nodes on the Arm Ltd platforms. The 'reg' entry is the LED control register address. With this, the node name can be updated to use a generic node name, 'led', and a unit-address.
--- arch/arm/boot/dts/arm-realview-eb.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb1176.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb11mp.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pbx.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/integrator.dtsi | 23 +++++++++++----- arch/arm/boot/dts/mps2.dtsi | 10 +++++-- arch/arm/boot/dts/versatile-ab-ib2.dts | 6 ++++- arch/arm/boot/dts/versatile-ab.dts | 27 +++++++++++++------ arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 +++++++++++++------ 9 files changed, 144 insertions(+), 57 deletions(-)
arch/arm/boot/dts/arm-realview-eb.dtsi +19 -8
@@ -198,61 +198,72 @@ fpga { syscon: syscon@10000000 { compatible = "arm,realview-eb-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";
arch/arm/boot/dts/arm-realview-pb1176.dts +19 -8
@@ -216,61 +216,72 @@ soc { syscon: syscon@10000000 { compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";
arch/arm/boot/dts/arm-realview-pb11mp.dts +19 -8
@@ -303,64 +303,75 @@ soc { pb11mp_syscon: syscon@10000000 { compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; linux,default-trigger = "cpu1"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; linux,default-trigger = "cpu2"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; linux,default-trigger = "cpu3"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";
arch/arm/boot/dts/arm-realview-pbx.dtsi +19 -8
@@ -220,61 +220,72 @@ soc: soc { syscon: syscon@10000000 { compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";
arch/arm/boot/dts/integrator.dtsi +17 -6
@@ -15,10 +15,14 @@ memory { core-module@10000000 { compatible = "arm,core-module-integrator", "syscon", "simple-mfd"; reg = <0x10000000 0x200>; + ranges = <0x0 0x10000000 0x200>; + #address-cells = <1>; + #size-cells = <1>; /* Use core module LED to indicate CPU load */ - [email protected] { + led@c,0 { compatible = "register-bit-led"; + reg = <0x0c 0x04>; offset = <0x0c>; mask = <0x01>; label = "integrator:core_module";
@@ -104,35 +108,42 @@ kmi@19000000 { interrupts = <4>; }; - syscon { + syscon@1a000000 { /* Debug registers mapped as syscon */ compatible = "syscon", "simple-mfd"; reg = <0x1a000000 0x10>; + ranges = <0x0 0x1a000000 0x10>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@4,0 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x01>; label = "integrator:green0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@4,1 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x02>; label = "integrator:yellow"; default-state = "off"; }; - [email protected] { + led@4,2 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x04>; label = "integrator:red"; default-state = "off"; }; - [email protected] { + led@4,3 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x08>; label = "integrator:green1";
arch/arm/boot/dts/mps2.dtsi +8 -2
@@ -216,8 +216,13 @@ fpgaio@8000 { compatible = "syscon", "simple-mfd"; reg = <0x8000 0x10>; - led0 { + ranges = <0x0 0x8000 0x10>; + #address-cells = <1>; + #size-cells = <1>; + + led@0,0 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x0>; mask = <0x01>; label = "userled:0";
@@ -225,8 +230,9 @@ led0 { default-state = "on"; }; - led1 { + led@0,1 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x0>; mask = <0x02>; label = "userled:1";
arch/arm/boot/dts/versatile-ab-ib2.dts +5 -1
@@ -13,9 +13,13 @@ / { syscon@27000000 { compatible = "arm,versatile-ib2-syscon", "syscon", "simple-mfd"; reg = <0x27000000 0x4>; + ranges = <0x0 0x27000000 0x4>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@0,4 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x00>; mask = <0x10>; label = "versatile-ib2:0";
arch/arm/boot/dts/versatile-ab.dts +19 -8
@@ -70,61 +70,72 @@ vga_con_in: endpoint { core-module@10000000 { compatible = "arm,core-module-versatile", "syscon", "simple-mfd"; reg = <0x10000000 0x200>; + ranges = <0x0 0x10000000 0x200>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";
arch/arm64/boot/dts/arm/juno-motherboard.dtsi +19 -8
@@ -153,64 +153,75 @@ v2m_sysctl: sysctl@20000 { apbregs@10000 { compatible = "syscon", "simple-mfd"; reg = <0x010000 0x1000>; + ranges = <0x0 0x10000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - led0 { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "vexpress:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - led1 { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "vexpress:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - led2 { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "vexpress:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - led3 { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "vexpress:3"; linux,default-trigger = "cpu1"; default-state = "off"; }; - led4 { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "vexpress:4"; linux,default-trigger = "cpu2"; default-state = "off"; }; - led5 { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "vexpress:5"; linux,default-trigger = "cpu3"; default-state = "off"; }; - led6 { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "vexpress:6"; default-state = "off"; }; - led7 { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "vexpress:7";
Signature · 1 line
2.30.2
Rob Herring
maintainerRe: [PATCH v2 6/8] ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
Quoted 12 lines · Rob Herring
Add a 'reg' entry for register-bit-led nodes on the Arm Ltd platforms. The 'reg' entry is the LED control register address. With this, the node name can be updated to use a generic node name, 'led', and a unit-address.
Cc Linus Walleij <[email protected]>Cc Liviu Dudau <[email protected]>Cc Sudeep Holla <[email protected]>Cc Lorenzo Pieralisi <[email protected]>Signed-off-by Rob Herring <[email protected]>
Quoted 11 lines
--- arch/arm/boot/dts/arm-realview-eb.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb1176.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb11mp.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pbx.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/integrator.dtsi | 23 +++++++++++----- arch/arm/boot/dts/mps2.dtsi | 10 +++++-- arch/arm/boot/dts/versatile-ab-ib2.dts | 6 ++++- arch/arm/boot/dts/versatile-ab.dts | 27 +++++++++++++------ arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 +++++++++++++------ 9 files changed, 144 insertions(+), 57 deletions(-)
Linus, Can you apply this and patch 7?
Quoted 637 lines
arch/arm/boot/dts/arm-realview-eb.dtsi +19
-8@@ -198,61 +198,72 @@ fpga { syscon: syscon@10000000 { compatible = "arm,realview-eb-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";arch/arm/boot/dts/arm-realview-pb1176.dts +19
-8@@ -216,61 +216,72 @@ soc { syscon: syscon@10000000 { compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";arch/arm/boot/dts/arm-realview-pb11mp.dts +19
-8@@ -303,64 +303,75 @@ soc { pb11mp_syscon: syscon@10000000 { compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; linux,default-trigger = "cpu1"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; linux,default-trigger = "cpu2"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; linux,default-trigger = "cpu3"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";arch/arm/boot/dts/arm-realview-pbx.dtsi +19
-8@@ -220,61 +220,72 @@ soc: soc { syscon: syscon@10000000 { compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd"; reg = <0x10000000 0x1000>; + ranges = <0x0 0x10000000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";arch/arm/boot/dts/integrator.dtsi +17
-6@@ -15,10 +15,14 @@ memory { core-module@10000000 { compatible = "arm,core-module-integrator", "syscon", "simple-mfd"; reg = <0x10000000 0x200>; + ranges = <0x0 0x10000000 0x200>; + #address-cells = <1>; + #size-cells = <1>; /* Use core module LED to indicate CPU load */ - [email protected] { + led@c,0 { compatible = "register-bit-led"; + reg = <0x0c 0x04>; offset = <0x0c>; mask = <0x01>; label = "integrator:core_module";@@ -104,35 +108,42 @@ kmi@19000000 { interrupts = <4>; }; - syscon { + syscon@1a000000 { /* Debug registers mapped as syscon */ compatible = "syscon", "simple-mfd"; reg = <0x1a000000 0x10>; + ranges = <0x0 0x1a000000 0x10>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@4,0 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x01>; label = "integrator:green0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@4,1 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x02>; label = "integrator:yellow"; default-state = "off"; }; - [email protected] { + led@4,2 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x04>; label = "integrator:red"; default-state = "off"; }; - [email protected] { + led@4,3 { compatible = "register-bit-led"; + reg = <0x04 0x04>; offset = <0x04>; mask = <0x08>; label = "integrator:green1";arch/arm/boot/dts/mps2.dtsi +8
-2@@ -216,8 +216,13 @@ fpgaio@8000 { compatible = "syscon", "simple-mfd"; reg = <0x8000 0x10>; - led0 { + ranges = <0x0 0x8000 0x10>; + #address-cells = <1>; + #size-cells = <1>; + + led@0,0 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x0>; mask = <0x01>; label = "userled:0";@@ -225,8 +230,9 @@ led0 { default-state = "on"; }; - led1 { + led@0,1 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x0>; mask = <0x02>; label = "userled:1";arch/arm/boot/dts/versatile-ab-ib2.dts +5
-1@@ -13,9 +13,13 @@ / { syscon@27000000 { compatible = "arm,versatile-ib2-syscon", "syscon", "simple-mfd"; reg = <0x27000000 0x4>; + ranges = <0x0 0x27000000 0x4>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@0,4 { compatible = "register-bit-led"; + reg = <0x00 0x04>; offset = <0x00>; mask = <0x10>; label = "versatile-ib2:0";arch/arm/boot/dts/versatile-ab.dts +19
-8@@ -70,61 +70,72 @@ vga_con_in: endpoint { core-module@10000000 { compatible = "arm,core-module-versatile", "syscon", "simple-mfd"; reg = <0x10000000 0x200>; + ranges = <0x0 0x10000000 0x200>; + #address-cells = <1>; + #size-cells = <1>; - [email protected] { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "versatile:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - [email protected] { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "versatile:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - [email protected] { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "versatile:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - [email protected] { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "versatile:3"; default-state = "off"; }; - [email protected] { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "versatile:4"; default-state = "off"; }; - [email protected] { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "versatile:5"; default-state = "off"; }; - [email protected] { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "versatile:6"; default-state = "off"; }; - [email protected] { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "versatile:7";arch/arm64/boot/dts/arm/juno-motherboard.dtsi +19
-9@@ -153,64 +153,75 @@ v2m_sysctl: sysctl@20000 { apbregs@10000 { compatible = "syscon", "simple-mfd"; reg = <0x010000 0x1000>; + ranges = <0x0 0x10000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; - led0 { + led@8,0 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x01>; label = "vexpress:0"; linux,default-trigger = "heartbeat"; default-state = "on"; }; - led1 { + led@8,1 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x02>; label = "vexpress:1"; linux,default-trigger = "mmc0"; default-state = "off"; }; - led2 { + led@8,2 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x04>; label = "vexpress:2"; linux,default-trigger = "cpu0"; default-state = "off"; }; - led3 { + led@8,3 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x08>; label = "vexpress:3"; linux,default-trigger = "cpu1"; default-state = "off"; }; - led4 { + led@8,4 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x10>; label = "vexpress:4"; linux,default-trigger = "cpu2"; default-state = "off"; }; - led5 { + led@8,5 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x20>; label = "vexpress:5"; linux,default-trigger = "cpu3"; default-state = "off"; }; - led6 { + led@8,6 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x40>; label = "vexpress:6"; default-state = "off"; }; - led7 { + led@8,7 { compatible = "register-bit-led"; + reg = <0x08 0x04>; offset = <0x08>; mask = <0x80>; label = "vexpress:7"; --2.30.2
Re: [PATCH v2 6/8] ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
Quoted 25 lines · Rob Herring
Quoted 12 lines · Rob Herring
Add a 'reg' entry for register-bit-led nodes on the Arm Ltd platforms. The 'reg' entry is the LED control register address. With this, the node name can be updated to use a generic node name, 'led', and a unit-address.
Cc Linus Walleij <[email protected]>Cc Liviu Dudau <[email protected]>Cc Sudeep Holla <[email protected]>Cc Lorenzo Pieralisi <[email protected]>Signed-off-by Rob Herring <[email protected]>Quoted 11 lines
--- arch/arm/boot/dts/arm-realview-eb.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb1176.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pb11mp.dts | 27 +++++++++++++------ arch/arm/boot/dts/arm-realview-pbx.dtsi | 27 +++++++++++++------ arch/arm/boot/dts/integrator.dtsi | 23 +++++++++++----- arch/arm/boot/dts/mps2.dtsi | 10 +++++-- arch/arm/boot/dts/versatile-ab-ib2.dts | 6 ++++- arch/arm/boot/dts/versatile-ab.dts | 27 +++++++++++++------ arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 +++++++++++++------ 9 files changed, 144 insertions(+), 57 deletions(-)
Quoted 1 line
Linus, Can you apply this and patch 7?
I signed them off and sent directly to the SoC tree mailalias.
Yours,
Linus Walleij
Rob Herring
maintainerPATCH v2 7/8 ARM: dts: arm: Update ICST clock nodes 'reg' and node names
In reply to Rob HerringAdd a 'reg' entry for ICST clock nodes on the Arm Ltd platforms. The 'reg' entry is the VCO register address. With this, the node name can be updated to use a generic node name, 'clock-controller', and a unit-address.
--- arch/arm/boot/dts/arm-realview-eb.dtsi | 15 ++++++++++----- arch/arm/boot/dts/arm-realview-pb1176.dts | 15 ++++++++++----- arch/arm/boot/dts/arm-realview-pb11mp.dts | 21 ++++++++++++++------- arch/arm/boot/dts/arm-realview-pbx.dtsi | 15 ++++++++++----- arch/arm/boot/dts/integratorap-im-pd1.dts | 9 +++++++-- arch/arm/boot/dts/integratorap.dts | 15 +++++++++++---- arch/arm/boot/dts/integratorcp.dts | 9 ++++++--- 7 files changed, 68 insertions(+), 31 deletions(-)
arch/arm/boot/dts/arm-realview-eb.dtsi +10 -5
@@ -269,36 +269,41 @@ led@8,7 { label = "versatile:7"; default-state = "off"; }; - oscclk0: osc0@0c { + oscclk0: clock-controller@c { compatible = "arm,syscon-icst307"; + reg = <0x0c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x0C>; clocks = <&xtal24mhz>; }; - oscclk1: osc1@10 { + oscclk1: clock-controller@10 { compatible = "arm,syscon-icst307"; + reg = <0x10 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x10>; clocks = <&xtal24mhz>; }; - oscclk2: osc2@14 { + oscclk2: clock-controller@14 { compatible = "arm,syscon-icst307"; + reg = <0x14 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x14>; clocks = <&xtal24mhz>; }; - oscclk3: osc3@18 { + oscclk3: clock-controller@18 { compatible = "arm,syscon-icst307"; + reg = <0x18 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x18>; clocks = <&xtal24mhz>; }; - oscclk4: osc4@1c { + oscclk4: clock-controller@1c { compatible = "arm,syscon-icst307"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x1c>;
arch/arm/boot/dts/arm-realview-pb1176.dts +10 -5
@@ -287,36 +287,41 @@ led@8,7 { label = "versatile:7"; default-state = "off"; }; - oscclk0: osc0@0c { + oscclk0: clock-controller@c { compatible = "arm,syscon-icst307"; + reg = <0x0c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x0C>; clocks = <&xtal24mhz>; }; - oscclk1: osc1@10 { + oscclk1: clock-controller@10 { compatible = "arm,syscon-icst307"; + reg = <0x10 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x10>; clocks = <&xtal24mhz>; }; - oscclk2: osc2@14 { + oscclk2: clock-controller@14 { compatible = "arm,syscon-icst307"; + reg = <0x14 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x14>; clocks = <&xtal24mhz>; }; - oscclk3: osc3@18 { + oscclk3: clock-controller@18 { compatible = "arm,syscon-icst307"; + reg = <0x18 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x18>; clocks = <&xtal24mhz>; }; - oscclk4: osc4@1c { + oscclk4: clock-controller@1c { compatible = "arm,syscon-icst307"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x1c>;
arch/arm/boot/dts/arm-realview-pb11mp.dts +14 -7
@@ -378,50 +378,57 @@ led@8,7 { default-state = "off"; }; - oscclk0: osc0@0c { + oscclk0: clock-controller@c { compatible = "arm,syscon-icst307"; + reg = <0x0c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x0C>; clocks = <&xtal24mhz>; }; - oscclk1: osc1@10 { + oscclk1: clock-controller@10 { compatible = "arm,syscon-icst307"; + reg = <0x10 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x10>; clocks = <&xtal24mhz>; }; - oscclk2: osc2@14 { + oscclk2: clock-controller@14 { compatible = "arm,syscon-icst307"; + reg = <0x14 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x14>; clocks = <&xtal24mhz>; }; - oscclk3: osc3@18 { + oscclk3: clock-controller@18 { compatible = "arm,syscon-icst307"; + reg = <0x18 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x18>; clocks = <&xtal24mhz>; }; - oscclk4: osc4@1c { + oscclk4: clock-controller@1c { compatible = "arm,syscon-icst307"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x1c>; clocks = <&xtal24mhz>; }; - oscclk5: osc5@d4 { + oscclk5: clock-controller@d4 { compatible = "arm,syscon-icst307"; + reg = <0xd4 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0xd4>; clocks = <&xtal24mhz>; }; - oscclk6: osc6@d8 { + oscclk6: clock-controller@d8 { compatible = "arm,syscon-icst307"; + reg = <0xd8 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0xd8>;
arch/arm/boot/dts/arm-realview-pbx.dtsi +10 -5
@@ -291,36 +291,41 @@ led@8,7 { label = "versatile:7"; default-state = "off"; }; - oscclk0: osc0@0c { + oscclk0: clock-controller@c { compatible = "arm,syscon-icst307"; + reg = <0x0c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x0C>; clocks = <&xtal24mhz>; }; - oscclk1: osc1@10 { + oscclk1: clock-controller@10 { compatible = "arm,syscon-icst307"; + reg = <0x10 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x10>; clocks = <&xtal24mhz>; }; - oscclk2: osc2@14 { + oscclk2: clock-controller@14 { compatible = "arm,syscon-icst307"; + reg = <0x14 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x14>; clocks = <&xtal24mhz>; }; - oscclk3: osc3@18 { + oscclk3: clock-controller@18 { compatible = "arm,syscon-icst307"; + reg = <0x18 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x18>; clocks = <&xtal24mhz>; }; - oscclk4: osc4@1c { + oscclk4: clock-controller@1c { compatible = "arm,syscon-icst307"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x20>; vco-offset = <0x1c>;
arch/arm/boot/dts/integratorap-im-pd1.dts +7 -2
@@ -28,9 +28,13 @@ &lm0 { syscon@0 { compatible = "arm,im-pd1-syscon", "syscon"; reg = <0x00000000 0x1000>; + ranges; + #address-cells = <1>; + #size-cells = <1>; - vco1: vco1-clock { + vco1: clock-controller@0 { compatible = "arm,impd1-vco1"; + reg = <0x00 0x04>; #clock-cells = <0>; lock-offset = <0x08>; vco-offset = <0x00>;
@@ -38,8 +42,9 @@ vco1: vco1-clock { clock-output-names = "IM-PD1-VCO1"; }; - vco2: vco2-clock { + vco2: clock-controller@4 { compatible = "arm,impd1-vco2"; + reg = <0x04 0x04>; #clock-cells = <0>; lock-offset = <0x08>; vco-offset = <0x04>;
arch/arm/boot/dts/integratorap.dts +11 -4
@@ -88,8 +88,9 @@ cm24mhz: cm24mhz@24M { }; /* Oscillator on the core module, clocks the CPU core */ - cmosc: cmosc@24M { + cmosc: clock-controller@8 { compatible = "arm,syscon-icst525-integratorap-cm"; + reg = <0x08 0x04>; #clock-cells = <0>; lock-offset = <0x14>; vco-offset = <0x08>;
@@ -97,8 +98,9 @@ cmosc: cmosc@24M { }; /* Auxilary oscillator on the core module, 32.369MHz at boot */ - auxosc: auxosc@24M { + auxosc: clock-controller@1c { compatible = "arm,syscon-icst525"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x14>; vco-offset = <0x1c>;
@@ -109,13 +111,17 @@ auxosc: auxosc@24M { syscon { compatible = "arm,integrator-ap-syscon", "syscon"; reg = <0x11000000 0x100>; + ranges = <0x0 0x11000000 0x100>; + #size-cells = <1>; + #address-cells = <1>; /* * SYSCLK clocks PCIv3 bridge, system controller and the * logic modules. */ - sysclk: apsys@24M { + sysclk: clock-controller@4 { compatible = "arm,syscon-icst525-integratorap-sys"; + reg = <0x04 0x04>; #clock-cells = <0>; lock-offset = <0x1c>; vco-offset = <0x04>;
@@ -123,8 +129,9 @@ sysclk: apsys@24M { }; /* One-bit control for the PCI bus clock (33 or 25 MHz) */ - pciclk: pciclk@24M { + pciclk: clock-controller@4,8 { compatible = "arm,syscon-icst525-integratorap-pci"; + reg = <0x04 0x04>; #clock-cells = <0>; lock-offset = <0x1c>; vco-offset = <0x04>;
arch/arm/boot/dts/integratorcp.dts +6 -3
@@ -92,8 +92,9 @@ cm24mhz: cm24mhz@24M { }; /* Oscillator on the core module, clocks the CPU core */ - cmcore: cmosc@24M { + cmcore: clock-controller@8 { compatible = "arm,syscon-icst525-integratorcp-cm-core"; + reg = <0x08 0x04>; #clock-cells = <0>; lock-offset = <0x14>; vco-offset = <0x08>;
@@ -101,8 +102,9 @@ cmcore: cmosc@24M { }; /* Oscillator on the core module, clocks the memory bus */ - cmmem: cmosc@24M { + cmmem: clock-controller@8,12 { compatible = "arm,syscon-icst525-integratorcp-cm-mem"; + reg = <0x08 0x04>; #clock-cells = <0>; lock-offset = <0x14>; vco-offset = <0x08>;
@@ -110,8 +112,9 @@ cmmem: cmosc@24M { }; /* Auxilary oscillator on the core module, clocks the CLCD */ - auxosc: auxosc@24M { + auxosc: clock-controller@1c { compatible = "arm,syscon-icst525"; + reg = <0x1c 0x04>; #clock-cells = <0>; lock-offset = <0x14>; vco-offset = <0x1c>;
Signature · 1 line
2.30.2
Rob Herring
maintainerPATCH v2 8/8 kbuild: Enable dtc 'unit_address_format' warning by default
In reply to Rob HerringWith all the 'unit_address_format' warnings fixed, enable the warning by default.
--- scripts/Makefile.lib | 1 - 1 file changed, 1 deletion(-)
scripts/Makefile.lib +0 -1
@@ -310,7 +310,6 @@ DTC_FLAGS += -Wno-interrupt_provider # Disable noisy checks by default ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),) DTC_FLAGS += -Wno-unit_address_vs_reg \ - -Wno-unit_address_format \ -Wno-avoid_unnecessary_addr_size \ -Wno-alias_paths \ -Wno-graph_child_address \
Signature · 1 line
2.30.2
Re: [PATCH v2 8/8] kbuild: Enable dtc 'unit_address_format' warning by default
Quoted 9 lines · Rob Herring
With all the '
unit_address_format' warnings fixed, enable the warning by default.Cc Michal Marek <[email protected]>Cc Nick Desaulniers <[email protected]>Acked-by Masahiro Yamada <[email protected]>Signed-off-by Rob Herring <[email protected]>
Quoted 19 lines
--- scripts/Makefile.lib | 1 - 1 file changed, 1 deletion(-)scripts/Makefile.lib +0
-2@@ -310,7 +310,6 @@ DTC_FLAGS += -Wno-interrupt_provider # Disable noisy checks by default ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),) DTC_FLAGS += -Wno-unit_address_vs_reg \ - -Wno-unit_address_format \ -Wno-avoid_unnecessary_addr_size \ -Wno-alias_paths \ -Wno-graph_child_address \ --2.30.2
Signature · 2 lines
Thanks, ~Nick Desaulniers
Rob Herring
maintainerQuoted 13 lines · Rob Herring
This series addresses the last of the dtc '
unit_address_format' warnings in the tree.The remaining issue was dealing with the node names on 2 bindings for Arm Ltd boards syscon child nodes: register-bit-led and Versatile ICST. Both of these used an offset property for register address rather than 'reg' which is the preference nowadays. With a 'reg' property, then we can have a proper node name and unit-address. This series adds support for using 'reg' instead and updates the node names and unit-addresses.
The dts file changes have inter-dependencies, but the clock and led changes can go via each subsystem.
Quoted 8 lines
Rob
Rob Herring (8):
dt-bindings: leds: Convert register-bit-led binding to DT schema
dt-bindings: leds: register-bit-led: Use 'reg' instead of 'offset'
leds: syscon: Support 'reg' in addition to 'offset' for register
address
Pavel, Can you apply or comment on patches 1-3?
Rob
Quoted 7 lines
dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset'
for VCO register address
clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset'
for register address
ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
ARM: dts: arm: Update ICST clock nodes 'reg' and node names
kbuild: Enable dtc 'unit_address_format' warning by default