All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Exynos device tree clean-up for 3.12
@ 2013-08-20 13:52 ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	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, except patch 6/8,
which makes the mshc node disabled by default, but for all affected
boards it is enabled at board level.

Tomasz Figa (8):
  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: exynos4x12: Move mshc node to exynos4x12.dtsi
  ARM: dts: exynos4x12: Keep mshc node disabled by default
  ARM: dts: exynos: Fix missing spaces after labels
  ARM: dts: exynos4: Add missing unit-address of sysreg node

 .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
 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                  | 36 +---------------
 arch/arm/boot/dts/exynos4x12.dtsi                  | 29 +++++++++++++
 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, 82 insertions(+), 97 deletions(-)

-- 
1.8.3.2

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 0/8] Exynos device tree clean-up for 3.12
@ 2013-08-20 13:52 ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

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, except patch 6/8,
which makes the mshc node disabled by default, but for all affected
boards it is enabled at board level.

Tomasz Figa (8):
  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: exynos4x12: Move mshc node to exynos4x12.dtsi
  ARM: dts: exynos4x12: Keep mshc node disabled by default
  ARM: dts: exynos: Fix missing spaces after labels
  ARM: dts: exynos4: Add missing unit-address of sysreg node

 .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
 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                  | 36 +---------------
 arch/arm/boot/dts/exynos4x12.dtsi                  | 29 +++++++++++++
 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, 82 insertions(+), 97 deletions(-)

-- 
1.8.3.2

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
 1 file changed, 32 insertions(+), 17 deletions(-)

diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
index b5a86d2..a5d6891f 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
@@ -31,38 +31,53 @@ 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 "samusng,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@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@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@10050000 {
+		compatible = "samsung,exynos4412-mct";
+		reg = <0x10050000 0x800>;
+		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>*/;
+	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
 1 file changed, 32 insertions(+), 17 deletions(-)

diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
index b5a86d2..a5d6891f 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
@@ -31,38 +31,53 @@ 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 "samusng,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>;
+		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>*/;
+	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 2/8] ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

MCT 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 057d682..1a6440ae6 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -51,8 +51,6 @@
 	mct@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>;
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 6f34d7f..028752e 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -38,8 +38,6 @@
 	mct@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>;
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index e743e67..85d2c26 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -38,8 +38,6 @@
 	mct@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>;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 2/8] ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

MCT 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 057d682..1a6440ae6 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -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>;
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 6f34d7f..028752e 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -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>;
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index e743e67..85d2c26 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -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>;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 3/8] ARM: dts: exynos4x12: Move MCT node to exynos4x12.dtsi
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

For 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 028752e..443b8a2 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -34,24 +34,4 @@
 			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
 			     <0 107 0>, <0 108 0>;
 	};
-
-	mct@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>;
-		};
-	};
 };
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 85d2c26..1388ce0 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -35,30 +35,6 @@
 			     <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>;
 	};
 
-	mct@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@12550000 {
 		compatible = "samsung,exynos4412-dw-mshc";
 		reg = <0x12550000 0x1000>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index ad531fe..5012bc8 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -41,6 +41,26 @@
 		#clock-cells = <1>;
 	};
 
+	mct@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@11400000 {
 		compatible = "samsung,exynos4x12-pinctrl";
 		reg = <0x11400000 0x1000>;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 3/8] ARM: dts: exynos4x12: Move MCT node to exynos4x12.dtsi
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

For 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 028752e..443b8a2 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -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>;
-		};
-	};
 };
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 85d2c26..1388ce0 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -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>;
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index ad531fe..5012bc8 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -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>;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4/8] ARM: dts: exynos4: Simplify MCT interrupt map
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

There 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4210.dtsi | 17 ++++++++---------
 arch/arm/boot/dts/exynos4x12.dtsi | 14 +++++++-------
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 1a6440ae6..b0fee69 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -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>;
 		};
 	};
 
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 5012bc8..3d7182a 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -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>;
 		};
 	};
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4/8] ARM: dts: exynos4: Simplify MCT interrupt map
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

