summaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/msm8960-cdp.dts
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2013-03-14 20:31:38 -0700
committerDavid Brown <davidb@codeaurora.org>2013-03-22 10:46:16 -0700
commiteebdb0c1e1d63532399f7cbb65ade5969d63df06 (patch)
tree0fb67b3ab00115d0e0078f51c721c60f7d4ef9be /arch/arm/boot/dts/msm8960-cdp.dts
parentf6161aa153581da4a3867a2d1a7caf4be19b6ec9 (diff)
downloadtalos-op-linux-eebdb0c1e1d63532399f7cbb65ade5969d63df06.tar.gz
talos-op-linux-eebdb0c1e1d63532399f7cbb65ade5969d63df06.zip
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/msm8960-cdp.dts')
-rw-r--r--arch/arm/boot/dts/msm8960-cdp.dts22
1 files changed, 8 insertions, 14 deletions
diff --git a/arch/arm/boot/dts/msm8960-cdp.dts b/arch/arm/boot/dts/msm8960-cdp.dts
index 9e621b5ad3dd..3ae51fb02e17 100644
--- a/arch/arm/boot/dts/msm8960-cdp.dts
+++ b/arch/arm/boot/dts/msm8960-cdp.dts
@@ -15,20 +15,14 @@
< 0x02002000 0x1000 >;
};
- timer@200a004 {
- compatible = "qcom,msm-gpt", "qcom,msm-timer";
- interrupts = <1 2 0x301>;
- reg = <0x0200a004 0x10>;
- clock-frequency = <32768>;
- cpu-offset = <0x80000>;
- };
-
- timer@200a024 {
- compatible = "qcom,msm-dgt", "qcom,msm-timer";
- interrupts = <1 1 0x301>;
- reg = <0x0200a024 0x10>,
- <0x0200a034 0x4>;
- clock-frequency = <6750000>;
+ timer@200a000 {
+ compatible = "qcom,kpss-timer", "qcom,msm-timer";
+ interrupts = <1 1 0x301>,
+ <1 2 0x301>,
+ <1 3 0x301>;
+ reg = <0x0200a000 0x100>;
+ clock-frequency = <27000000>,
+ <32768>;
cpu-offset = <0x80000>;
};
OpenPOWER on IntegriCloud