|  | 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 seperate 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>; | 
|  | }; | 
|  | }; |