There 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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4210.dtsi | 17 ++++++++---------
 arch/arm/boot/dts/exynos4x12.dtsi | 14 +++++++-------
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index 1a6440ae6..b0fee69 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -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>;
 		};
 	};
 
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 5012bc8..3d7182a 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -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>;
 		};
 	};
 
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 5/8] ARM: dts: exynos4x12: Move mshc node to exynos4x12.dtsi
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

All SoCs from Exynos4x12 series contain the MSHC block, so its node can
be located in exynos4x12.dtsi.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4412.dtsi | 8 --------
 arch/arm/boot/dts/exynos4x12.dtsi | 8 ++++++++
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 1388ce0..6b0184f 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -34,12 +34,4 @@
 			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
 			     <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>;
 	};
-
-	mshc@12550000 {
-		compatible = "samsung,exynos4412-dw-mshc";
-		reg = <0x12550000 0x1000>;
-		interrupts = <0 77 0>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
 };
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 3d7182a..06cef96 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -196,4 +196,12 @@
 			};
 		};
 	};
+
+	mshc@12550000 {
+		compatible = "samsung,exynos4412-dw-mshc";
+		reg = <0x12550000 0x1000>;
+		interrupts = <0 77 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
 };
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 5/8] ARM: dts: exynos4x12: Move mshc node to exynos4x12.dtsi
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

All SoCs from Exynos4x12 series contain the MSHC block, so its node can
be located in exynos4x12.dtsi.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4412.dtsi | 8 --------
 arch/arm/boot/dts/exynos4x12.dtsi | 8 ++++++++
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 1388ce0..6b0184f 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -34,12 +34,4 @@
 			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
 			     <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>;
 	};
-
-	mshc at 12550000 {
-		compatible = "samsung,exynos4412-dw-mshc";
-		reg = <0x12550000 0x1000>;
-		interrupts = <0 77 0>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-	};
 };
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 3d7182a..06cef96 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -196,4 +196,12 @@
 			};
 		};
 	};
+
+	mshc at 12550000 {
+		compatible = "samsung,exynos4412-dw-mshc";
+		reg = <0x12550000 0x1000>;
+		interrupts = <0 77 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
 };
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 6/8] ARM: dts: exynos4x12: Keep mshc node disabled by default
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

MSHC node requires additional board-specific data, so it should be
disabled by default. Board dts files already have status override for
it, so only the change in exynso4x12.dtsi is needed.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4x12.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 06cef96..2f243c2 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -203,5 +203,6 @@
 		interrupts = <0 77 0>;
 		#address-cells = <1>;
 		#size-cells = <0>;
+		status = "disabled";
 	};
 };
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 6/8] ARM: dts: exynos4x12: Keep mshc node disabled by default
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

MSHC node requires additional board-specific data, so it should be
disabled by default. Board dts files already have status override for
it, so only the change in exynso4x12.dtsi is needed.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4x12.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
index 06cef96..2f243c2 100644
--- a/arch/arm/boot/dts/exynos4x12.dtsi
+++ b/arch/arm/boot/dts/exynos4x12.dtsi
@@ -203,5 +203,6 @@
 		interrupts = <0 77 0>;
 		#address-cells = <1>;
 		#size-cells = <0>;
+		status = "disabled";
 	};
 };
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 7/8] ARM: dts: exynos: Fix missing spaces after labels
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

For consistency with other device tree nodes, this patch adds missing
spaces after node labels.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 93c2501..892d5ea 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -79,14 +79,14 @@
 		reg = <0x10023CE0 0x20>;
 	};
 
