ARM: dts: msm8974: Move arch-timer out of soc node
diff mbox

Message ID 1394573058-18561-1-git-send-email-sboyd@codeaurora.org
State New, archived
Headers show

Commit Message

Stephen Boyd March 11, 2014, 9:24 p.m. UTC
The architected timer is not a register addressable piece of
hardware. Instead it's accessed through cp15 accessors. Move it
to the root of the devicetree to reflect this.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 arch/arm/boot/dts/qcom-msm8974.dtsi | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

Comments

Christopher Covington March 17, 2014, 5:31 p.m. UTC | #1
Hi Stephen,

On 03/11/2014 05:24 PM, Stephen Boyd wrote:
> The architected timer is not a register addressable piece of
> hardware. Instead it's accessed through cp15 accessors. Move it
> to the root of the devicetree to reflect this.

I find this confusing, perhaps due to overloading of the word "register".
Aren't CP15's a class of coprocessor _registers_? Could it perhaps be clearer
to talk about memory-mapped versus CP15-mapped timers?

Is "soc" documented somewhere or is it just a name for a container? Assuming
the latter, it's not obvious to me why being a child of a system on chip node
would imply having memory mapped registers.

Thanks,
Christopher
Kumar Gala March 17, 2014, 5:33 p.m. UTC | #2
On Mar 17, 2014, at 12:31 PM, Christopher Covington <cov@codeaurora.org> wrote:

> Hi Stephen,
> 
> On 03/11/2014 05:24 PM, Stephen Boyd wrote:
>> The architected timer is not a register addressable piece of
>> hardware. Instead it's accessed through cp15 accessors. Move it
>> to the root of the devicetree to reflect this.
> 
> I find this confusing, perhaps due to overloading of the word "register".
> Aren't CP15's a class of coprocessor _registers_? Could it perhaps be clearer
> to talk about memory-mapped versus CP15-mapped timers?
> 
> Is "soc" documented somewhere or is it just a name for a container? Assuming
> the latter, it's not obvious to me why being a child of a system on chip node
> would imply having memory mapped registers.

“soc” is a container, since its compatible = "simple-bus”, this implies memory mapped register access for nodes inside of it.

- k
Christopher Covington March 17, 2014, 5:48 p.m. UTC | #3
Hi Kumar,

On 03/17/2014 01:33 PM, Kumar Gala wrote:
> 
> On Mar 17, 2014, at 12:31 PM, Christopher Covington <cov@codeaurora.org> wrote:
> 
>> Hi Stephen,
>>
>> On 03/11/2014 05:24 PM, Stephen Boyd wrote:
>>> The architected timer is not a register addressable piece of
>>> hardware. Instead it's accessed through cp15 accessors. Move it
>>> to the root of the devicetree to reflect this.
>>
>> I find this confusing, perhaps due to overloading of the word "register".
>> Aren't CP15's a class of coprocessor _registers_? Could it perhaps be clearer
>> to talk about memory-mapped versus CP15-mapped timers?
>>
>> Is "soc" documented somewhere or is it just a name for a container? Assuming
>> the latter, it's not obvious to me why being a child of a system on chip node
>> would imply having memory mapped registers.
> 
> “soc” is a container, since its compatible = "simple-bus”, this implies
> memory mapped register access for nodes inside of it.

That makes sense. Thanks for explaining it.

Christopher

Patch
diff mbox

diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 9d79b98f18bb..d3fe0c21c6f4 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -52,6 +52,15 @@ 
 		};
 	};
 
+	timer {
+		compatible = "arm,armv7-timer";
+		interrupts = <1 2 0xf08>,
+			     <1 3 0xf08>,
+			     <1 4 0xf08>,
+			     <1 1 0xf08>;
+		clock-frequency = <19200000>;
+	};
+
 	soc: soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -66,15 +75,6 @@ 
 			      <0xf9002000 0x1000>;
 		};
 
-		timer {
-			compatible = "arm,armv7-timer";
-			interrupts = <1 2 0xf08>,
-				     <1 3 0xf08>,
-				     <1 4 0xf08>,
-				     <1 1 0xf08>;
-			clock-frequency = <19200000>;
-		};
-
 		timer@f9020000 {
 			#address-cells = <1>;
 			#size-cells = <1>;