blob: 35b20e53b5132815961033d0ee646dd27b2e2b99 [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/soc/rockchip/grf.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip General Register Files (GRF)
8
9maintainers:
10 - Heiko Stuebner <heiko@sntech.de>
11
12properties:
13 compatible:
14 oneOf:
15 - items:
16 - enum:
17 - rockchip,rk3288-sgrf
18 - rockchip,rk3566-pipe-grf
19 - rockchip,rk3568-pcie3-phy-grf
20 - rockchip,rk3568-pipe-grf
21 - rockchip,rk3568-pipe-phy-grf
22 - rockchip,rk3568-usb2phy-grf
23 - rockchip,rk3588-bigcore0-grf
24 - rockchip,rk3588-bigcore1-grf
Tom Rini6bb92fc2024-05-20 09:54:58 -060025 - rockchip,rk3588-hdptxphy-grf
Tom Rini53633a82024-02-29 12:33:36 -050026 - rockchip,rk3588-ioc
27 - rockchip,rk3588-php-grf
28 - rockchip,rk3588-pipe-phy-grf
29 - rockchip,rk3588-sys-grf
30 - rockchip,rk3588-pcie3-phy-grf
31 - rockchip,rk3588-pcie3-pipe-grf
Tom Rini6bb92fc2024-05-20 09:54:58 -060032 - rockchip,rk3588-usb-grf
33 - rockchip,rk3588-usbdpphy-grf
Tom Rini6b642ac2024-10-01 12:20:28 -060034 - rockchip,rk3588-vo0-grf
35 - rockchip,rk3588-vo1-grf
Tom Rini93743d22024-04-01 09:08:13 -040036 - rockchip,rk3588-vop-grf
Tom Rini53633a82024-02-29 12:33:36 -050037 - rockchip,rv1108-usbgrf
38 - const: syscon
Tom Rini6b642ac2024-10-01 12:20:28 -060039 - items:
40 - const: rockchip,rk3588-vo-grf
41 - const: syscon
42 deprecated: true
43 description: Use rockchip,rk3588-vo{0,1}-grf instead.
Tom Rini53633a82024-02-29 12:33:36 -050044 - items:
45 - enum:
46 - rockchip,px30-grf
47 - rockchip,px30-pmugrf
48 - rockchip,px30-usb2phy-grf
49 - rockchip,rk3036-grf
50 - rockchip,rk3066-grf
51 - rockchip,rk3128-grf
52 - rockchip,rk3188-grf
53 - rockchip,rk3228-grf
54 - rockchip,rk3288-grf
55 - rockchip,rk3308-core-grf
56 - rockchip,rk3308-detect-grf
57 - rockchip,rk3308-grf
58 - rockchip,rk3308-usb2phy-grf
59 - rockchip,rk3328-grf
60 - rockchip,rk3328-usb2phy-grf
61 - rockchip,rk3368-grf
62 - rockchip,rk3368-pmugrf
63 - rockchip,rk3399-grf
64 - rockchip,rk3399-pmugrf
65 - rockchip,rk3568-grf
66 - rockchip,rk3568-pmugrf
67 - rockchip,rk3588-usb2phy-grf
68 - rockchip,rv1108-grf
69 - rockchip,rv1108-pmugrf
70 - rockchip,rv1126-grf
71 - rockchip,rv1126-pmugrf
72 - const: syscon
73 - const: simple-mfd
74
75 reg:
76 maxItems: 1
77
Tom Rini6bb92fc2024-05-20 09:54:58 -060078 clocks:
79 maxItems: 1
80
Tom Rini53633a82024-02-29 12:33:36 -050081 "#address-cells":
82 const: 1
83
84 "#size-cells":
85 const: 1
86
87required:
88 - compatible
89 - reg
90
91additionalProperties:
92 type: object
93
94allOf:
95 - if:
96 properties:
97 compatible:
98 contains:
99 enum:
100 - rockchip,px30-grf
101
102 then:
103 properties:
104 lvds:
105 type: object
106
107 $ref: /schemas/display/rockchip/rockchip,lvds.yaml#
108
109 unevaluatedProperties: false
110
111 - if:
112 properties:
113 compatible:
114 contains:
115 const: rockchip,rk3288-grf
116
117 then:
118 properties:
119 edp-phy:
120 type: object
121 $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
122 unevaluatedProperties: false
123
124 - if:
125 properties:
126 compatible:
127 contains:
128 enum:
129 - rockchip,rk3066-grf
130 - rockchip,rk3188-grf
131 - rockchip,rk3288-grf
132
133 then:
134 properties:
135 usbphy:
136 type: object
137
138 $ref: /schemas/phy/rockchip-usb-phy.yaml#
139
140 unevaluatedProperties: false
141
142 - if:
143 properties:
144 compatible:
145 contains:
146 const: rockchip,rk3328-grf
147
148 then:
149 properties:
150 gpio:
151 type: object
152
153 $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
154
155 unevaluatedProperties: false
156
157 power-controller:
158 type: object
159
160 $ref: /schemas/power/rockchip,power-controller.yaml#
161
162 unevaluatedProperties: false
163
164 - if:
165 properties:
166 compatible:
167 contains:
168 const: rockchip,rk3399-grf
169
170 then:
171 properties:
172 mipi-dphy-rx0:
173 type: object
174
175 $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml#
176
177 unevaluatedProperties: false
178
179 pcie-phy:
Tom Rini6bb92fc2024-05-20 09:54:58 -0600180 type: object
Tom Rini53633a82024-02-29 12:33:36 -0500181 description:
182 Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
183
184 patternProperties:
Tom Rini6b642ac2024-10-01 12:20:28 -0600185 "^phy@[0-9a-f]+$":
186 type: object
187 $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml#
188 unevaluatedProperties: false
Tom Rini53633a82024-02-29 12:33:36 -0500189
190 - if:
191 properties:
192 compatible:
193 contains:
194 enum:
195 - rockchip,px30-pmugrf
196 - rockchip,rk3036-grf
197 - rockchip,rk3308-grf
198 - rockchip,rk3368-pmugrf
199
200 then:
201 properties:
202 reboot-mode:
203 type: object
204
205 $ref: /schemas/power/reset/syscon-reboot-mode.yaml#
206
207 unevaluatedProperties: false
208
209 - if:
210 properties:
211 compatible:
212 contains:
213 enum:
214 - rockchip,px30-usb2phy-grf
215 - rockchip,rk3128-grf
216 - rockchip,rk3228-grf
217 - rockchip,rk3308-usb2phy-grf
218 - rockchip,rk3328-usb2phy-grf
219 - rockchip,rk3399-grf
220 - rockchip,rk3588-usb2phy-grf
221 - rockchip,rv1108-grf
222
223 then:
224 required:
225 - "#address-cells"
226 - "#size-cells"
227
228 patternProperties:
229 "usb2phy@[0-9a-f]+$":
230 type: object
231
232 $ref: /schemas/phy/rockchip,inno-usb2phy.yaml#
233
234 unevaluatedProperties: false
235
236 - if:
237 properties:
238 compatible:
239 contains:
240 enum:
241 - rockchip,px30-grf
242 - rockchip,px30-pmugrf
243 - rockchip,rk3188-grf
244 - rockchip,rk3228-grf
245 - rockchip,rk3288-grf
246 - rockchip,rk3328-grf
247 - rockchip,rk3368-grf
248 - rockchip,rk3368-pmugrf
249 - rockchip,rk3399-grf
250 - rockchip,rk3399-pmugrf
251 - rockchip,rk3568-pmugrf
252 - rockchip,rk3588-pmugrf
253 - rockchip,rv1108-grf
254 - rockchip,rv1108-pmugrf
255
256 then:
257 properties:
258 io-domains:
259 type: object
260
261 $ref: /schemas/power/rockchip-io-domain.yaml#
262
263 unevaluatedProperties: false
264
Tom Rini6bb92fc2024-05-20 09:54:58 -0600265 - if:
266 properties:
267 compatible:
268 contains:
269 enum:
270 - rockchip,rk3588-vo-grf
Tom Rini6b642ac2024-10-01 12:20:28 -0600271 - rockchip,rk3588-vo0-grf
272 - rockchip,rk3588-vo1-grf
Tom Rini6bb92fc2024-05-20 09:54:58 -0600273
274 then:
275 required:
276 - clocks
277
278 else:
279 properties:
280 clocks: false
281
282
Tom Rini53633a82024-02-29 12:33:36 -0500283examples:
284 - |
285 #include <dt-bindings/clock/rk3399-cru.h>
286 #include <dt-bindings/interrupt-controller/arm-gic.h>
287 #include <dt-bindings/power/rk3399-power.h>
288 grf: syscon@ff770000 {
289 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
290 reg = <0xff770000 0x10000>;
291 #address-cells = <1>;
292 #size-cells = <1>;
293
294 mipi_dphy_rx0: mipi-dphy-rx0 {
295 compatible = "rockchip,rk3399-mipi-dphy-rx0";
296 clocks = <&cru SCLK_MIPIDPHY_REF>,
297 <&cru SCLK_DPHY_RX0_CFG>,
298 <&cru PCLK_VIO_GRF>;
299 clock-names = "dphy-ref", "dphy-cfg", "grf";
300 power-domains = <&power RK3399_PD_VIO>;
301 #phy-cells = <0>;
302 };
303
Tom Rini6b642ac2024-10-01 12:20:28 -0600304 phy@f780 {
305 compatible = "rockchip,rk3399-emmc-phy";
306 reg = <0xf780 0x20>;
307 clocks = <&sdhci>;
308 clock-names = "emmcclk";
309 drive-impedance-ohm = <50>;
310 #phy-cells = <0>;
311 };
312
Tom Rini53633a82024-02-29 12:33:36 -0500313 u2phy0: usb2phy@e450 {
314 compatible = "rockchip,rk3399-usb2phy";
315 reg = <0xe450 0x10>;
316 clocks = <&cru SCLK_USB2PHY0_REF>;
317 clock-names = "phyclk";
318 #clock-cells = <0>;
319 clock-output-names = "clk_usbphy0_480m";
320
321 u2phy0_host: host-port {
322 #phy-cells = <0>;
323 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
324 interrupt-names = "linestate";
325 };
326
327 u2phy0_otg: otg-port {
328 #phy-cells = <0>;
329 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
330 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
331 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
332 interrupt-names = "otg-bvalid", "otg-id",
333 "linestate";
334 };
335 };
336 };