Exynos device tree clean-up for 3.14
v3 cover Exynos device tree clean-up for 3.14
This series intends to fix small problems with Exynos device tree sources that I spotted during my work on other things. The fixes are mostly stylistic, without any funtional changes introduced.
Changes sinve v2:
- Moved MSHC patches to separate series.
- Rebased onto current linux-next.
Changes since v1:
- Addressed Stephen Warren's comments about MCT binding documentation.
Tomasz Figa (6):
Documentation: devicetree: Update Exynos MCT bindings description
ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes
ARM: dts: exynos4x12: Move MCT node to exynos4x12.dtsi
ARM: dts: exynos4: Simplify MCT interrupt map
ARM: dts: exynos: Fix missing spaces after labels
ARM: dts: exynos4: Add missing unit-address of sysreg node
.../bindings/timer/samsung,exynos4210-mct.txt | 54 +++++++++++++++------- arch/arm/boot/dts/exynos4.dtsi | 6 +-- arch/arm/boot/dts/exynos4210.dtsi | 23 ++++----- arch/arm/boot/dts/exynos4212.dtsi | 24 +--------- arch/arm/boot/dts/exynos4412.dtsi | 28 +---------- arch/arm/boot/dts/exynos4x12.dtsi | 20 ++++++++ arch/arm/boot/dts/exynos5.dtsi | 4 +- arch/arm/boot/dts/exynos5250-smdk5250.dts | 6 +-- arch/arm/boot/dts/exynos5440.dtsi | 2 +- 9 files changed, 78 insertions(+), 89 deletions(-)
Signature · 1 line
1.8.4.3
PATCH v3 1/6 Documentation: devicetree: Update Exynos MCT bindings description
This patch updates description of device tree bindings for Exynos MCT (multicore timers). Namely:
- added note about simplified specification of local timer interrupts, when using single per-processor interrupt for all local timers,
- changed first example that was incorrectly suggesting that global timer interrupts are optional,
- simplified example interrupt map,
- added example showing simplified local timer interrupt specification.
--- .../bindings/timer/samsung,exynos4210-mct.txt | 54 +++++++++++++++------- 1 file changed, 37 insertions(+), 17 deletions(-)
Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt +37 -17
@@ -31,38 +31,58 @@ Required properties: 7: .. i: Local Timer Interrupt n -Example 1: In this example, the system uses only the first global timer - interrupt generated by MCT and the remaining three global timer - interrupts are unused. Two local timer interrupts have been - specified. + For MCT block that uses a per-processor interrupt for local timers, such + as ones compatible with "samsung,exynos4412-mct", only one local timer + interrupt might be specified, meaning that all local timers use the same + per processor interrupt. + +Example 1: In this example, the IP contains two local timers, using separate + interrupts, so two local timer interrupts have been specified, + in addition to four global timer interrupts. mct at 10050000 { compatible = "samsung,exynos4210-mct"; reg = <0x10050000 0x800>; - interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, <0 42 0>, <0 48 0>; }; -Example 2: In this example, the MCT global and local timer interrupts are - connected to two separate interrupt controllers. Hence, an - interrupt-map is created to map the interrupts to the respective - interrupt controllers. +Example 2: In this example, the timer interrupts are connected to two separate + interrupt controllers. Hence, an interrupt-map is created to map + the interrupts to the respective interrupt controllers. mct at 101C0000 { compatible = "samsung,exynos4210-mct"; reg = <0x101C0000 0x800>; - interrupt-controller; - #interrups-cells = <2>; interrupt-parent = <&mct_map>; - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, - <4 0>, <5 0>; + interrupts = <0>, <1>, <2>, <3>, <4>, <5>; mct_map: mct-map { - #interrupt-cells = <2>; + #interrupt-cells = <1>; #address-cells = <0>; #size-cells = <0>; - interrupt-map = <0x0 0 &combiner 23 3>, - <0x4 0 &gic 0 120 0>, - <0x5 0 &gic 0 121 0>; + interrupt-map = <0 &gic 0 57 0>, + <1 &gic 0 69 0>, + <2 &combiner 12 6>, + <3 &combiner 12 7>, + <4 &gic 0 42 0>, + <5 &gic 0 48 0>; }; }; + +Example 3: In this example, the IP contains four local timers, but using + a per-processor interrupt to handle them. Either all the local + timer interrupts can be specified, with the same interrupt specifier + value or just the first one. + + mct at 10050000 { + compatible = "samsung,exynos4412-mct"; + reg = <0x10050000 0x800>; + + /* Both ways are possible in this case. Either: */ + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, + <0 42 0>; + /* or: */ + interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, + <0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>; + };
Signature · 1 line
1.8.4.3
PATCH v3 2/6 ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes
In reply to Tomasz FigaMCT is not an interrupt controller and so there is no point for device tree nodes representing it to contain interrupt-controller and #interrupt-cells properties.
--- arch/arm/boot/dts/exynos4210.dtsi | 2 -- arch/arm/boot/dts/exynos4212.dtsi | 2 -- arch/arm/boot/dts/exynos4412.dtsi | 2 -- 3 files changed, 6 deletions(-)
arch/arm/boot/dts/exynos4210.dtsi +0 -2
@@ -51,8 +51,6 @@ mct at 10050000 { compatible = "samsung,exynos4210-mct"; reg = <0x10050000 0x800>; - interrupt-controller; - #interrups-cells = <2>; interrupt-parent = <&mct_map>; interrupts = <0 0>, <1 0>, <2 0>, <3 0>, <4 0>, <5 0>;
arch/arm/boot/dts/exynos4212.dtsi +0 -2
@@ -38,8 +38,6 @@ mct at 10050000 { compatible = "samsung,exynos4412-mct"; reg = <0x10050000 0x800>; - interrupt-controller; - #interrups-cells = <2>; interrupt-parent = <&mct_map>; interrupts = <0 0>, <1 0>, <2 0>, <3 0>, <4 0>, <5 0>;
arch/arm/boot/dts/exynos4412.dtsi +0 -2
@@ -38,8 +38,6 @@ mct at 10050000 { compatible = "samsung,exynos4412-mct"; reg = <0x10050000 0x800>; - interrupt-controller; - #interrups-cells = <2>; interrupt-parent = <&mct_map>; interrupts = <0 0>, <1 0>, <2 0>, <3 0>, <4 0>, <5 0>, <6 0>, <7 0>;
Signature · 1 line
1.8.4.3
PATCH v3 3/6 ARM: dts: exynos4x12: Move MCT node to exynos4x12.dtsi
In reply to Tomasz FigaFor MCT block compatible with "samsung,exynos4412-mct", that uses PPI interrupts for local timers, only one local interrupt needs to be specified, since it is a per-processor interrupt.
This allows moving MCT node of Exynos4x12 SoCs back to common exynos4x12.dtsi, since they have the same set of interrupts to be specified, which was the only difference.
--- arch/arm/boot/dts/exynos4212.dtsi | 20 -------------------- arch/arm/boot/dts/exynos4412.dtsi | 24 ------------------------ arch/arm/boot/dts/exynos4x12.dtsi | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 44 deletions(-)
arch/arm/boot/dts/exynos4212.dtsi +0 -20
@@ -34,24 +34,4 @@ <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, <0 107 0>, <0 108 0>; }; - - mct at 10050000 { - compatible = "samsung,exynos4412-mct"; - reg = <0x10050000 0x800>; - interrupt-parent = <&mct_map>; - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, - <4 0>, <5 0>; - - mct_map: mct-map { - #interrupt-cells = <2>; - #address-cells = <0>; - #size-cells = <0>; - interrupt-map = <0x0 0 &gic 0 57 0>, - <0x1 0 &combiner 12 5>, - <0x2 0 &combiner 12 6>, - <0x3 0 &combiner 12 7>, - <0x4 0 &gic 1 12 0>, - <0x5 0 &gic 1 12 0>; - }; - }; };
arch/arm/boot/dts/exynos4412.dtsi +0 -24
@@ -35,30 +35,6 @@ <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>; }; - mct at 10050000 { - compatible = "samsung,exynos4412-mct"; - reg = <0x10050000 0x800>; - interrupt-parent = <&mct_map>; - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, - <4 0>, <5 0>, <6 0>, <7 0>; - clocks = <&clock 3>, <&clock 344>; - clock-names = "fin_pll", "mct"; - - mct_map: mct-map { - #interrupt-cells = <2>; - #address-cells = <0>; - #size-cells = <0>; - interrupt-map = <0x0 0 &gic 0 57 0>, - <0x1 0 &combiner 12 5>, - <0x2 0 &combiner 12 6>, - <0x3 0 &combiner 12 7>, - <0x4 0 &gic 1 12 0>, - <0x5 0 &gic 1 12 0>, - <0x6 0 &gic 1 12 0>, - <0x7 0 &gic 1 12 0>; - }; - }; - mshc at 12550000 { compatible = "samsung,exynos4412-dw-mshc"; reg = <0x12550000 0x1000>;
arch/arm/boot/dts/exynos4x12.dtsi +20 -0
@@ -41,6 +41,26 @@ #clock-cells = <1>; }; + mct at 10050000 { + compatible = "samsung,exynos4412-mct"; + reg = <0x10050000 0x800>; + interrupt-parent = <&mct_map>; + interrupts = <0 0>, <1 0>, <2 0>, <3 0>, <4 0>; + clocks = <&clock 3>, <&clock 344>; + clock-names = "fin_pll", "mct"; + + mct_map: mct-map { + #interrupt-cells = <2>; + #address-cells = <0>; + #size-cells = <0>; + interrupt-map = <0x0 0 &gic 0 57 0>, + <0x1 0 &combiner 12 5>, + <0x2 0 &combiner 12 6>, + <0x3 0 &combiner 12 7>, + <0x4 0 &gic 1 12 0>; + }; + }; + pinctrl_0: pinctrl at 11400000 { compatible = "samsung,exynos4x12-pinctrl"; reg = <0x11400000 0x1000>;
Signature · 1 line
1.8.4.3
PATCH v3 4/6 ARM: dts: exynos4: Simplify MCT interrupt map
In reply to Tomasz FigaThere is no need to use two cells for interrupt specifiers inside the MCT interrupt map, so this patch simplifies the map to use one cell.
--- arch/arm/boot/dts/exynos4210.dtsi | 17 ++++++++--------- arch/arm/boot/dts/exynos4x12.dtsi | 14 +++++++------- 2 files changed, 15 insertions(+), 16 deletions(-)
arch/arm/boot/dts/exynos4210.dtsi +8 -9
@@ -52,21 +52,20 @@ compatible = "samsung,exynos4210-mct"; reg = <0x10050000 0x800>; interrupt-parent = <&mct_map>; - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, - <4 0>, <5 0>; + interrupts = <0>, <1>, <2>, <3>, <4>, <5>; clocks = <&clock 3>, <&clock 344>; clock-names = "fin_pll", "mct"; mct_map: mct-map { - #interrupt-cells = <2>; + #interrupt-cells = <1>; #address-cells = <0>; #size-cells = <0>; - interrupt-map = <0x0 0 &gic 0 57 0>, - <0x1 0 &gic 0 69 0>, - <0x2 0 &combiner 12 6>, - <0x3 0 &combiner 12 7>, - <0x4 0 &gic 0 42 0>, - <0x5 0 &gic 0 48 0>; + interrupt-map = <0 &gic 0 57 0>, + <1 &gic 0 69 0>, + <2 &combiner 12 6>, + <3 &combiner 12 7>, + <4 &gic 0 42 0>, + <5 &gic 0 48 0>; }; };
arch/arm/boot/dts/exynos4x12.dtsi +7 -7
@@ -45,19 +45,19 @@ compatible = "samsung,exynos4412-mct"; reg = <0x10050000 0x800>; interrupt-parent = <&mct_map>; - interrupts = <0 0>, <1 0>, <2 0>, <3 0>, <4 0>; + interrupts = <0>, <1>, <2>, <3>, <4>; clocks = <&clock 3>, <&clock 344>; clock-names = "fin_pll", "mct"; mct_map: mct-map { - #interrupt-cells = <2>; + #interrupt-cells = <1>; #address-cells = <0>; #size-cells = <0>; - interrupt-map = <0x0 0 &gic 0 57 0>, - <0x1 0 &combiner 12 5>, - <0x2 0 &combiner 12 6>, - <0x3 0 &combiner 12 7>, - <0x4 0 &gic 1 12 0>; + interrupt-map = <0 &gic 0 57 0>, + <1 &combiner 12 5>, + <2 &combiner 12 6>, + <3 &combiner 12 7>, + <4 &gic 1 12 0>; }; };
Signature · 1 line
1.8.4.3
PATCH v3 5/6 ARM: dts: exynos: Fix missing spaces after labels
In reply to Tomasz FigaFor consistency with other device tree nodes, this patch adds missing spaces after node labels.
--- arch/arm/boot/dts/exynos4.dtsi | 4 ++-- arch/arm/boot/dts/exynos4210.dtsi | 4 ++-- arch/arm/boot/dts/exynos4212.dtsi | 2 +- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5.dtsi | 4 ++-- arch/arm/boot/dts/exynos5250-smdk5250.dts | 6 +++--- arch/arm/boot/dts/exynos5440.dtsi | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-)
arch/arm/boot/dts/exynos4.dtsi +2 -2
@@ -85,14 +85,14 @@ reg = <0x10023CE0 0x20>; }; - gic:interrupt-controller at 10490000 { + gic: interrupt-controller at 10490000 { compatible = "arm,cortex-a9-gic"; #interrupt-cells = <3>; interrupt-controller; reg = <0x10490000 0x1000>, <0x10480000 0x100>; }; - combiner:interrupt-controller at 10440000 { + combiner: interrupt-controller at 10440000 { compatible = "samsung,exynos4210-combiner"; #interrupt-cells = <2>; interrupt-controller;
arch/arm/boot/dts/exynos4210.dtsi +2 -2
@@ -36,11 +36,11 @@ reg = <0x10023CA0 0x20>; }; - gic:interrupt-controller at 10490000 { + gic: interrupt-controller at 10490000 { cpu-offset = <0x8000>; }; - combiner:interrupt-controller at 10440000 { + combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <16>; interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
arch/arm/boot/dts/exynos4212.dtsi +1 -1
@@ -22,7 +22,7 @@ / { compatible = "samsung,exynos4212"; - gic:interrupt-controller at 10490000 { + gic: interrupt-controller at 10490000 { cpu-offset = <0x8000>; };
arch/arm/boot/dts/exynos4412.dtsi +1 -1
@@ -22,7 +22,7 @@ / { compatible = "samsung,exynos4412"; - gic:interrupt-controller at 10490000 { + gic: interrupt-controller at 10490000 { cpu-offset = <0x4000>; };
arch/arm/boot/dts/exynos5.dtsi +2 -2
@@ -23,7 +23,7 @@ reg = <0x10000000 0x100>; }; - combiner:interrupt-controller at 10440000 { + combiner: interrupt-controller at 10440000 { compatible = "samsung,exynos4210-combiner"; #interrupt-cells = <2>; interrupt-controller;
@@ -39,7 +39,7 @@ <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; }; - gic:interrupt-controller at 10481000 { + gic: interrupt-controller at 10481000 { compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; #interrupt-cells = <3>; interrupt-controller;
arch/arm/boot/dts/exynos5250-smdk5250.dts +3 -3
@@ -37,7 +37,7 @@ }; }; - vdd:fixed-regulator at 0 { + vdd: fixed-regulator at 0 { compatible = "regulator-fixed"; regulator-name = "vdd-supply"; regulator-min-microvolt = <1800000>;
@@ -45,7 +45,7 @@ regulator-always-on; }; - dbvdd:fixed-regulator at 1 { + dbvdd: fixed-regulator at 1 { compatible = "regulator-fixed"; regulator-name = "dbvdd-supply"; regulator-min-microvolt = <3300000>;
@@ -53,7 +53,7 @@ regulator-always-on; }; - spkvdd:fixed-regulator at 2 { + spkvdd: fixed-regulator at 2 { compatible = "regulator-fixed"; regulator-name = "spkvdd-supply"; regulator-min-microvolt = <5000000>;
arch/arm/boot/dts/exynos5440.dtsi +1 -1
@@ -29,7 +29,7 @@ #clock-cells = <1>; }; - gic:interrupt-controller at 2E0000 { + gic: interrupt-controller at 2E0000 { compatible = "arm,cortex-a15-gic"; #interrupt-cells = <3>; interrupt-controller;
Signature · 1 line
1.8.4.3
PATCH v3 6/6 ARM: dts: exynos4: Add missing unit-address of sysreg node
In reply to Tomasz FigaThe node contains reg property, so unit-address suffix should be present in its name.
--- arch/arm/boot/dts/exynos4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/exynos4.dtsi +1 -1
@@ -99,7 +99,7 @@ reg = <0x10440000 0x1000>; }; - sys_reg: sysreg { + sys_reg: sysreg at 10010000 { compatible = "samsung,exynos4-sysreg", "syscon"; reg = <0x10010000 0x400>; };
Signature · 1 line
1.8.4.3
PATCH v3 6/6 ARM: dts: exynos4: Add missing unit-address of sysreg node
Quoted 15 lines · Tomasz Figa
The node contains reg property, so unit-address suffix should be present in its name.
Signed-off-by Tomasz Figa<[email protected]>Acked-by Kyungmin Park<[email protected]>Reviewed-by Sylwester Nawrocki<[email protected]>--- arch/arm/boot/dts/exynos4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/boot/dts/exynos4.dtsi +0
-0
arch/arm/boot/dts/exynos4.dtsi line 105
Quoted 8 lines
arch/arm/boot/dts/exynos4.dtsi +1
-1@@ -99,7 +99,7 @@ reg =<0x10440000 0x1000>; }; - sys_reg: sysreg { + sys_reg: sysreg at 10010000 { compatible = "samsung,exynos4-sysreg", "syscon"; reg =<0x10010000 0x400>; };
Tomasz, I already Sachin's patch for similar changing of sys_reg property with your reviewed tag.
ARM: dts: Fix sysreg node name in exynos4.dtsi
I've applied whole this series except this one.
If any problems, please kindly let me know.
Thanks,
Kukjin
PATCH v3 6/6 ARM: dts: exynos4: Add missing unit-address of sysreg node
Hi Kukjin,
2013/12/18 Kukjin Kim <[email protected]>:
Quoted 31 lines · Tomasz Figa
Quoted 17 lines
The node contains reg property, so unit-address suffix should be present in its name.
Signed-off-by Tomasz Figa<[email protected]>Acked-by Kyungmin Park<[email protected]>Reviewed-by Sylwester Nawrocki<[email protected]>--- arch/arm/boot/dts/exynos4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/boot/dts/exynos4.dtsi +0
-0arch/arm/boot/dts/exynos4.dtsi line 105
Quoted 8 lines
arch/arm/boot/dts/exynos4.dtsi +1
-1@@ -99,7 +99,7 @@ reg =<0x10440000 0x1000>; }; - sys_reg: sysreg { + sys_reg: sysreg at 10010000 { compatible = "samsung,exynos4-sysreg", "syscon"; reg =<0x10010000 0x400>; };Tomasz, I already Sachin's patch for similar changing of
sys_regproperty with your reviewed tag.
Quoted 4 lines
ARM: dts: Fix sysreg node name in
exynos4.dtsiI've applied whole this series except this one.
If any problems, please kindly let me know.
Oh, I checked if this isn't already fixed when posting this series and I couldn't
find any related patch. I guess it was posted quite a while ago.
Anyway, it's fine for me, thanks.
Best regards,
Tomasz
v3 cover Exynos device tree clean-up for 3.14
In reply to Tomasz FigaQuoted 19 lines · Tomasz Figa
This series intends to fix small problems with Exynos device tree sources that I spotted during my work on other things. The fixes are mostly stylistic, without any funtional changes introduced.
Changes sinve v2:
- Moved MSHC patches to separate series.
- Rebased onto current linux-next.
Changes since v1:
- Addressed Stephen Warren's comments about MCT binding documentation.Tomasz Figa (6):
Documentation: devicetree: Update Exynos MCT bindings description
ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes
ARM: dts: exynos4x12: Move MCT node toexynos4x12.dtsi
ARM: dts: exynos4: Simplify MCT interrupt map
ARM: dts: exynos: Fix missing spaces after labels
ARM: dts: exynos4: Add missing unit-address of sysreg node
Quoted 1 line
.../bindings/timer/samsung,exynos4210-mct.txt | 54
+++++++++++++++---
Quoted 11 lines
----
arch/arm/boot/dts/exynos4.dtsi | 6 +-- arch/arm/boot/dts/exynos4210.dtsi | 23 ++++----- arch/arm/boot/dts/exynos4212.dtsi | 24 +--------- arch/arm/boot/dts/exynos4412.dtsi | 28 +---------- arch/arm/boot/dts/exynos4x12.dtsi | 20 ++++++++ arch/arm/boot/dts/exynos5.dtsi | 4 +- arch/arm/boot/dts/exynos5250-smdk5250.dts | 6 +-- arch/arm/boot/dts/exynos5440.dtsi | 2 +- 9 files changed, 78 insertions(+), 89 deletions(-)
Quoted 2 lines
--
1.8.4.3
Nice cleanup series. Thanks and will apply.
- Kukjin