1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/rtc/allwinner,sun6i-a31-rtc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A31 RTC Device Tree Bindings
8
9maintainers:
10  - Chen-Yu Tsai <wens@csie.org>
11  - Maxime Ripard <mripard@kernel.org>
12
13properties:
14  "#clock-cells":
15    const: 1
16
17  compatible:
18    oneOf:
19      - const: allwinner,sun6i-a31-rtc
20      - const: allwinner,sun8i-a23-rtc
21      - const: allwinner,sun8i-h3-rtc
22      - const: allwinner,sun8i-r40-rtc
23      - const: allwinner,sun8i-v3-rtc
24      - const: allwinner,sun50i-h5-rtc
25      - items:
26          - const: allwinner,sun50i-a64-rtc
27          - const: allwinner,sun8i-h3-rtc
28      - const: allwinner,sun50i-h6-rtc
29
30  reg:
31    maxItems: 1
32
33  interrupts:
34    minItems: 1
35    maxItems: 2
36    items:
37      - description: RTC Alarm 0
38      - description: RTC Alarm 1
39
40  clocks:
41    maxItems: 1
42
43  clock-output-names:
44    minItems: 1
45    maxItems: 3
46    description:
47      The RTC provides up to three clocks
48        - the Low Frequency Oscillator or LOSC, at index 0,
49        - the Low Frequency Oscillator External output (X32KFOUT in
50          the datasheet), at index 1,
51        - the Internal Oscillator, at index 2.
52
53allOf:
54  - $ref: "rtc.yaml#"
55  - if:
56      properties:
57        compatible:
58          contains:
59            const: allwinner,sun6i-a31-rtc
60
61    then:
62      properties:
63        clock-output-names:
64          minItems: 1
65          maxItems: 1
66
67  - if:
68      properties:
69        compatible:
70          contains:
71            enum:
72              - allwinner,sun8i-a23-rtc
73              - allwinner,sun8i-r40-rtc
74              - allwinner,sun8i-v3-rtc
75
76    then:
77      properties:
78        clock-output-names:
79          minItems: 2
80          maxItems: 2
81
82  - if:
83      properties:
84        compatible:
85          contains:
86            enum:
87              - allwinner,sun8i-h3-rtc
88              - allwinner,sun50i-h5-rtc
89
90    then:
91      properties:
92        clock-output-names:
93          minItems: 3
94          maxItems: 3
95
96  - if:
97      properties:
98        compatible:
99          contains:
100            const: allwinner,sun50i-h6-rtc
101
102    then:
103      properties:
104        clock-output-names:
105          minItems: 3
106          maxItems: 3
107
108  - if:
109      properties:
110        compatible:
111          contains:
112            const: allwinner,sun8i-r40-rtc
113
114    then:
115      properties:
116        interrupts:
117          minItems: 1
118          maxItems: 1
119
120    else:
121      properties:
122        interrupts:
123          minItems: 2
124          maxItems: 2
125
126required:
127  - "#clock-cells"
128  - compatible
129  - reg
130  - interrupts
131  - clock-output-names
132
133additionalProperties: false
134
135examples:
136  - |
137    rtc: rtc@1f00000 {
138        compatible = "allwinner,sun6i-a31-rtc";
139        reg = <0x01f00000 0x400>;
140        interrupts = <0 40 4>, <0 41 4>;
141        clock-output-names = "osc32k";
142        clocks = <&ext_osc32k>;
143        #clock-cells = <1>;
144    };
145
146...
147