ARM: dts: exynos: Remove duplicated inclusion of syscon restart nodes on Exynos5410
Subsystems (2)
Krzysztof Kozlowski
maintainerPATCH 1/3 ARM: dts: exynos: Remove duplicated inclusion of syscon restart nodes on Exynos5410
The exynos-syscon-restart.dtsi is already included by exynos5.dtsi (through exynos54xx.dtsi).
--- arch/arm/boot/dts/exynos5410.dtsi | 1 - 1 file changed, 1 deletion(-)
arch/arm/boot/dts/exynos5410.dtsi +0 -1
@@ -11,7 +11,6 @@ */ #include "exynos54xx.dtsi" -#include "exynos-syscon-restart.dtsi" #include <dt-bindings/clock/exynos5410.h> #include <dt-bindings/clock/exynos-audss-clk.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
Signature · 1 line
2.11.0
Krzysztof Kozlowski
maintainerPATCH 2/3 ARM: dts: exynos: Fix missing missing reg warning for syscon restart nodes
Fix DTC warnings like:
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-poweroff missing or empty reg/ranges property
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-reboot missing or empty reg/ranges property
by moving the syscon poweroff and restart nodes into the PMU (Power Management Unit) node. The PMU node is the actual block responsible for power management, including typical Exynos on/off/restart procedures. Therefore the syscon poweroff and restart nodes logically belong to it.
---
Tested on Exynos5420 and Exynos4412. Other tests are welcomed.
--- .../devicetree/bindings/arm/samsung/pmu.txt | 4 +++- arch/arm/boot/dts/exynos-syscon-restart.dtsi | 28 ++++++++++------------ arch/arm/boot/dts/exynos3250.dtsi | 4 ++-- arch/arm/boot/dts/exynos4.dtsi | 5 ++-- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5.dtsi | 1 - arch/arm/boot/dts/exynos5250.dtsi | 3 ++- arch/arm/boot/dts/exynos5410.dtsi | 3 ++- arch/arm/boot/dts/exynos5420.dtsi | 3 ++- 9 files changed, 27 insertions(+), 26 deletions(-)
Documentation/devicetree/bindings/arm/samsung/pmu.txt +3 -1
@@ -12,6 +12,8 @@ Properties: - "samsung,exynos5433-pmu" - for Exynos5433 SoC. - "samsung,exynos7-pmu" - for Exynos7 SoC. second value must be always "syscon". + If PMU contains optional syscon-poweroff or syscon-restart nodes, + then third value must be "simple-mfd". - reg : offset and length of the register set.
@@ -45,7 +47,7 @@ following properties: Example : pmu_system_controller: system-controller@10040000 { - compatible = "samsung,exynos5250-pmu", "syscon"; + compatible = "samsung,exynos5250-pmu", "syscon", "simple-mfd"; reg = <0x10040000 0x5000>; interrupt-controller; #interrupt-cells = <3>;
arch/arm/boot/dts/exynos-syscon-restart.dtsi +12 -16
@@ -6,22 +6,18 @@ * published by the Free Software Foundation. */ -/ { - soc { - compatible = "simple-bus"; - - poweroff: syscon-poweroff { - compatible = "syscon-poweroff"; - regmap = <&pmu_system_controller>; - offset = <0x330C>; /* PS_HOLD_CONTROL */ - mask = <0x5200>; /* reset value */ - }; +&pmu_system_controller { + poweroff: syscon-poweroff { + compatible = "syscon-poweroff"; + regmap = <&pmu_system_controller>; + offset = <0x330C>; /* PS_HOLD_CONTROL */ + mask = <0x5200>; /* reset value */ + }; - reboot: syscon-reboot { - compatible = "syscon-reboot"; - regmap = <&pmu_system_controller>; - offset = <0x0400>; /* SWRESET */ - mask = <0x1>; - }; + reboot: syscon-reboot { + compatible = "syscon-reboot"; + regmap = <&pmu_system_controller>; + offset = <0x0400>; /* SWRESET */ + mask = <0x1>; }; };
arch/arm/boot/dts/exynos3250.dtsi +2 -2
@@ -15,7 +15,6 @@ */ #include "exynos4-cpu-thermal.dtsi" -#include "exynos-syscon-restart.dtsi" #include <dt-bindings/clock/exynos3250.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h>
@@ -148,7 +147,7 @@ }; pmu_system_controller: system-controller@10020000 { - compatible = "samsung,exynos3250-pmu", "syscon"; + compatible = "samsung,exynos3250-pmu", "syscon", "simple-mfd"; reg = <0x10020000 0x4000>; interrupt-controller; #interrupt-cells = <3>;
@@ -914,3 +913,4 @@ }; #include "exynos3250-pinctrl.dtsi" +#include "exynos-syscon-restart.dtsi"
arch/arm/boot/dts/exynos4.dtsi +3 -2
@@ -20,7 +20,6 @@ #include <dt-bindings/clock/exynos-audss-clk.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h> -#include "exynos-syscon-restart.dtsi" / { interrupt-parent = <&gic>;
@@ -174,7 +173,7 @@ }; pmu_system_controller: system-controller@10020000 { - compatible = "samsung,exynos4210-pmu", "syscon"; + compatible = "samsung,exynos4210-pmu", "syscon", "simple-mfd"; reg = <0x10020000 0x4000>; interrupt-controller; #interrupt-cells = <3>;
@@ -1010,3 +1009,5 @@ clock-names = "secss"; }; }; + +#include "exynos-syscon-restart.dtsi"
arch/arm/boot/dts/exynos4412.dtsi +1 -1
@@ -725,7 +725,7 @@ }; &pmu_system_controller { - compatible = "samsung,exynos4412-pmu", "syscon"; + compatible = "samsung,exynos4412-pmu", "syscon", "simple-mfd"; clock-names = "clkout0", "clkout1", "clkout2", "clkout3", "clkout4", "clkout8", "clkout9"; clocks = <&clock CLK_OUT_DMC>, <&clock CLK_OUT_TOP>,
arch/arm/boot/dts/exynos5.dtsi +0 -1
@@ -12,7 +12,6 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h> -#include "exynos-syscon-restart.dtsi" / { interrupt-parent = <&gic>;
arch/arm/boot/dts/exynos5250.dtsi +2 -1
@@ -239,7 +239,7 @@ }; pmu_system_controller: system-controller@10040000 { - compatible = "samsung,exynos5250-pmu", "syscon"; + compatible = "samsung,exynos5250-pmu", "syscon", "simple-mfd"; reg = <0x10040000 0x5000>; clock-names = "clkout16"; clocks = <&clock CLK_FIN_PLL>;
@@ -1114,3 +1114,4 @@ }; #include "exynos5250-pinctrl.dtsi" +#include "exynos-syscon-restart.dtsi"
arch/arm/boot/dts/exynos5410.dtsi +2 -1
@@ -66,7 +66,7 @@ ranges; pmu_system_controller: system-controller@10040000 { - compatible = "samsung,exynos5410-pmu", "syscon"; + compatible = "samsung,exynos5410-pmu", "syscon", "simple-mfd"; reg = <0x10040000 0x5000>; clock-names = "clkout16"; clocks = <&fin_pll>;
@@ -439,3 +439,4 @@ }; #include "exynos5410-pinctrl.dtsi" +#include "exynos-syscon-restart.dtsi"
arch/arm/boot/dts/exynos5420.dtsi +2 -1
@@ -706,7 +706,7 @@ }; pmu_system_controller: system-controller@10040000 { - compatible = "samsung,exynos5420-pmu", "syscon"; + compatible = "samsung,exynos5420-pmu", "syscon", "simple-mfd"; reg = <0x10040000 0x5000>; clock-names = "clkout16"; clocks = <&clock CLK_FIN_PLL>;
@@ -1531,3 +1531,4 @@ }; #include "exynos5420-pinctrl.dtsi" +#include "exynos-syscon-restart.dtsi"
Signature · 1 line
2.11.0
Rob Herring
maintainerRe: [PATCH 2/3] ARM: dts: exynos: Fix missing missing reg warning for syscon restart nodes
Quoted 34 lines · Krzysztof Kozlowski
Fix DTC warnings like:
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-poweroff missing or empty reg/ranges property
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-reboot missing or empty reg/ranges propertyby moving the syscon poweroff and restart nodes into the PMU (Power Management Unit) node. The PMU node is the actual block responsible for power management, including typical Exynos on/off/restart procedures. Therefore the syscon poweroff and restart nodes logically belong to it.
Signed-off-by Krzysztof Kozlowski <[email protected]>---
Tested on Exynos5420 and Exynos4412. Other tests are welcomed.
--- .../devicetree/bindings/arm/samsung/pmu.txt | 4 +++- arch/arm/boot/dts/exynos-syscon-restart.dtsi | 28 ++++++++++------------ arch/arm/boot/dts/exynos3250.dtsi | 4 ++-- arch/arm/boot/dts/exynos4.dtsi | 5 ++-- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5.dtsi | 1 - arch/arm/boot/dts/exynos5250.dtsi | 3 ++- arch/arm/boot/dts/exynos5410.dtsi | 3 ++- arch/arm/boot/dts/exynos5420.dtsi | 3 ++- 9 files changed, 27 insertions(+), 26 deletions(-)Documentation/devicetree/bindings/arm/samsung/pmu.txt +0
-0
Documentation/devicetree/bindings/arm/samsung/pmu.txt Properties: · line 16
Quoted 5 lines
Documentation/devicetree/bindings/arm/samsung/pmu.txt +2
-0@@ -12,6 +12,8 @@ Properties: - "samsung,exynos5433-pmu" - for Exynos5433 SoC. - "samsung,exynos7-pmu" - for Exynos7 SoC. second value must be always "syscon". + If PMU contains optional syscon-poweroff or syscon-restart nodes, + then third value must be "simple-mfd".
I don't think this is right. simple-mfd is only for cases where the parent has no setup that the child nodes are dependent on. You need the regmap setup by the parent before the child can be enumerated. The correct thing to do here is add an of_platform_default_populate() call.
Rob
Krzysztof Kozlowski
maintainerRe: [PATCH 2/3] ARM: dts: exynos: Fix missing missing reg warning for syscon restart nodes
Quoted 30 lines · Rob Herring
Quoted 29 lines · Krzysztof Kozlowski
Fix DTC warnings like:
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-poweroff missing or empty reg/ranges property
arch/arm/boot/dts/exynos4412-trats2.dtb: Warning (simple_bus_reg):
Node /soc/syscon-reboot missing or empty reg/ranges propertyby moving the syscon poweroff and restart nodes into the PMU (Power Management Unit) node. The PMU node is the actual block responsible for power management, including typical Exynos on/off/restart procedures. Therefore the syscon poweroff and restart nodes logically belong to it.
Signed-off-by Krzysztof Kozlowski <[email protected]>---
Tested on Exynos5420 and Exynos4412. Other tests are welcomed.
--- .../devicetree/bindings/arm/samsung/pmu.txt | 4 +++- arch/arm/boot/dts/exynos-syscon-restart.dtsi | 28 ++++++++++------------ arch/arm/boot/dts/exynos3250.dtsi | 4 ++-- arch/arm/boot/dts/exynos4.dtsi | 5 ++-- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5.dtsi | 1 - arch/arm/boot/dts/exynos5250.dtsi | 3 ++- arch/arm/boot/dts/exynos5410.dtsi | 3 ++- arch/arm/boot/dts/exynos5420.dtsi | 3 ++- 9 files changed, 27 insertions(+), 26 deletions(-)
Quoted 15 lines
Documentation/devicetree/bindings/arm/samsung/pmu.txt Properties: · line 16
Quoted 10 lines
Documentation/devicetree/bindings/arm/samsung/pmu.txt +2
-0@@ -12,6 +12,8 @@ Properties: - "samsung,exynos5433-pmu" - for Exynos5433 SoC. - "samsung,exynos7-pmu" - for Exynos7 SoC. second value must be always "syscon". + If PMU contains optional syscon-poweroff or syscon-restart nodes, + then third value must be "simple-mfd".I don't think this is right. simple-mfd is only for cases where the parent has no setup that the child nodes are dependent on. You need the regmap setup by the parent before the child can be enumerated. The correct thing to do here is add an
of_platform_default_populate()call.
I understand, makes sense. I will send a follow-up.
Thanks for feedback!
Best regards,
Krzysztof
Krzysztof Kozlowski
maintainerPATCH 3/3 arm64: dts: exynos: Fix missing missing reg warning for syscon restart nodes
In reply to Krzysztof KozlowskiFix DTC warnings like:
arch/arm64/boot/dts/exynos/exynos7-espresso.dtb: Warning (simple_bus_reg):
Node /soc/syscon-reboot missing or empty reg/ranges property
by moving the syscon restart node into the PMU (Power Management Unit) node. The PMU node is the actual block responsible for power management, including typical Exynos on/off/restart procedures. Therefore the syscon restart node logically belongs to it.
---
Not tested. All tests are welcomed.
--- arch/arm64/boot/dts/exynos/exynos5433.dtsi | 16 ++++++++-------- arch/arm64/boot/dts/exynos/exynos7.dtsi | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-)
arch/arm64/boot/dts/exynos/exynos5433.dtsi +8 -8
@@ -231,13 +231,6 @@ cpu_on = <0xC4000003>; }; - reboot: syscon-reboot { - compatible = "syscon-reboot"; - regmap = <&pmu_system_controller>; - offset = <0x400>; /* SWRESET */ - mask = <0x1>; - }; - soc: soc { compatible = "simple-bus"; #address-cells = <1>;
@@ -794,11 +787,18 @@ }; pmu_system_controller: system-controller@105c0000 { - compatible = "samsung,exynos5433-pmu", "syscon"; + compatible = "samsung,exynos5433-pmu", "syscon", "simple-mfd"; reg = <0x105c0000 0x5008>; #clock-cells = <1>; clock-names = "clkout16"; clocks = <&xxti>; + + reboot: syscon-reboot { + compatible = "syscon-reboot"; + regmap = <&pmu_system_controller>; + offset = <0x400>; /* SWRESET */ + mask = <0x1>; + }; }; gic: interrupt-controller@11001000 {
arch/arm64/boot/dts/exynos/exynos7.dtsi +7 -7
@@ -492,15 +492,15 @@ }; pmu_system_controller: system-controller@105c0000 { - compatible = "samsung,exynos7-pmu", "syscon"; + compatible = "samsung,exynos7-pmu", "syscon", "simple-mfd"; reg = <0x105c0000 0x5000>; - }; - reboot: syscon-reboot { - compatible = "syscon-reboot"; - regmap = <&pmu_system_controller>; - offset = <0x0400>; - mask = <0x1>; + reboot: syscon-reboot { + compatible = "syscon-reboot"; + regmap = <&pmu_system_controller>; + offset = <0x0400>; + mask = <0x1>; + }; }; rtc: rtc@10590000 {
Signature · 1 line
2.11.0