xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3566-nanopi-r3s.dts (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*5f62a964SEmmanuel Vadot/*
3*5f62a964SEmmanuel Vadot * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4*5f62a964SEmmanuel Vadot *
5*5f62a964SEmmanuel Vadot * Copyright (c) 2024 FriendlyElec Computer Tech. Co., Ltd.
6*5f62a964SEmmanuel Vadot * (http://www.friendlyelec.com)
7*5f62a964SEmmanuel Vadot *
8*5f62a964SEmmanuel Vadot * Copyright (c) 2024 Tianling Shen <cnsztl@gmail.com>
9*5f62a964SEmmanuel Vadot */
10*5f62a964SEmmanuel Vadot
11*5f62a964SEmmanuel Vadot/dts-v1/;
12*5f62a964SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
13*5f62a964SEmmanuel Vadot#include <dt-bindings/input/input.h>
14*5f62a964SEmmanuel Vadot#include <dt-bindings/leds/common.h>
15*5f62a964SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h>
16*5f62a964SEmmanuel Vadot#include <dt-bindings/soc/rockchip,vop2.h>
17*5f62a964SEmmanuel Vadot#include "rk3566.dtsi"
18*5f62a964SEmmanuel Vadot
19*5f62a964SEmmanuel Vadot/ {
20*5f62a964SEmmanuel Vadot	model = "FriendlyElec NanoPi R3S";
21*5f62a964SEmmanuel Vadot	compatible = "friendlyarm,nanopi-r3s", "rockchip,rk3566";
22*5f62a964SEmmanuel Vadot
23*5f62a964SEmmanuel Vadot	aliases {
24*5f62a964SEmmanuel Vadot		ethernet0 = &gmac1;
25*5f62a964SEmmanuel Vadot		mmc0 = &sdhci;
26*5f62a964SEmmanuel Vadot		mmc1 = &sdmmc0;
27*5f62a964SEmmanuel Vadot	};
28*5f62a964SEmmanuel Vadot
29*5f62a964SEmmanuel Vadot	chosen: chosen {
30*5f62a964SEmmanuel Vadot		stdout-path = "serial2:1500000n8";
31*5f62a964SEmmanuel Vadot	};
32*5f62a964SEmmanuel Vadot
33*5f62a964SEmmanuel Vadot	gpio-keys {
34*5f62a964SEmmanuel Vadot		compatible = "gpio-keys";
35*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
36*5f62a964SEmmanuel Vadot		pinctrl-0 = <&reset_button_pin>;
37*5f62a964SEmmanuel Vadot
38*5f62a964SEmmanuel Vadot		button-reset {
39*5f62a964SEmmanuel Vadot			label = "reset";
40*5f62a964SEmmanuel Vadot			gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;
41*5f62a964SEmmanuel Vadot			linux,code = <KEY_RESTART>;
42*5f62a964SEmmanuel Vadot			debounce-interval = <50>;
43*5f62a964SEmmanuel Vadot		};
44*5f62a964SEmmanuel Vadot	};
45*5f62a964SEmmanuel Vadot
46*5f62a964SEmmanuel Vadot	gpio-leds {
47*5f62a964SEmmanuel Vadot		compatible = "gpio-leds";
48*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
49*5f62a964SEmmanuel Vadot		pinctrl-0 = <&power_led_pin>, <&lan_led_pin>, <&wan_led_pin>;
50*5f62a964SEmmanuel Vadot
51*5f62a964SEmmanuel Vadot		power_led: led-0 {
52*5f62a964SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
53*5f62a964SEmmanuel Vadot			function = LED_FUNCTION_POWER;
54*5f62a964SEmmanuel Vadot			gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
55*5f62a964SEmmanuel Vadot			default-state = "on";
56*5f62a964SEmmanuel Vadot		};
57*5f62a964SEmmanuel Vadot
58*5f62a964SEmmanuel Vadot		lan_led: led-1 {
59*5f62a964SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
60*5f62a964SEmmanuel Vadot			function = LED_FUNCTION_LAN;
61*5f62a964SEmmanuel Vadot			gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
62*5f62a964SEmmanuel Vadot		};
63*5f62a964SEmmanuel Vadot
64*5f62a964SEmmanuel Vadot		wan_led: led-2 {
65*5f62a964SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
66*5f62a964SEmmanuel Vadot			function = LED_FUNCTION_WAN;
67*5f62a964SEmmanuel Vadot			gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
68*5f62a964SEmmanuel Vadot		};
69*5f62a964SEmmanuel Vadot	};
70*5f62a964SEmmanuel Vadot
71*5f62a964SEmmanuel Vadot	vcc3v3_sys: regulator-vcc3v3-sys {
72*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
73*5f62a964SEmmanuel Vadot		regulator-name = "vcc3v3_sys";
74*5f62a964SEmmanuel Vadot		regulator-always-on;
75*5f62a964SEmmanuel Vadot		regulator-boot-on;
76*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
77*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
78*5f62a964SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
79*5f62a964SEmmanuel Vadot	};
80*5f62a964SEmmanuel Vadot
81*5f62a964SEmmanuel Vadot	vcc5v0_sys: regulator-vcc5v0-sys {
82*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
83*5f62a964SEmmanuel Vadot		regulator-name = "vcc5v0_sys";
84*5f62a964SEmmanuel Vadot		regulator-always-on;
85*5f62a964SEmmanuel Vadot		regulator-boot-on;
86*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
87*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
88*5f62a964SEmmanuel Vadot		vin-supply = <&vdd_usbc>;
89*5f62a964SEmmanuel Vadot	};
90*5f62a964SEmmanuel Vadot
91*5f62a964SEmmanuel Vadot	vcc5v0_usb: regulator-vcc5v0_usb {
92*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
93*5f62a964SEmmanuel Vadot		enable-active-high;
94*5f62a964SEmmanuel Vadot		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
95*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
96*5f62a964SEmmanuel Vadot		pinctrl-0 = <&vcc5v0_usb_host_en>;
97*5f62a964SEmmanuel Vadot		regulator-name = "vcc5v0_usb";
98*5f62a964SEmmanuel Vadot		regulator-always-on;
99*5f62a964SEmmanuel Vadot		regulator-boot-on;
100*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
101*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
102*5f62a964SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
103*5f62a964SEmmanuel Vadot	};
104*5f62a964SEmmanuel Vadot
105*5f62a964SEmmanuel Vadot	vdd_usbc: regulator-vdd-usbc {
106*5f62a964SEmmanuel Vadot		compatible = "regulator-fixed";
107*5f62a964SEmmanuel Vadot		regulator-name = "vdd_usbc";
108*5f62a964SEmmanuel Vadot		regulator-always-on;
109*5f62a964SEmmanuel Vadot		regulator-boot-on;
110*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
111*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
112*5f62a964SEmmanuel Vadot	};
113*5f62a964SEmmanuel Vadot};
114*5f62a964SEmmanuel Vadot
115*5f62a964SEmmanuel Vadot&combphy1 {
116*5f62a964SEmmanuel Vadot	status = "okay";
117*5f62a964SEmmanuel Vadot};
118*5f62a964SEmmanuel Vadot
119*5f62a964SEmmanuel Vadot&combphy2 {
120*5f62a964SEmmanuel Vadot	status = "okay";
121*5f62a964SEmmanuel Vadot};
122*5f62a964SEmmanuel Vadot
123*5f62a964SEmmanuel Vadot&cpu0 {
124*5f62a964SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
125*5f62a964SEmmanuel Vadot};
126*5f62a964SEmmanuel Vadot
127*5f62a964SEmmanuel Vadot&cpu1 {
128*5f62a964SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
129*5f62a964SEmmanuel Vadot};
130*5f62a964SEmmanuel Vadot
131*5f62a964SEmmanuel Vadot&cpu2 {
132*5f62a964SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
133*5f62a964SEmmanuel Vadot};
134*5f62a964SEmmanuel Vadot
135*5f62a964SEmmanuel Vadot&cpu3 {
136*5f62a964SEmmanuel Vadot	cpu-supply = <&vdd_cpu>;
137*5f62a964SEmmanuel Vadot};
138*5f62a964SEmmanuel Vadot
139*5f62a964SEmmanuel Vadot&gmac1 {
140*5f62a964SEmmanuel Vadot	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
141*5f62a964SEmmanuel Vadot	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
142*5f62a964SEmmanuel Vadot	assigned-clock-rates = <0>, <125000000>;
143*5f62a964SEmmanuel Vadot	clock_in_out = "output";
144*5f62a964SEmmanuel Vadot	phy-mode = "rgmii-id";
145*5f62a964SEmmanuel Vadot	phy-handle = <&rgmii_phy1>;
146*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
147*5f62a964SEmmanuel Vadot	pinctrl-0 = <&gmac1m0_miim
148*5f62a964SEmmanuel Vadot		     &gmac1m0_tx_bus2_level3
149*5f62a964SEmmanuel Vadot		     &gmac1m0_rx_bus2
150*5f62a964SEmmanuel Vadot		     &gmac1m0_rgmii_clk_level2
151*5f62a964SEmmanuel Vadot		     &gmac1m0_rgmii_bus_level3>;
152*5f62a964SEmmanuel Vadot	status = "okay";
153*5f62a964SEmmanuel Vadot};
154*5f62a964SEmmanuel Vadot
155*5f62a964SEmmanuel Vadot&gpu {
156*5f62a964SEmmanuel Vadot	mali-supply = <&vdd_gpu>;
157*5f62a964SEmmanuel Vadot	status = "okay";
158*5f62a964SEmmanuel Vadot};
159*5f62a964SEmmanuel Vadot
160*5f62a964SEmmanuel Vadot&i2c0 {
161*5f62a964SEmmanuel Vadot	status = "okay";
162*5f62a964SEmmanuel Vadot
163*5f62a964SEmmanuel Vadot	vdd_cpu: regulator@1c {
164*5f62a964SEmmanuel Vadot		compatible = "tcs,tcs4525";
165*5f62a964SEmmanuel Vadot		reg = <0x1c>;
166*5f62a964SEmmanuel Vadot		fcs,suspend-voltage-selector = <1>;
167*5f62a964SEmmanuel Vadot		regulator-name = "vdd_cpu";
168*5f62a964SEmmanuel Vadot		regulator-always-on;
169*5f62a964SEmmanuel Vadot		regulator-boot-on;
170*5f62a964SEmmanuel Vadot		regulator-min-microvolt = <800000>;
171*5f62a964SEmmanuel Vadot		regulator-max-microvolt = <1150000>;
172*5f62a964SEmmanuel Vadot		regulator-ramp-delay = <2300>;
173*5f62a964SEmmanuel Vadot		vin-supply = <&vcc5v0_sys>;
174*5f62a964SEmmanuel Vadot
175*5f62a964SEmmanuel Vadot		regulator-state-mem {
176*5f62a964SEmmanuel Vadot			regulator-off-in-suspend;
177*5f62a964SEmmanuel Vadot		};
178*5f62a964SEmmanuel Vadot	};
179*5f62a964SEmmanuel Vadot
180*5f62a964SEmmanuel Vadot	rk809: pmic@20 {
181*5f62a964SEmmanuel Vadot		compatible = "rockchip,rk809";
182*5f62a964SEmmanuel Vadot		reg = <0x20>;
183*5f62a964SEmmanuel Vadot		interrupt-parent = <&gpio0>;
184*5f62a964SEmmanuel Vadot		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
185*5f62a964SEmmanuel Vadot		#clock-cells = <1>;
186*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
187*5f62a964SEmmanuel Vadot		pinctrl-0 = <&pmic_int>;
188*5f62a964SEmmanuel Vadot		system-power-controller;
189*5f62a964SEmmanuel Vadot		vcc1-supply = <&vcc3v3_sys>;
190*5f62a964SEmmanuel Vadot		vcc2-supply = <&vcc3v3_sys>;
191*5f62a964SEmmanuel Vadot		vcc3-supply = <&vcc3v3_sys>;
192*5f62a964SEmmanuel Vadot		vcc4-supply = <&vcc3v3_sys>;
193*5f62a964SEmmanuel Vadot		vcc5-supply = <&vcc3v3_sys>;
194*5f62a964SEmmanuel Vadot		vcc6-supply = <&vcc3v3_sys>;
195*5f62a964SEmmanuel Vadot		vcc7-supply = <&vcc3v3_sys>;
196*5f62a964SEmmanuel Vadot		vcc8-supply = <&vcc3v3_sys>;
197*5f62a964SEmmanuel Vadot		vcc9-supply = <&vcc3v3_sys>;
198*5f62a964SEmmanuel Vadot		wakeup-source;
199*5f62a964SEmmanuel Vadot
200*5f62a964SEmmanuel Vadot		regulators {
201*5f62a964SEmmanuel Vadot			vdd_logic: DCDC_REG1 {
202*5f62a964SEmmanuel Vadot				regulator-name = "vdd_logic";
203*5f62a964SEmmanuel Vadot				regulator-always-on;
204*5f62a964SEmmanuel Vadot				regulator-boot-on;
205*5f62a964SEmmanuel Vadot				regulator-initial-mode = <0x2>;
206*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <500000>;
207*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1350000>;
208*5f62a964SEmmanuel Vadot				regulator-ramp-delay = <6001>;
209*5f62a964SEmmanuel Vadot
210*5f62a964SEmmanuel Vadot				regulator-state-mem {
211*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
212*5f62a964SEmmanuel Vadot				};
213*5f62a964SEmmanuel Vadot			};
214*5f62a964SEmmanuel Vadot
215*5f62a964SEmmanuel Vadot			vdd_gpu: DCDC_REG2 {
216*5f62a964SEmmanuel Vadot				regulator-name = "vdd_gpu";
217*5f62a964SEmmanuel Vadot				regulator-always-on;
218*5f62a964SEmmanuel Vadot				regulator-initial-mode = <0x2>;
219*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <500000>;
220*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1350000>;
221*5f62a964SEmmanuel Vadot				regulator-ramp-delay = <6001>;
222*5f62a964SEmmanuel Vadot
223*5f62a964SEmmanuel Vadot				regulator-state-mem {
224*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
225*5f62a964SEmmanuel Vadot				};
226*5f62a964SEmmanuel Vadot			};
227*5f62a964SEmmanuel Vadot
228*5f62a964SEmmanuel Vadot			vcc_ddr: DCDC_REG3 {
229*5f62a964SEmmanuel Vadot				regulator-name = "vcc_ddr";
230*5f62a964SEmmanuel Vadot				regulator-always-on;
231*5f62a964SEmmanuel Vadot				regulator-boot-on;
232*5f62a964SEmmanuel Vadot				regulator-initial-mode = <0x2>;
233*5f62a964SEmmanuel Vadot
234*5f62a964SEmmanuel Vadot				regulator-state-mem {
235*5f62a964SEmmanuel Vadot					regulator-on-in-suspend;
236*5f62a964SEmmanuel Vadot				};
237*5f62a964SEmmanuel Vadot			};
238*5f62a964SEmmanuel Vadot
239*5f62a964SEmmanuel Vadot			vdd_npu: DCDC_REG4 {
240*5f62a964SEmmanuel Vadot				regulator-name = "vdd_npu";
241*5f62a964SEmmanuel Vadot				regulator-initial-mode = <0x2>;
242*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <500000>;
243*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1350000>;
244*5f62a964SEmmanuel Vadot				regulator-ramp-delay = <6001>;
245*5f62a964SEmmanuel Vadot
246*5f62a964SEmmanuel Vadot				regulator-state-mem {
247*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
248*5f62a964SEmmanuel Vadot				};
249*5f62a964SEmmanuel Vadot			};
250*5f62a964SEmmanuel Vadot
251*5f62a964SEmmanuel Vadot			vcc_1v8: DCDC_REG5 {
252*5f62a964SEmmanuel Vadot				regulator-name = "vcc_1v8";
253*5f62a964SEmmanuel Vadot				regulator-always-on;
254*5f62a964SEmmanuel Vadot				regulator-boot-on;
255*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
256*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
257*5f62a964SEmmanuel Vadot
258*5f62a964SEmmanuel Vadot				regulator-state-mem {
259*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
260*5f62a964SEmmanuel Vadot				};
261*5f62a964SEmmanuel Vadot			};
262*5f62a964SEmmanuel Vadot
263*5f62a964SEmmanuel Vadot			vdda0v9_image: LDO_REG1 {
264*5f62a964SEmmanuel Vadot				regulator-name = "vdda0v9_image";
265*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <950000>;
266*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <950000>;
267*5f62a964SEmmanuel Vadot
268*5f62a964SEmmanuel Vadot				regulator-state-mem {
269*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
270*5f62a964SEmmanuel Vadot				};
271*5f62a964SEmmanuel Vadot			};
272*5f62a964SEmmanuel Vadot
273*5f62a964SEmmanuel Vadot			vdda_0v9: LDO_REG2 {
274*5f62a964SEmmanuel Vadot				regulator-name = "vdda_0v9";
275*5f62a964SEmmanuel Vadot				regulator-always-on;
276*5f62a964SEmmanuel Vadot				regulator-boot-on;
277*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <900000>;
278*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <900000>;
279*5f62a964SEmmanuel Vadot
280*5f62a964SEmmanuel Vadot				regulator-state-mem {
281*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
282*5f62a964SEmmanuel Vadot				};
283*5f62a964SEmmanuel Vadot			};
284*5f62a964SEmmanuel Vadot
285*5f62a964SEmmanuel Vadot			vdda0v9_pmu: LDO_REG3 {
286*5f62a964SEmmanuel Vadot				regulator-name = "vdda0v9_pmu";
287*5f62a964SEmmanuel Vadot				regulator-always-on;
288*5f62a964SEmmanuel Vadot				regulator-boot-on;
289*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <900000>;
290*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <900000>;
291*5f62a964SEmmanuel Vadot
292*5f62a964SEmmanuel Vadot				regulator-state-mem {
293*5f62a964SEmmanuel Vadot					regulator-on-in-suspend;
294*5f62a964SEmmanuel Vadot					regulator-suspend-microvolt = <900000>;
295*5f62a964SEmmanuel Vadot				};
296*5f62a964SEmmanuel Vadot			};
297*5f62a964SEmmanuel Vadot
298*5f62a964SEmmanuel Vadot			vccio_acodec: LDO_REG4 {
299*5f62a964SEmmanuel Vadot				regulator-name = "vccio_acodec";
300*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
301*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
302*5f62a964SEmmanuel Vadot
303*5f62a964SEmmanuel Vadot				regulator-state-mem {
304*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
305*5f62a964SEmmanuel Vadot				};
306*5f62a964SEmmanuel Vadot			};
307*5f62a964SEmmanuel Vadot
308*5f62a964SEmmanuel Vadot			vccio_sd: LDO_REG5 {
309*5f62a964SEmmanuel Vadot				regulator-name = "vccio_sd";
310*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
311*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
312*5f62a964SEmmanuel Vadot
313*5f62a964SEmmanuel Vadot				regulator-state-mem {
314*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
315*5f62a964SEmmanuel Vadot				};
316*5f62a964SEmmanuel Vadot			};
317*5f62a964SEmmanuel Vadot
318*5f62a964SEmmanuel Vadot			vcc3v3_pmu: LDO_REG6 {
319*5f62a964SEmmanuel Vadot				regulator-name = "vcc3v3_pmu";
320*5f62a964SEmmanuel Vadot				regulator-always-on;
321*5f62a964SEmmanuel Vadot				regulator-boot-on;
322*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <3300000>;
323*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <3300000>;
324*5f62a964SEmmanuel Vadot
325*5f62a964SEmmanuel Vadot				regulator-state-mem {
326*5f62a964SEmmanuel Vadot					regulator-on-in-suspend;
327*5f62a964SEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
328*5f62a964SEmmanuel Vadot				};
329*5f62a964SEmmanuel Vadot			};
330*5f62a964SEmmanuel Vadot
331*5f62a964SEmmanuel Vadot			vcca_1v8: LDO_REG7 {
332*5f62a964SEmmanuel Vadot				regulator-name = "vcca_1v8";
333*5f62a964SEmmanuel Vadot				regulator-always-on;
334*5f62a964SEmmanuel Vadot				regulator-boot-on;
335*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
336*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
337*5f62a964SEmmanuel Vadot
338*5f62a964SEmmanuel Vadot				regulator-state-mem {
339*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
340*5f62a964SEmmanuel Vadot				};
341*5f62a964SEmmanuel Vadot			};
342*5f62a964SEmmanuel Vadot
343*5f62a964SEmmanuel Vadot			vcca1v8_pmu: LDO_REG8 {
344*5f62a964SEmmanuel Vadot				regulator-name = "vcca1v8_pmu";
345*5f62a964SEmmanuel Vadot				regulator-always-on;
346*5f62a964SEmmanuel Vadot				regulator-boot-on;
347*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
348*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
349*5f62a964SEmmanuel Vadot
350*5f62a964SEmmanuel Vadot				regulator-state-mem {
351*5f62a964SEmmanuel Vadot					regulator-on-in-suspend;
352*5f62a964SEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
353*5f62a964SEmmanuel Vadot				};
354*5f62a964SEmmanuel Vadot			};
355*5f62a964SEmmanuel Vadot
356*5f62a964SEmmanuel Vadot			vcca1v8_image: LDO_REG9 {
357*5f62a964SEmmanuel Vadot				regulator-name = "vcca1v8_image";
358*5f62a964SEmmanuel Vadot				regulator-min-microvolt = <1800000>;
359*5f62a964SEmmanuel Vadot				regulator-max-microvolt = <1800000>;
360*5f62a964SEmmanuel Vadot
361*5f62a964SEmmanuel Vadot				regulator-state-mem {
362*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
363*5f62a964SEmmanuel Vadot				};
364*5f62a964SEmmanuel Vadot			};
365*5f62a964SEmmanuel Vadot
366*5f62a964SEmmanuel Vadot			vcc_3v3: SWITCH_REG1 {
367*5f62a964SEmmanuel Vadot				regulator-name = "vcc_3v3";
368*5f62a964SEmmanuel Vadot				regulator-always-on;
369*5f62a964SEmmanuel Vadot				regulator-boot-on;
370*5f62a964SEmmanuel Vadot
371*5f62a964SEmmanuel Vadot				regulator-state-mem {
372*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
373*5f62a964SEmmanuel Vadot				};
374*5f62a964SEmmanuel Vadot			};
375*5f62a964SEmmanuel Vadot
376*5f62a964SEmmanuel Vadot			vcc3v3_sd: SWITCH_REG2 {
377*5f62a964SEmmanuel Vadot				regulator-name = "vcc3v3_sd";
378*5f62a964SEmmanuel Vadot				regulator-always-on;
379*5f62a964SEmmanuel Vadot				regulator-boot-on;
380*5f62a964SEmmanuel Vadot
381*5f62a964SEmmanuel Vadot				regulator-state-mem {
382*5f62a964SEmmanuel Vadot					regulator-off-in-suspend;
383*5f62a964SEmmanuel Vadot				};
384*5f62a964SEmmanuel Vadot			};
385*5f62a964SEmmanuel Vadot		};
386*5f62a964SEmmanuel Vadot	};
387*5f62a964SEmmanuel Vadot};
388*5f62a964SEmmanuel Vadot
389*5f62a964SEmmanuel Vadot&i2c1 {
390*5f62a964SEmmanuel Vadot	status = "okay";
391*5f62a964SEmmanuel Vadot
392*5f62a964SEmmanuel Vadot	hym8563: rtc@51 {
393*5f62a964SEmmanuel Vadot		compatible = "haoyu,hym8563";
394*5f62a964SEmmanuel Vadot		reg = <0x51>;
395*5f62a964SEmmanuel Vadot		#clock-cells = <0>;
396*5f62a964SEmmanuel Vadot		clock-output-names = "hym8563";
397*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
398*5f62a964SEmmanuel Vadot		pinctrl-0 = <&hym8563_int>;
399*5f62a964SEmmanuel Vadot		interrupt-parent = <&gpio0>;
400*5f62a964SEmmanuel Vadot		interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
401*5f62a964SEmmanuel Vadot		wakeup-source;
402*5f62a964SEmmanuel Vadot	};
403*5f62a964SEmmanuel Vadot};
404*5f62a964SEmmanuel Vadot
405*5f62a964SEmmanuel Vadot&mdio1 {
406*5f62a964SEmmanuel Vadot	rgmii_phy1: ethernet-phy@1 {
407*5f62a964SEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
408*5f62a964SEmmanuel Vadot		reg = <1>;
409*5f62a964SEmmanuel Vadot		interrupt-parent = <&gpio4>;
410*5f62a964SEmmanuel Vadot		interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>;
411*5f62a964SEmmanuel Vadot		pinctrl-names = "default";
412*5f62a964SEmmanuel Vadot		pinctrl-0 = <&eth_phy_reset_pin>;
413*5f62a964SEmmanuel Vadot		reset-assert-us = <20000>;
414*5f62a964SEmmanuel Vadot		reset-deassert-us = <100000>;
415*5f62a964SEmmanuel Vadot		reset-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>;
416*5f62a964SEmmanuel Vadot	};
417*5f62a964SEmmanuel Vadot};
418*5f62a964SEmmanuel Vadot
419*5f62a964SEmmanuel Vadot&pcie2x1 {
420*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
421*5f62a964SEmmanuel Vadot	pinctrl-0 = <&pcie_reset_h>;
422*5f62a964SEmmanuel Vadot	reset-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
423*5f62a964SEmmanuel Vadot	status = "okay";
424*5f62a964SEmmanuel Vadot};
425*5f62a964SEmmanuel Vadot
426*5f62a964SEmmanuel Vadot&pinctrl {
427*5f62a964SEmmanuel Vadot	gpio-leds {
428*5f62a964SEmmanuel Vadot		lan_led_pin: lan-led-pin {
429*5f62a964SEmmanuel Vadot			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
430*5f62a964SEmmanuel Vadot		};
431*5f62a964SEmmanuel Vadot
432*5f62a964SEmmanuel Vadot		power_led_pin: power-led-pin {
433*5f62a964SEmmanuel Vadot			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
434*5f62a964SEmmanuel Vadot		};
435*5f62a964SEmmanuel Vadot
436*5f62a964SEmmanuel Vadot		wan_led_pin: wan-led-pin {
437*5f62a964SEmmanuel Vadot			rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
438*5f62a964SEmmanuel Vadot		};
439*5f62a964SEmmanuel Vadot	};
440*5f62a964SEmmanuel Vadot
441*5f62a964SEmmanuel Vadot	gmac {
442*5f62a964SEmmanuel Vadot		eth_phy_reset_pin: eth-phy-reset-pin {
443*5f62a964SEmmanuel Vadot			rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
444*5f62a964SEmmanuel Vadot		};
445*5f62a964SEmmanuel Vadot	};
446*5f62a964SEmmanuel Vadot
447*5f62a964SEmmanuel Vadot	pcie {
448*5f62a964SEmmanuel Vadot		pcie_reset_h: pcie-reset-h {
449*5f62a964SEmmanuel Vadot			rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
450*5f62a964SEmmanuel Vadot		};
451*5f62a964SEmmanuel Vadot	};
452*5f62a964SEmmanuel Vadot
453*5f62a964SEmmanuel Vadot	pmic {
454*5f62a964SEmmanuel Vadot		pmic_int: pmic-int {
455*5f62a964SEmmanuel Vadot			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
456*5f62a964SEmmanuel Vadot		};
457*5f62a964SEmmanuel Vadot	};
458*5f62a964SEmmanuel Vadot
459*5f62a964SEmmanuel Vadot	rockchip-key {
460*5f62a964SEmmanuel Vadot		reset_button_pin: reset-button-pin {
461*5f62a964SEmmanuel Vadot			rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
462*5f62a964SEmmanuel Vadot		};
463*5f62a964SEmmanuel Vadot	};
464*5f62a964SEmmanuel Vadot
465*5f62a964SEmmanuel Vadot	rtc {
466*5f62a964SEmmanuel Vadot		hym8563_int: hym8563-int {
467*5f62a964SEmmanuel Vadot			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
468*5f62a964SEmmanuel Vadot		};
469*5f62a964SEmmanuel Vadot	};
470*5f62a964SEmmanuel Vadot
471*5f62a964SEmmanuel Vadot	usb {
472*5f62a964SEmmanuel Vadot		vcc5v0_usb_host_en: vcc5v0-usb-host-en {
473*5f62a964SEmmanuel Vadot			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
474*5f62a964SEmmanuel Vadot		};
475*5f62a964SEmmanuel Vadot	};
476*5f62a964SEmmanuel Vadot};
477*5f62a964SEmmanuel Vadot
478*5f62a964SEmmanuel Vadot&pmu_io_domains {
479*5f62a964SEmmanuel Vadot	pmuio1-supply = <&vcc3v3_pmu>;
480*5f62a964SEmmanuel Vadot	pmuio2-supply = <&vcc3v3_pmu>;
481*5f62a964SEmmanuel Vadot	vccio1-supply = <&vccio_acodec>;
482*5f62a964SEmmanuel Vadot	vccio2-supply = <&vcc_1v8>;
483*5f62a964SEmmanuel Vadot	vccio3-supply = <&vccio_sd>;
484*5f62a964SEmmanuel Vadot	vccio4-supply = <&vcc_3v3>;
485*5f62a964SEmmanuel Vadot	vccio5-supply = <&vcc_1v8>;
486*5f62a964SEmmanuel Vadot	vccio6-supply = <&vcc_3v3>;
487*5f62a964SEmmanuel Vadot	vccio7-supply = <&vcc_3v3>;
488*5f62a964SEmmanuel Vadot	status = "okay";
489*5f62a964SEmmanuel Vadot};
490*5f62a964SEmmanuel Vadot
491*5f62a964SEmmanuel Vadot&sdhci {
492*5f62a964SEmmanuel Vadot	bus-width = <8>;
493*5f62a964SEmmanuel Vadot	max-frequency = <200000000>;
494*5f62a964SEmmanuel Vadot	mmc-hs200-1_8v;
495*5f62a964SEmmanuel Vadot	non-removable;
496*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
497*5f62a964SEmmanuel Vadot	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
498*5f62a964SEmmanuel Vadot	status = "okay";
499*5f62a964SEmmanuel Vadot};
500*5f62a964SEmmanuel Vadot
501*5f62a964SEmmanuel Vadot&sdmmc0 {
502*5f62a964SEmmanuel Vadot	bus-width = <4>;
503*5f62a964SEmmanuel Vadot	cap-mmc-highspeed;
504*5f62a964SEmmanuel Vadot	cap-sd-highspeed;
505*5f62a964SEmmanuel Vadot	disable-wp;
506*5f62a964SEmmanuel Vadot	no-sdio;
507*5f62a964SEmmanuel Vadot	no-mmc;
508*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
509*5f62a964SEmmanuel Vadot	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
510*5f62a964SEmmanuel Vadot	sd-uhs-sdr50;
511*5f62a964SEmmanuel Vadot	vmmc-supply = <&vcc3v3_sd>;
512*5f62a964SEmmanuel Vadot	vqmmc-supply = <&vccio_sd>;
513*5f62a964SEmmanuel Vadot	status = "okay";
514*5f62a964SEmmanuel Vadot};
515*5f62a964SEmmanuel Vadot
516*5f62a964SEmmanuel Vadot&tsadc {
517*5f62a964SEmmanuel Vadot	status = "okay";
518*5f62a964SEmmanuel Vadot};
519*5f62a964SEmmanuel Vadot
520*5f62a964SEmmanuel Vadot&uart2 {
521*5f62a964SEmmanuel Vadot	status = "okay";
522*5f62a964SEmmanuel Vadot};
523*5f62a964SEmmanuel Vadot
524*5f62a964SEmmanuel Vadot&usb2phy0 {
525*5f62a964SEmmanuel Vadot	status = "okay";
526*5f62a964SEmmanuel Vadot};
527*5f62a964SEmmanuel Vadot
528*5f62a964SEmmanuel Vadot&usb2phy0_host {
529*5f62a964SEmmanuel Vadot	phy-supply = <&vcc5v0_usb>;
530*5f62a964SEmmanuel Vadot	status = "okay";
531*5f62a964SEmmanuel Vadot};
532*5f62a964SEmmanuel Vadot
533*5f62a964SEmmanuel Vadot&usb2phy0_otg {
534*5f62a964SEmmanuel Vadot	status = "okay";
535*5f62a964SEmmanuel Vadot};
536*5f62a964SEmmanuel Vadot
537*5f62a964SEmmanuel Vadot&usb_host0_xhci {
538*5f62a964SEmmanuel Vadot	extcon = <&usb2phy0>;
539*5f62a964SEmmanuel Vadot	status = "okay";
540*5f62a964SEmmanuel Vadot};
541*5f62a964SEmmanuel Vadot
542*5f62a964SEmmanuel Vadot&usb_host1_xhci {
543*5f62a964SEmmanuel Vadot	status = "okay";
544*5f62a964SEmmanuel Vadot};
545*5f62a964SEmmanuel Vadot
546*5f62a964SEmmanuel Vadot&vop {
547*5f62a964SEmmanuel Vadot	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
548*5f62a964SEmmanuel Vadot	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
549*5f62a964SEmmanuel Vadot	status = "okay";
550*5f62a964SEmmanuel Vadot};
551*5f62a964SEmmanuel Vadot
552*5f62a964SEmmanuel Vadot&vop_mmu {
553*5f62a964SEmmanuel Vadot	status = "okay";
554*5f62a964SEmmanuel Vadot};
555