xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3568-wolfvision-pf5.dts (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1*7d0873ebSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2*7d0873ebSEmmanuel Vadot/*
3*7d0873ebSEmmanuel Vadot * Device tree for the WolfVision PF5 mainboard.
4*7d0873ebSEmmanuel Vadot *
5*7d0873ebSEmmanuel Vadot * Copyright (C) 2024 WolfVision GmbH.
6*7d0873ebSEmmanuel Vadot */
7*7d0873ebSEmmanuel Vadot
8*7d0873ebSEmmanuel Vadot/dts-v1/;
9*7d0873ebSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*7d0873ebSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
11*7d0873ebSEmmanuel Vadot#include <dt-bindings/regulator/ti,tps62864.h>
12*7d0873ebSEmmanuel Vadot#include <dt-bindings/soc/rockchip,vop2.h>
13*7d0873ebSEmmanuel Vadot#include "rk3568.dtsi"
14*7d0873ebSEmmanuel Vadot
15*7d0873ebSEmmanuel Vadot/ {
16*7d0873ebSEmmanuel Vadot	model = "WolfVision PF5";
17*7d0873ebSEmmanuel Vadot	compatible = "wolfvision,rk3568-pf5", "rockchip,rk3568";
18*7d0873ebSEmmanuel Vadot
19*7d0873ebSEmmanuel Vadot	aliases {
20*7d0873ebSEmmanuel Vadot		ethernet0 = &gmac0;
21*7d0873ebSEmmanuel Vadot		mmc0 = &sdhci;
22*7d0873ebSEmmanuel Vadot		rtc0 = &pcf85623;
23*7d0873ebSEmmanuel Vadot		rtc1 = &rk809;
24*7d0873ebSEmmanuel Vadot	};
25*7d0873ebSEmmanuel Vadot
26*7d0873ebSEmmanuel Vadot	chosen: chosen {
27*7d0873ebSEmmanuel Vadot		stdout-path = "serial2:115200n8";
28*7d0873ebSEmmanuel Vadot	};
29*7d0873ebSEmmanuel Vadot
30*7d0873ebSEmmanuel Vadot	hdmi_tx: hdmi-tx-connector {
31*7d0873ebSEmmanuel Vadot		compatible = "hdmi-connector";
32*7d0873ebSEmmanuel Vadot		hdmi-pwr-supply = <&hdmi_tx_5v>;
33*7d0873ebSEmmanuel Vadot		type = "a";
34*7d0873ebSEmmanuel Vadot
35*7d0873ebSEmmanuel Vadot		port {
36*7d0873ebSEmmanuel Vadot			hdmi_tx_in: endpoint {
37*7d0873ebSEmmanuel Vadot				remote-endpoint = <&hdmi_tx_out>;
38*7d0873ebSEmmanuel Vadot			};
39*7d0873ebSEmmanuel Vadot		};
40*7d0873ebSEmmanuel Vadot	};
41*7d0873ebSEmmanuel Vadot
42*7d0873ebSEmmanuel Vadot	hdmi_tx_5v: hdmi-tx-5v-regulator {
43*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
44*7d0873ebSEmmanuel Vadot		enable-active-high;
45*7d0873ebSEmmanuel Vadot		gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
46*7d0873ebSEmmanuel Vadot		pinctrl-names = "default";
47*7d0873ebSEmmanuel Vadot		pinctrl-0 = <&hdmi_tx_5v_en>;
48*7d0873ebSEmmanuel Vadot		regulator-name = "hdmi_tx_5v";
49*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
50*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
51*7d0873ebSEmmanuel Vadot		vin-supply = <&vcc5v_in>;
52*7d0873ebSEmmanuel Vadot	};
53*7d0873ebSEmmanuel Vadot
54*7d0873ebSEmmanuel Vadot	pdm_codec: pdm-codec {
55*7d0873ebSEmmanuel Vadot		compatible = "dmic-codec";
56*7d0873ebSEmmanuel Vadot		num-channels = <1>;
57*7d0873ebSEmmanuel Vadot		#sound-dai-cells = <0>;
58*7d0873ebSEmmanuel Vadot	};
59*7d0873ebSEmmanuel Vadot
60*7d0873ebSEmmanuel Vadot	pdm_sound: pdm-sound {
61*7d0873ebSEmmanuel Vadot		compatible = "simple-audio-card";
62*7d0873ebSEmmanuel Vadot		simple-audio-card,name = "microphone";
63*7d0873ebSEmmanuel Vadot
64*7d0873ebSEmmanuel Vadot		simple-audio-card,cpu {
65*7d0873ebSEmmanuel Vadot			sound-dai = <&pdm>;
66*7d0873ebSEmmanuel Vadot		};
67*7d0873ebSEmmanuel Vadot
68*7d0873ebSEmmanuel Vadot		simple-audio-card,codec {
69*7d0873ebSEmmanuel Vadot			sound-dai = <&pdm_codec>;
70*7d0873ebSEmmanuel Vadot		};
71*7d0873ebSEmmanuel Vadot	};
72*7d0873ebSEmmanuel Vadot
73*7d0873ebSEmmanuel Vadot	vcc12v_cam: vcc12v-cam-regulator {
74*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
75*7d0873ebSEmmanuel Vadot		enable-active-high;
76*7d0873ebSEmmanuel Vadot		gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
77*7d0873ebSEmmanuel Vadot		pinctrl-names = "default";
78*7d0873ebSEmmanuel Vadot		pinctrl-0 = <&vcc12v_cam_en>;
79*7d0873ebSEmmanuel Vadot		regulator-name = "12v_cam";
80*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
81*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
82*7d0873ebSEmmanuel Vadot		vin-supply = <&vcc12v_in>;
83*7d0873ebSEmmanuel Vadot	};
84*7d0873ebSEmmanuel Vadot
85*7d0873ebSEmmanuel Vadot	vcc12v_in: vcc12v-in-regulator {
86*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
87*7d0873ebSEmmanuel Vadot		regulator-name = "12v_in";
88*7d0873ebSEmmanuel Vadot		regulator-always-on;
89*7d0873ebSEmmanuel Vadot		regulator-boot-on;
90*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <12000000>;
91*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <12000000>;
92*7d0873ebSEmmanuel Vadot	};
93*7d0873ebSEmmanuel Vadot
94*7d0873ebSEmmanuel Vadot	vcc3v8_cam: vcc3v8-cam-regulator {
95*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
96*7d0873ebSEmmanuel Vadot		enable-active-high;
97*7d0873ebSEmmanuel Vadot		gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
98*7d0873ebSEmmanuel Vadot		pinctrl-names = "default";
99*7d0873ebSEmmanuel Vadot		pinctrl-0 = <&vcc3v8_cam_en>;
100*7d0873ebSEmmanuel Vadot		regulator-name = "3v8_cam";
101*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <3800000>;
102*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <3800000>;
103*7d0873ebSEmmanuel Vadot		vin-supply = <&vcc5v_in>;
104*7d0873ebSEmmanuel Vadot	};
105*7d0873ebSEmmanuel Vadot
106*7d0873ebSEmmanuel Vadot	vcc3v3_sys: vcc3v3-sys-regulator {
107*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
108*7d0873ebSEmmanuel Vadot		regulator-name = "3v3_sys";
109*7d0873ebSEmmanuel Vadot		regulator-always-on;
110*7d0873ebSEmmanuel Vadot		regulator-boot-on;
111*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
112*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
113*7d0873ebSEmmanuel Vadot		vin-supply = <&vcc5v_in>;
114*7d0873ebSEmmanuel Vadot	};
115*7d0873ebSEmmanuel Vadot
116*7d0873ebSEmmanuel Vadot	vcc5v_in: vcc5v-in-regulator {
117*7d0873ebSEmmanuel Vadot		compatible = "regulator-fixed";
118*7d0873ebSEmmanuel Vadot		regulator-name = "5v_in";
119*7d0873ebSEmmanuel Vadot		regulator-always-on;
120*7d0873ebSEmmanuel Vadot		regulator-boot-on;
121*7d0873ebSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
122*7d0873ebSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
123*7d0873ebSEmmanuel Vadot		vin-supply = <&vcc12v_in>;
124*7d0873ebSEmmanuel Vadot	};
125*7d0873ebSEmmanuel Vadot};
126*7d0873ebSEmmanuel Vadot
127*7d0873ebSEmmanuel Vadot&combphy0 {
128*7d0873ebSEmmanuel Vadot	status = "okay";
129*7d0873ebSEmmanuel Vadot};
130*7d0873ebSEmmanuel Vadot
131*7d0873ebSEmmanuel Vadot&cpu0 {
132*7d0873ebSEmmanuel Vadot	cpu-supply = <&vcc0v9_cpu>;
133*7d0873ebSEmmanuel Vadot};
134*7d0873ebSEmmanuel Vadot
135*7d0873ebSEmmanuel Vadot&cpu1 {
136*7d0873ebSEmmanuel Vadot	cpu-supply = <&vcc0v9_cpu>;
137*7d0873ebSEmmanuel Vadot};
138*7d0873ebSEmmanuel Vadot
139*7d0873ebSEmmanuel Vadot&cpu2 {
140*7d0873ebSEmmanuel Vadot	cpu-supply = <&vcc0v9_cpu>;
141*7d0873ebSEmmanuel Vadot};
142*7d0873ebSEmmanuel Vadot
143*7d0873ebSEmmanuel Vadot&cpu3 {
144*7d0873ebSEmmanuel Vadot	cpu-supply = <&vcc0v9_cpu>;
145*7d0873ebSEmmanuel Vadot};
146*7d0873ebSEmmanuel Vadot
147*7d0873ebSEmmanuel Vadot&gpu {
148*7d0873ebSEmmanuel Vadot	mali-supply = <&vcc0v9_gpu>;
149*7d0873ebSEmmanuel Vadot	status = "okay";
150*7d0873ebSEmmanuel Vadot};
151*7d0873ebSEmmanuel Vadot
152*7d0873ebSEmmanuel Vadot&hdmi {
153*7d0873ebSEmmanuel Vadot	avdd-0v9-supply = <&vcc0v9a_image>;
154*7d0873ebSEmmanuel Vadot	avdd-1v8-supply = <&vcc1v8a_image>;
155*7d0873ebSEmmanuel Vadot	status = "okay";
156*7d0873ebSEmmanuel Vadot};
157*7d0873ebSEmmanuel Vadot
158*7d0873ebSEmmanuel Vadot&hdmi_in {
159*7d0873ebSEmmanuel Vadot	hdmi_in_vp0: endpoint {
160*7d0873ebSEmmanuel Vadot		remote-endpoint = <&vp0_out_hdmi>;
161*7d0873ebSEmmanuel Vadot	};
162*7d0873ebSEmmanuel Vadot};
163*7d0873ebSEmmanuel Vadot
164*7d0873ebSEmmanuel Vadot&hdmi_out {
165*7d0873ebSEmmanuel Vadot	hdmi_tx_out: endpoint {
166*7d0873ebSEmmanuel Vadot		remote-endpoint = <&hdmi_tx_in>;
167*7d0873ebSEmmanuel Vadot	};
168*7d0873ebSEmmanuel Vadot};
169*7d0873ebSEmmanuel Vadot
170*7d0873ebSEmmanuel Vadot&i2c0 {
171*7d0873ebSEmmanuel Vadot	status = "okay";
172*7d0873ebSEmmanuel Vadot
173*7d0873ebSEmmanuel Vadot	rk809: pmic@20 {
174*7d0873ebSEmmanuel Vadot		compatible = "rockchip,rk809";
175*7d0873ebSEmmanuel Vadot		reg = <0x20>;
176*7d0873ebSEmmanuel Vadot		interrupt-parent = <&gpio0>;
177*7d0873ebSEmmanuel Vadot		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
178*7d0873ebSEmmanuel Vadot		#clock-cells = <0>;
179*7d0873ebSEmmanuel Vadot		pinctrl-names = "default";
180*7d0873ebSEmmanuel Vadot		pinctrl-0 = <&pmic_int_l>;
181*7d0873ebSEmmanuel Vadot		rockchip,system-power-controller;
182*7d0873ebSEmmanuel Vadot		vcc1-supply = <&vcc5v_in>;
183*7d0873ebSEmmanuel Vadot		vcc2-supply = <&vcc5v_in>;
184*7d0873ebSEmmanuel Vadot		vcc3-supply = <&vcc5v_in>;
185*7d0873ebSEmmanuel Vadot		vcc4-supply = <&vcc5v_in>;
186*7d0873ebSEmmanuel Vadot		vcc5-supply = <&vcc3v3_sys>;
187*7d0873ebSEmmanuel Vadot		vcc6-supply = <&vcc5v_in>;
188*7d0873ebSEmmanuel Vadot		vcc7-supply = <&vcc3v3_sys>;
189*7d0873ebSEmmanuel Vadot		vcc8-supply = <&vcc3v3_sys>;
190*7d0873ebSEmmanuel Vadot		vcc9-supply = <&vcc3v3_sys>;
191*7d0873ebSEmmanuel Vadot		wakeup-source;
192*7d0873ebSEmmanuel Vadot
193*7d0873ebSEmmanuel Vadot		regulators {
194*7d0873ebSEmmanuel Vadot			vcc0v9_logic: DCDC_REG1 {
195*7d0873ebSEmmanuel Vadot				regulator-name = "0v9_logic";
196*7d0873ebSEmmanuel Vadot				regulator-always-on;
197*7d0873ebSEmmanuel Vadot				regulator-boot-on;
198*7d0873ebSEmmanuel Vadot				regulator-initial-mode = <0x2>;
199*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <500000>;
200*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
201*7d0873ebSEmmanuel Vadot				regulator-ramp-delay = <6001>;
202*7d0873ebSEmmanuel Vadot
203*7d0873ebSEmmanuel Vadot				regulator-state-mem {
204*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
205*7d0873ebSEmmanuel Vadot				};
206*7d0873ebSEmmanuel Vadot			};
207*7d0873ebSEmmanuel Vadot
208*7d0873ebSEmmanuel Vadot			vcc0v9_gpu: DCDC_REG2 {
209*7d0873ebSEmmanuel Vadot				regulator-name = "0v9_gpu";
210*7d0873ebSEmmanuel Vadot				regulator-always-on;
211*7d0873ebSEmmanuel Vadot				regulator-initial-mode = <0x2>;
212*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <500000>;
213*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
214*7d0873ebSEmmanuel Vadot				regulator-ramp-delay = <6001>;
215*7d0873ebSEmmanuel Vadot
216*7d0873ebSEmmanuel Vadot				regulator-state-mem {
217*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
218*7d0873ebSEmmanuel Vadot				};
219*7d0873ebSEmmanuel Vadot			};
220*7d0873ebSEmmanuel Vadot
221*7d0873ebSEmmanuel Vadot			vcc1v1_ddr4: DCDC_REG3 {
222*7d0873ebSEmmanuel Vadot				regulator-name = "1v1_ddr4";
223*7d0873ebSEmmanuel Vadot				regulator-always-on;
224*7d0873ebSEmmanuel Vadot				regulator-boot-on;
225*7d0873ebSEmmanuel Vadot				regulator-initial-mode = <0x2>;
226*7d0873ebSEmmanuel Vadot
227*7d0873ebSEmmanuel Vadot				regulator-state-mem {
228*7d0873ebSEmmanuel Vadot					regulator-on-in-suspend;
229*7d0873ebSEmmanuel Vadot				};
230*7d0873ebSEmmanuel Vadot			};
231*7d0873ebSEmmanuel Vadot
232*7d0873ebSEmmanuel Vadot			vcc0v9_npu: DCDC_REG4 {
233*7d0873ebSEmmanuel Vadot				regulator-name = "0v9_npu";
234*7d0873ebSEmmanuel Vadot				regulator-always-on;
235*7d0873ebSEmmanuel Vadot				regulator-initial-mode = <0x2>;
236*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <900000>;
237*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
238*7d0873ebSEmmanuel Vadot				regulator-ramp-delay = <6001>;
239*7d0873ebSEmmanuel Vadot
240*7d0873ebSEmmanuel Vadot				regulator-state-mem {
241*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
242*7d0873ebSEmmanuel Vadot				};
243*7d0873ebSEmmanuel Vadot			};
244*7d0873ebSEmmanuel Vadot
245*7d0873ebSEmmanuel Vadot			vcc1v8: DCDC_REG5 {
246*7d0873ebSEmmanuel Vadot				regulator-name = "1v8";
247*7d0873ebSEmmanuel Vadot				regulator-always-on;
248*7d0873ebSEmmanuel Vadot				regulator-boot-on;
249*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
250*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
251*7d0873ebSEmmanuel Vadot
252*7d0873ebSEmmanuel Vadot				regulator-state-mem {
253*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
254*7d0873ebSEmmanuel Vadot				};
255*7d0873ebSEmmanuel Vadot			};
256*7d0873ebSEmmanuel Vadot
257*7d0873ebSEmmanuel Vadot			vcc0v9a_image: LDO_REG1 {
258*7d0873ebSEmmanuel Vadot				regulator-name = "0v9a_image";
259*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <900000>;
260*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <900000>;
261*7d0873ebSEmmanuel Vadot
262*7d0873ebSEmmanuel Vadot				regulator-state-mem {
263*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
264*7d0873ebSEmmanuel Vadot				};
265*7d0873ebSEmmanuel Vadot			};
266*7d0873ebSEmmanuel Vadot
267*7d0873ebSEmmanuel Vadot			vcc0v9a: LDO_REG2 {
268*7d0873ebSEmmanuel Vadot				regulator-name = "0v9a";
269*7d0873ebSEmmanuel Vadot				regulator-always-on;
270*7d0873ebSEmmanuel Vadot				regulator-boot-on;
271*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <900000>;
272*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <900000>;
273*7d0873ebSEmmanuel Vadot
274*7d0873ebSEmmanuel Vadot				regulator-state-mem {
275*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
276*7d0873ebSEmmanuel Vadot				};
277*7d0873ebSEmmanuel Vadot			};
278*7d0873ebSEmmanuel Vadot
279*7d0873ebSEmmanuel Vadot			vcc0v9a_pmu: LDO_REG3 {
280*7d0873ebSEmmanuel Vadot				regulator-name = "0v9a_pmu";
281*7d0873ebSEmmanuel Vadot				regulator-always-on;
282*7d0873ebSEmmanuel Vadot				regulator-boot-on;
283*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <900000>;
284*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <900000>;
285*7d0873ebSEmmanuel Vadot
286*7d0873ebSEmmanuel Vadot				regulator-state-mem {
287*7d0873ebSEmmanuel Vadot					regulator-on-in-suspend;
288*7d0873ebSEmmanuel Vadot					regulator-suspend-microvolt = <900000>;
289*7d0873ebSEmmanuel Vadot				};
290*7d0873ebSEmmanuel Vadot			};
291*7d0873ebSEmmanuel Vadot
292*7d0873ebSEmmanuel Vadot			vcc3v3_acodec: LDO_REG4 {
293*7d0873ebSEmmanuel Vadot				regulator-name = "3v3_acodec";
294*7d0873ebSEmmanuel Vadot				regulator-always-on;
295*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
296*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
297*7d0873ebSEmmanuel Vadot
298*7d0873ebSEmmanuel Vadot				regulator-state-mem {
299*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
300*7d0873ebSEmmanuel Vadot				};
301*7d0873ebSEmmanuel Vadot			};
302*7d0873ebSEmmanuel Vadot
303*7d0873ebSEmmanuel Vadot			vcc3v3_sd: LDO_REG5 {
304*7d0873ebSEmmanuel Vadot				regulator-name = "3v3_sd";
305*7d0873ebSEmmanuel Vadot				regulator-always-on;
306*7d0873ebSEmmanuel Vadot				regulator-boot-on;
307*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
308*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
309*7d0873ebSEmmanuel Vadot
310*7d0873ebSEmmanuel Vadot				regulator-state-mem {
311*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
312*7d0873ebSEmmanuel Vadot				};
313*7d0873ebSEmmanuel Vadot			};
314*7d0873ebSEmmanuel Vadot
315*7d0873ebSEmmanuel Vadot			vcc3v3_pmu: LDO_REG6 {
316*7d0873ebSEmmanuel Vadot				regulator-name = "3v3_pmu";
317*7d0873ebSEmmanuel Vadot				regulator-always-on;
318*7d0873ebSEmmanuel Vadot				regulator-boot-on;
319*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
320*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
321*7d0873ebSEmmanuel Vadot
322*7d0873ebSEmmanuel Vadot				regulator-state-mem {
323*7d0873ebSEmmanuel Vadot					regulator-on-in-suspend;
324*7d0873ebSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
325*7d0873ebSEmmanuel Vadot				};
326*7d0873ebSEmmanuel Vadot			};
327*7d0873ebSEmmanuel Vadot
328*7d0873ebSEmmanuel Vadot			vcc1v8a: LDO_REG7 {
329*7d0873ebSEmmanuel Vadot				regulator-name = "1v8a";
330*7d0873ebSEmmanuel Vadot				regulator-always-on;
331*7d0873ebSEmmanuel Vadot				regulator-boot-on;
332*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
333*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
334*7d0873ebSEmmanuel Vadot
335*7d0873ebSEmmanuel Vadot				regulator-state-mem {
336*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
337*7d0873ebSEmmanuel Vadot				};
338*7d0873ebSEmmanuel Vadot			};
339*7d0873ebSEmmanuel Vadot
340*7d0873ebSEmmanuel Vadot			vcc1v8a_pmu: LDO_REG8 {
341*7d0873ebSEmmanuel Vadot				regulator-name = "1v8a_pmu";
342*7d0873ebSEmmanuel Vadot				regulator-always-on;
343*7d0873ebSEmmanuel Vadot				regulator-boot-on;
344*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
345*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
346*7d0873ebSEmmanuel Vadot
347*7d0873ebSEmmanuel Vadot				regulator-state-mem {
348*7d0873ebSEmmanuel Vadot					regulator-on-in-suspend;
349*7d0873ebSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
350*7d0873ebSEmmanuel Vadot				};
351*7d0873ebSEmmanuel Vadot			};
352*7d0873ebSEmmanuel Vadot
353*7d0873ebSEmmanuel Vadot			vcc1v8a_image: LDO_REG9 {
354*7d0873ebSEmmanuel Vadot				regulator-name = "1v8a_image";
355*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
356*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
357*7d0873ebSEmmanuel Vadot
358*7d0873ebSEmmanuel Vadot				regulator-state-mem {
359*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
360*7d0873ebSEmmanuel Vadot				};
361*7d0873ebSEmmanuel Vadot			};
362*7d0873ebSEmmanuel Vadot
363*7d0873ebSEmmanuel Vadot			vcc3v3_sw: SWITCH_REG1 {
364*7d0873ebSEmmanuel Vadot				regulator-name = "3v3_sw";
365*7d0873ebSEmmanuel Vadot				regulator-always-on;
366*7d0873ebSEmmanuel Vadot				regulator-boot-on;
367*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
368*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
369*7d0873ebSEmmanuel Vadot
370*7d0873ebSEmmanuel Vadot				regulator-state-mem {
371*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
372*7d0873ebSEmmanuel Vadot				};
373*7d0873ebSEmmanuel Vadot			};
374*7d0873ebSEmmanuel Vadot		};
375*7d0873ebSEmmanuel Vadot	};
376*7d0873ebSEmmanuel Vadot
377*7d0873ebSEmmanuel Vadot	regulator@42 {
378*7d0873ebSEmmanuel Vadot		compatible = "ti,tps62869";
379*7d0873ebSEmmanuel Vadot		reg = <0x42>;
380*7d0873ebSEmmanuel Vadot
381*7d0873ebSEmmanuel Vadot		regulators {
382*7d0873ebSEmmanuel Vadot			vcc0v9_cpu: SW {
383*7d0873ebSEmmanuel Vadot				regulator-name = "0v9_cpu";
384*7d0873ebSEmmanuel Vadot				regulator-always-on;
385*7d0873ebSEmmanuel Vadot				regulator-boot-on;
386*7d0873ebSEmmanuel Vadot				regulator-initial-mode = <TPS62864_MODE_FPWM>;
387*7d0873ebSEmmanuel Vadot				regulator-min-microvolt = <900000>;
388*7d0873ebSEmmanuel Vadot				regulator-max-microvolt = <1150000>;
389*7d0873ebSEmmanuel Vadot				vin-supply = <&vcc5v_in>;
390*7d0873ebSEmmanuel Vadot
391*7d0873ebSEmmanuel Vadot				regulator-state-mem {
392*7d0873ebSEmmanuel Vadot					regulator-off-in-suspend;
393*7d0873ebSEmmanuel Vadot				};
394*7d0873ebSEmmanuel Vadot			};
395*7d0873ebSEmmanuel Vadot		};
396*7d0873ebSEmmanuel Vadot	};
397*7d0873ebSEmmanuel Vadot
398*7d0873ebSEmmanuel Vadot	pcf85623: rtc@51 {
399*7d0873ebSEmmanuel Vadot		compatible = "nxp,pcf85263";
400*7d0873ebSEmmanuel Vadot		reg = <0x51>;
401*7d0873ebSEmmanuel Vadot		pinctrl-names = "default";
402*7d0873ebSEmmanuel Vadot		pinctrl-0 = <&clk32k_in>;
403*7d0873ebSEmmanuel Vadot		quartz-load-femtofarads = <12500>;
404*7d0873ebSEmmanuel Vadot	};
405*7d0873ebSEmmanuel Vadot};
406*7d0873ebSEmmanuel Vadot
407*7d0873ebSEmmanuel Vadot&i2c3 {
408*7d0873ebSEmmanuel Vadot	pinctrl-names = "default";
409*7d0873ebSEmmanuel Vadot	pinctrl-0 = <&i2c3m0_xfer>;
410*7d0873ebSEmmanuel Vadot};
411*7d0873ebSEmmanuel Vadot
412*7d0873ebSEmmanuel Vadot&i2c4 {
413*7d0873ebSEmmanuel Vadot	pinctrl-names = "default";
414*7d0873ebSEmmanuel Vadot	pinctrl-0 = <&i2c4m1_xfer>;
415*7d0873ebSEmmanuel Vadot};
416*7d0873ebSEmmanuel Vadot
417*7d0873ebSEmmanuel Vadot&pdm {
418*7d0873ebSEmmanuel Vadot	pinctrl-0 = <&pdmm0_clk
419*7d0873ebSEmmanuel Vadot		     &pdmm0_sdi0>;
420*7d0873ebSEmmanuel Vadot	status = "okay";
421*7d0873ebSEmmanuel Vadot};
422*7d0873ebSEmmanuel Vadot
423*7d0873ebSEmmanuel Vadot&pinctrl {
424*7d0873ebSEmmanuel Vadot	cam {
425*7d0873ebSEmmanuel Vadot		vcc12v_cam_en: vcc12v-cam-en-pinctrl {
426*7d0873ebSEmmanuel Vadot			rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
427*7d0873ebSEmmanuel Vadot		};
428*7d0873ebSEmmanuel Vadot
429*7d0873ebSEmmanuel Vadot		vcc3v8_cam_en: vcc3v8-cam-en-pinctrl {
430*7d0873ebSEmmanuel Vadot			rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
431*7d0873ebSEmmanuel Vadot		};
432*7d0873ebSEmmanuel Vadot	};
433*7d0873ebSEmmanuel Vadot
434*7d0873ebSEmmanuel Vadot	hdmitx {
435*7d0873ebSEmmanuel Vadot		hdmi_tx_5v_en: hdmi-tx-5v-en-pinctrl {
436*7d0873ebSEmmanuel Vadot			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
437*7d0873ebSEmmanuel Vadot		};
438*7d0873ebSEmmanuel Vadot	};
439*7d0873ebSEmmanuel Vadot
440*7d0873ebSEmmanuel Vadot	pmic {
441*7d0873ebSEmmanuel Vadot		pmic_int_l: pmic-int-l-pinctrl {
442*7d0873ebSEmmanuel Vadot			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
443*7d0873ebSEmmanuel Vadot		};
444*7d0873ebSEmmanuel Vadot	};
445*7d0873ebSEmmanuel Vadot};
446*7d0873ebSEmmanuel Vadot
447*7d0873ebSEmmanuel Vadot&pmu_io_domains {
448*7d0873ebSEmmanuel Vadot	pmuio1-supply = <&vcc3v3_pmu>;
449*7d0873ebSEmmanuel Vadot	pmuio2-supply = <&vcc3v3_pmu>;
450*7d0873ebSEmmanuel Vadot	vccio1-supply = <&vcc3v3_acodec>;
451*7d0873ebSEmmanuel Vadot	vccio2-supply = <&vcc1v8>;
452*7d0873ebSEmmanuel Vadot	vccio3-supply = <&vcc3v3_sd>;
453*7d0873ebSEmmanuel Vadot	vccio4-supply = <&vcc1v8>;
454*7d0873ebSEmmanuel Vadot	vccio5-supply = <&vcc1v8>;
455*7d0873ebSEmmanuel Vadot	vccio6-supply = <&vcc3v3_sw>;
456*7d0873ebSEmmanuel Vadot	vccio7-supply = <&vcc3v3_sw>;
457*7d0873ebSEmmanuel Vadot	status = "okay";
458*7d0873ebSEmmanuel Vadot};
459*7d0873ebSEmmanuel Vadot
460*7d0873ebSEmmanuel Vadot&saradc {
461*7d0873ebSEmmanuel Vadot	vref-supply = <&vcc1v8a>;
462*7d0873ebSEmmanuel Vadot	status = "okay";
463*7d0873ebSEmmanuel Vadot};
464*7d0873ebSEmmanuel Vadot
465*7d0873ebSEmmanuel Vadot&sdhci {
466*7d0873ebSEmmanuel Vadot	bus-width = <8>;
467*7d0873ebSEmmanuel Vadot	max-frequency = <200000000>;
468*7d0873ebSEmmanuel Vadot	non-removable;
469*7d0873ebSEmmanuel Vadot	pinctrl-names = "default";
470*7d0873ebSEmmanuel Vadot	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
471*7d0873ebSEmmanuel Vadot	vmmc-supply = <&vcc3v3_sw>;
472*7d0873ebSEmmanuel Vadot	vqmmc-supply = <&vcc1v8>;
473*7d0873ebSEmmanuel Vadot	status = "okay";
474*7d0873ebSEmmanuel Vadot};
475*7d0873ebSEmmanuel Vadot
476*7d0873ebSEmmanuel Vadot&tsadc {
477*7d0873ebSEmmanuel Vadot	rockchip,hw-tshut-mode = <1>;
478*7d0873ebSEmmanuel Vadot	rockchip,hw-tshut-polarity = <0>;
479*7d0873ebSEmmanuel Vadot	status = "okay";
480*7d0873ebSEmmanuel Vadot};
481*7d0873ebSEmmanuel Vadot
482*7d0873ebSEmmanuel Vadot&uart2 {
483*7d0873ebSEmmanuel Vadot	status = "okay";
484*7d0873ebSEmmanuel Vadot};
485*7d0873ebSEmmanuel Vadot
486*7d0873ebSEmmanuel Vadot&usb_host0_xhci {
487*7d0873ebSEmmanuel Vadot	dr_mode = "peripheral";
488*7d0873ebSEmmanuel Vadot	/* The following quirks are required since the bInterval is 1 and we
489*7d0873ebSEmmanuel Vadot	 * handle steady ISOC streaming. See Usecase 3 in commit 729dcffd1ed3
490*7d0873ebSEmmanuel Vadot	 * ("usb: dwc3: gadget: Add support for disabling U1 and U2 entries").
491*7d0873ebSEmmanuel Vadot	 */
492*7d0873ebSEmmanuel Vadot	snps,dis-u1-entry-quirk;
493*7d0873ebSEmmanuel Vadot	snps,dis-u2-entry-quirk;
494*7d0873ebSEmmanuel Vadot	/*
495*7d0873ebSEmmanuel Vadot	 * Without this quirk the available fifosize seems to be miscalculated
496*7d0873ebSEmmanuel Vadot	 * in cases where many endpoints are used. In one particular situation
497*7d0873ebSEmmanuel Vadot	 * 8 IN EPs and 3 OUT EPs where selected and lead to stalled transfers
498*7d0873ebSEmmanuel Vadot	 * without the resize quirk.
499*7d0873ebSEmmanuel Vadot	 */
500*7d0873ebSEmmanuel Vadot	tx-fifo-resize;
501*7d0873ebSEmmanuel Vadot
502*7d0873ebSEmmanuel Vadot	status = "okay";
503*7d0873ebSEmmanuel Vadot};
504*7d0873ebSEmmanuel Vadot
505*7d0873ebSEmmanuel Vadot&usb2phy0 {
506*7d0873ebSEmmanuel Vadot	status = "okay";
507*7d0873ebSEmmanuel Vadot};
508*7d0873ebSEmmanuel Vadot
509*7d0873ebSEmmanuel Vadot&usb2phy0_otg {
510*7d0873ebSEmmanuel Vadot	status = "okay";
511*7d0873ebSEmmanuel Vadot};
512*7d0873ebSEmmanuel Vadot
513*7d0873ebSEmmanuel Vadot&vop {
514*7d0873ebSEmmanuel Vadot	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP2>;
515*7d0873ebSEmmanuel Vadot	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
516*7d0873ebSEmmanuel Vadot	status = "okay";
517*7d0873ebSEmmanuel Vadot};
518*7d0873ebSEmmanuel Vadot
519*7d0873ebSEmmanuel Vadot&vop_mmu {
520*7d0873ebSEmmanuel Vadot	status = "okay";
521*7d0873ebSEmmanuel Vadot};
522*7d0873ebSEmmanuel Vadot
523*7d0873ebSEmmanuel Vadot&vp0 {
524*7d0873ebSEmmanuel Vadot	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
525*7d0873ebSEmmanuel Vadot		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
526*7d0873ebSEmmanuel Vadot		remote-endpoint = <&hdmi_in_vp0>;
527*7d0873ebSEmmanuel Vadot	};
528*7d0873ebSEmmanuel Vadot};
529