aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2013-07-18 19:59:29 -0400
committerDaniel Lezcano <daniel.lezcano@linaro.org>2013-07-31 19:13:36 -0400
commitd53ef114cf40a043e3cc3fa70dbcdfb268a7e4dc (patch)
tree7d1060eb73e9719ec480504e8f29fcb337786ca8
parent1ff99ea65687d921cb71f330491ec4205c00eb9f (diff)
Documentation: Add memory mapped ARM architected timer binding
Add a binding for the arm architected timer hardware's memory mapped interface. The mmio timer hardware is made up of one base frame and a collection of up to 8 timer frames, where each of the 8 timer frames can have either one or two views. A frame typically maps to a privilege level (user/kernel, hypervisor, secure). The first view has full access to the registers within a frame, while the second view can be restricted to particular registers within a frame. Each frame must support a physical timer. It's optional for a frame to support a virtual timer. Cc: devicetree-discuss@lists.ozlabs.org Cc: Marc Zyngier <Marc.Zyngier@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Rob Herring <robherring2@gmail.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Mark Rutland <mark.rutland@arm.com>
-rw-r--r--Documentation/devicetree/bindings/arm/arch_timer.txt59
1 files changed, 56 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt
index 20746e5abe6f..06fc7602593a 100644
--- a/Documentation/devicetree/bindings/arm/arch_timer.txt
+++ b/Documentation/devicetree/bindings/arm/arch_timer.txt
@@ -1,10 +1,14 @@
1* ARM architected timer 1* ARM architected timer
2 2
3ARM cores may have a per-core architected timer, which provides per-cpu timers. 3ARM cores may have a per-core architected timer, which provides per-cpu timers,
4or a memory mapped architected timer, which provides up to 8 frames with a
5physical and optional virtual timer per frame.
4 6
5The timer is attached to a GIC to deliver its per-processor interrupts. 7The per-core architected timer is attached to a GIC to deliver its
8per-processor interrupts via PPIs. The memory mapped timer is attached to a GIC
9to deliver its interrupts via SPIs.
6 10
7** Timer node properties: 11** CP15 Timer node properties:
8 12
9- compatible : Should at least contain one of 13- compatible : Should at least contain one of
10 "arm,armv7-timer" 14 "arm,armv7-timer"
@@ -26,3 +30,52 @@ Example:
26 <1 10 0xf08>; 30 <1 10 0xf08>;
27 clock-frequency = <100000000>; 31 clock-frequency = <100000000>;
28 }; 32 };
33
34** Memory mapped timer node properties:
35
36- compatible : Should at least contain "arm,armv7-timer-mem".
37
38- clock-frequency : The frequency of the main counter, in Hz. Optional.
39
40- reg : The control frame base address.
41
42Note that #address-cells, #size-cells, and ranges shall be present to ensure
43the CPU can address a frame's registers.
44
45A timer node has up to 8 frame sub-nodes, each with the following properties:
46
47- frame-number: 0 to 7.
48
49- interrupts : Interrupt list for physical and virtual timers in that order.
50 The virtual timer interrupt is optional.
51
52- reg : The first and second view base addresses in that order. The second view
53 base address is optional.
54
55- status : "disabled" indicates the frame is not available for use. Optional.
56
57Example:
58
59 timer@f0000000 {
60 compatible = "arm,armv7-timer-mem";
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64 reg = <0xf0000000 0x1000>;
65 clock-frequency = <50000000>;
66
67 frame@f0001000 {
68 frame-number = <0>
69 interrupts = <0 13 0x8>,
70 <0 14 0x8>;
71 reg = <0xf0001000 0x1000>,
72 <0xf0002000 0x1000>;
73 };
74
75 frame@f0003000 {
76 frame-number = <1>
77 interrupts = <0 15 0x8>;
78 reg = <0xf0003000 0x1000>;
79 status = "disabled";
80 };
81 };