mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 10:57:46 +00:00
Documentation: devicetree: Update Exynos MCT bindings description
This patch updates description of device tree bindings for Exynos MCT (multicore timers). Namely: - added note about simplified specification of local timer interrupts, when using single per-processor interrupt for all local timers, - changed first example that was incorrectly suggesting that global timer interrupts are optional, - simplified example interrupt map, - added example showing simplified local timer interrupt specification. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
022cf308de
commit
5983255659
1 changed files with 37 additions and 17 deletions
|
@ -31,38 +31,58 @@ Required properties:
|
|||
7: ..
|
||||
i: Local Timer Interrupt n
|
||||
|
||||
Example 1: In this example, the system uses only the first global timer
|
||||
interrupt generated by MCT and the remaining three global timer
|
||||
interrupts are unused. Two local timer interrupts have been
|
||||
specified.
|
||||
For MCT block that uses a per-processor interrupt for local timers, such
|
||||
as ones compatible with "samsung,exynos4412-mct", only one local timer
|
||||
interrupt might be specified, meaning that all local timers use the same
|
||||
per processor interrupt.
|
||||
|
||||
Example 1: In this example, the IP contains two local timers, using separate
|
||||
interrupts, so two local timer interrupts have been specified,
|
||||
in addition to four global timer interrupts.
|
||||
|
||||
mct@10050000 {
|
||||
compatible = "samsung,exynos4210-mct";
|
||||
reg = <0x10050000 0x800>;
|
||||
interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>,
|
||||
interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
|
||||
<0 42 0>, <0 48 0>;
|
||||
};
|
||||
|
||||
Example 2: In this example, the MCT global and local timer interrupts are
|
||||
connected to two separate interrupt controllers. Hence, an
|
||||
interrupt-map is created to map the interrupts to the respective
|
||||
interrupt controllers.
|
||||
Example 2: In this example, the timer interrupts are connected to two separate
|
||||
interrupt controllers. Hence, an interrupt-map is created to map
|
||||
the interrupts to the respective interrupt controllers.
|
||||
|
||||
mct@101C0000 {
|
||||
compatible = "samsung,exynos4210-mct";
|
||||
reg = <0x101C0000 0x800>;
|
||||
interrupt-controller;
|
||||
#interrups-cells = <2>;
|
||||
interrupt-parent = <&mct_map>;
|
||||
interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
|
||||
<4 0>, <5 0>;
|
||||
interrupts = <0>, <1>, <2>, <3>, <4>, <5>;
|
||||
|
||||
mct_map: mct-map {
|
||||
#interrupt-cells = <2>;
|
||||
#interrupt-cells = <1>;
|
||||
#address-cells = <0>;
|
||||
#size-cells = <0>;
|
||||
interrupt-map = <0x0 0 &combiner 23 3>,
|
||||
<0x4 0 &gic 0 120 0>,
|
||||
<0x5 0 &gic 0 121 0>;
|
||||
interrupt-map = <0 &gic 0 57 0>,
|
||||
<1 &gic 0 69 0>,
|
||||
<2 &combiner 12 6>,
|
||||
<3 &combiner 12 7>,
|
||||
<4 &gic 0 42 0>,
|
||||
<5 &gic 0 48 0>;
|
||||
};
|
||||
};
|
||||
|
||||
Example 3: In this example, the IP contains four local timers, but using
|
||||
a per-processor interrupt to handle them. Either all the local
|
||||
timer interrupts can be specified, with the same interrupt specifier
|
||||
value or just the first one.
|
||||
|
||||
mct@10050000 {
|
||||
compatible = "samsung,exynos4412-mct";
|
||||
reg = <0x10050000 0x800>;
|
||||
|
||||
/* Both ways are possible in this case. Either: */
|
||||
interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
|
||||
<0 42 0>;
|
||||
/* or: */
|
||||
interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>,
|
||||
<0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue