blob: 4531eec568a6578b19a85594e9ebb8458825bb47 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
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 - 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
63allOf:
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
176required:
177 - "#clock-cells"
178 - compatible
179 - reg
180 - interrupts
181
182additionalProperties: false
183
184examples:
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...