mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 01:23:20 +00:00
f884ab15af
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
Samsung's Multi Core Timer (MCT)
|
|
|
|
The Samsung's Multi Core Timer (MCT) module includes two main blocks, the
|
|
global timer and CPU local timers. The global timer is a 64-bit free running
|
|
up-counter and can generate 4 interrupts when the counter reaches one of the
|
|
four preset counter values. The CPU local timers are 32-bit free running
|
|
down-counters and generate an interrupt when the counter expires. There is
|
|
one CPU local timer instantiated in MCT for every CPU in the system.
|
|
|
|
Required properties:
|
|
|
|
- compatible: should be "samsung,exynos4210-mct".
|
|
(a) "samsung,exynos4210-mct", for mct compatible with Exynos4210 mct.
|
|
(b) "samsung,exynos4412-mct", for mct compatible with Exynos4412 mct.
|
|
|
|
- reg: base address of the mct controller and length of the address space
|
|
it occupies.
|
|
|
|
- interrupts: the list of interrupts generated by the controller. The following
|
|
should be the order of the interrupts specified. The local timer interrupts
|
|
should be specified after the four global timer interrupts have been
|
|
specified.
|
|
|
|
0: Global Timer Interrupt 0
|
|
1: Global Timer Interrupt 1
|
|
2: Global Timer Interrupt 2
|
|
3: Global Timer Interrupt 3
|
|
4: Local Timer Interrupt 0
|
|
5: Local Timer Interrupt 1
|
|
6: ..
|
|
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.
|
|
|
|
mct@10050000 {
|
|
compatible = "samsung,exynos4210-mct";
|
|
reg = <0x10050000 0x800>;
|
|
interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 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.
|
|
|
|
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>;
|
|
|
|
mct_map: mct-map {
|
|
#interrupt-cells = <2>;
|
|
#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>;
|
|
};
|
|
};
|