summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/msm8660-surf.dts
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2013-03-15 07:31:38 +0400
committerDavid Brown <davidb@codeaurora.org>2013-03-22 21:46:16 +0400
commiteebdb0c1e1d63532399f7cbb65ade5969d63df06 (patch)
tree0fb67b3ab00115d0e0078f51c721c60f7d4ef9be /arch/arm/boot/dts/msm8660-surf.dts
parentf6161aa153581da4a3867a2d1a7caf4be19b6ec9 (diff)
downloadlinux-eebdb0c1e1d63532399f7cbb65ade5969d63df06.tar.xz
ARM: msm: Rework timer binding to be more general
The msm timer binding I wrote is bad. First off, the clock frequency in the binding for the dgt is wrong. Software divides down the input rate by 4 to achieve the rate listed in the binding. We also treat each individual timer as a separate hardware component, when in reality there is one timer block (that may be duplicated per cpu) with multiple timers within it. Depending on the version of the hardware there can be one or two general purpose timers, status and divider control registers, and an entirely different register layout. In the next patch we'll need to know about the different register layouts so that we can properly check the status register after clearing the count. The current binding makes this complicated because the general purpose timer's reg property doesn't indicate where that status register is, and in fact it is beyond the size of the reg property. Clean all this up by just having one node for the timer hardware, and describe all the interrupts and clock frequencies supported while having one reg property that covers the entire timer register region. We'll use the compatible field in the future to determine different register layouts and if we should read the status registers, etc. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: David Brown <davidb@codeaurora.org>
Diffstat (limited to 'arch/arm/boot/dts/msm8660-surf.dts')
-rw-r--r--arch/arm/boot/dts/msm8660-surf.dts20
1 files changed, 7 insertions, 13 deletions
diff --git a/arch/arm/boot/dts/msm8660-surf.dts b/arch/arm/boot/dts/msm8660-surf.dts
index 31f2157cd7d7..743ef42df23e 100644
--- a/arch/arm/boot/dts/msm8660-surf.dts
+++ b/arch/arm/boot/dts/msm8660-surf.dts
@@ -16,19 +16,13 @@
};
timer@2000004 {
- compatible = "qcom,msm-gpt", "qcom,msm-timer";
- interrupts = <1 1 0x301>;
- reg = <0x02000004 0x10>;
- clock-frequency = <32768>;
- cpu-offset = <0x40000>;
- };
-
- timer@2000024 {
- compatible = "qcom,msm-dgt", "qcom,msm-timer";
- interrupts = <1 0 0x301>;
- reg = <0x02000024 0x10>,
- <0x02000034 0x4>;
- clock-frequency = <6750000>;
+ compatible = "qcom,scss-timer", "qcom,msm-timer";
+ interrupts = <1 0 0x301>,
+ <1 1 0x301>,
+ <1 2 0x301>;
+ reg = <0x02000000 0x100>;
+ clock-frequency = <27000000>,
+ <32768>;
cpu-offset = <0x40000>;
};