diff options
Diffstat (limited to 'Documentation/devicetree/bindings')
-rw-r--r-- | Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt | 54 |
1 files changed, 37 insertions, 17 deletions
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt index b5a86d20ee36..167d5dab9f64 100644 --- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt +++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt | |||
@@ -31,38 +31,58 @@ Required properties: | |||
31 | 7: .. | 31 | 7: .. |
32 | i: Local Timer Interrupt n | 32 | i: Local Timer Interrupt n |
33 | 33 | ||
34 | Example 1: In this example, the system uses only the first global timer | 34 | For MCT block that uses a per-processor interrupt for local timers, such |
35 | interrupt generated by MCT and the remaining three global timer | 35 | as ones compatible with "samsung,exynos4412-mct", only one local timer |
36 | interrupts are unused. Two local timer interrupts have been | 36 | interrupt might be specified, meaning that all local timers use the same |
37 | specified. | 37 | per processor interrupt. |
38 | |||
39 | Example 1: In this example, the IP contains two local timers, using separate | ||
40 | interrupts, so two local timer interrupts have been specified, | ||
41 | in addition to four global timer interrupts. | ||
38 | 42 | ||
39 | mct@10050000 { | 43 | mct@10050000 { |
40 | compatible = "samsung,exynos4210-mct"; | 44 | compatible = "samsung,exynos4210-mct"; |
41 | reg = <0x10050000 0x800>; | 45 | reg = <0x10050000 0x800>; |
42 | interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, | 46 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, |
43 | <0 42 0>, <0 48 0>; | 47 | <0 42 0>, <0 48 0>; |
44 | }; | 48 | }; |
45 | 49 | ||
46 | Example 2: In this example, the MCT global and local timer interrupts are | 50 | Example 2: In this example, the timer interrupts are connected to two separate |
47 | connected to two separate interrupt controllers. Hence, an | 51 | interrupt controllers. Hence, an interrupt-map is created to map |
48 | interrupt-map is created to map the interrupts to the respective | 52 | the interrupts to the respective interrupt controllers. |
49 | interrupt controllers. | ||
50 | 53 | ||
51 | mct@101C0000 { | 54 | mct@101C0000 { |
52 | compatible = "samsung,exynos4210-mct"; | 55 | compatible = "samsung,exynos4210-mct"; |
53 | reg = <0x101C0000 0x800>; | 56 | reg = <0x101C0000 0x800>; |
54 | interrupt-controller; | ||
55 | #interrups-cells = <2>; | ||
56 | interrupt-parent = <&mct_map>; | 57 | interrupt-parent = <&mct_map>; |
57 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | 58 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>; |
58 | <4 0>, <5 0>; | ||
59 | 59 | ||
60 | mct_map: mct-map { | 60 | mct_map: mct-map { |
61 | #interrupt-cells = <2>; | 61 | #interrupt-cells = <1>; |
62 | #address-cells = <0>; | 62 | #address-cells = <0>; |
63 | #size-cells = <0>; | 63 | #size-cells = <0>; |
64 | interrupt-map = <0x0 0 &combiner 23 3>, | 64 | interrupt-map = <0 &gic 0 57 0>, |
65 | <0x4 0 &gic 0 120 0>, | 65 | <1 &gic 0 69 0>, |
66 | <0x5 0 &gic 0 121 0>; | 66 | <2 &combiner 12 6>, |
67 | <3 &combiner 12 7>, | ||
68 | <4 &gic 0 42 0>, | ||
69 | <5 &gic 0 48 0>; | ||
67 | }; | 70 | }; |
68 | }; | 71 | }; |
72 | |||
73 | Example 3: In this example, the IP contains four local timers, but using | ||
74 | a per-processor interrupt to handle them. Either all the local | ||
75 | timer interrupts can be specified, with the same interrupt specifier | ||
76 | value or just the first one. | ||
77 | |||
78 | mct@10050000 { | ||
79 | compatible = "samsung,exynos4412-mct"; | ||
80 | reg = <0x10050000 0x800>; | ||
81 | |||
82 | /* Both ways are possible in this case. Either: */ | ||
83 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
84 | <0 42 0>; | ||
85 | /* or: */ | ||
86 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
87 | <0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>; | ||
88 | }; | ||