forked from nathanchance/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: timer: Convert Exynos MCT bindings to json-schema
Convert Samsung Exynos Soc Multi Core Timer bindings to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
- Loading branch information
1 parent
b204731
commit 65eba0d
Showing
2 changed files
with
107 additions
and
88 deletions.
There are no files selected for viewing
88 changes: 0 additions & 88 deletions
88
Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt
This file was deleted.
Oops, something went wrong.
107 changes: 107 additions & 0 deletions
107
Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/timer/samsung,exynos4210-mct.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Samsung Exynos SoC Multi Core Timer (MCT) | ||
|
||
maintainers: | ||
- Krzysztof Kozlowski <krzk@kernel.org> | ||
|
||
description: |+ | ||
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. | ||
properties: | ||
compatible: | ||
enum: | ||
- samsung,exynos4210-mct | ||
- samsung,exynos4412-mct | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
interrupts: | ||
description: | | ||
Interrupts should be put in specific order. This is, 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 | ||
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. | ||
minItems: 5 # 4 Global + 1 local | ||
maxItems: 20 # 4 Global + 16 local | ||
|
||
required: | ||
- compatible | ||
- interrupts | ||
- reg | ||
|
||
examples: | ||
- | | ||
// 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. | ||
timer@10050000 { | ||
compatible = "samsung,exynos4210-mct"; | ||
reg = <0x10050000 0x800>; | ||
interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
<0 42 0>, <0 48 0>; | ||
}; | ||
- | | ||
// In this example, the timer interrupts are connected to two separate | ||
// interrupt controllers. Hence, an interrupts-extended is needed. | ||
timer@101c0000 { | ||
compatible = "samsung,exynos4210-mct"; | ||
reg = <0x101C0000 0x800>; | ||
interrupts-extended = <&gic 0 57 0>, | ||
<&gic 0 69 0>, | ||
<&combiner 12 6>, | ||
<&combiner 12 7>, | ||
<&gic 0 42 0>, | ||
<&gic 0 48 0>; | ||
}; | ||
- | | ||
// In this example, the IP contains four local timers, but using | ||
// a per-processor interrupt to handle them. Only one first local | ||
// interrupt is specified. | ||
timer@10050000 { | ||
compatible = "samsung,exynos4412-mct"; | ||
reg = <0x10050000 0x800>; | ||
interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
<0 42 0>; | ||
}; | ||
- | | ||
// In this example, the IP contains four local timers, but using | ||
// a per-processor interrupt to handle them. All the local timer | ||
// interrupts are specified. | ||
timer@10050000 { | ||
compatible = "samsung,exynos4412-mct"; | ||
reg = <0x10050000 0x800>; | ||
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>; | ||
}; |