blob: 9793ea6f0fe65d35ca124554108537376fc689dd [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
25 - rockchip,rk3588-ioc
26 - rockchip,rk3588-php-grf
27 - rockchip,rk3588-pipe-phy-grf
28 - rockchip,rk3588-sys-grf
29 - rockchip,rk3588-pcie3-phy-grf
30 - rockchip,rk3588-pcie3-pipe-grf
Tom Rini93743d22024-04-01 09:08:13 -040031 - rockchip,rk3588-vo-grf
32 - rockchip,rk3588-vop-grf
Tom Rini53633a82024-02-29 12:33:36 -050033 - rockchip,rv1108-usbgrf
34 - const: syscon
35 - items:
36 - enum:
37 - rockchip,px30-grf
38 - rockchip,px30-pmugrf
39 - rockchip,px30-usb2phy-grf
40 - rockchip,rk3036-grf
41 - rockchip,rk3066-grf
42 - rockchip,rk3128-grf
43 - rockchip,rk3188-grf
44 - rockchip,rk3228-grf
45 - rockchip,rk3288-grf
46 - rockchip,rk3308-core-grf
47 - rockchip,rk3308-detect-grf
48 - rockchip,rk3308-grf
49 - rockchip,rk3308-usb2phy-grf
50 - rockchip,rk3328-grf
51 - rockchip,rk3328-usb2phy-grf
52 - rockchip,rk3368-grf
53 - rockchip,rk3368-pmugrf
54 - rockchip,rk3399-grf
55 - rockchip,rk3399-pmugrf
56 - rockchip,rk3568-grf
57 - rockchip,rk3568-pmugrf
58 - rockchip,rk3588-usb2phy-grf
59 - rockchip,rv1108-grf
60 - rockchip,rv1108-pmugrf
61 - rockchip,rv1126-grf
62 - rockchip,rv1126-pmugrf
63 - const: syscon
64 - const: simple-mfd
65
66 reg:
67 maxItems: 1
68
69 "#address-cells":
70 const: 1
71
72 "#size-cells":
73 const: 1
74
75required:
76 - compatible
77 - reg
78
79additionalProperties:
80 type: object
81
82allOf:
83 - if:
84 properties:
85 compatible:
86 contains:
87 enum:
88 - rockchip,px30-grf
89
90 then:
91 properties:
92 lvds:
93 type: object
94
95 $ref: /schemas/display/rockchip/rockchip,lvds.yaml#
96
97 unevaluatedProperties: false
98
99 - if:
100 properties:
101 compatible:
102 contains:
103 const: rockchip,rk3288-grf
104
105 then:
106 properties:
107 edp-phy:
108 type: object
109 $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
110 unevaluatedProperties: false
111
112 - if:
113 properties:
114 compatible:
115 contains:
116 enum:
117 - rockchip,rk3066-grf
118 - rockchip,rk3188-grf
119 - rockchip,rk3288-grf
120
121 then:
122 properties:
123 usbphy:
124 type: object
125
126 $ref: /schemas/phy/rockchip-usb-phy.yaml#
127
128 unevaluatedProperties: false
129
130 - if:
131 properties:
132 compatible:
133 contains:
134 const: rockchip,rk3328-grf
135
136 then:
137 properties:
138 gpio:
139 type: object
140
141 $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
142
143 unevaluatedProperties: false
144
145 power-controller:
146 type: object
147
148 $ref: /schemas/power/rockchip,power-controller.yaml#
149
150 unevaluatedProperties: false
151
152 - if:
153 properties:
154 compatible:
155 contains:
156 const: rockchip,rk3399-grf
157
158 then:
159 properties:
160 mipi-dphy-rx0:
161 type: object
162
163 $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml#
164
165 unevaluatedProperties: false
166
167 pcie-phy:
168 description:
169 Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
170
171 patternProperties:
172 "phy@[0-9a-f]+$":
173 description:
174 Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
175
176 - if:
177 properties:
178 compatible:
179 contains:
180 enum:
181 - rockchip,px30-pmugrf
182 - rockchip,rk3036-grf
183 - rockchip,rk3308-grf
184 - rockchip,rk3368-pmugrf
185
186 then:
187 properties:
188 reboot-mode:
189 type: object
190
191 $ref: /schemas/power/reset/syscon-reboot-mode.yaml#
192
193 unevaluatedProperties: false
194
195 - if:
196 properties:
197 compatible:
198 contains:
199 enum:
200 - rockchip,px30-usb2phy-grf
201 - rockchip,rk3128-grf
202 - rockchip,rk3228-grf
203 - rockchip,rk3308-usb2phy-grf
204 - rockchip,rk3328-usb2phy-grf
205 - rockchip,rk3399-grf
206 - rockchip,rk3588-usb2phy-grf
207 - rockchip,rv1108-grf
208
209 then:
210 required:
211 - "#address-cells"
212 - "#size-cells"
213
214 patternProperties:
215 "usb2phy@[0-9a-f]+$":
216 type: object
217
218 $ref: /schemas/phy/rockchip,inno-usb2phy.yaml#
219
220 unevaluatedProperties: false
221
222 - if:
223 properties:
224 compatible:
225 contains:
226 enum:
227 - rockchip,px30-grf
228 - rockchip,px30-pmugrf
229 - rockchip,rk3188-grf
230 - rockchip,rk3228-grf
231 - rockchip,rk3288-grf
232 - rockchip,rk3328-grf
233 - rockchip,rk3368-grf
234 - rockchip,rk3368-pmugrf
235 - rockchip,rk3399-grf
236 - rockchip,rk3399-pmugrf
237 - rockchip,rk3568-pmugrf
238 - rockchip,rk3588-pmugrf
239 - rockchip,rv1108-grf
240 - rockchip,rv1108-pmugrf
241
242 then:
243 properties:
244 io-domains:
245 type: object
246
247 $ref: /schemas/power/rockchip-io-domain.yaml#
248
249 unevaluatedProperties: false
250
251examples:
252 - |
253 #include <dt-bindings/clock/rk3399-cru.h>
254 #include <dt-bindings/interrupt-controller/arm-gic.h>
255 #include <dt-bindings/power/rk3399-power.h>
256 grf: syscon@ff770000 {
257 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
258 reg = <0xff770000 0x10000>;
259 #address-cells = <1>;
260 #size-cells = <1>;
261
262 mipi_dphy_rx0: mipi-dphy-rx0 {
263 compatible = "rockchip,rk3399-mipi-dphy-rx0";
264 clocks = <&cru SCLK_MIPIDPHY_REF>,
265 <&cru SCLK_DPHY_RX0_CFG>,
266 <&cru PCLK_VIO_GRF>;
267 clock-names = "dphy-ref", "dphy-cfg", "grf";
268 power-domains = <&power RK3399_PD_VIO>;
269 #phy-cells = <0>;
270 };
271
272 u2phy0: usb2phy@e450 {
273 compatible = "rockchip,rk3399-usb2phy";
274 reg = <0xe450 0x10>;
275 clocks = <&cru SCLK_USB2PHY0_REF>;
276 clock-names = "phyclk";
277 #clock-cells = <0>;
278 clock-output-names = "clk_usbphy0_480m";
279
280 u2phy0_host: host-port {
281 #phy-cells = <0>;
282 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
283 interrupt-names = "linestate";
284 };
285
286 u2phy0_otg: otg-port {
287 #phy-cells = <0>;
288 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
289 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
290 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
291 interrupt-names = "otg-bvalid", "otg-id",
292 "linestate";
293 };
294 };
295 };