diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2013-03-14 20:31:38 -0700 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2013-03-22 10:46:16 -0700 |
commit | eebdb0c1e1d63532399f7cbb65ade5969d63df06 (patch) | |
tree | 0fb67b3ab00115d0e0078f51c721c60f7d4ef9be /arch/arm/boot/dts/msm8960-cdp.dts | |
parent | f6161aa153581da4a3867a2d1a7caf4be19b6ec9 (diff) | |
download | talos-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.dts | 22 |
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>; }; |