1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/timer/fsl,imxgpt.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale i.MX General Purpose Timer (GPT)
8
9maintainers:
10  - Sascha Hauer <[email protected]>
11
12properties:
13  compatible:
14    oneOf:
15      - const: fsl,imx1-gpt
16      - const: fsl,imx21-gpt
17      - items:
18          - const: fsl,imx27-gpt
19          - const: fsl,imx21-gpt
20      - const: fsl,imx31-gpt
21      - items:
22          - enum:
23              - fsl,imx25-gpt
24              - fsl,imx35-gpt
25              - fsl,imx50-gpt
26              - fsl,imx51-gpt
27              - fsl,imx53-gpt
28              - fsl,imx6q-gpt
29          - const: fsl,imx31-gpt
30      - const: fsl,imx6dl-gpt
31      - items:
32          - enum:
33              - fsl,imx6sl-gpt
34              - fsl,imx6sx-gpt
35              - fsl,imx7d-gpt
36              - fsl,imx8mp-gpt
37              - fsl,imxrt1050-gpt
38              - fsl,imxrt1170-gpt
39          - const: fsl,imx6dl-gpt
40      - items:
41          - enum:
42              - fsl,imx6ul-gpt
43          - const: fsl,imx6sx-gpt
44
45  reg:
46    maxItems: 1
47
48  interrupts:
49    maxItems: 1
50
51  clocks:
52    minItems: 2
53    items:
54      - description: SoC GPT ipg clock
55      - description: SoC GPT per clock
56      - description: SoC GPT osc per clock
57
58  clock-names:
59    minItems: 2
60    items:
61      - const: ipg
62      - const: per
63      - const: osc_per
64
65required:
66  - compatible
67  - reg
68  - interrupts
69  - clocks
70  - clock-names
71
72allOf:
73  - if:
74      properties:
75        compatible:
76          contains:
77            enum:
78              - fsl,imx6dl-gpt
79              - fsl,imx6q-gpt
80    then:
81      properties:
82        clocks:
83          minItems: 2
84          maxItems: 3
85        clock-names:
86          minItems: 2
87          maxItems: 3
88    else:
89      properties:
90        clocks:
91          maxItems: 2
92        clock-names:
93          maxItems: 2
94
95additionalProperties: false
96
97examples:
98  - |
99    #include <dt-bindings/clock/imx27-clock.h>
100
101    timer@10003000 {
102        compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
103        reg = <0x10003000 0x1000>;
104        interrupts = <26>;
105        clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>,
106                 <&clks IMX27_CLK_PER1_GATE>;
107        clock-names = "ipg", "per";
108    };
109