xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3576-nanopi-m5.dts (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*833e5d42SEmmanuel Vadot/*
3*833e5d42SEmmanuel Vadot * Copyright (c) 2025 FriendlyElec Computer Tech. Co., Ltd.
4*833e5d42SEmmanuel Vadot * Copyright (c) 2025 John Clark <inindev@gmail.com>
5*833e5d42SEmmanuel Vadot */
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadot/dts-v1/;
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*833e5d42SEmmanuel Vadot#include <dt-bindings/input/input.h>
11*833e5d42SEmmanuel Vadot#include <dt-bindings/leds/common.h>
12*833e5d42SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
13*833e5d42SEmmanuel Vadot#include <dt-bindings/pwm/pwm.h>
14*833e5d42SEmmanuel Vadot#include <dt-bindings/soc/rockchip,vop2.h>
15*833e5d42SEmmanuel Vadot#include <dt-bindings/usb/pd.h>
16*833e5d42SEmmanuel Vadot#include "rk3576.dtsi"
17*833e5d42SEmmanuel Vadot
18*833e5d42SEmmanuel Vadot/ {
19*833e5d42SEmmanuel Vadot	model = "FriendlyElec NanoPi M5";
20*833e5d42SEmmanuel Vadot	compatible = "friendlyarm,nanopi-m5", "rockchip,rk3576";
21*833e5d42SEmmanuel Vadot
22*833e5d42SEmmanuel Vadot	aliases {
23*833e5d42SEmmanuel Vadot		ethernet0 = &gmac0;
24*833e5d42SEmmanuel Vadot		ethernet1 = &gmac1;
25*833e5d42SEmmanuel Vadot		mmc0 = &sdmmc;
26*833e5d42SEmmanuel Vadot	};
27*833e5d42SEmmanuel Vadot
28*833e5d42SEmmanuel Vadot	chosen {
29*833e5d42SEmmanuel Vadot		stdout-path = "serial0:1500000n8";
30*833e5d42SEmmanuel Vadot	};
31*833e5d42SEmmanuel Vadot
32*833e5d42SEmmanuel Vadot	hdmi-con {
33*833e5d42SEmmanuel Vadot		compatible = "hdmi-connector";
34*833e5d42SEmmanuel Vadot		hdmi-pwr-supply = <&vcc5v_hdmi_tx>;
35*833e5d42SEmmanuel Vadot		type = "a";
36*833e5d42SEmmanuel Vadot
37*833e5d42SEmmanuel Vadot		port {
38*833e5d42SEmmanuel Vadot			hdmi_con_in: endpoint {
39*833e5d42SEmmanuel Vadot				remote-endpoint = <&hdmi_out_con>;
40*833e5d42SEmmanuel Vadot			};
41*833e5d42SEmmanuel Vadot		};
42*833e5d42SEmmanuel Vadot	};
43*833e5d42SEmmanuel Vadot
44*833e5d42SEmmanuel Vadot	keys {
45*833e5d42SEmmanuel Vadot		compatible = "gpio-keys";
46*833e5d42SEmmanuel Vadot
47*833e5d42SEmmanuel Vadot		usr_button: key-1 {
48*833e5d42SEmmanuel Vadot			debounce-interval = <50>;
49*833e5d42SEmmanuel Vadot			gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_LOW>;
50*833e5d42SEmmanuel Vadot			label = "user";
51*833e5d42SEmmanuel Vadot			linux,code = <BTN_1>;
52*833e5d42SEmmanuel Vadot			pinctrl-names = "default";
53*833e5d42SEmmanuel Vadot			pinctrl-0 = <&usr_button_l>;
54*833e5d42SEmmanuel Vadot			wakeup-source;
55*833e5d42SEmmanuel Vadot		};
56*833e5d42SEmmanuel Vadot	};
57*833e5d42SEmmanuel Vadot
58*833e5d42SEmmanuel Vadot	leds {
59*833e5d42SEmmanuel Vadot		compatible = "gpio-leds";
60*833e5d42SEmmanuel Vadot
61*833e5d42SEmmanuel Vadot		led_sys: led-0 {
62*833e5d42SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
63*833e5d42SEmmanuel Vadot			function = LED_FUNCTION_HEARTBEAT;
64*833e5d42SEmmanuel Vadot			gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_HIGH>;
65*833e5d42SEmmanuel Vadot			label = "sys";
66*833e5d42SEmmanuel Vadot			linux,default-trigger = "heartbeat";
67*833e5d42SEmmanuel Vadot			pinctrl-names = "default";
68*833e5d42SEmmanuel Vadot			pinctrl-0 = <&led_sys_h>;
69*833e5d42SEmmanuel Vadot		};
70*833e5d42SEmmanuel Vadot
71*833e5d42SEmmanuel Vadot		led1: led-1 {
72*833e5d42SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
73*833e5d42SEmmanuel Vadot			function = LED_FUNCTION_LAN;
74*833e5d42SEmmanuel Vadot			gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
75*833e5d42SEmmanuel Vadot			label = "led1";
76*833e5d42SEmmanuel Vadot			linux,default-trigger = "netdev";
77*833e5d42SEmmanuel Vadot			pinctrl-names = "default";
78*833e5d42SEmmanuel Vadot			pinctrl-0 = <&led1_h>;
79*833e5d42SEmmanuel Vadot		};
80*833e5d42SEmmanuel Vadot
81*833e5d42SEmmanuel Vadot		led2: led-2 {
82*833e5d42SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
83*833e5d42SEmmanuel Vadot			function = LED_FUNCTION_LAN;
84*833e5d42SEmmanuel Vadot			gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
85*833e5d42SEmmanuel Vadot			label = "led2";
86*833e5d42SEmmanuel Vadot			linux,default-trigger = "netdev";
87*833e5d42SEmmanuel Vadot			pinctrl-names = "default";
88*833e5d42SEmmanuel Vadot			pinctrl-0 = <&led2_h>;
89*833e5d42SEmmanuel Vadot		};
90*833e5d42SEmmanuel Vadot	};
91*833e5d42SEmmanuel Vadot
92*833e5d42SEmmanuel Vadot	usb3_port2_5v: regulator-usb3-port2-5v {
93*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
94*833e5d42SEmmanuel Vadot		enable-active-high;
95*833e5d42SEmmanuel Vadot		gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
96*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
97*833e5d42SEmmanuel Vadot		pinctrl-0 = <&usb3_host_pwren_h>;
98*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
99*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
100*833e5d42SEmmanuel Vadot		regulator-name = "usb3_port2_5v";
101*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
102*833e5d42SEmmanuel Vadot	};
103*833e5d42SEmmanuel Vadot
104*833e5d42SEmmanuel Vadot	vcc12v_dcin: regulator-vcc12v-dcin {
105*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
106*833e5d42SEmmanuel Vadot		regulator-always-on;
107*833e5d42SEmmanuel Vadot		regulator-boot-on;
108*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <12000000>;
109*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <12000000>;
110*833e5d42SEmmanuel Vadot		regulator-name = "vcc12v_dcin";
111*833e5d42SEmmanuel Vadot	};
112*833e5d42SEmmanuel Vadot
113*833e5d42SEmmanuel Vadot	vcc3v3_m2_keym: regulator-vcc3v3-m2-keym {
114*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
115*833e5d42SEmmanuel Vadot		enable-active-high;
116*833e5d42SEmmanuel Vadot		gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
117*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
118*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pcie0_pwren_h>;
119*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
120*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
121*833e5d42SEmmanuel Vadot		regulator-name = "vcc3v3_m2_keym";
122*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
123*833e5d42SEmmanuel Vadot	};
124*833e5d42SEmmanuel Vadot
125*833e5d42SEmmanuel Vadot	vcc3v3_sd_s0: regulator-vcc3v3-sd-s0 {
126*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
127*833e5d42SEmmanuel Vadot		enable-active-high;
128*833e5d42SEmmanuel Vadot		gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
129*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
130*833e5d42SEmmanuel Vadot		pinctrl-0 = <&sdmmc0_pwren_h>;
131*833e5d42SEmmanuel Vadot		regulator-boot-on;
132*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
133*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
134*833e5d42SEmmanuel Vadot		regulator-name = "vcc3v3_sd_s0";
135*833e5d42SEmmanuel Vadot		vin-supply = <&vcc_3v3_s3>;
136*833e5d42SEmmanuel Vadot	};
137*833e5d42SEmmanuel Vadot
138*833e5d42SEmmanuel Vadot	vcc5v0_sys_s5: regulator-vcc5v0-sys-s5 {
139*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
140*833e5d42SEmmanuel Vadot		regulator-always-on;
141*833e5d42SEmmanuel Vadot		regulator-boot-on;
142*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
143*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
144*833e5d42SEmmanuel Vadot		regulator-name = "vcc5v0_sys_s5";
145*833e5d42SEmmanuel Vadot		vin-supply = <&vcc12v_dcin>;
146*833e5d42SEmmanuel Vadot	};
147*833e5d42SEmmanuel Vadot
148*833e5d42SEmmanuel Vadot	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
149*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
150*833e5d42SEmmanuel Vadot		enable-active-high;
151*833e5d42SEmmanuel Vadot		gpios = <&gpio0 RK_PD1 GPIO_ACTIVE_HIGH>;
152*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
153*833e5d42SEmmanuel Vadot		pinctrl-0 = <&usb_otg0_pwren_h>;
154*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
155*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
156*833e5d42SEmmanuel Vadot		regulator-name = "vcc5v0_usb_otg0";
157*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
158*833e5d42SEmmanuel Vadot	};
159*833e5d42SEmmanuel Vadot
160*833e5d42SEmmanuel Vadot	vcc5v_hdmi_tx: regulator-vcc5v-hdmi-tx {
161*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
162*833e5d42SEmmanuel Vadot		regulator-always-on;
163*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
164*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
165*833e5d42SEmmanuel Vadot		regulator-name = "vcc5v_hdmi_tx";
166*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
167*833e5d42SEmmanuel Vadot	};
168*833e5d42SEmmanuel Vadot
169*833e5d42SEmmanuel Vadot	vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
170*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
171*833e5d42SEmmanuel Vadot		regulator-always-on;
172*833e5d42SEmmanuel Vadot		regulator-boot-on;
173*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <1100000>;
174*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <1100000>;
175*833e5d42SEmmanuel Vadot		regulator-name = "vcc_1v1_nldo_s3";
176*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
177*833e5d42SEmmanuel Vadot	};
178*833e5d42SEmmanuel Vadot
179*833e5d42SEmmanuel Vadot	vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 {
180*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
181*833e5d42SEmmanuel Vadot		regulator-always-on;
182*833e5d42SEmmanuel Vadot		regulator-boot-on;
183*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <2000000>;
184*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <2000000>;
185*833e5d42SEmmanuel Vadot		regulator-name = "vcc_2v0_pldo_s3";
186*833e5d42SEmmanuel Vadot		vin-supply = <&vcc5v0_sys_s5>;
187*833e5d42SEmmanuel Vadot	};
188*833e5d42SEmmanuel Vadot
189*833e5d42SEmmanuel Vadot	vcc_3v3_s0: regulator-vcc-3v3-s0 {
190*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
191*833e5d42SEmmanuel Vadot		regulator-always-on;
192*833e5d42SEmmanuel Vadot		regulator-boot-on;
193*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
194*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
195*833e5d42SEmmanuel Vadot		regulator-name = "vcc_3v3_s0";
196*833e5d42SEmmanuel Vadot		vin-supply = <&vcc_3v3_s3>;
197*833e5d42SEmmanuel Vadot	};
198*833e5d42SEmmanuel Vadot
199*833e5d42SEmmanuel Vadot	sound {
200*833e5d42SEmmanuel Vadot		compatible = "simple-audio-card";
201*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
202*833e5d42SEmmanuel Vadot		pinctrl-0 = <&hp_det_l>;
203*833e5d42SEmmanuel Vadot
204*833e5d42SEmmanuel Vadot		simple-audio-card,format = "i2s";
205*833e5d42SEmmanuel Vadot		simple-audio-card,hp-det-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_LOW>;
206*833e5d42SEmmanuel Vadot		simple-audio-card,mclk-fs = <256>;
207*833e5d42SEmmanuel Vadot		simple-audio-card,name = "realtek,rt5616-codec";
208*833e5d42SEmmanuel Vadot
209*833e5d42SEmmanuel Vadot		simple-audio-card,routing =
210*833e5d42SEmmanuel Vadot			"Headphones", "HPOL",
211*833e5d42SEmmanuel Vadot			"Headphones", "HPOR",
212*833e5d42SEmmanuel Vadot			"IN1P", "Microphone Jack";
213*833e5d42SEmmanuel Vadot		simple-audio-card,widgets =
214*833e5d42SEmmanuel Vadot			"Headphone", "Headphone Jack",
215*833e5d42SEmmanuel Vadot			"Microphone", "Microphone Jack";
216*833e5d42SEmmanuel Vadot
217*833e5d42SEmmanuel Vadot		simple-audio-card,codec {
218*833e5d42SEmmanuel Vadot			sound-dai = <&rt5616>;
219*833e5d42SEmmanuel Vadot		};
220*833e5d42SEmmanuel Vadot
221*833e5d42SEmmanuel Vadot		simple-audio-card,cpu {
222*833e5d42SEmmanuel Vadot			sound-dai = <&sai2>;
223*833e5d42SEmmanuel Vadot		};
224*833e5d42SEmmanuel Vadot	};
225*833e5d42SEmmanuel Vadot};
226*833e5d42SEmmanuel Vadot
227*833e5d42SEmmanuel Vadot&combphy0_ps {
228*833e5d42SEmmanuel Vadot	status = "okay";
229*833e5d42SEmmanuel Vadot};
230*833e5d42SEmmanuel Vadot
231*833e5d42SEmmanuel Vadot&combphy1_psu {
232*833e5d42SEmmanuel Vadot	status = "okay";
233*833e5d42SEmmanuel Vadot};
234*833e5d42SEmmanuel Vadot
235*833e5d42SEmmanuel Vadot&cpu_b0 {
236*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big_s0>;
237*833e5d42SEmmanuel Vadot};
238*833e5d42SEmmanuel Vadot
239*833e5d42SEmmanuel Vadot&cpu_b1 {
240*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big_s0>;
241*833e5d42SEmmanuel Vadot};
242*833e5d42SEmmanuel Vadot
243*833e5d42SEmmanuel Vadot&cpu_b2 {
244*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big_s0>;
245*833e5d42SEmmanuel Vadot};
246*833e5d42SEmmanuel Vadot
247*833e5d42SEmmanuel Vadot&cpu_b3 {
248*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_big_s0>;
249*833e5d42SEmmanuel Vadot};
250*833e5d42SEmmanuel Vadot
251*833e5d42SEmmanuel Vadot&cpu_l0 {
252*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
253*833e5d42SEmmanuel Vadot};
254*833e5d42SEmmanuel Vadot
255*833e5d42SEmmanuel Vadot&cpu_l1 {
256*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
257*833e5d42SEmmanuel Vadot};
258*833e5d42SEmmanuel Vadot
259*833e5d42SEmmanuel Vadot&cpu_l2 {
260*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
261*833e5d42SEmmanuel Vadot};
262*833e5d42SEmmanuel Vadot
263*833e5d42SEmmanuel Vadot&cpu_l3 {
264*833e5d42SEmmanuel Vadot	cpu-supply = <&vdd_cpu_lit_s0>;
265*833e5d42SEmmanuel Vadot};
266*833e5d42SEmmanuel Vadot
267*833e5d42SEmmanuel Vadot&fspi1m1_pins {
268*833e5d42SEmmanuel Vadot	/* gpio1_d5, gpio1_c4-c7 (clk, d0-d4) are for spi nor flash */
269*833e5d42SEmmanuel Vadot	/* gpio1_d0-d4 muxed to sai2 audio functions */
270*833e5d42SEmmanuel Vadot	rockchip,pins =
271*833e5d42SEmmanuel Vadot		<1 RK_PD5 3 &pcfg_pull_none>,
272*833e5d42SEmmanuel Vadot		<1 RK_PC4 3 &pcfg_pull_none>,
273*833e5d42SEmmanuel Vadot		<1 RK_PC5 3 &pcfg_pull_none>,
274*833e5d42SEmmanuel Vadot		<1 RK_PC6 3 &pcfg_pull_none>,
275*833e5d42SEmmanuel Vadot		<1 RK_PC7 3 &pcfg_pull_none>;
276*833e5d42SEmmanuel Vadot};
277*833e5d42SEmmanuel Vadot
278*833e5d42SEmmanuel Vadot&gmac0 {
279*833e5d42SEmmanuel Vadot	clock_in_out = "output";
280*833e5d42SEmmanuel Vadot	phy-handle = <&rgmii_phy0>;
281*833e5d42SEmmanuel Vadot	phy-mode = "rgmii-id";
282*833e5d42SEmmanuel Vadot	phy-supply = <&vcc_3v3_s3>;
283*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
284*833e5d42SEmmanuel Vadot	pinctrl-0 = <&eth0m0_miim>,
285*833e5d42SEmmanuel Vadot		    <&eth0m0_tx_bus2>,
286*833e5d42SEmmanuel Vadot		    <&eth0m0_rx_bus2>,
287*833e5d42SEmmanuel Vadot		    <&eth0m0_rgmii_clk>,
288*833e5d42SEmmanuel Vadot		    <&eth0m0_rgmii_bus>;
289*833e5d42SEmmanuel Vadot	status = "okay";
290*833e5d42SEmmanuel Vadot};
291*833e5d42SEmmanuel Vadot
292*833e5d42SEmmanuel Vadot&gmac1 {
293*833e5d42SEmmanuel Vadot	clock_in_out = "output";
294*833e5d42SEmmanuel Vadot	phy-handle = <&rgmii_phy1>;
295*833e5d42SEmmanuel Vadot	phy-mode = "rgmii-id";
296*833e5d42SEmmanuel Vadot	phy-supply = <&vcc_3v3_s3>;
297*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
298*833e5d42SEmmanuel Vadot	pinctrl-0 = <&eth1m0_miim>,
299*833e5d42SEmmanuel Vadot		    <&eth1m0_tx_bus2>,
300*833e5d42SEmmanuel Vadot		    <&eth1m0_rx_bus2>,
301*833e5d42SEmmanuel Vadot		    <&eth1m0_rgmii_clk>,
302*833e5d42SEmmanuel Vadot		    <&eth1m0_rgmii_bus>;
303*833e5d42SEmmanuel Vadot	status = "okay";
304*833e5d42SEmmanuel Vadot};
305*833e5d42SEmmanuel Vadot
306*833e5d42SEmmanuel Vadot&gpu {
307*833e5d42SEmmanuel Vadot	mali-supply = <&vdd_gpu_s0>;
308*833e5d42SEmmanuel Vadot	status = "okay";
309*833e5d42SEmmanuel Vadot};
310*833e5d42SEmmanuel Vadot
311*833e5d42SEmmanuel Vadot&hdmi {
312*833e5d42SEmmanuel Vadot	status = "okay";
313*833e5d42SEmmanuel Vadot};
314*833e5d42SEmmanuel Vadot
315*833e5d42SEmmanuel Vadot&hdmi_in {
316*833e5d42SEmmanuel Vadot	hdmi_in_vp0: endpoint {
317*833e5d42SEmmanuel Vadot		remote-endpoint = <&vp0_out_hdmi>;
318*833e5d42SEmmanuel Vadot	};
319*833e5d42SEmmanuel Vadot};
320*833e5d42SEmmanuel Vadot
321*833e5d42SEmmanuel Vadot&hdmi_out {
322*833e5d42SEmmanuel Vadot	hdmi_out_con: endpoint {
323*833e5d42SEmmanuel Vadot		remote-endpoint = <&hdmi_con_in>;
324*833e5d42SEmmanuel Vadot	};
325*833e5d42SEmmanuel Vadot};
326*833e5d42SEmmanuel Vadot
327*833e5d42SEmmanuel Vadot&hdptxphy {
328*833e5d42SEmmanuel Vadot	status = "okay";
329*833e5d42SEmmanuel Vadot};
330*833e5d42SEmmanuel Vadot
331*833e5d42SEmmanuel Vadot&i2c1 {
332*833e5d42SEmmanuel Vadot	status = "okay";
333*833e5d42SEmmanuel Vadot
334*833e5d42SEmmanuel Vadot	pmic@23 {
335*833e5d42SEmmanuel Vadot		compatible = "rockchip,rk806";
336*833e5d42SEmmanuel Vadot		reg = <0x23>;
337*833e5d42SEmmanuel Vadot		#gpio-cells = <2>;
338*833e5d42SEmmanuel Vadot		gpio-controller;
339*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio0>;
340*833e5d42SEmmanuel Vadot		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
341*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
342*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
343*833e5d42SEmmanuel Vadot			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
344*833e5d42SEmmanuel Vadot		system-power-controller;
345*833e5d42SEmmanuel Vadot
346*833e5d42SEmmanuel Vadot		vcc1-supply = <&vcc5v0_sys_s5>;
347*833e5d42SEmmanuel Vadot		vcc2-supply = <&vcc5v0_sys_s5>;
348*833e5d42SEmmanuel Vadot		vcc3-supply = <&vcc5v0_sys_s5>;
349*833e5d42SEmmanuel Vadot		vcc4-supply = <&vcc5v0_sys_s5>;
350*833e5d42SEmmanuel Vadot		vcc5-supply = <&vcc5v0_sys_s5>;
351*833e5d42SEmmanuel Vadot		vcc6-supply = <&vcc5v0_sys_s5>;
352*833e5d42SEmmanuel Vadot		vcc7-supply = <&vcc5v0_sys_s5>;
353*833e5d42SEmmanuel Vadot		vcc8-supply = <&vcc5v0_sys_s5>;
354*833e5d42SEmmanuel Vadot		vcc9-supply = <&vcc5v0_sys_s5>;
355*833e5d42SEmmanuel Vadot		vcc10-supply = <&vcc5v0_sys_s5>;
356*833e5d42SEmmanuel Vadot		vcc11-supply = <&vcc_2v0_pldo_s3>;
357*833e5d42SEmmanuel Vadot		vcc12-supply = <&vcc5v0_sys_s5>;
358*833e5d42SEmmanuel Vadot		vcc13-supply = <&vcc_1v1_nldo_s3>;
359*833e5d42SEmmanuel Vadot		vcc14-supply = <&vcc_1v1_nldo_s3>;
360*833e5d42SEmmanuel Vadot		vcca-supply = <&vcc5v0_sys_s5>;
361*833e5d42SEmmanuel Vadot
362*833e5d42SEmmanuel Vadot		rk806_dvs1_null: dvs1-null-pins {
363*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl1";
364*833e5d42SEmmanuel Vadot			function = "pin_fun0";
365*833e5d42SEmmanuel Vadot		};
366*833e5d42SEmmanuel Vadot
367*833e5d42SEmmanuel Vadot		rk806_dvs1_slp: dvs1-slp-pins {
368*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl1";
369*833e5d42SEmmanuel Vadot			function = "pin_fun1";
370*833e5d42SEmmanuel Vadot		};
371*833e5d42SEmmanuel Vadot
372*833e5d42SEmmanuel Vadot		rk806_dvs1_pwrdn: dvs1-pwrdn-pins {
373*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl1";
374*833e5d42SEmmanuel Vadot			function = "pin_fun2";
375*833e5d42SEmmanuel Vadot		};
376*833e5d42SEmmanuel Vadot
377*833e5d42SEmmanuel Vadot		rk806_dvs1_rst: dvs1-rst-pins {
378*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl1";
379*833e5d42SEmmanuel Vadot			function = "pin_fun3";
380*833e5d42SEmmanuel Vadot		};
381*833e5d42SEmmanuel Vadot
382*833e5d42SEmmanuel Vadot		rk806_dvs2_null: dvs2-null-pins {
383*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
384*833e5d42SEmmanuel Vadot			function = "pin_fun0";
385*833e5d42SEmmanuel Vadot		};
386*833e5d42SEmmanuel Vadot
387*833e5d42SEmmanuel Vadot		rk806_dvs2_slp: dvs2-slp-pins {
388*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
389*833e5d42SEmmanuel Vadot			function = "pin_fun1";
390*833e5d42SEmmanuel Vadot		};
391*833e5d42SEmmanuel Vadot
392*833e5d42SEmmanuel Vadot		rk806_dvs2_pwrdn: dvs2-pwrdn-pins {
393*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
394*833e5d42SEmmanuel Vadot			function = "pin_fun2";
395*833e5d42SEmmanuel Vadot		};
396*833e5d42SEmmanuel Vadot
397*833e5d42SEmmanuel Vadot		rk806_dvs2_rst: dvs2-rst-pins {
398*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
399*833e5d42SEmmanuel Vadot			function = "pin_fun3";
400*833e5d42SEmmanuel Vadot		};
401*833e5d42SEmmanuel Vadot
402*833e5d42SEmmanuel Vadot		rk806_dvs2_dvs: dvs2-dvs-pins {
403*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
404*833e5d42SEmmanuel Vadot			function = "pin_fun4";
405*833e5d42SEmmanuel Vadot		};
406*833e5d42SEmmanuel Vadot
407*833e5d42SEmmanuel Vadot		rk806_dvs2_gpio: dvs2-gpio-pins {
408*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl2";
409*833e5d42SEmmanuel Vadot			function = "pin_fun5";
410*833e5d42SEmmanuel Vadot		};
411*833e5d42SEmmanuel Vadot
412*833e5d42SEmmanuel Vadot		rk806_dvs3_null: dvs3-null-pins {
413*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
414*833e5d42SEmmanuel Vadot			function = "pin_fun0";
415*833e5d42SEmmanuel Vadot		};
416*833e5d42SEmmanuel Vadot
417*833e5d42SEmmanuel Vadot		rk806_dvs3_slp: dvs3-slp-pins {
418*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
419*833e5d42SEmmanuel Vadot			function = "pin_fun1";
420*833e5d42SEmmanuel Vadot		};
421*833e5d42SEmmanuel Vadot
422*833e5d42SEmmanuel Vadot		rk806_dvs3_pwrdn: dvs3-pwrdn-pins {
423*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
424*833e5d42SEmmanuel Vadot			function = "pin_fun2";
425*833e5d42SEmmanuel Vadot		};
426*833e5d42SEmmanuel Vadot
427*833e5d42SEmmanuel Vadot		rk806_dvs3_rst: dvs3-rst-pins {
428*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
429*833e5d42SEmmanuel Vadot			function = "pin_fun3";
430*833e5d42SEmmanuel Vadot		};
431*833e5d42SEmmanuel Vadot
432*833e5d42SEmmanuel Vadot		rk806_dvs3_dvs: dvs3-dvs-pins {
433*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
434*833e5d42SEmmanuel Vadot			function = "pin_fun4";
435*833e5d42SEmmanuel Vadot		};
436*833e5d42SEmmanuel Vadot
437*833e5d42SEmmanuel Vadot		rk806_dvs3_gpio: dvs3-gpio-pins {
438*833e5d42SEmmanuel Vadot			pins = "gpio_pwrctrl3";
439*833e5d42SEmmanuel Vadot			function = "pin_fun5";
440*833e5d42SEmmanuel Vadot		};
441*833e5d42SEmmanuel Vadot
442*833e5d42SEmmanuel Vadot		regulators {
443*833e5d42SEmmanuel Vadot			vdd_cpu_big_s0: dcdc-reg1 {
444*833e5d42SEmmanuel Vadot				regulator-always-on;
445*833e5d42SEmmanuel Vadot				regulator-boot-on;
446*833e5d42SEmmanuel Vadot				regulator-enable-ramp-delay = <400>;
447*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
448*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <950000>;
449*833e5d42SEmmanuel Vadot				regulator-name = "vdd_cpu_big_s0";
450*833e5d42SEmmanuel Vadot				regulator-ramp-delay = <12500>;
451*833e5d42SEmmanuel Vadot
452*833e5d42SEmmanuel Vadot				regulator-state-mem {
453*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
454*833e5d42SEmmanuel Vadot				};
455*833e5d42SEmmanuel Vadot			};
456*833e5d42SEmmanuel Vadot
457*833e5d42SEmmanuel Vadot			vdd_npu_s0: dcdc-reg2 {
458*833e5d42SEmmanuel Vadot				regulator-boot-on;
459*833e5d42SEmmanuel Vadot				regulator-enable-ramp-delay = <400>;
460*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
461*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <950000>;
462*833e5d42SEmmanuel Vadot				regulator-name = "vdd_npu_s0";
463*833e5d42SEmmanuel Vadot				regulator-ramp-delay = <12500>;
464*833e5d42SEmmanuel Vadot
465*833e5d42SEmmanuel Vadot				regulator-state-mem {
466*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
467*833e5d42SEmmanuel Vadot				};
468*833e5d42SEmmanuel Vadot			};
469*833e5d42SEmmanuel Vadot
470*833e5d42SEmmanuel Vadot			vdd_cpu_lit_s0: dcdc-reg3 {
471*833e5d42SEmmanuel Vadot				regulator-always-on;
472*833e5d42SEmmanuel Vadot				regulator-boot-on;
473*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
474*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <950000>;
475*833e5d42SEmmanuel Vadot				regulator-name = "vdd_cpu_lit_s0";
476*833e5d42SEmmanuel Vadot				regulator-ramp-delay = <12500>;
477*833e5d42SEmmanuel Vadot
478*833e5d42SEmmanuel Vadot				regulator-state-mem {
479*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
480*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <750000>;
481*833e5d42SEmmanuel Vadot				};
482*833e5d42SEmmanuel Vadot			};
483*833e5d42SEmmanuel Vadot
484*833e5d42SEmmanuel Vadot			vcc_3v3_s3: dcdc-reg4 {
485*833e5d42SEmmanuel Vadot				regulator-always-on;
486*833e5d42SEmmanuel Vadot				regulator-boot-on;
487*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
488*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
489*833e5d42SEmmanuel Vadot				regulator-name = "vcc_3v3_s3";
490*833e5d42SEmmanuel Vadot
491*833e5d42SEmmanuel Vadot				regulator-state-mem {
492*833e5d42SEmmanuel Vadot					regulator-on-in-suspend;
493*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
494*833e5d42SEmmanuel Vadot				};
495*833e5d42SEmmanuel Vadot			};
496*833e5d42SEmmanuel Vadot
497*833e5d42SEmmanuel Vadot			vdd_gpu_s0: dcdc-reg5 {
498*833e5d42SEmmanuel Vadot				regulator-boot-on;
499*833e5d42SEmmanuel Vadot				regulator-enable-ramp-delay = <400>;
500*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
501*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <900000>;
502*833e5d42SEmmanuel Vadot				regulator-name = "vdd_gpu_s0";
503*833e5d42SEmmanuel Vadot				regulator-ramp-delay = <12500>;
504*833e5d42SEmmanuel Vadot
505*833e5d42SEmmanuel Vadot				regulator-state-mem {
506*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
507*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <850000>;
508*833e5d42SEmmanuel Vadot				};
509*833e5d42SEmmanuel Vadot			};
510*833e5d42SEmmanuel Vadot
511*833e5d42SEmmanuel Vadot			vddq_ddr_s0: dcdc-reg6 {
512*833e5d42SEmmanuel Vadot				regulator-always-on;
513*833e5d42SEmmanuel Vadot				regulator-boot-on;
514*833e5d42SEmmanuel Vadot				regulator-name = "vddq_ddr_s0";
515*833e5d42SEmmanuel Vadot
516*833e5d42SEmmanuel Vadot				regulator-state-mem {
517*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
518*833e5d42SEmmanuel Vadot				};
519*833e5d42SEmmanuel Vadot			};
520*833e5d42SEmmanuel Vadot
521*833e5d42SEmmanuel Vadot			vdd_logic_s0: dcdc-reg7 {
522*833e5d42SEmmanuel Vadot				regulator-always-on;
523*833e5d42SEmmanuel Vadot				regulator-boot-on;
524*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
525*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <800000>;
526*833e5d42SEmmanuel Vadot				regulator-name = "vdd_logic_s0";
527*833e5d42SEmmanuel Vadot
528*833e5d42SEmmanuel Vadot				regulator-state-mem {
529*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
530*833e5d42SEmmanuel Vadot				};
531*833e5d42SEmmanuel Vadot			};
532*833e5d42SEmmanuel Vadot
533*833e5d42SEmmanuel Vadot			vcc_1v8_s3: dcdc-reg8 {
534*833e5d42SEmmanuel Vadot				regulator-always-on;
535*833e5d42SEmmanuel Vadot				regulator-boot-on;
536*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
537*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
538*833e5d42SEmmanuel Vadot				regulator-name = "vcc_1v8_s3";
539*833e5d42SEmmanuel Vadot
540*833e5d42SEmmanuel Vadot				regulator-state-mem {
541*833e5d42SEmmanuel Vadot					regulator-on-in-suspend;
542*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
543*833e5d42SEmmanuel Vadot				};
544*833e5d42SEmmanuel Vadot			};
545*833e5d42SEmmanuel Vadot
546*833e5d42SEmmanuel Vadot			vdd2_ddr_s3: dcdc-reg9 {
547*833e5d42SEmmanuel Vadot				regulator-always-on;
548*833e5d42SEmmanuel Vadot				regulator-boot-on;
549*833e5d42SEmmanuel Vadot				regulator-name = "vdd2_ddr_s3";
550*833e5d42SEmmanuel Vadot
551*833e5d42SEmmanuel Vadot				regulator-state-mem {
552*833e5d42SEmmanuel Vadot					regulator-on-in-suspend;
553*833e5d42SEmmanuel Vadot				};
554*833e5d42SEmmanuel Vadot			};
555*833e5d42SEmmanuel Vadot
556*833e5d42SEmmanuel Vadot			vdd_ddr_s0: dcdc-reg10 {
557*833e5d42SEmmanuel Vadot				regulator-always-on;
558*833e5d42SEmmanuel Vadot				regulator-boot-on;
559*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <550000>;
560*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1200000>;
561*833e5d42SEmmanuel Vadot				regulator-name = "vdd_ddr_s0";
562*833e5d42SEmmanuel Vadot
563*833e5d42SEmmanuel Vadot				regulator-state-mem {
564*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
565*833e5d42SEmmanuel Vadot				};
566*833e5d42SEmmanuel Vadot			};
567*833e5d42SEmmanuel Vadot
568*833e5d42SEmmanuel Vadot			vcca_1v8_s0: pldo-reg1 {
569*833e5d42SEmmanuel Vadot				regulator-always-on;
570*833e5d42SEmmanuel Vadot				regulator-boot-on;
571*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
572*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
573*833e5d42SEmmanuel Vadot				regulator-name = "vcca_1v8_s0";
574*833e5d42SEmmanuel Vadot
575*833e5d42SEmmanuel Vadot				regulator-state-mem {
576*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
577*833e5d42SEmmanuel Vadot				};
578*833e5d42SEmmanuel Vadot			};
579*833e5d42SEmmanuel Vadot
580*833e5d42SEmmanuel Vadot			vcca1v8_pldo2_s0: pldo-reg2 {
581*833e5d42SEmmanuel Vadot				regulator-always-on;
582*833e5d42SEmmanuel Vadot				regulator-boot-on;
583*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
584*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
585*833e5d42SEmmanuel Vadot				regulator-name = "vcca1v8_pldo2_s0";
586*833e5d42SEmmanuel Vadot
587*833e5d42SEmmanuel Vadot				regulator-state-mem {
588*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
589*833e5d42SEmmanuel Vadot				};
590*833e5d42SEmmanuel Vadot			};
591*833e5d42SEmmanuel Vadot
592*833e5d42SEmmanuel Vadot			vdda_1v2_s0: pldo-reg3 {
593*833e5d42SEmmanuel Vadot				regulator-always-on;
594*833e5d42SEmmanuel Vadot				regulator-boot-on;
595*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1200000>;
596*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1200000>;
597*833e5d42SEmmanuel Vadot				regulator-name = "vdda_1v2_s0";
598*833e5d42SEmmanuel Vadot
599*833e5d42SEmmanuel Vadot				regulator-state-mem {
600*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
601*833e5d42SEmmanuel Vadot				};
602*833e5d42SEmmanuel Vadot			};
603*833e5d42SEmmanuel Vadot
604*833e5d42SEmmanuel Vadot			vcca_3v3_s0: pldo-reg4 {
605*833e5d42SEmmanuel Vadot				regulator-always-on;
606*833e5d42SEmmanuel Vadot				regulator-boot-on;
607*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
608*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
609*833e5d42SEmmanuel Vadot				regulator-name = "vcca_3v3_s0";
610*833e5d42SEmmanuel Vadot
611*833e5d42SEmmanuel Vadot				regulator-state-mem {
612*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
613*833e5d42SEmmanuel Vadot				};
614*833e5d42SEmmanuel Vadot			};
615*833e5d42SEmmanuel Vadot
616*833e5d42SEmmanuel Vadot			vccio_sd_s0: pldo-reg5 {
617*833e5d42SEmmanuel Vadot				regulator-always-on;
618*833e5d42SEmmanuel Vadot				regulator-boot-on;
619*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
620*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
621*833e5d42SEmmanuel Vadot				regulator-name = "vccio_sd_s0";
622*833e5d42SEmmanuel Vadot
623*833e5d42SEmmanuel Vadot				regulator-state-mem {
624*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
625*833e5d42SEmmanuel Vadot				};
626*833e5d42SEmmanuel Vadot			};
627*833e5d42SEmmanuel Vadot
628*833e5d42SEmmanuel Vadot			vcca1v8_pldo6_s3: pldo-reg6 {
629*833e5d42SEmmanuel Vadot				regulator-always-on;
630*833e5d42SEmmanuel Vadot				regulator-boot-on;
631*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
632*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
633*833e5d42SEmmanuel Vadot				regulator-name = "vcca1v8_pldo6_s3";
634*833e5d42SEmmanuel Vadot
635*833e5d42SEmmanuel Vadot				regulator-state-mem {
636*833e5d42SEmmanuel Vadot					regulator-on-in-suspend;
637*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
638*833e5d42SEmmanuel Vadot				};
639*833e5d42SEmmanuel Vadot			};
640*833e5d42SEmmanuel Vadot
641*833e5d42SEmmanuel Vadot			vdd_0v75_s3: nldo-reg1 {
642*833e5d42SEmmanuel Vadot				regulator-always-on;
643*833e5d42SEmmanuel Vadot				regulator-boot-on;
644*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <750000>;
645*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <750000>;
646*833e5d42SEmmanuel Vadot				regulator-name = "vdd_0v75_s3";
647*833e5d42SEmmanuel Vadot
648*833e5d42SEmmanuel Vadot				regulator-state-mem {
649*833e5d42SEmmanuel Vadot					regulator-on-in-suspend;
650*833e5d42SEmmanuel Vadot					regulator-suspend-microvolt = <750000>;
651*833e5d42SEmmanuel Vadot				};
652*833e5d42SEmmanuel Vadot			};
653*833e5d42SEmmanuel Vadot
654*833e5d42SEmmanuel Vadot			vdda_ddr_pll_s0: nldo-reg2 {
655*833e5d42SEmmanuel Vadot				regulator-always-on;
656*833e5d42SEmmanuel Vadot				regulator-boot-on;
657*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <850000>;
658*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <850000>;
659*833e5d42SEmmanuel Vadot				regulator-name = "vdda_ddr_pll_s0";
660*833e5d42SEmmanuel Vadot
661*833e5d42SEmmanuel Vadot				regulator-state-mem {
662*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
663*833e5d42SEmmanuel Vadot				};
664*833e5d42SEmmanuel Vadot			};
665*833e5d42SEmmanuel Vadot
666*833e5d42SEmmanuel Vadot			vdda0v75_hdmi_s0: nldo-reg3 {
667*833e5d42SEmmanuel Vadot				regulator-always-on;
668*833e5d42SEmmanuel Vadot				regulator-boot-on;
669*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <837500>;
670*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <837500>;
671*833e5d42SEmmanuel Vadot				regulator-name = "vdda0v75_hdmi_s0";
672*833e5d42SEmmanuel Vadot
673*833e5d42SEmmanuel Vadot				regulator-state-mem {
674*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
675*833e5d42SEmmanuel Vadot				};
676*833e5d42SEmmanuel Vadot			};
677*833e5d42SEmmanuel Vadot
678*833e5d42SEmmanuel Vadot			vdda_0v85_s0: nldo-reg4 {
679*833e5d42SEmmanuel Vadot				regulator-always-on;
680*833e5d42SEmmanuel Vadot				regulator-boot-on;
681*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <850000>;
682*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <850000>;
683*833e5d42SEmmanuel Vadot				regulator-name = "vdda_0v85_s0";
684*833e5d42SEmmanuel Vadot
685*833e5d42SEmmanuel Vadot				regulator-state-mem {
686*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
687*833e5d42SEmmanuel Vadot				};
688*833e5d42SEmmanuel Vadot			};
689*833e5d42SEmmanuel Vadot
690*833e5d42SEmmanuel Vadot			vdda_0v75_s0: nldo-reg5 {
691*833e5d42SEmmanuel Vadot				regulator-always-on;
692*833e5d42SEmmanuel Vadot				regulator-boot-on;
693*833e5d42SEmmanuel Vadot				regulator-min-microvolt = <750000>;
694*833e5d42SEmmanuel Vadot				regulator-max-microvolt = <750000>;
695*833e5d42SEmmanuel Vadot				regulator-name = "vdda_0v75_s0";
696*833e5d42SEmmanuel Vadot
697*833e5d42SEmmanuel Vadot				regulator-state-mem {
698*833e5d42SEmmanuel Vadot					regulator-off-in-suspend;
699*833e5d42SEmmanuel Vadot				};
700*833e5d42SEmmanuel Vadot			};
701*833e5d42SEmmanuel Vadot		};
702*833e5d42SEmmanuel Vadot	};
703*833e5d42SEmmanuel Vadot};
704*833e5d42SEmmanuel Vadot
705*833e5d42SEmmanuel Vadot&i2c2 {
706*833e5d42SEmmanuel Vadot	status = "okay";
707*833e5d42SEmmanuel Vadot
708*833e5d42SEmmanuel Vadot	hym8563: rtc@51 {
709*833e5d42SEmmanuel Vadot		compatible = "haoyu,hym8563";
710*833e5d42SEmmanuel Vadot		reg = <0x51>;
711*833e5d42SEmmanuel Vadot		#clock-cells = <0>;
712*833e5d42SEmmanuel Vadot		clock-output-names = "hym8563";
713*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio0>;
714*833e5d42SEmmanuel Vadot		interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
715*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
716*833e5d42SEmmanuel Vadot		pinctrl-0 = <&hym8563_int>;
717*833e5d42SEmmanuel Vadot		wakeup-source;
718*833e5d42SEmmanuel Vadot	};
719*833e5d42SEmmanuel Vadot};
720*833e5d42SEmmanuel Vadot
721*833e5d42SEmmanuel Vadot&i2c5 {
722*833e5d42SEmmanuel Vadot	clock-frequency = <200000>;
723*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
724*833e5d42SEmmanuel Vadot	pinctrl-0 = <&i2c5m3_xfer>;
725*833e5d42SEmmanuel Vadot	status = "okay";
726*833e5d42SEmmanuel Vadot
727*833e5d42SEmmanuel Vadot	rt5616: audio-codec@1b {
728*833e5d42SEmmanuel Vadot		compatible = "realtek,rt5616";
729*833e5d42SEmmanuel Vadot		reg = <0x1b>;
730*833e5d42SEmmanuel Vadot		assigned-clocks = <&cru CLK_SAI2_MCLKOUT>;
731*833e5d42SEmmanuel Vadot		assigned-clock-rates = <12288000>;
732*833e5d42SEmmanuel Vadot		clocks = <&cru CLK_SAI2_MCLKOUT>;
733*833e5d42SEmmanuel Vadot		clock-names = "mclk";
734*833e5d42SEmmanuel Vadot		#sound-dai-cells = <0>;
735*833e5d42SEmmanuel Vadot	};
736*833e5d42SEmmanuel Vadot};
737*833e5d42SEmmanuel Vadot
738*833e5d42SEmmanuel Vadot&mdio0 {
739*833e5d42SEmmanuel Vadot	rgmii_phy0: phy@1 {
740*833e5d42SEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
741*833e5d42SEmmanuel Vadot		reg = <0x1>;
742*833e5d42SEmmanuel Vadot		clocks = <&cru REFCLKO25M_GMAC0_OUT>;
743*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio2>;
744*833e5d42SEmmanuel Vadot		interrupts = <RK_PB1 IRQ_TYPE_LEVEL_LOW>;
745*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
746*833e5d42SEmmanuel Vadot		pinctrl-0 = <&gmac0_int>, <&gmac0_rst>;
747*833e5d42SEmmanuel Vadot		reset-assert-us = <20000>;
748*833e5d42SEmmanuel Vadot		reset-deassert-us = <100000>;
749*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
750*833e5d42SEmmanuel Vadot	};
751*833e5d42SEmmanuel Vadot};
752*833e5d42SEmmanuel Vadot
753*833e5d42SEmmanuel Vadot&mdio1 {
754*833e5d42SEmmanuel Vadot	rgmii_phy1: phy@1 {
755*833e5d42SEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
756*833e5d42SEmmanuel Vadot		reg = <0x1>;
757*833e5d42SEmmanuel Vadot		clocks = <&cru REFCLKO25M_GMAC1_OUT>;
758*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio3>;
759*833e5d42SEmmanuel Vadot		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
760*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
761*833e5d42SEmmanuel Vadot		pinctrl-0 = <&gmac1_int>, <&gmac1_rst>;
762*833e5d42SEmmanuel Vadot		reset-assert-us = <20000>;
763*833e5d42SEmmanuel Vadot		reset-deassert-us = <100000>;
764*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
765*833e5d42SEmmanuel Vadot	};
766*833e5d42SEmmanuel Vadot};
767*833e5d42SEmmanuel Vadot
768*833e5d42SEmmanuel Vadot&pcie0 {
769*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
770*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pcie0_perstn>;
771*833e5d42SEmmanuel Vadot	reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
772*833e5d42SEmmanuel Vadot	vpcie3v3-supply = <&vcc3v3_m2_keym>;
773*833e5d42SEmmanuel Vadot	status = "okay";
774*833e5d42SEmmanuel Vadot};
775*833e5d42SEmmanuel Vadot
776*833e5d42SEmmanuel Vadot&pinctrl {
777*833e5d42SEmmanuel Vadot	gmac {
778*833e5d42SEmmanuel Vadot		gmac0_int: gmac0-int {
779*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
780*833e5d42SEmmanuel Vadot		};
781*833e5d42SEmmanuel Vadot		gmac0_rst: gmac0-rst {
782*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
783*833e5d42SEmmanuel Vadot		};
784*833e5d42SEmmanuel Vadot		gmac1_int: gmac1-int {
785*833e5d42SEmmanuel Vadot			rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
786*833e5d42SEmmanuel Vadot		};
787*833e5d42SEmmanuel Vadot		gmac1_rst: gmac1-rst {
788*833e5d42SEmmanuel Vadot			rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
789*833e5d42SEmmanuel Vadot		};
790*833e5d42SEmmanuel Vadot	};
791*833e5d42SEmmanuel Vadot
792*833e5d42SEmmanuel Vadot	hym8563 {
793*833e5d42SEmmanuel Vadot		hym8563_int: hym8563-int {
794*833e5d42SEmmanuel Vadot			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
795*833e5d42SEmmanuel Vadot		};
796*833e5d42SEmmanuel Vadot	};
797*833e5d42SEmmanuel Vadot
798*833e5d42SEmmanuel Vadot	keys {
799*833e5d42SEmmanuel Vadot		usr_button_l: usr-button-l {
800*833e5d42SEmmanuel Vadot			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
801*833e5d42SEmmanuel Vadot		};
802*833e5d42SEmmanuel Vadot	};
803*833e5d42SEmmanuel Vadot
804*833e5d42SEmmanuel Vadot	leds {
805*833e5d42SEmmanuel Vadot		led_sys_h: led-sys-h {
806*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
807*833e5d42SEmmanuel Vadot		};
808*833e5d42SEmmanuel Vadot		led1_h: led1-h {
809*833e5d42SEmmanuel Vadot			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
810*833e5d42SEmmanuel Vadot		};
811*833e5d42SEmmanuel Vadot		led2_h: led2-h {
812*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
813*833e5d42SEmmanuel Vadot		};
814*833e5d42SEmmanuel Vadot	};
815*833e5d42SEmmanuel Vadot
816*833e5d42SEmmanuel Vadot	pcie {
817*833e5d42SEmmanuel Vadot		pcie0_pwren_h: pcie0-pwren-h {
818*833e5d42SEmmanuel Vadot			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
819*833e5d42SEmmanuel Vadot		};
820*833e5d42SEmmanuel Vadot		pcie0_perstn: pcie0-perstn {
821*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
822*833e5d42SEmmanuel Vadot		};
823*833e5d42SEmmanuel Vadot	};
824*833e5d42SEmmanuel Vadot
825*833e5d42SEmmanuel Vadot	sdmmc {
826*833e5d42SEmmanuel Vadot		sdmmc0_pwren_h: sdmmc0-pwren-h {
827*833e5d42SEmmanuel Vadot			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
828*833e5d42SEmmanuel Vadot		};
829*833e5d42SEmmanuel Vadot	};
830*833e5d42SEmmanuel Vadot
831*833e5d42SEmmanuel Vadot	sound {
832*833e5d42SEmmanuel Vadot		hp_det_l: hp-det-l {
833*833e5d42SEmmanuel Vadot			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
834*833e5d42SEmmanuel Vadot		};
835*833e5d42SEmmanuel Vadot	};
836*833e5d42SEmmanuel Vadot
837*833e5d42SEmmanuel Vadot	usb {
838*833e5d42SEmmanuel Vadot		usb3_host_pwren_h: usb3-host-pwren-h {
839*833e5d42SEmmanuel Vadot			rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
840*833e5d42SEmmanuel Vadot		};
841*833e5d42SEmmanuel Vadot		usb_otg0_pwren_h: usb-otg0-pwren-h {
842*833e5d42SEmmanuel Vadot			rockchip,pins = <0 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
843*833e5d42SEmmanuel Vadot		};
844*833e5d42SEmmanuel Vadot	};
845*833e5d42SEmmanuel Vadot};
846*833e5d42SEmmanuel Vadot
847*833e5d42SEmmanuel Vadot&sai2 {
848*833e5d42SEmmanuel Vadot	status = "okay";
849*833e5d42SEmmanuel Vadot};
850*833e5d42SEmmanuel Vadot
851*833e5d42SEmmanuel Vadot&saradc {
852*833e5d42SEmmanuel Vadot	vref-supply = <&vcca_1v8_s0>;
853*833e5d42SEmmanuel Vadot	status = "okay";
854*833e5d42SEmmanuel Vadot};
855*833e5d42SEmmanuel Vadot
856*833e5d42SEmmanuel Vadot&sdmmc {
857*833e5d42SEmmanuel Vadot	bus-width = <4>;
858*833e5d42SEmmanuel Vadot	cap-mmc-highspeed;
859*833e5d42SEmmanuel Vadot	cap-sd-highspeed;
860*833e5d42SEmmanuel Vadot	disable-wp;
861*833e5d42SEmmanuel Vadot	no-mmc;
862*833e5d42SEmmanuel Vadot	no-sdio;
863*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
864*833e5d42SEmmanuel Vadot	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_det>, <&sdmmc0_bus4>;
865*833e5d42SEmmanuel Vadot	sd-uhs-sdr104;
866*833e5d42SEmmanuel Vadot	vmmc-supply = <&vcc_3v3_s3>;
867*833e5d42SEmmanuel Vadot	vqmmc-supply = <&vcc3v3_sd_s0>;
868*833e5d42SEmmanuel Vadot	status = "okay";
869*833e5d42SEmmanuel Vadot};
870*833e5d42SEmmanuel Vadot
871*833e5d42SEmmanuel Vadot&sfc1 {
872*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
873*833e5d42SEmmanuel Vadot	pinctrl-0 = <&fspi1m1_csn0>, <&fspi1m1_pins>;
874*833e5d42SEmmanuel Vadot	status = "okay";
875*833e5d42SEmmanuel Vadot
876*833e5d42SEmmanuel Vadot	flash@0 {
877*833e5d42SEmmanuel Vadot		compatible = "jedec,spi-nor";
878*833e5d42SEmmanuel Vadot		reg = <0>;
879*833e5d42SEmmanuel Vadot		m25p,fast-read;
880*833e5d42SEmmanuel Vadot		spi-max-frequency = <50000000>;
881*833e5d42SEmmanuel Vadot		spi-rx-bus-width = <4>;
882*833e5d42SEmmanuel Vadot		spi-tx-bus-width = <1>;
883*833e5d42SEmmanuel Vadot		vcc-supply = <&vcc_1v8_s3>;
884*833e5d42SEmmanuel Vadot	};
885*833e5d42SEmmanuel Vadot};
886*833e5d42SEmmanuel Vadot
887*833e5d42SEmmanuel Vadot&u2phy0 {
888*833e5d42SEmmanuel Vadot	status = "okay";
889*833e5d42SEmmanuel Vadot};
890*833e5d42SEmmanuel Vadot
891*833e5d42SEmmanuel Vadot&u2phy0_otg {
892*833e5d42SEmmanuel Vadot	phy-supply = <&vcc5v0_usb_otg0>;
893*833e5d42SEmmanuel Vadot	status = "okay";
894*833e5d42SEmmanuel Vadot};
895*833e5d42SEmmanuel Vadot
896*833e5d42SEmmanuel Vadot&u2phy1 {
897*833e5d42SEmmanuel Vadot	status = "okay";
898*833e5d42SEmmanuel Vadot};
899*833e5d42SEmmanuel Vadot
900*833e5d42SEmmanuel Vadot&u2phy1_otg {
901*833e5d42SEmmanuel Vadot	phy-supply = <&usb3_port2_5v>;
902*833e5d42SEmmanuel Vadot	status = "okay";
903*833e5d42SEmmanuel Vadot};
904*833e5d42SEmmanuel Vadot
905*833e5d42SEmmanuel Vadot&uart0 {
906*833e5d42SEmmanuel Vadot	status = "okay";
907*833e5d42SEmmanuel Vadot};
908*833e5d42SEmmanuel Vadot
909*833e5d42SEmmanuel Vadot&usbdp_phy {
910*833e5d42SEmmanuel Vadot	status = "okay";
911*833e5d42SEmmanuel Vadot};
912*833e5d42SEmmanuel Vadot
913*833e5d42SEmmanuel Vadot&usb_drd0_dwc3 {
914*833e5d42SEmmanuel Vadot	dr_mode = "otg";
915*833e5d42SEmmanuel Vadot	extcon = <&u2phy0>;
916*833e5d42SEmmanuel Vadot	status = "okay";
917*833e5d42SEmmanuel Vadot};
918*833e5d42SEmmanuel Vadot
919*833e5d42SEmmanuel Vadot&usb_drd1_dwc3 {
920*833e5d42SEmmanuel Vadot	dr_mode = "host";
921*833e5d42SEmmanuel Vadot	status = "okay";
922*833e5d42SEmmanuel Vadot};
923*833e5d42SEmmanuel Vadot
924*833e5d42SEmmanuel Vadot&vop {
925*833e5d42SEmmanuel Vadot	status = "okay";
926*833e5d42SEmmanuel Vadot};
927*833e5d42SEmmanuel Vadot
928*833e5d42SEmmanuel Vadot&vop_mmu {
929*833e5d42SEmmanuel Vadot	status = "okay";
930*833e5d42SEmmanuel Vadot};
931*833e5d42SEmmanuel Vadot
932*833e5d42SEmmanuel Vadot&vp0 {
933*833e5d42SEmmanuel Vadot	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
934*833e5d42SEmmanuel Vadot		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
935*833e5d42SEmmanuel Vadot		remote-endpoint = <&hdmi_in_vp0>;
936*833e5d42SEmmanuel Vadot	};
937*833e5d42SEmmanuel Vadot};
938*833e5d42SEmmanuel Vadot
939*833e5d42SEmmanuel Vadot&wdt {
940*833e5d42SEmmanuel Vadot	status = "okay";
941*833e5d42SEmmanuel Vadot};
942