xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3568-evb1-v10.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
101610a24SLiang Chen// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
201610a24SLiang Chen/*
301610a24SLiang Chen * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
401610a24SLiang Chen *
501610a24SLiang Chen */
601610a24SLiang Chen
701610a24SLiang Chen/dts-v1/;
801610a24SLiang Chen#include <dt-bindings/gpio/gpio.h>
9406c607eSMichael Riesch#include <dt-bindings/leds/common.h>
1001610a24SLiang Chen#include <dt-bindings/pinctrl/rockchip.h>
11991b3d12SSascha Hauer#include <dt-bindings/soc/rockchip,vop2.h>
1201610a24SLiang Chen#include "rk3568.dtsi"
1301610a24SLiang Chen
1401610a24SLiang Chen/ {
1501610a24SLiang Chen	model = "Rockchip RK3568 EVB1 DDR4 V10 Board";
1601610a24SLiang Chen	compatible = "rockchip,rk3568-evb1-v10", "rockchip,rk3568";
1701610a24SLiang Chen
18fc57d783SMichael Riesch	aliases {
19fc57d783SMichael Riesch		ethernet0 = &gmac0;
20fc57d783SMichael Riesch		ethernet1 = &gmac1;
212a068e19SMichael Riesch		mmc0 = &sdmmc0;
228a599b56SMichael Riesch		mmc1 = &sdhci;
23fc57d783SMichael Riesch	};
24fc57d783SMichael Riesch
25*06b29cb8SAndy Yan	backlight: backlight {
26*06b29cb8SAndy Yan		compatible = "pwm-backlight";
27*06b29cb8SAndy Yan		brightness-levels = <20 220>;
28*06b29cb8SAndy Yan		default-brightness-level = <100>;
29*06b29cb8SAndy Yan		num-interpolated-steps = <200>;
30*06b29cb8SAndy Yan		power-supply = <&vcc3v3_sys>;
31*06b29cb8SAndy Yan		pwms = <&pwm4 0 25000 0>;
32*06b29cb8SAndy Yan	};
33*06b29cb8SAndy Yan
3401610a24SLiang Chen	chosen: chosen {
3501610a24SLiang Chen		stdout-path = "serial2:1500000n8";
3601610a24SLiang Chen	};
3701610a24SLiang Chen
385c96e633SJohan Jonker	dc_12v: regulator-dc-12v {
3901610a24SLiang Chen		compatible = "regulator-fixed";
4001610a24SLiang Chen		regulator-name = "dc_12v";
4101610a24SLiang Chen		regulator-always-on;
4201610a24SLiang Chen		regulator-boot-on;
4301610a24SLiang Chen		regulator-min-microvolt = <12000000>;
4401610a24SLiang Chen		regulator-max-microvolt = <12000000>;
4501610a24SLiang Chen	};
4601610a24SLiang Chen
47991b3d12SSascha Hauer	hdmi-con {
48991b3d12SSascha Hauer		compatible = "hdmi-connector";
49991b3d12SSascha Hauer		type = "a";
50991b3d12SSascha Hauer
51991b3d12SSascha Hauer		port {
52991b3d12SSascha Hauer			hdmi_con_in: endpoint {
53991b3d12SSascha Hauer				remote-endpoint = <&hdmi_out_con>;
54991b3d12SSascha Hauer			};
55991b3d12SSascha Hauer		};
56991b3d12SSascha Hauer	};
57991b3d12SSascha Hauer
58406c607eSMichael Riesch	leds {
59406c607eSMichael Riesch		compatible = "gpio-leds";
60406c607eSMichael Riesch
61406c607eSMichael Riesch		led_work: led-0 {
62406c607eSMichael Riesch			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
63406c607eSMichael Riesch			function = LED_FUNCTION_HEARTBEAT;
64406c607eSMichael Riesch			color = <LED_COLOR_ID_BLUE>;
65406c607eSMichael Riesch			linux,default-trigger = "heartbeat";
66406c607eSMichael Riesch			pinctrl-names = "default";
67406c607eSMichael Riesch			pinctrl-0 = <&led_work_en>;
68406c607eSMichael Riesch		};
69406c607eSMichael Riesch	};
70406c607eSMichael Riesch
713e4c629cSMichael Riesch	rk809-sound {
723e4c629cSMichael Riesch		compatible = "simple-audio-card";
733e4c629cSMichael Riesch		simple-audio-card,format = "i2s";
743e4c629cSMichael Riesch		simple-audio-card,name = "Analog RK809";
753e4c629cSMichael Riesch		simple-audio-card,mclk-fs = <256>;
763e4c629cSMichael Riesch
773e4c629cSMichael Riesch		simple-audio-card,cpu {
783e4c629cSMichael Riesch			sound-dai = <&i2s1_8ch>;
793e4c629cSMichael Riesch		};
803e4c629cSMichael Riesch		simple-audio-card,codec {
813e4c629cSMichael Riesch			sound-dai = <&rk809>;
823e4c629cSMichael Riesch		};
833e4c629cSMichael Riesch	};
843e4c629cSMichael Riesch
855c96e633SJohan Jonker	vcc3v3_sys: regulator-vcc3v3-sys {
8601610a24SLiang Chen		compatible = "regulator-fixed";
8701610a24SLiang Chen		regulator-name = "vcc3v3_sys";
8801610a24SLiang Chen		regulator-always-on;
8901610a24SLiang Chen		regulator-boot-on;
9001610a24SLiang Chen		regulator-min-microvolt = <3300000>;
9101610a24SLiang Chen		regulator-max-microvolt = <3300000>;
9201610a24SLiang Chen		vin-supply = <&dc_12v>;
9301610a24SLiang Chen	};
9401610a24SLiang Chen
955c96e633SJohan Jonker	vcc5v0_sys: regulator-vcc5v0-sys {
9601610a24SLiang Chen		compatible = "regulator-fixed";
9701610a24SLiang Chen		regulator-name = "vcc5v0_sys";
9801610a24SLiang Chen		regulator-always-on;
9901610a24SLiang Chen		regulator-boot-on;
10001610a24SLiang Chen		regulator-min-microvolt = <5000000>;
10101610a24SLiang Chen		regulator-max-microvolt = <5000000>;
10201610a24SLiang Chen		vin-supply = <&dc_12v>;
10301610a24SLiang Chen	};
10401610a24SLiang Chen
1055c96e633SJohan Jonker	vcc5v0_usb: regulator-vcc5v0-usb {
106e49e24d7SMichael Riesch		compatible = "regulator-fixed";
107e49e24d7SMichael Riesch		regulator-name = "vcc5v0_usb";
108e49e24d7SMichael Riesch		regulator-always-on;
109e49e24d7SMichael Riesch		regulator-boot-on;
110e49e24d7SMichael Riesch		regulator-min-microvolt = <5000000>;
111e49e24d7SMichael Riesch		regulator-max-microvolt = <5000000>;
112e49e24d7SMichael Riesch		vin-supply = <&dc_12v>;
113e49e24d7SMichael Riesch	};
114e49e24d7SMichael Riesch
1155c96e633SJohan Jonker	vcc5v0_usb_host: regulator-vcc5v0-usb-host {
116e49e24d7SMichael Riesch		compatible = "regulator-fixed";
117e49e24d7SMichael Riesch		enable-active-high;
118e49e24d7SMichael Riesch		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
119e49e24d7SMichael Riesch		pinctrl-names = "default";
120e49e24d7SMichael Riesch		pinctrl-0 = <&vcc5v0_usb_host_en>;
121e49e24d7SMichael Riesch		regulator-name = "vcc5v0_usb_host";
122e49e24d7SMichael Riesch		regulator-min-microvolt = <5000000>;
123e49e24d7SMichael Riesch		regulator-max-microvolt = <5000000>;
124e49e24d7SMichael Riesch		vin-supply = <&vcc5v0_usb>;
125e49e24d7SMichael Riesch	};
126e49e24d7SMichael Riesch
1275c96e633SJohan Jonker	vcc5v0_usb_otg: regulator-vcc5v0-usb-otg {
128d6cfb110SMichael Riesch		compatible = "regulator-fixed";
129d6cfb110SMichael Riesch		enable-active-high;
130d6cfb110SMichael Riesch		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
131d6cfb110SMichael Riesch		pinctrl-names = "default";
132d6cfb110SMichael Riesch		pinctrl-0 = <&vcc5v0_usb_otg_en>;
133d6cfb110SMichael Riesch		regulator-name = "vcc5v0_usb_otg";
134d6cfb110SMichael Riesch		regulator-min-microvolt = <5000000>;
135d6cfb110SMichael Riesch		regulator-max-microvolt = <5000000>;
136d6cfb110SMichael Riesch		vin-supply = <&vcc5v0_usb>;
137d6cfb110SMichael Riesch	};
138d6cfb110SMichael Riesch
1395c96e633SJohan Jonker	vcc3v3_lcd0_n: regulator-vcc3v3-lcd0-n {
14001610a24SLiang Chen		compatible = "regulator-fixed";
14101610a24SLiang Chen		regulator-name = "vcc3v3_lcd0_n";
1429ade1ab4SMichael Riesch		regulator-min-microvolt = <3300000>;
1439ade1ab4SMichael Riesch		regulator-max-microvolt = <3300000>;
1449ade1ab4SMichael Riesch		enable-active-high;
1459ade1ab4SMichael Riesch		gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
1469ade1ab4SMichael Riesch		vin-supply = <&vcc3v3_sys>;
1479ade1ab4SMichael Riesch		pinctrl-names = "default";
1489ade1ab4SMichael Riesch		pinctrl-0 = <&vcc3v3_lcd0_n_en>;
14901610a24SLiang Chen
15001610a24SLiang Chen		regulator-state-mem {
15101610a24SLiang Chen			regulator-off-in-suspend;
15201610a24SLiang Chen		};
15301610a24SLiang Chen	};
15401610a24SLiang Chen
1555c96e633SJohan Jonker	vcc3v3_lcd1_n: regulator-vcc3v3-lcd1-n {
15601610a24SLiang Chen		compatible = "regulator-fixed";
15701610a24SLiang Chen		regulator-name = "vcc3v3_lcd1_n";
1589ade1ab4SMichael Riesch		regulator-min-microvolt = <3300000>;
1599ade1ab4SMichael Riesch		regulator-max-microvolt = <3300000>;
1609ade1ab4SMichael Riesch		enable-active-high;
1619ade1ab4SMichael Riesch		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
1629ade1ab4SMichael Riesch		vin-supply = <&vcc3v3_sys>;
1639ade1ab4SMichael Riesch		pinctrl-names = "default";
1649ade1ab4SMichael Riesch		pinctrl-0 = <&vcc3v3_lcd1_n_en>;
16501610a24SLiang Chen
16601610a24SLiang Chen		regulator-state-mem {
16701610a24SLiang Chen			regulator-off-in-suspend;
16801610a24SLiang Chen		};
16901610a24SLiang Chen	};
17001610a24SLiang Chen};
17101610a24SLiang Chen
172d6cfb110SMichael Riesch&combphy0 {
173d6cfb110SMichael Riesch	status = "okay";
174d6cfb110SMichael Riesch};
175d6cfb110SMichael Riesch
176d6cfb110SMichael Riesch&combphy1 {
177d6cfb110SMichael Riesch	status = "okay";
178d6cfb110SMichael Riesch};
179d6cfb110SMichael Riesch
180738bbac5SMichael Riesch&cpu0 {
181738bbac5SMichael Riesch	cpu-supply = <&vdd_cpu>;
182738bbac5SMichael Riesch};
183738bbac5SMichael Riesch
184738bbac5SMichael Riesch&cpu1 {
185738bbac5SMichael Riesch	cpu-supply = <&vdd_cpu>;
186738bbac5SMichael Riesch};
187738bbac5SMichael Riesch
188738bbac5SMichael Riesch&cpu2 {
189738bbac5SMichael Riesch	cpu-supply = <&vdd_cpu>;
190738bbac5SMichael Riesch};
191738bbac5SMichael Riesch
192738bbac5SMichael Riesch&cpu3 {
193738bbac5SMichael Riesch	cpu-supply = <&vdd_cpu>;
194738bbac5SMichael Riesch};
195738bbac5SMichael Riesch
196*06b29cb8SAndy Yan&dsi0 {
197*06b29cb8SAndy Yan	clock-master;
198*06b29cb8SAndy Yan	#address-cells = <1>;
199*06b29cb8SAndy Yan	#size-cells = <0>;
200*06b29cb8SAndy Yan	status = "okay";
201*06b29cb8SAndy Yan
202*06b29cb8SAndy Yan	panel@0 {
203*06b29cb8SAndy Yan		compatible = "wanchanglong,w552793baa", "raydium,rm67200";
204*06b29cb8SAndy Yan		reg = <0>;
205*06b29cb8SAndy Yan		backlight = <&backlight>;
206*06b29cb8SAndy Yan		iovcc-supply = <&vcc3v3_lcd0_n>;
207*06b29cb8SAndy Yan		reset-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
208*06b29cb8SAndy Yan		vdd-supply = <&vcc3v3_lcd0_n>;
209*06b29cb8SAndy Yan		vsn-supply = <&vcc5v0_sys>;
210*06b29cb8SAndy Yan		vsp-supply = <&vcc5v0_sys>;
211*06b29cb8SAndy Yan
212*06b29cb8SAndy Yan		port {
213*06b29cb8SAndy Yan			panel_in_dsi: endpoint {
214*06b29cb8SAndy Yan				remote-endpoint = <&dsi0_out_panel>;
215*06b29cb8SAndy Yan			};
216*06b29cb8SAndy Yan		};
217*06b29cb8SAndy Yan	};
218*06b29cb8SAndy Yan
219*06b29cb8SAndy Yan};
220*06b29cb8SAndy Yan
221*06b29cb8SAndy Yan&dsi0_in {
222*06b29cb8SAndy Yan	dsi0_in_vp1: endpoint {
223*06b29cb8SAndy Yan		remote-endpoint = <&vp1_out_dsi0>;
224*06b29cb8SAndy Yan	};
225*06b29cb8SAndy Yan};
226*06b29cb8SAndy Yan
227*06b29cb8SAndy Yan&dsi0_out {
228*06b29cb8SAndy Yan	dsi0_out_panel: endpoint {
229*06b29cb8SAndy Yan		remote-endpoint = <&panel_in_dsi>;
230*06b29cb8SAndy Yan	};
231*06b29cb8SAndy Yan};
232*06b29cb8SAndy Yan
233*06b29cb8SAndy Yan&dsi_dphy0 {
234*06b29cb8SAndy Yan	status = "okay";
235*06b29cb8SAndy Yan};
236*06b29cb8SAndy Yan
237fc57d783SMichael Riesch&gmac0 {
238fc57d783SMichael Riesch	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
239fc57d783SMichael Riesch	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
240fc57d783SMichael Riesch	assigned-clock-rates = <0>, <125000000>;
241fc57d783SMichael Riesch	clock_in_out = "output";
242fc57d783SMichael Riesch	phy-handle = <&rgmii_phy0>;
243fc57d783SMichael Riesch	phy-mode = "rgmii-id";
244fc57d783SMichael Riesch	pinctrl-names = "default";
245fc57d783SMichael Riesch	pinctrl-0 = <&gmac0_miim
246fc57d783SMichael Riesch		     &gmac0_tx_bus2
247fc57d783SMichael Riesch		     &gmac0_rx_bus2
248fc57d783SMichael Riesch		     &gmac0_rgmii_clk
249fc57d783SMichael Riesch		     &gmac0_rgmii_bus>;
250fc57d783SMichael Riesch	status = "okay";
251fc57d783SMichael Riesch};
252fc57d783SMichael Riesch
253fc57d783SMichael Riesch&gmac1 {
254fc57d783SMichael Riesch	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
255fc57d783SMichael Riesch	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
256fc57d783SMichael Riesch	assigned-clock-rates = <0>, <125000000>;
257fc57d783SMichael Riesch	clock_in_out = "output";
258fc57d783SMichael Riesch	phy-handle = <&rgmii_phy1>;
259fc57d783SMichael Riesch	phy-mode = "rgmii-id";
260fc57d783SMichael Riesch	pinctrl-names = "default";
261fc57d783SMichael Riesch	pinctrl-0 = <&gmac1m1_miim
262fc57d783SMichael Riesch		     &gmac1m1_tx_bus2
263fc57d783SMichael Riesch		     &gmac1m1_rx_bus2
264fc57d783SMichael Riesch		     &gmac1m1_rgmii_clk
265fc57d783SMichael Riesch		     &gmac1m1_rgmii_bus>;
266fc57d783SMichael Riesch	status = "okay";
267fc57d783SMichael Riesch};
268fc57d783SMichael Riesch
2690f546cd6SMichael Riesch&gpu {
2700f546cd6SMichael Riesch	mali-supply = <&vdd_gpu>;
2710f546cd6SMichael Riesch	status = "okay";
2720f546cd6SMichael Riesch};
2730f546cd6SMichael Riesch
274991b3d12SSascha Hauer&hdmi {
275991b3d12SSascha Hauer	avdd-0v9-supply = <&vdda0v9_image>;
276991b3d12SSascha Hauer	avdd-1v8-supply = <&vcca1v8_image>;
277991b3d12SSascha Hauer	status = "okay";
278991b3d12SSascha Hauer};
279991b3d12SSascha Hauer
280991b3d12SSascha Hauer&hdmi_in {
281991b3d12SSascha Hauer	hdmi_in_vp0: endpoint {
282991b3d12SSascha Hauer		remote-endpoint = <&vp0_out_hdmi>;
283991b3d12SSascha Hauer	};
284991b3d12SSascha Hauer};
285991b3d12SSascha Hauer
286991b3d12SSascha Hauer&hdmi_out {
287991b3d12SSascha Hauer	hdmi_out_con: endpoint {
288991b3d12SSascha Hauer		remote-endpoint = <&hdmi_con_in>;
289991b3d12SSascha Hauer	};
290991b3d12SSascha Hauer};
291991b3d12SSascha Hauer
292ea452bc0SMichael Riesch&hdmi_sound {
293ea452bc0SMichael Riesch	status = "okay";
294ea452bc0SMichael Riesch};
295ea452bc0SMichael Riesch
29614f1c34eSMichael Riesch&i2c0 {
29714f1c34eSMichael Riesch	status = "okay";
29814f1c34eSMichael Riesch
299738bbac5SMichael Riesch	vdd_cpu: regulator@1c {
300738bbac5SMichael Riesch		compatible = "tcs,tcs4525";
301738bbac5SMichael Riesch		reg = <0x1c>;
302738bbac5SMichael Riesch		fcs,suspend-voltage-selector = <1>;
303738bbac5SMichael Riesch		regulator-name = "vdd_cpu";
304738bbac5SMichael Riesch		regulator-always-on;
305738bbac5SMichael Riesch		regulator-boot-on;
306738bbac5SMichael Riesch		regulator-min-microvolt = <800000>;
307738bbac5SMichael Riesch		regulator-max-microvolt = <1150000>;
308738bbac5SMichael Riesch		regulator-ramp-delay = <2300>;
309738bbac5SMichael Riesch		vin-supply = <&vcc5v0_sys>;
310738bbac5SMichael Riesch
311738bbac5SMichael Riesch		regulator-state-mem {
312738bbac5SMichael Riesch			regulator-off-in-suspend;
313738bbac5SMichael Riesch		};
314738bbac5SMichael Riesch	};
315738bbac5SMichael Riesch
31614f1c34eSMichael Riesch	rk809: pmic@20 {
31714f1c34eSMichael Riesch		compatible = "rockchip,rk809";
31814f1c34eSMichael Riesch		reg = <0x20>;
31914f1c34eSMichael Riesch		interrupt-parent = <&gpio0>;
32014f1c34eSMichael Riesch		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
3213e4c629cSMichael Riesch		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
3223e4c629cSMichael Riesch		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
32314f1c34eSMichael Riesch		#clock-cells = <1>;
3243e4c629cSMichael Riesch		clock-names = "mclk";
3253e4c629cSMichael Riesch		clocks = <&cru I2S1_MCLKOUT_TX>;
32614f1c34eSMichael Riesch		pinctrl-names = "default";
3273e4c629cSMichael Riesch		pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
328b99ac7e2SDiederik de Haas		system-power-controller;
3293e4c629cSMichael Riesch		#sound-dai-cells = <0>;
33014f1c34eSMichael Riesch		vcc1-supply = <&vcc3v3_sys>;
33114f1c34eSMichael Riesch		vcc2-supply = <&vcc3v3_sys>;
33214f1c34eSMichael Riesch		vcc3-supply = <&vcc3v3_sys>;
33314f1c34eSMichael Riesch		vcc4-supply = <&vcc3v3_sys>;
33414f1c34eSMichael Riesch		vcc5-supply = <&vcc3v3_sys>;
33514f1c34eSMichael Riesch		vcc6-supply = <&vcc3v3_sys>;
33614f1c34eSMichael Riesch		vcc7-supply = <&vcc3v3_sys>;
33714f1c34eSMichael Riesch		vcc8-supply = <&vcc3v3_sys>;
33814f1c34eSMichael Riesch		vcc9-supply = <&vcc3v3_sys>;
33914f1c34eSMichael Riesch		wakeup-source;
34014f1c34eSMichael Riesch
34114f1c34eSMichael Riesch		regulators {
34214f1c34eSMichael Riesch			vdd_logic: DCDC_REG1 {
34314f1c34eSMichael Riesch				regulator-name = "vdd_logic";
34414f1c34eSMichael Riesch				regulator-always-on;
34514f1c34eSMichael Riesch				regulator-boot-on;
34614f1c34eSMichael Riesch				regulator-initial-mode = <0x2>;
34714f1c34eSMichael Riesch				regulator-min-microvolt = <500000>;
34814f1c34eSMichael Riesch				regulator-max-microvolt = <1350000>;
34914f1c34eSMichael Riesch				regulator-ramp-delay = <6001>;
35014f1c34eSMichael Riesch
35114f1c34eSMichael Riesch				regulator-state-mem {
35214f1c34eSMichael Riesch					regulator-off-in-suspend;
35314f1c34eSMichael Riesch				};
35414f1c34eSMichael Riesch			};
35514f1c34eSMichael Riesch
35614f1c34eSMichael Riesch			vdd_gpu: DCDC_REG2 {
35714f1c34eSMichael Riesch				regulator-name = "vdd_gpu";
358bbe5d394SMichael Riesch				regulator-always-on;
35914f1c34eSMichael Riesch				regulator-initial-mode = <0x2>;
36014f1c34eSMichael Riesch				regulator-min-microvolt = <500000>;
36114f1c34eSMichael Riesch				regulator-max-microvolt = <1350000>;
36214f1c34eSMichael Riesch				regulator-ramp-delay = <6001>;
36314f1c34eSMichael Riesch
36414f1c34eSMichael Riesch				regulator-state-mem {
36514f1c34eSMichael Riesch					regulator-off-in-suspend;
36614f1c34eSMichael Riesch				};
36714f1c34eSMichael Riesch			};
36814f1c34eSMichael Riesch
36914f1c34eSMichael Riesch			vcc_ddr: DCDC_REG3 {
37014f1c34eSMichael Riesch				regulator-name = "vcc_ddr";
37114f1c34eSMichael Riesch				regulator-always-on;
37214f1c34eSMichael Riesch				regulator-boot-on;
37314f1c34eSMichael Riesch				regulator-initial-mode = <0x2>;
37414f1c34eSMichael Riesch
37514f1c34eSMichael Riesch				regulator-state-mem {
37614f1c34eSMichael Riesch					regulator-on-in-suspend;
37714f1c34eSMichael Riesch				};
37814f1c34eSMichael Riesch			};
37914f1c34eSMichael Riesch
38014f1c34eSMichael Riesch			vdd_npu: DCDC_REG4 {
38114f1c34eSMichael Riesch				regulator-name = "vdd_npu";
38214f1c34eSMichael Riesch				regulator-initial-mode = <0x2>;
38314f1c34eSMichael Riesch				regulator-min-microvolt = <500000>;
38414f1c34eSMichael Riesch				regulator-max-microvolt = <1350000>;
38514f1c34eSMichael Riesch				regulator-ramp-delay = <6001>;
38614f1c34eSMichael Riesch
38714f1c34eSMichael Riesch				regulator-state-mem {
38814f1c34eSMichael Riesch					regulator-off-in-suspend;
38914f1c34eSMichael Riesch				};
39014f1c34eSMichael Riesch			};
39114f1c34eSMichael Riesch
39214f1c34eSMichael Riesch			vcc_1v8: DCDC_REG5 {
39314f1c34eSMichael Riesch				regulator-name = "vcc_1v8";
39414f1c34eSMichael Riesch				regulator-always-on;
39514f1c34eSMichael Riesch				regulator-boot-on;
39614f1c34eSMichael Riesch				regulator-min-microvolt = <1800000>;
39714f1c34eSMichael Riesch				regulator-max-microvolt = <1800000>;
39814f1c34eSMichael Riesch
39914f1c34eSMichael Riesch				regulator-state-mem {
40014f1c34eSMichael Riesch					regulator-off-in-suspend;
40114f1c34eSMichael Riesch				};
40214f1c34eSMichael Riesch			};
40314f1c34eSMichael Riesch
40414f1c34eSMichael Riesch			vdda0v9_image: LDO_REG1 {
40514f1c34eSMichael Riesch				regulator-name = "vdda0v9_image";
40614f1c34eSMichael Riesch				regulator-min-microvolt = <900000>;
40714f1c34eSMichael Riesch				regulator-max-microvolt = <900000>;
40814f1c34eSMichael Riesch
40914f1c34eSMichael Riesch				regulator-state-mem {
41014f1c34eSMichael Riesch					regulator-off-in-suspend;
41114f1c34eSMichael Riesch				};
41214f1c34eSMichael Riesch			};
41314f1c34eSMichael Riesch
41414f1c34eSMichael Riesch			vdda_0v9: LDO_REG2 {
41514f1c34eSMichael Riesch				regulator-name = "vdda_0v9";
41614f1c34eSMichael Riesch				regulator-always-on;
41714f1c34eSMichael Riesch				regulator-boot-on;
41814f1c34eSMichael Riesch				regulator-min-microvolt = <900000>;
41914f1c34eSMichael Riesch				regulator-max-microvolt = <900000>;
42014f1c34eSMichael Riesch
42114f1c34eSMichael Riesch				regulator-state-mem {
42214f1c34eSMichael Riesch					regulator-off-in-suspend;
42314f1c34eSMichael Riesch				};
42414f1c34eSMichael Riesch			};
42514f1c34eSMichael Riesch
42614f1c34eSMichael Riesch			vdda0v9_pmu: LDO_REG3 {
42714f1c34eSMichael Riesch				regulator-name = "vdda0v9_pmu";
42814f1c34eSMichael Riesch				regulator-always-on;
42914f1c34eSMichael Riesch				regulator-boot-on;
43014f1c34eSMichael Riesch				regulator-min-microvolt = <900000>;
43114f1c34eSMichael Riesch				regulator-max-microvolt = <900000>;
43214f1c34eSMichael Riesch
43314f1c34eSMichael Riesch				regulator-state-mem {
43414f1c34eSMichael Riesch					regulator-on-in-suspend;
43514f1c34eSMichael Riesch					regulator-suspend-microvolt = <900000>;
43614f1c34eSMichael Riesch				};
43714f1c34eSMichael Riesch			};
43814f1c34eSMichael Riesch
43914f1c34eSMichael Riesch			vccio_acodec: LDO_REG4 {
44014f1c34eSMichael Riesch				regulator-name = "vccio_acodec";
4413e4c629cSMichael Riesch				regulator-always-on;
44214f1c34eSMichael Riesch				regulator-min-microvolt = <3300000>;
44314f1c34eSMichael Riesch				regulator-max-microvolt = <3300000>;
44414f1c34eSMichael Riesch
44514f1c34eSMichael Riesch				regulator-state-mem {
44614f1c34eSMichael Riesch					regulator-off-in-suspend;
44714f1c34eSMichael Riesch				};
44814f1c34eSMichael Riesch			};
44914f1c34eSMichael Riesch
45014f1c34eSMichael Riesch			vccio_sd: LDO_REG5 {
45114f1c34eSMichael Riesch				regulator-name = "vccio_sd";
45214f1c34eSMichael Riesch				regulator-min-microvolt = <1800000>;
45314f1c34eSMichael Riesch				regulator-max-microvolt = <3300000>;
45414f1c34eSMichael Riesch
45514f1c34eSMichael Riesch				regulator-state-mem {
45614f1c34eSMichael Riesch					regulator-off-in-suspend;
45714f1c34eSMichael Riesch				};
45814f1c34eSMichael Riesch			};
45914f1c34eSMichael Riesch
46014f1c34eSMichael Riesch			vcc3v3_pmu: LDO_REG6 {
46114f1c34eSMichael Riesch				regulator-name = "vcc3v3_pmu";
46214f1c34eSMichael Riesch				regulator-always-on;
46314f1c34eSMichael Riesch				regulator-boot-on;
46414f1c34eSMichael Riesch				regulator-min-microvolt = <3300000>;
46514f1c34eSMichael Riesch				regulator-max-microvolt = <3300000>;
46614f1c34eSMichael Riesch
46714f1c34eSMichael Riesch				regulator-state-mem {
46814f1c34eSMichael Riesch					regulator-on-in-suspend;
46914f1c34eSMichael Riesch					regulator-suspend-microvolt = <3300000>;
47014f1c34eSMichael Riesch				};
47114f1c34eSMichael Riesch			};
47214f1c34eSMichael Riesch
47314f1c34eSMichael Riesch			vcca_1v8: LDO_REG7 {
47414f1c34eSMichael Riesch				regulator-name = "vcca_1v8";
47514f1c34eSMichael Riesch				regulator-always-on;
47614f1c34eSMichael Riesch				regulator-boot-on;
47714f1c34eSMichael Riesch				regulator-min-microvolt = <1800000>;
47814f1c34eSMichael Riesch				regulator-max-microvolt = <1800000>;
47914f1c34eSMichael Riesch
48014f1c34eSMichael Riesch				regulator-state-mem {
48114f1c34eSMichael Riesch					regulator-off-in-suspend;
48214f1c34eSMichael Riesch				};
48314f1c34eSMichael Riesch			};
48414f1c34eSMichael Riesch
48514f1c34eSMichael Riesch			vcca1v8_pmu: LDO_REG8 {
48614f1c34eSMichael Riesch				regulator-name = "vcca1v8_pmu";
48714f1c34eSMichael Riesch				regulator-always-on;
48814f1c34eSMichael Riesch				regulator-boot-on;
48914f1c34eSMichael Riesch				regulator-min-microvolt = <1800000>;
49014f1c34eSMichael Riesch				regulator-max-microvolt = <1800000>;
49114f1c34eSMichael Riesch
49214f1c34eSMichael Riesch				regulator-state-mem {
49314f1c34eSMichael Riesch					regulator-on-in-suspend;
49414f1c34eSMichael Riesch					regulator-suspend-microvolt = <1800000>;
49514f1c34eSMichael Riesch				};
49614f1c34eSMichael Riesch			};
49714f1c34eSMichael Riesch
49814f1c34eSMichael Riesch			vcca1v8_image: LDO_REG9 {
49914f1c34eSMichael Riesch				regulator-name = "vcca1v8_image";
50014f1c34eSMichael Riesch				regulator-min-microvolt = <1800000>;
50114f1c34eSMichael Riesch				regulator-max-microvolt = <1800000>;
50214f1c34eSMichael Riesch
50314f1c34eSMichael Riesch				regulator-state-mem {
50414f1c34eSMichael Riesch					regulator-off-in-suspend;
50514f1c34eSMichael Riesch				};
50614f1c34eSMichael Riesch			};
50714f1c34eSMichael Riesch
50814f1c34eSMichael Riesch			vcc_3v3: SWITCH_REG1 {
50914f1c34eSMichael Riesch				regulator-name = "vcc_3v3";
51014f1c34eSMichael Riesch				regulator-always-on;
51114f1c34eSMichael Riesch				regulator-boot-on;
51214f1c34eSMichael Riesch
51314f1c34eSMichael Riesch				regulator-state-mem {
51414f1c34eSMichael Riesch					regulator-off-in-suspend;
51514f1c34eSMichael Riesch				};
51614f1c34eSMichael Riesch			};
51714f1c34eSMichael Riesch
51814f1c34eSMichael Riesch			vcc3v3_sd: SWITCH_REG2 {
51914f1c34eSMichael Riesch				regulator-name = "vcc3v3_sd";
52014f1c34eSMichael Riesch
52114f1c34eSMichael Riesch				regulator-state-mem {
52214f1c34eSMichael Riesch					regulator-off-in-suspend;
52314f1c34eSMichael Riesch				};
52414f1c34eSMichael Riesch			};
52514f1c34eSMichael Riesch		};
5263e4c629cSMichael Riesch
5273e4c629cSMichael Riesch		codec {
528ec030738SCristian Ciocaltea			rockchip,mic-in-differential;
5293e4c629cSMichael Riesch		};
53014f1c34eSMichael Riesch	};
53114f1c34eSMichael Riesch};
53214f1c34eSMichael Riesch
533922237a6SMichael Riesch&i2c1 {
534922237a6SMichael Riesch	status = "okay";
535922237a6SMichael Riesch
536922237a6SMichael Riesch	touchscreen0: goodix@14 {
537922237a6SMichael Riesch		compatible = "goodix,gt1151";
538922237a6SMichael Riesch		reg = <0x14>;
539922237a6SMichael Riesch		interrupt-parent = <&gpio0>;
540922237a6SMichael Riesch		interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
541922237a6SMichael Riesch		AVDD28-supply = <&vcc3v3_lcd0_n>;
542922237a6SMichael Riesch		irq-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
543922237a6SMichael Riesch		pinctrl-names = "default";
544922237a6SMichael Riesch		pinctrl-0 = <&touch_int &touch_rst>;
545922237a6SMichael Riesch		reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
546922237a6SMichael Riesch		VDDIO-supply = <&vcc3v3_lcd0_n>;
547922237a6SMichael Riesch	};
548922237a6SMichael Riesch};
549922237a6SMichael Riesch
550ea452bc0SMichael Riesch&i2s0_8ch {
551ea452bc0SMichael Riesch	status = "okay";
552ea452bc0SMichael Riesch};
553ea452bc0SMichael Riesch
5543e4c629cSMichael Riesch&i2s1_8ch {
5553e4c629cSMichael Riesch	rockchip,trcm-sync-tx-only;
5563e4c629cSMichael Riesch	status = "okay";
5573e4c629cSMichael Riesch};
5583e4c629cSMichael Riesch
559fc57d783SMichael Riesch&mdio0 {
560fc57d783SMichael Riesch	rgmii_phy0: ethernet-phy@0 {
561fc57d783SMichael Riesch		compatible = "ethernet-phy-ieee802.3-c22";
562fc57d783SMichael Riesch		reg = <0x0>;
563fc57d783SMichael Riesch		reset-assert-us = <20000>;
564fc57d783SMichael Riesch		reset-deassert-us = <100000>;
565fc57d783SMichael Riesch		reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
566fc57d783SMichael Riesch	};
567fc57d783SMichael Riesch};
568fc57d783SMichael Riesch
569fc57d783SMichael Riesch&mdio1 {
570fc57d783SMichael Riesch	rgmii_phy1: ethernet-phy@0 {
571fc57d783SMichael Riesch		compatible = "ethernet-phy-ieee802.3-c22";
572fc57d783SMichael Riesch		reg = <0x0>;
573fc57d783SMichael Riesch		reset-assert-us = <20000>;
574fc57d783SMichael Riesch		reset-deassert-us = <100000>;
575fc57d783SMichael Riesch		reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
576fc57d783SMichael Riesch	};
577fc57d783SMichael Riesch};
578fc57d783SMichael Riesch
57914f1c34eSMichael Riesch&pinctrl {
5809ade1ab4SMichael Riesch	display {
5819ade1ab4SMichael Riesch		vcc3v3_lcd0_n_en: vcc3v3_lcd0_n_en {
5829ade1ab4SMichael Riesch			rockchip,pins = <0 RK_PC7 0 &pcfg_pull_none>;
5839ade1ab4SMichael Riesch		};
5849ade1ab4SMichael Riesch		vcc3v3_lcd1_n_en: vcc3v3_lcd1_n_en {
5859ade1ab4SMichael Riesch			rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>;
5869ade1ab4SMichael Riesch		};
5879ade1ab4SMichael Riesch	};
5889ade1ab4SMichael Riesch
589406c607eSMichael Riesch	leds {
590406c607eSMichael Riesch		led_work_en: led_work_en {
591406c607eSMichael Riesch			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
592406c607eSMichael Riesch		};
593406c607eSMichael Riesch	};
594406c607eSMichael Riesch
59514f1c34eSMichael Riesch	pmic {
59614f1c34eSMichael Riesch		pmic_int: pmic_int {
59714f1c34eSMichael Riesch			rockchip,pins =
59814f1c34eSMichael Riesch				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
59914f1c34eSMichael Riesch		};
60014f1c34eSMichael Riesch	};
601922237a6SMichael Riesch
602922237a6SMichael Riesch	touchscreen {
603922237a6SMichael Riesch		touch_int: touch_int {
604922237a6SMichael Riesch			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
605922237a6SMichael Riesch		};
606922237a6SMichael Riesch		touch_rst: touch_rst {
607922237a6SMichael Riesch			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
608922237a6SMichael Riesch		};
609922237a6SMichael Riesch	};
610e49e24d7SMichael Riesch
611e49e24d7SMichael Riesch	usb {
612e49e24d7SMichael Riesch		vcc5v0_usb_host_en: vcc5v0_usb_host_en {
613e49e24d7SMichael Riesch			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
614e49e24d7SMichael Riesch		};
615d6cfb110SMichael Riesch		vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
616d6cfb110SMichael Riesch			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
617d6cfb110SMichael Riesch		};
618e49e24d7SMichael Riesch	};
61914f1c34eSMichael Riesch};
62014f1c34eSMichael Riesch
621e86d4810SMichael Riesch&pmu_io_domains {
622e86d4810SMichael Riesch	pmuio1-supply = <&vcc3v3_pmu>;
623e86d4810SMichael Riesch	pmuio2-supply = <&vcc3v3_pmu>;
624e86d4810SMichael Riesch	vccio1-supply = <&vccio_acodec>;
625e86d4810SMichael Riesch	vccio2-supply = <&vcc_1v8>;
626e86d4810SMichael Riesch	vccio3-supply = <&vccio_sd>;
627e86d4810SMichael Riesch	vccio4-supply = <&vcc_1v8>;
628e86d4810SMichael Riesch	vccio5-supply = <&vcc_3v3>;
629e86d4810SMichael Riesch	vccio6-supply = <&vcc_1v8>;
630e86d4810SMichael Riesch	vccio7-supply = <&vcc_3v3>;
631e86d4810SMichael Riesch	status = "okay";
632e86d4810SMichael Riesch};
633e86d4810SMichael Riesch
634*06b29cb8SAndy Yan&pwm4 {
635*06b29cb8SAndy Yan	status = "okay";
636*06b29cb8SAndy Yan};
637*06b29cb8SAndy Yan
638cf194472SMichael Riesch&saradc {
639cf194472SMichael Riesch	vref-supply = <&vcca_1v8>;
640cf194472SMichael Riesch	status = "okay";
641cf194472SMichael Riesch};
642cf194472SMichael Riesch
64301610a24SLiang Chen&sdhci {
64401610a24SLiang Chen	bus-width = <8>;
64501610a24SLiang Chen	max-frequency = <200000000>;
64601610a24SLiang Chen	non-removable;
6478a599b56SMichael Riesch	pinctrl-names = "default";
6488a599b56SMichael Riesch	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
64901610a24SLiang Chen	status = "okay";
65001610a24SLiang Chen};
65101610a24SLiang Chen
6522a068e19SMichael Riesch&sdmmc0 {
6532a068e19SMichael Riesch	bus-width = <4>;
6542a068e19SMichael Riesch	cap-sd-highspeed;
6552a068e19SMichael Riesch	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
6562a068e19SMichael Riesch	disable-wp;
6572a068e19SMichael Riesch	pinctrl-names = "default";
6582a068e19SMichael Riesch	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
6592a068e19SMichael Riesch	sd-uhs-sdr104;
6602a068e19SMichael Riesch	vmmc-supply = <&vcc3v3_sd>;
6612a068e19SMichael Riesch	vqmmc-supply = <&vccio_sd>;
6622a068e19SMichael Riesch	status = "okay";
6632a068e19SMichael Riesch};
6642a068e19SMichael Riesch
665679f048aSMichael Riesch&tsadc {
666679f048aSMichael Riesch	rockchip,hw-tshut-mode = <1>;
667679f048aSMichael Riesch	rockchip,hw-tshut-polarity = <0>;
668679f048aSMichael Riesch	status = "okay";
669679f048aSMichael Riesch};
670679f048aSMichael Riesch
67101610a24SLiang Chen&uart2 {
67201610a24SLiang Chen	status = "okay";
67301610a24SLiang Chen};
674e49e24d7SMichael Riesch
675e49e24d7SMichael Riesch&usb_host0_ehci {
676e49e24d7SMichael Riesch	status = "okay";
677e49e24d7SMichael Riesch};
678e49e24d7SMichael Riesch
679e49e24d7SMichael Riesch&usb_host0_ohci {
680e49e24d7SMichael Riesch	status = "okay";
681e49e24d7SMichael Riesch};
682e49e24d7SMichael Riesch
683d6cfb110SMichael Riesch&usb_host0_xhci {
684d6cfb110SMichael Riesch	extcon = <&usb2phy0>;
685d6cfb110SMichael Riesch	status = "okay";
686d6cfb110SMichael Riesch};
687d6cfb110SMichael Riesch
688e49e24d7SMichael Riesch&usb_host1_ehci {
689e49e24d7SMichael Riesch	status = "okay";
690e49e24d7SMichael Riesch};
691e49e24d7SMichael Riesch
692e49e24d7SMichael Riesch&usb_host1_ohci {
693e49e24d7SMichael Riesch	status = "okay";
694e49e24d7SMichael Riesch};
695e49e24d7SMichael Riesch
696d6cfb110SMichael Riesch&usb_host1_xhci {
697d6cfb110SMichael Riesch	status = "okay";
698d6cfb110SMichael Riesch};
699d6cfb110SMichael Riesch
700d6cfb110SMichael Riesch&usb2phy0 {
701d6cfb110SMichael Riesch	status = "okay";
702d6cfb110SMichael Riesch};
703d6cfb110SMichael Riesch
704d6cfb110SMichael Riesch&usb2phy0_host {
705d6cfb110SMichael Riesch	phy-supply = <&vcc5v0_usb_host>;
706d6cfb110SMichael Riesch	status = "okay";
707d6cfb110SMichael Riesch};
708d6cfb110SMichael Riesch
709d6cfb110SMichael Riesch&usb2phy0_otg {
7101988e3efSMichael Riesch	phy-supply = <&vcc5v0_usb_otg>;
711d6cfb110SMichael Riesch	status = "okay";
712d6cfb110SMichael Riesch};
713d6cfb110SMichael Riesch
714e49e24d7SMichael Riesch&usb2phy1 {
715e49e24d7SMichael Riesch	status = "okay";
716e49e24d7SMichael Riesch};
717e49e24d7SMichael Riesch
718e49e24d7SMichael Riesch&usb2phy1_host {
719e49e24d7SMichael Riesch	phy-supply = <&vcc5v0_usb_host>;
720e49e24d7SMichael Riesch	status = "okay";
721e49e24d7SMichael Riesch};
722e49e24d7SMichael Riesch
723e49e24d7SMichael Riesch&usb2phy1_otg {
724e49e24d7SMichael Riesch	phy-supply = <&vcc5v0_usb_host>;
725e49e24d7SMichael Riesch	status = "okay";
726e49e24d7SMichael Riesch};
727991b3d12SSascha Hauer
728991b3d12SSascha Hauer&vop {
729*06b29cb8SAndy Yan	assigned-clocks = <&cru DCLK_VOP0>, <&cru PLL_VPLL>, <&cru DCLK_VOP1>;
730*06b29cb8SAndy Yan	assigned-clock-parents = <&pmucru PLL_HPLL>, <&xin24m>, <&cru PLL_VPLL>;
731*06b29cb8SAndy Yan	assigned-clock-rates = <0>, <132000000>, <132000000>;
732991b3d12SSascha Hauer	status = "okay";
733991b3d12SSascha Hauer};
734991b3d12SSascha Hauer
735991b3d12SSascha Hauer&vop_mmu {
736991b3d12SSascha Hauer	status = "okay";
737991b3d12SSascha Hauer};
738991b3d12SSascha Hauer
739991b3d12SSascha Hauer&vp0 {
740991b3d12SSascha Hauer	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
741991b3d12SSascha Hauer		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
742991b3d12SSascha Hauer		remote-endpoint = <&hdmi_in_vp0>;
743991b3d12SSascha Hauer	};
744991b3d12SSascha Hauer};
745*06b29cb8SAndy Yan
746*06b29cb8SAndy Yan&vp1 {
747*06b29cb8SAndy Yan	vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
748*06b29cb8SAndy Yan		reg = <ROCKCHIP_VOP2_EP_MIPI0>;
749*06b29cb8SAndy Yan		remote-endpoint = <&dsi0_in_vp1>;
750*06b29cb8SAndy Yan	};
751*06b29cb8SAndy Yan};
752