xref: /linux/Documentation/devicetree/bindings/timer/mediatek,timer.yaml (revision b228ab57e51b62663a80ca820c87ba2650583f08)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/timer/mediatek,timer.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek SoC timers
8
9maintainers:
10  - Matthias Brugger <matthias.bgg@gmail.com>
11
12description:
13  MediaTek SoCs have different timers on different platforms,
14  CPUX (ARM/ARM64 System Timer), GPT (General Purpose Timer)
15  and SYST (System Timer).
16
17properties:
18  compatible:
19    oneOf:
20      - items:
21          - enum:
22              - mediatek,mt6577-timer
23              - mediatek,mt6765-timer
24              - mediatek,mt6795-systimer
25      # GPT Timers
26      - items:
27          - enum:
28              - mediatek,mt2701-timer
29              - mediatek,mt6580-timer
30              - mediatek,mt6582-timer
31              - mediatek,mt6589-timer
32              - mediatek,mt7623-timer
33              - mediatek,mt8127-timer
34              - mediatek,mt8135-timer
35              - mediatek,mt8173-timer
36              - mediatek,mt8516-timer
37          - const: mediatek,mt6577-timer
38      # SYST Timers
39      - items:
40          - enum:
41              - mediatek,mt7629-timer
42              - mediatek,mt8183-timer
43              - mediatek,mt8186-timer
44              - mediatek,mt8188-timer
45              - mediatek,mt8192-timer
46              - mediatek,mt8195-timer
47              - mediatek,mt8365-systimer
48          - const: mediatek,mt6765-timer
49
50  reg:
51    maxItems: 1
52
53  interrupts:
54    maxItems: 1
55
56  clocks:
57    minItems: 1
58    items:
59      - description: Timer clock
60      - description: RTC or bus clock
61
62  clock-names:
63    minItems: 1
64    maxItems: 2
65
66required:
67  - compatible
68  - reg
69  - interrupts
70  - clocks
71
72additionalProperties: false
73
74examples:
75  - |
76    #include <dt-bindings/interrupt-controller/irq.h>
77    #include <dt-bindings/interrupt-controller/arm-gic.h>
78
79    timer@10008000 {
80      compatible = "mediatek,mt6577-timer";
81      reg = <0x10008000 0x80>;
82      interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>;
83      clocks = <&system_clk>;
84    };
85