-	gic:interrupt-controller@10490000 {
+	gic: interrupt-controller@10490000 {
 		compatible = "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
 		reg = <0x10490000 0x1000>, <0x10480000 0x100>;
 	};
 
-	combiner:interrupt-controller@10440000 {
+	combiner: interrupt-controller@10440000 {
 		compatible = "samsung,exynos4210-combiner";
 		#interrupt-cells = <2>;
 		interrupt-controller;
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index b0fee69..48ecd7a 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -36,11 +36,11 @@
 		reg = <0x10023CA0 0x20>;
 	};
 
-	gic:interrupt-controller@10490000 {
+	gic: interrupt-controller@10490000 {
 		cpu-offset = <0x8000>;
 	};
 
-	combiner:interrupt-controller@10440000 {
+	combiner: interrupt-controller@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>,
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 443b8a2..94a43f9 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -22,7 +22,7 @@
 / {
 	compatible = "samsung,exynos4212";
 
-	gic:interrupt-controller@10490000 {
+	gic: interrupt-controller@10490000 {
 		cpu-offset = <0x8000>;
 	};
 
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 6b0184f..5a82f67 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -22,7 +22,7 @@
 / {
 	compatible = "samsung,exynos4412";
 
-	gic:interrupt-controller@10490000 {
+	gic: interrupt-controller@10490000 {
 		cpu-offset = <0x4000>;
 	};
 
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index 6afa57d..a25c5ac 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -23,7 +23,7 @@
 		reg = <0x10000000 0x100>;
 	};
 
-	combiner:interrupt-controller@10440000 {
+	combiner: interrupt-controller@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@10481000 {
+	gic: interrupt-controller@10481000 {
 		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 2538b32..56334d8 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -37,7 +37,7 @@
 		};
 	};
 
-	vdd:fixed-regulator@0 {
+	vdd: fixed-regulator@0 {
 		compatible = "regulator-fixed";
 		regulator-name = "vdd-supply";
 		regulator-min-microvolt = <1800000>;
@@ -45,7 +45,7 @@
 		regulator-always-on;
 	};
 
-	dbvdd:fixed-regulator@1 {
+	dbvdd: fixed-regulator@1 {
 		compatible = "regulator-fixed";
 		regulator-name = "dbvdd-supply";
 		regulator-min-microvolt = <3300000>;
@@ -53,7 +53,7 @@
 		regulator-always-on;
 	};
 
-	spkvdd:fixed-regulator@2 {
+	spkvdd: fixed-regulator@2 {
 		compatible = "regulator-fixed";
 		regulator-name = "spkvdd-supply";
 		regulator-min-microvolt = <5000000>;
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 5d6cf49..799cb77 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -29,7 +29,7 @@
 		#clock-cells = <1>;
 	};
 
-	gic:interrupt-controller@2E0000 {
+	gic: interrupt-controller@2E0000 {
 		compatible = "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 7/8] ARM: dts: exynos: Fix missing spaces after labels
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

For consistency with other device tree nodes, this patch adds missing
spaces after node labels.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 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(-)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 93c2501..892d5ea 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -79,14 +79,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;
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index b0fee69..48ecd7a 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -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>,
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi
index 443b8a2..94a43f9 100644
--- a/arch/arm/boot/dts/exynos4212.dtsi
+++ b/arch/arm/boot/dts/exynos4212.dtsi
@@ -22,7 +22,7 @@
 / {
 	compatible = "samsung,exynos4212";
 
-	gic:interrupt-controller at 10490000 {
+	gic: interrupt-controller at 10490000 {
 		cpu-offset = <0x8000>;
 	};
 
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 6b0184f..5a82f67 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -22,7 +22,7 @@
 / {
 	compatible = "samsung,exynos4412";
 
-	gic:interrupt-controller at 10490000 {
+	gic: interrupt-controller at 10490000 {
 		cpu-offset = <0x4000>;
 	};
 
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index 6afa57d..a25c5ac 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -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;
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 2538b32..56334d8 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -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>;
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 5d6cf49..799cb77 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -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;
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 8/8] ARM: dts: exynos4: Add missing unit-address of sysreg node
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 13:52   ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Tomasz Figa, Kyungmin Park

The node contains reg property, so unit-address suffix should be present
in its name.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 892d5ea..92c9d24 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -93,7 +93,7 @@
 		reg = <0x10440000 0x1000>;
 	};
 
-	sys_reg: sysreg {
+	sys_reg: sysreg@10010000 {
 		compatible = "samsung,exynos4-sysreg", "syscon";
 		reg = <0x10010000 0x400>;
 	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 8/8] ARM: dts: exynos4: Add missing unit-address of sysreg node
@ 2013-08-20 13:52   ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 13:52 UTC (permalink / raw)
  To: linux-arm-kernel

The node contains reg property, so unit-address suffix should be present
in its name.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/exynos4.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 892d5ea..92c9d24 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -93,7 +93,7 @@
 		reg = <0x10440000 0x1000>;
 	};
 
-	sys_reg: sysreg {
+	sys_reg: sysreg at 10010000 {
 		compatible = "samsung,exynos4-sysreg", "syscon";
 		reg = <0x10010000 0x400>;
 	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH 0/8] Exynos device tree clean-up for 3.12
  2013-08-20 13:52 ` Tomasz Figa
@ 2013-08-20 14:20   ` Sylwester Nawrocki
  -1 siblings, 0 replies; 30+ messages in thread
From: Sylwester Nawrocki @ 2013-08-20 14:20 UTC (permalink / raw)
  To: Tomasz Figa
  Cc: linux-samsung-soc, linux-arm-kernel, devicetree, Kukjin Kim,
	Thomas Abraham, ian.campbell, pawel.moll, mark.rutland,
	rob.herring, swarren, galak, Sylwester Nawrocki, Arnd Bergmann,
	Olof Johansson

On 08/20/2013 03:52 PM, Tomasz Figa wrote:
> 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, except patch 6/8,
> which makes the mshc node disabled by default, but for all affected
> boards it is enabled at board level.
> 
> Tomasz Figa (8):
>   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: exynos4x12: Move mshc node to exynos4x12.dtsi
>   ARM: dts: exynos4x12: Keep mshc node disabled by default
>   ARM: dts: exynos: Fix missing spaces after labels
>   ARM: dts: exynos4: Add missing unit-address of sysreg node
> 
>  .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
>  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                  | 36 +---------------
>  arch/arm/boot/dts/exynos4x12.dtsi                  | 29 +++++++++++++
>  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, 82 insertions(+), 97 deletions(-)

Thanks Tomasz, for the whole series:

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>


Regards,
-- 
Sylwester Nawrocki
Samsung R&D Institute Poland

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 0/8] Exynos device tree clean-up for 3.12
@ 2013-08-20 14:20   ` Sylwester Nawrocki
  0 siblings, 0 replies; 30+ messages in thread
From: Sylwester Nawrocki @ 2013-08-20 14:20 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/20/2013 03:52 PM, Tomasz Figa wrote:
> 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, except patch 6/8,
> which makes the mshc node disabled by default, but for all affected
> boards it is enabled at board level.
> 
> Tomasz Figa (8):
>   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: exynos4x12: Move mshc node to exynos4x12.dtsi
>   ARM: dts: exynos4x12: Keep mshc node disabled by default
>   ARM: dts: exynos: Fix missing spaces after labels
>   ARM: dts: exynos4: Add missing unit-address of sysreg node
> 
>  .../bindings/timer/samsung,exynos4210-mct.txt      | 49 ++++++++++++++--------
>  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                  | 36 +---------------
>  arch/arm/boot/dts/exynos4x12.dtsi                  | 29 +++++++++++++
>  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, 82 insertions(+), 97 deletions(-)

Thanks Tomasz, for the whole series:

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>


Regards,
-- 
Sylwester Nawrocki
Samsung R&D Institute Poland

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 13:52   ` Tomasz Figa
@ 2013-08-20 17:00     ` Stephen Warren
  -1 siblings, 0 replies; 30+ messages in thread
From: Stephen Warren @ 2013-08-20 17:00 UTC (permalink / raw)
  To: Tomasz Figa
  Cc: linux-samsung-soc, linux-arm-kernel, devicetree, Kukjin Kim,
	Thomas Abraham, ian.campbell, pawel.moll, mark.rutland,
	rob.herring, galak, Sylwester Nawrocki, Arnd Bergmann,
	Olof Johansson, Kyungmin Park

On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> 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.

> diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt

> -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 "samusng,exynos4412-mct", only one local timer

samsung is typo'd there.

> +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@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>;

I don't believe you need either of those two properties in a node solely
used as an interrupt map.

Also, why not put the interrupt-map property directly into the main mct
node; I don't believe there's any requirement nor advantage to it being
a separate node.

> -			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.

That sounds like it should be two separate examples.

Actually, there's already a 2-timer example above using separate
interrupts, so why not make this example *just* be for the
single-interrupt case?

> +	mct@10050000 {
> +		compatible = "samsung,exynos4412-mct";
> +		reg = <0x10050000 0x800>;
> +		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>*/;
> +	};

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-20 17:00     ` Stephen Warren
  0 siblings, 0 replies; 30+ messages in thread
From: Stephen Warren @ 2013-08-20 17:00 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> 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.

> diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt

> -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 "samusng,exynos4412-mct", only one local timer

samsung is typo'd there.

> +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>;

I don't believe you need either of those two properties in a node solely
used as an interrupt map.

Also, why not put the interrupt-map property directly into the main mct
node; I don't believe there's any requirement nor advantage to it being
a separate node.

> -			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.

That sounds like it should be two separate examples.

Actually, there's already a 2-timer example above using separate
interrupts, so why not make this example *just* be for the
single-interrupt case?

> +	mct at 10050000 {
> +		compatible = "samsung,exynos4412-mct";
> +		reg = <0x10050000 0x800>;
> +		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>*/;
> +	};

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 17:00     ` Stephen Warren
@ 2013-08-20 17:12       ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 17:12 UTC (permalink / raw)
  To: Stephen Warren
  Cc: linux-samsung-soc, linux-arm-kernel, devicetree, Kukjin Kim,
	Thomas Abraham, ian.campbell, pawel.moll, mark.rutland,
	rob.herring, galak, Sylwester Nawrocki, Arnd Bergmann,
	Olof Johansson, Kyungmin Park

On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> > 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.
> > 
> > diff --git
> > a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> > b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> > 
> > -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 "samusng,exynos4412-mct", only one
> > local timer
> samsung is typo'd there.

Oops. ;)

> > +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@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>;
> 
> I don't believe you need either of those two properties in a node solely
> used as an interrupt map.

Well, you don't need #size-cells, as it is not used for interrupt-map 
property.

As for #address-cell property, you need it, as it defines how many cells 
are used in interrupt map specifier for unit address. See ePAPR 2.4.3.1 or 
[1] for a description of interrupt-map property format.

[1] - http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping

> Also, why not put the interrupt-map property directly into the main mct
> node; I don't believe there's any requirement nor advantage to it being
> a separate node.

It is more readable, as you don't mix virtual (helper) properties, with 
those describing the hardware. Otherwise both ways are technically correct, 
but not for all cases, i.e. only when #address-cells and #interrupt-cells 
properties aren't used for device's own purposes.

> > -			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.
> 
> That sounds like it should be two separate examples.
> 
> Actually, there's already a 2-timer example above using separate
> interrupts, so why not make this example *just* be for the
> single-interrupt case?

Well, I wanted to show that both ways of specification would be equivalent 
here. If you insist on making it a single example, then I can send next 
version with this changed.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-20 17:12       ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 17:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> > 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.
> > 
> > diff --git
> > a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> > b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> > 
> > -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 "samusng,exynos4412-mct", only one
> > local timer
> samsung is typo'd there.

Oops. ;)

> > +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>;
> 
> I don't believe you need either of those two properties in a node solely
> used as an interrupt map.

Well, you don't need #size-cells, as it is not used for interrupt-map 
property.

As for #address-cell property, you need it, as it defines how many cells 
are used in interrupt map specifier for unit address. See ePAPR 2.4.3.1 or 
[1] for a description of interrupt-map property format.

[1] - http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping

> Also, why not put the interrupt-map property directly into the main mct
> node; I don't believe there's any requirement nor advantage to it being
> a separate node.

It is more readable, as you don't mix virtual (helper) properties, with 
those describing the hardware. Otherwise both ways are technically correct, 
but not for all cases, i.e. only when #address-cells and #interrupt-cells 
properties aren't used for device's own purposes.

> > -			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.
> 
> That sounds like it should be two separate examples.
> 
> Actually, there's already a 2-timer example above using separate
> interrupts, so why not make this example *just* be for the
> single-interrupt case?

Well, I wanted to show that both ways of specification would be equivalent 
here. If you insist on making it a single example, then I can send next 
version with this changed.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 17:12       ` Tomasz Figa
@ 2013-08-20 20:41         ` Stephen Warren
  -1 siblings, 0 replies; 30+ messages in thread
From: Stephen Warren @ 2013-08-20 20:41 UTC (permalink / raw)
  To: Tomasz Figa
  Cc: linux-samsung-soc, linux-arm-kernel, devicetree, Kukjin Kim,
	Thomas Abraham, ian.campbell, pawel.moll, mark.rutland,
	rob.herring, galak, Sylwester Nawrocki, Arnd Bergmann,
	Olof Johansson, Kyungmin Park

On 08/20/2013 11:12 AM, Tomasz Figa wrote:
> On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
>> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
>>> 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.
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
>>> b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
>>>
>>> -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 "samusng,exynos4412-mct", only one
>>> local timer
>> samsung is typo'd there.
> 
> Oops. ;)
> 
>>> +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@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>;
>>
>> I don't believe you need either of those two properties in a node solely
>> used as an interrupt map.
> 
> Well, you don't need #size-cells, as it is not used for interrupt-map 
> property.
> 
> As for #address-cell property, you need it, as it defines how many cells 
> are used in interrupt map specifier for unit address. See ePAPR 2.4.3.1 or 
> [1] for a description of interrupt-map property format.
> 
> [1] - http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping

Uggh. Yes, you're right.

>> Also, why not put the interrupt-map property directly into the main mct
>> node; I don't believe there's any requirement nor advantage to it being
>> a separate node.
> 
> It is more readable, as you don't mix virtual (helper) properties, with 
> those describing the hardware. Otherwise both ways are technically correct, 
> but not for all cases, i.e. only when #address-cells and #interrupt-cells 
> properties aren't used for device's own purposes.

Hmm. I see the argument.

>>> +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.
>>
>> That sounds like it should be two separate examples.
>>
>> Actually, there's already a 2-timer example above using separate
>> interrupts, so why not make this example *just* be for the
>> single-interrupt case?
> 
> Well, I wanted to show that both ways of specification would be equivalent 
> here. If you insist on making it a single example, then I can send next 
> version with this changed.

Oh! I didn't see the /* */ at all in the third example...

I think it'd be more obvious if you wrote the whole property out twice:

+		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>*/;
+		/* or: */
+		interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
+			     <0 42 0>;

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-20 20:41         ` Stephen Warren
  0 siblings, 0 replies; 30+ messages in thread
From: Stephen Warren @ 2013-08-20 20:41 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/20/2013 11:12 AM, Tomasz Figa wrote:
> On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
>> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
>>> 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.
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
>>> b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
>>>
>>> -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 "samusng,exynos4412-mct", only one
>>> local timer
>> samsung is typo'd there.
> 
> Oops. ;)
> 
>>> +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>;
>>
>> I don't believe you need either of those two properties in a node solely
>> used as an interrupt map.
> 
> Well, you don't need #size-cells, as it is not used for interrupt-map 
> property.
> 
> As for #address-cell property, you need it, as it defines how many cells 
> are used in interrupt map specifier for unit address. See ePAPR 2.4.3.1 or 
> [1] for a description of interrupt-map property format.
> 
> [1] - http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping

Uggh. Yes, you're right.

>> Also, why not put the interrupt-map property directly into the main mct
>> node; I don't believe there's any requirement nor advantage to it being
>> a separate node.
> 
> It is more readable, as you don't mix virtual (helper) properties, with 
> those describing the hardware. Otherwise both ways are technically correct, 
> but not for all cases, i.e. only when #address-cells and #interrupt-cells 
> properties aren't used for device's own purposes.

Hmm. I see the argument.

>>> +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.
>>
>> That sounds like it should be two separate examples.
>>
>> Actually, there's already a 2-timer example above using separate
>> interrupts, so why not make this example *just* be for the
>> single-interrupt case?
> 
> Well, I wanted to show that both ways of specification would be equivalent 
> here. If you insist on making it a single example, then I can send next 
> version with this changed.

Oh! I didn't see the /* */ at all in the third example...

I think it'd be more obvious if you wrote the whole property out twice:

+		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>*/;
+		/* or: */
+		interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
+			     <0 42 0>;

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 20:41         ` Stephen Warren
@ 2013-08-20 22:13           ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 22:13 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Stephen Warren, Tomasz Figa, mark.rutland, devicetree,
	linux-samsung-soc, ian.campbell, pawel.moll, Arnd Bergmann,
	rob.herring, Kyungmin Park, Kukjin Kim, Thomas Abraham,
	Sylwester Nawrocki, galak, Olof Johansson

On Tuesday 20 of August 2013 14:41:15 Stephen Warren wrote:
> On 08/20/2013 11:12 AM, Tomasz Figa wrote:
> > On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
> >> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> >>> 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.
> >>> 
> >>> diff --git
> >>> a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> >>> b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> >>> 
> >>> -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 "samusng,exynos4412-mct", only one
> >>> local timer
> >> 
> >> samsung is typo'd there.
> > 
> > Oops. ;)
> > 
> >>> +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@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>;
> >> 
> >> I don't believe you need either of those two properties in a node
> >> solely used as an interrupt map.
> > 
> > Well, you don't need #size-cells, as it is not used for interrupt-map
> > property.
> > 
> > As for #address-cell property, you need it, as it defines how many
> > cells are used in interrupt map specifier for unit address. See ePAPR
> > 2.4.3.1 or [1] for a description of interrupt-map property format.
> > 
> > [1] -
> > http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping
> Uggh. Yes, you're right.
> 
> >> Also, why not put the interrupt-map property directly into the main
> >> mct
> >> node; I don't believe there's any requirement nor advantage to it
> >> being
> >> a separate node.
> > 
> > It is more readable, as you don't mix virtual (helper) properties,
> > with
> > those describing the hardware. Otherwise both ways are technically
> > correct, but not for all cases, i.e. only when #address-cells and
> > #interrupt-cells properties aren't used for device's own purposes.
> 
> Hmm. I see the argument.
> 
> >>> +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.
> >> 
> >> That sounds like it should be two separate examples.
> >> 
> >> Actually, there's already a 2-timer example above using separate
> >> interrupts, so why not make this example *just* be for the
> >> single-interrupt case?
> > 
> > Well, I wanted to show that both ways of specification would be
> > equivalent here. If you insist on making it a single example, then I
> > can send next version with this changed.
> 
> Oh! I didn't see the /* */ at all in the third example...
> 
> I think it'd be more obvious if you wrote the whole property out twice:
> 
> +		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>*/;
> +		/* or: */
> +		interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
> +			     <0 42 0>;

That's a good idea. I will send new version with the typo above fixed and 
this example done the way you proposed.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-20 22:13           ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-20 22:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 20 of August 2013 14:41:15 Stephen Warren wrote:
> On 08/20/2013 11:12 AM, Tomasz Figa wrote:
> > On Tuesday 20 of August 2013 11:00:53 Stephen Warren wrote:
> >> On 08/20/2013 07:52 AM, Tomasz Figa wrote:
> >>> 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.
> >>> 
> >>> diff --git
> >>> a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> >>> b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
> >>> 
> >>> -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 "samusng,exynos4412-mct", only one
> >>> local timer
> >> 
> >> samsung is typo'd there.
> > 
> > Oops. ;)
> > 
> >>> +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>;
> >> 
> >> I don't believe you need either of those two properties in a node
> >> solely used as an interrupt map.
> > 
> > Well, you don't need #size-cells, as it is not used for interrupt-map
> > property.
> > 
> > As for #address-cell property, you need it, as it defines how many
> > cells are used in interrupt map specifier for unit address. See ePAPR
> > 2.4.3.1 or [1] for a description of interrupt-map property format.
> > 
> > [1] -
> > http://devicetree.org/Device_Tree_Usage#Advanced_Interrupt_Mapping
> Uggh. Yes, you're right.
> 
> >> Also, why not put the interrupt-map property directly into the main
> >> mct
> >> node; I don't believe there's any requirement nor advantage to it
> >> being
> >> a separate node.
> > 
> > It is more readable, as you don't mix virtual (helper) properties,
> > with
> > those describing the hardware. Otherwise both ways are technically
> > correct, but not for all cases, i.e. only when #address-cells and
> > #interrupt-cells properties aren't used for device's own purposes.
> 
> Hmm. I see the argument.
> 
> >>> +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.
> >> 
> >> That sounds like it should be two separate examples.
> >> 
> >> Actually, there's already a 2-timer example above using separate
> >> interrupts, so why not make this example *just* be for the
> >> single-interrupt case?
> > 
> > Well, I wanted to show that both ways of specification would be
> > equivalent here. If you insist on making it a single example, then I
> > can send next version with this changed.
> 
> Oh! I didn't see the /* */ at all in the third example...
> 
> I think it'd be more obvious if you wrote the whole property out twice:
> 
> +		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>*/;
> +		/* or: */
> +		interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
> +			     <0 42 0>;

That's a good idea. I will send new version with the typo above fixed and 
this example done the way you proposed.

Best regards,
Tomasz

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/8] Documentation: devicetree: Update Exynos MCT bindings description
  2013-08-20 13:52   ` Tomasz Figa
@ 2013-08-26 17:21     ` Tomasz Figa
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-26 17:21 UTC (permalink / raw)
  To: linux-samsung-soc
  Cc: linux-arm-kernel, devicetree, Kukjin Kim, Thomas Abraham,
	ian.campbell, pawel.moll, mark.rutland, rob.herring, swarren,
	galak, Sylwester Nawrocki, Arnd Bergmann, Olof Johansson,
	Kyungmin Park

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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
---
 .../bindings/timer/samsung,exynos4210-mct.txt      | 54 +++++++++++++++-------
 1 file changed, 37 insertions(+), 17 deletions(-)

Changes since v1:
 - corrected typo reported by Stephen Warren,
 - edited last example to use separate properties to represent possible
   alternatives, as suggested by Stephen Warren.

diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
index b5a86d2..167d5da 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
@@ -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@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@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@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>;
+	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 1/8] Documentation: devicetree: Update Exynos MCT bindings description
@ 2013-08-26 17:21     ` Tomasz Figa
  0 siblings, 0 replies; 30+ messages in thread
From: Tomasz Figa @ 2013-08-26 17:21 UTC (permalink / raw)
  To: linux-arm-kernel

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.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
---
 .../bindings/timer/samsung,exynos4210-mct.txt      | 54 +++++++++++++++-------
 1 file changed, 37 insertions(+), 17 deletions(-)

Changes since v1:
 - corrected typo reported by Stephen Warren,
 - edited last example to use separate properties to represent possible
   alternatives, as suggested by Stephen Warren.

diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
index b5a86d2..167d5da 100644
--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
@@ -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>;
+	};
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2013-08-26 17:21 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-20 13:52 [PATCH 0/8] Exynos device tree clean-up for 3.12 Tomasz Figa
2013-08-20 13:52 ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 1/8] Documentation: devicetree: Update Exynos MCT bindings description Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 17:00   ` Stephen Warren
2013-08-20 17:00     ` Stephen Warren
2013-08-20 17:12     ` Tomasz Figa
2013-08-20 17:12       ` Tomasz Figa
2013-08-20 20:41       ` Stephen Warren
2013-08-20 20:41         ` Stephen Warren
2013-08-20 22:13         ` Tomasz Figa
2013-08-20 22:13           ` Tomasz Figa
2013-08-26 17:21   ` [PATCH v2 " Tomasz Figa
2013-08-26 17:21     ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 2/8] ARM: dts: exynos4: Drop interrupt controller properties from MCT nodes Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 3/8] ARM: dts: exynos4x12: Move MCT node to exynos4x12.dtsi Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 4/8] ARM: dts: exynos4: Simplify MCT interrupt map Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 5/8] ARM: dts: exynos4x12: Move mshc node to exynos4x12.dtsi Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 6/8] ARM: dts: exynos4x12: Keep mshc node disabled by default Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 7/8] ARM: dts: exynos: Fix missing spaces after labels Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 13:52 ` [PATCH 8/8] ARM: dts: exynos4: Add missing unit-address of sysreg node Tomasz Figa
2013-08-20 13:52   ` Tomasz Figa
2013-08-20 14:20 ` [PATCH 0/8] Exynos device tree clean-up for 3.12 Sylwester Nawrocki
2013-08-20 14:20   ` Sylwester Nawrocki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.