GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / rtc / allwinner,sun6i-a31-rtc.yaml
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
7 title: Allwinner A31 RTC
8
9 maintainers:
10   - Chen-Yu Tsai <wens@csie.org>
11   - Maxime Ripard <mripard@kernel.org>
12
13 properties:
14   "#clock-cells":
15     const: 1
16
17   compatible:
18     oneOf:
19       - enum:
20           - allwinner,sun6i-a31-rtc
21           - allwinner,sun8i-a23-rtc
22           - allwinner,sun8i-h3-rtc
23           - allwinner,sun8i-r40-rtc
24           - allwinner,sun8i-v3-rtc
25           - allwinner,sun50i-h5-rtc
26           - allwinner,sun50i-h6-rtc
27           - allwinner,sun50i-h616-rtc
28           - allwinner,sun50i-r329-rtc
29       - items:
30           - const: allwinner,sun50i-a64-rtc
31           - const: allwinner,sun8i-h3-rtc
32       - items:
33           - const: allwinner,sun20i-d1-rtc
34           - const: allwinner,sun50i-r329-rtc
35
36   reg:
37     maxItems: 1
38
39   interrupts:
40     minItems: 1
41     items:
42       - description: RTC Alarm 0
43       - description: RTC Alarm 1
44
45   clocks:
46     minItems: 1
47     maxItems: 4
48
49   clock-names:
50     minItems: 1
51     maxItems: 4
52
53   clock-output-names:
54     minItems: 1
55     maxItems: 3
56     description:
57       The RTC provides up to three clocks
58         - the Low Frequency Oscillator or LOSC, at index 0,
59         - the Low Frequency Oscillator External output (X32KFOUT in
60           the datasheet), at index 1,
61         - the Internal Oscillator, at index 2.
62
63 allOf:
64   - $ref: "rtc.yaml#"
65   - if:
66       properties:
67         compatible:
68           contains:
69             const: allwinner,sun6i-a31-rtc
70
71     then:
72       properties:
73         clock-output-names:
74           maxItems: 1
75
76   - if:
77       properties:
78         compatible:
79           contains:
80             enum:
81               - allwinner,sun8i-a23-rtc
82               - allwinner,sun8i-r40-rtc
83               - allwinner,sun8i-v3-rtc
84
85     then:
86       properties:
87         clock-output-names:
88           minItems: 2
89           maxItems: 2
90
91   - if:
92       properties:
93         compatible:
94           contains:
95             enum:
96               - allwinner,sun8i-h3-rtc
97               - allwinner,sun50i-h5-rtc
98               - allwinner,sun50i-h6-rtc
99
100     then:
101       properties:
102         clock-output-names:
103           minItems: 3
104
105   - if:
106       properties:
107         compatible:
108           contains:
109             const: allwinner,sun50i-h616-rtc
110
111     then:
112       properties:
113         clocks:
114           items:
115             - description: Bus clock for register access
116             - description: 24 MHz oscillator
117             - description: 32 kHz clock from the CCU
118
119         clock-names:
120           items:
121             - const: bus
122             - const: hosc
123             - const: pll-32k
124
125       required:
126         - clocks
127         - clock-names
128
129   - if:
130       properties:
131         compatible:
132           contains:
133             const: allwinner,sun50i-r329-rtc
134
135     then:
136       properties:
137         clocks:
138           minItems: 3
139           items:
140             - description: Bus clock for register access
141             - description: 24 MHz oscillator
142             - description: AHB parent for internal SPI clock
143             - description: External 32768 Hz oscillator
144
145         clock-names:
146           minItems: 3
147           items:
148             - const: bus
149             - const: hosc
150             - const: ahb
151             - const: ext-osc32k
152
153       required:
154         - clocks
155         - clock-names
156
157   - if:
158       properties:
159         compatible:
160           contains:
161             enum:
162               - allwinner,sun8i-r40-rtc
163               - allwinner,sun50i-h616-rtc
164               - allwinner,sun50i-r329-rtc
165
166     then:
167       properties:
168         interrupts:
169           maxItems: 1
170
171     else:
172       properties:
173         interrupts:
174           minItems: 2
175
176 required:
177   - "#clock-cells"
178   - compatible
179   - reg
180   - interrupts
181
182 additionalProperties: false
183
184 examples:
185   - |
186     rtc: rtc@1f00000 {
187         compatible = "allwinner,sun6i-a31-rtc";
188         reg = <0x01f00000 0x400>;
189         interrupts = <0 40 4>, <0 41 4>;
190         clock-output-names = "osc32k";
191         clocks = <&ext_osc32k>;
192         #clock-cells = <1>;
193     };
194
195 ...