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