xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
10*4882a593Smuzhiyun#include <dt-bindings/pinctrl/rockchip.h>
11*4882a593Smuzhiyun#include "rk3568.dtsi"
12*4882a593Smuzhiyun#include "rk3568-evb.dtsi"
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	model = "Rockchip RK3568 EVB5 DDR4 V10 Board";
16*4882a593Smuzhiyun	compatible = "rockchip,rk3568-evb5-ddr4-v10", "rockchip,rk3568";
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	rk_headset: rk-headset {
19*4882a593Smuzhiyun		compatible = "rockchip_headset";
20*4882a593Smuzhiyun		headset_gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
21*4882a593Smuzhiyun		pinctrl-names = "default";
22*4882a593Smuzhiyun		pinctrl-0 = <&hp_det>;
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun	vcc2v5_sys: vcc2v5-ddr {
26*4882a593Smuzhiyun		compatible = "regulator-fixed";
27*4882a593Smuzhiyun		regulator-name = "vcc2v5-sys";
28*4882a593Smuzhiyun		regulator-always-on;
29*4882a593Smuzhiyun		regulator-boot-on;
30*4882a593Smuzhiyun		regulator-min-microvolt = <2500000>;
31*4882a593Smuzhiyun		regulator-max-microvolt = <2500000>;
32*4882a593Smuzhiyun		vin-supply = <&vcc3v3_sys>;
33*4882a593Smuzhiyun	};
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun	pcie30_avdd0v9: pcie30-avdd0v9 {
36*4882a593Smuzhiyun		compatible = "regulator-fixed";
37*4882a593Smuzhiyun		regulator-name = "pcie30_avdd0v9";
38*4882a593Smuzhiyun		regulator-always-on;
39*4882a593Smuzhiyun		regulator-boot-on;
40*4882a593Smuzhiyun		regulator-min-microvolt = <900000>;
41*4882a593Smuzhiyun		regulator-max-microvolt = <900000>;
42*4882a593Smuzhiyun		vin-supply = <&vcc3v3_sys>;
43*4882a593Smuzhiyun	};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	pcie30_avdd1v8: pcie30-avdd1v8 {
46*4882a593Smuzhiyun		compatible = "regulator-fixed";
47*4882a593Smuzhiyun		regulator-name = "pcie30_avdd1v8";
48*4882a593Smuzhiyun		regulator-always-on;
49*4882a593Smuzhiyun		regulator-boot-on;
50*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
51*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
52*4882a593Smuzhiyun		vin-supply = <&vcc3v3_sys>;
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	vcc3v3_pcie: gpio-regulator {
56*4882a593Smuzhiyun		compatible = "regulator-fixed";
57*4882a593Smuzhiyun		regulator-name = "vcc3v3_pcie";
58*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
59*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
60*4882a593Smuzhiyun		gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
61*4882a593Smuzhiyun		startup-delay-us = <5000>;
62*4882a593Smuzhiyun		vin-supply = <&dc_12v>;
63*4882a593Smuzhiyun	};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun	vcc3v3_bu: vcc3v3-bu {
66*4882a593Smuzhiyun		compatible = "regulator-fixed";
67*4882a593Smuzhiyun		regulator-name = "vcc3v3_bu";
68*4882a593Smuzhiyun		regulator-always-on;
69*4882a593Smuzhiyun		regulator-boot-on;
70*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
71*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
72*4882a593Smuzhiyun		vin-supply = <&vcc5v0_sys>;
73*4882a593Smuzhiyun	};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	vcc_camera: vcc-camera-regulator {
76*4882a593Smuzhiyun		compatible = "regulator-fixed";
77*4882a593Smuzhiyun		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
78*4882a593Smuzhiyun		pinctrl-names = "default";
79*4882a593Smuzhiyun		pinctrl-0 = <&camera_pwr>;
80*4882a593Smuzhiyun		regulator-name = "vcc_camera";
81*4882a593Smuzhiyun		enable-active-high;
82*4882a593Smuzhiyun		regulator-always-on;
83*4882a593Smuzhiyun		regulator-boot-on;
84*4882a593Smuzhiyun	};
85*4882a593Smuzhiyun};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun&bt_sound {
88*4882a593Smuzhiyun	status = "disabled";
89*4882a593Smuzhiyun	simple-audio-card,cpu {
90*4882a593Smuzhiyun		sound-dai = <&i2s2_2ch>;
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun&combphy0_us {
95*4882a593Smuzhiyun	status = "okay";
96*4882a593Smuzhiyun};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun&combphy1_usq {
99*4882a593Smuzhiyun	rockchip,sgmii-mac-sel = <0>;
100*4882a593Smuzhiyun	status = "okay";
101*4882a593Smuzhiyun};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun&combphy2_psq {
104*4882a593Smuzhiyun	status = "okay";
105*4882a593Smuzhiyun};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun&csi2_dphy_hw {
108*4882a593Smuzhiyun	status = "okay";
109*4882a593Smuzhiyun};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun&csi2_dphy0 {
112*4882a593Smuzhiyun	status = "okay";
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	ports {
115*4882a593Smuzhiyun		#address-cells = <1>;
116*4882a593Smuzhiyun		#size-cells = <0>;
117*4882a593Smuzhiyun		port@0 {
118*4882a593Smuzhiyun			reg = <0>;
119*4882a593Smuzhiyun			#address-cells = <1>;
120*4882a593Smuzhiyun			#size-cells = <0>;
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun			mipi_in_ucam0: endpoint@1 {
123*4882a593Smuzhiyun				reg = <1>;
124*4882a593Smuzhiyun				remote-endpoint = <&ucam_out0>;
125*4882a593Smuzhiyun				data-lanes = <1 2 3 4>;
126*4882a593Smuzhiyun			};
127*4882a593Smuzhiyun			mipi_in_ucam1: endpoint@2 {
128*4882a593Smuzhiyun				reg = <2>;
129*4882a593Smuzhiyun				remote-endpoint = <&gc8034_out>;
130*4882a593Smuzhiyun				data-lanes = <1 2 3 4>;
131*4882a593Smuzhiyun			};
132*4882a593Smuzhiyun			mipi_in_ucam2: endpoint@3 {
133*4882a593Smuzhiyun				reg = <3>;
134*4882a593Smuzhiyun				remote-endpoint = <&ov5695_out>;
135*4882a593Smuzhiyun				data-lanes = <1 2>;
136*4882a593Smuzhiyun			};
137*4882a593Smuzhiyun		};
138*4882a593Smuzhiyun		port@1 {
139*4882a593Smuzhiyun			reg = <1>;
140*4882a593Smuzhiyun			#address-cells = <1>;
141*4882a593Smuzhiyun			#size-cells = <0>;
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun			csidphy_out: endpoint@0 {
144*4882a593Smuzhiyun				reg = <0>;
145*4882a593Smuzhiyun				remote-endpoint = <&isp0_in>;
146*4882a593Smuzhiyun			};
147*4882a593Smuzhiyun		};
148*4882a593Smuzhiyun	};
149*4882a593Smuzhiyun};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun/*
152*4882a593Smuzhiyun * video_phy0 needs to be enabled
153*4882a593Smuzhiyun * when dsi0 is enabled
154*4882a593Smuzhiyun */
155*4882a593Smuzhiyun&dsi0 {
156*4882a593Smuzhiyun	status = "okay";
157*4882a593Smuzhiyun};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun&dsi0_in_vp0 {
160*4882a593Smuzhiyun	status = "disabled";
161*4882a593Smuzhiyun};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun&dsi0_in_vp1 {
164*4882a593Smuzhiyun	status = "okay";
165*4882a593Smuzhiyun};
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun&dsi0_panel {
168*4882a593Smuzhiyun	power-supply = <&vcc3v3_lcd0_n>;
169*4882a593Smuzhiyun};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun/*
172*4882a593Smuzhiyun * video_phy1 needs to be enabled
173*4882a593Smuzhiyun * when dsi1 is enabled
174*4882a593Smuzhiyun */
175*4882a593Smuzhiyun&dsi1 {
176*4882a593Smuzhiyun	status = "disabled";
177*4882a593Smuzhiyun};
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun&dsi1_in_vp0 {
180*4882a593Smuzhiyun	status = "disabled";
181*4882a593Smuzhiyun};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun&dsi1_in_vp1 {
184*4882a593Smuzhiyun	status = "disabled";
185*4882a593Smuzhiyun};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun&dsi1_panel {
188*4882a593Smuzhiyun	power-supply = <&vcc3v3_lcd1_n>;
189*4882a593Smuzhiyun};
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun&edp {
192*4882a593Smuzhiyun	hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
193*4882a593Smuzhiyun	status = "okay";
194*4882a593Smuzhiyun};
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun&edp_phy {
197*4882a593Smuzhiyun	status = "okay";
198*4882a593Smuzhiyun};
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun&edp_in_vp0 {
201*4882a593Smuzhiyun	status = "okay";
202*4882a593Smuzhiyun};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun&edp_in_vp1 {
205*4882a593Smuzhiyun	status = "disabled";
206*4882a593Smuzhiyun};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun&gmac0 {
209*4882a593Smuzhiyun	phy-mode = "sgmii";
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	rockchip,pipegrf = <&pipegrf>;
212*4882a593Smuzhiyun	rockchip,xpcs = <&xpcs>;
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	snps,reset-gpio = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
215*4882a593Smuzhiyun	snps,reset-active-low;
216*4882a593Smuzhiyun	/* Reset time is 20ms, 100ms for rtl8211f */
217*4882a593Smuzhiyun	snps,reset-delays-us = <0 20000 100000>;
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>;
220*4882a593Smuzhiyun	assigned-clock-parents = <&gmac0_xpcsclk>;
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	pinctrl-names = "default";
223*4882a593Smuzhiyun	pinctrl-0 = <&gmac0_miim>;
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	power-domains = <&power RK3568_PD_PIPE>;
226*4882a593Smuzhiyun	phys = <&combphy1_usq PHY_TYPE_SGMII>;
227*4882a593Smuzhiyun	phy-handle = <&sgmii_phy>;
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun	status = "okay";
230*4882a593Smuzhiyun};
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun&gmac1 {
233*4882a593Smuzhiyun	phy-mode = "rgmii";
234*4882a593Smuzhiyun	clock_in_out = "output";
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun	snps,reset-gpio = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
237*4882a593Smuzhiyun	snps,reset-active-low;
238*4882a593Smuzhiyun	/* Reset time is 20ms, 100ms for rtl8211f */
239*4882a593Smuzhiyun	snps,reset-delays-us = <0 20000 100000>;
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
242*4882a593Smuzhiyun	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
243*4882a593Smuzhiyun	assigned-clock-rates = <0>, <125000000>;
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun	pinctrl-names = "default";
246*4882a593Smuzhiyun	pinctrl-0 = <&gmac1m1_miim
247*4882a593Smuzhiyun		     &gmac1m1_tx_bus2_level3
248*4882a593Smuzhiyun		     &gmac1m1_rx_bus2
249*4882a593Smuzhiyun		     &gmac1m1_rgmii_clk_level2
250*4882a593Smuzhiyun		     &gmac1m1_rgmii_bus_level3>;
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun	tx_delay = <0x46>;
253*4882a593Smuzhiyun	rx_delay = <0x2f>;
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun	phy-handle = <&rgmii_phy1>;
256*4882a593Smuzhiyun	status = "okay";
257*4882a593Smuzhiyun};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun/*
260*4882a593Smuzhiyun * power-supply should switche to vcc3v3_lcd1_n
261*4882a593Smuzhiyun * when mipi panel is connected to dsi1.
262*4882a593Smuzhiyun */
263*4882a593Smuzhiyun&gt1x {
264*4882a593Smuzhiyun	power-supply = <&vcc3v3_lcd0_n>;
265*4882a593Smuzhiyun};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun&i2c3 {
268*4882a593Smuzhiyun	clock-frequency = <400000>;
269*4882a593Smuzhiyun	status = "okay";
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun	sii9022: sii9022@39 {
272*4882a593Smuzhiyun		compatible = "sil,sii9022";
273*4882a593Smuzhiyun		reg = <0x39>;
274*4882a593Smuzhiyun		pinctrl-names = "default";
275*4882a593Smuzhiyun		pinctrl-0 = <&sii902x_hdmi_int>;
276*4882a593Smuzhiyun		interrupt-parent = <&gpio4>;
277*4882a593Smuzhiyun		interrupts = <RK_PD2 IRQ_TYPE_LEVEL_HIGH>;
278*4882a593Smuzhiyun		reset-gpio = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>;
279*4882a593Smuzhiyun		enable-gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
280*4882a593Smuzhiyun		bus-format = <0>;
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun		ports {
283*4882a593Smuzhiyun			#address-cells = <1>;
284*4882a593Smuzhiyun			#size-cells = <0>;
285*4882a593Smuzhiyun
286*4882a593Smuzhiyun			port@0 {
287*4882a593Smuzhiyun				reg = <0>;
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun				sii9022_in_rgb: endpoint {
290*4882a593Smuzhiyun					remote-endpoint = <&rgb_out_sii9022>;
291*4882a593Smuzhiyun				};
292*4882a593Smuzhiyun			};
293*4882a593Smuzhiyun		};
294*4882a593Smuzhiyun	};
295*4882a593Smuzhiyun};
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun&i2c4 {
298*4882a593Smuzhiyun	status = "okay";
299*4882a593Smuzhiyun	gc8034: gc8034@37 {
300*4882a593Smuzhiyun		compatible = "galaxycore,gc8034";
301*4882a593Smuzhiyun		status = "okay";
302*4882a593Smuzhiyun		reg = <0x37>;
303*4882a593Smuzhiyun		clocks = <&cru CLK_CIF_OUT>;
304*4882a593Smuzhiyun		clock-names = "xvclk";
305*4882a593Smuzhiyun		pinctrl-names = "default";
306*4882a593Smuzhiyun		pinctrl-0 = <&cif_clk>;
307*4882a593Smuzhiyun		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
308*4882a593Smuzhiyun		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_LOW>;
309*4882a593Smuzhiyun		rockchip,grf = <&grf>;
310*4882a593Smuzhiyun		rockchip,camera-module-index = <0>;
311*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
312*4882a593Smuzhiyun		rockchip,camera-module-name = "RK-CMK-8M-2-v1";
313*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "CK8401";
314*4882a593Smuzhiyun		port {
315*4882a593Smuzhiyun			gc8034_out: endpoint {
316*4882a593Smuzhiyun				remote-endpoint = <&mipi_in_ucam1>;
317*4882a593Smuzhiyun				data-lanes = <1 2 3 4>;
318*4882a593Smuzhiyun			};
319*4882a593Smuzhiyun		};
320*4882a593Smuzhiyun	};
321*4882a593Smuzhiyun	os04a10: os04a10@36 {
322*4882a593Smuzhiyun		compatible = "ovti,os04a10";
323*4882a593Smuzhiyun		reg = <0x36>;
324*4882a593Smuzhiyun		clocks = <&cru CLK_CIF_OUT>;
325*4882a593Smuzhiyun		clock-names = "xvclk";
326*4882a593Smuzhiyun		power-domains = <&power RK3568_PD_VI>;
327*4882a593Smuzhiyun		pinctrl-names = "default";
328*4882a593Smuzhiyun		pinctrl-0 = <&cif_clk>;
329*4882a593Smuzhiyun		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
330*4882a593Smuzhiyun		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
331*4882a593Smuzhiyun		rockchip,camera-module-index = <0>;
332*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
333*4882a593Smuzhiyun		rockchip,camera-module-name = "CMK-OT1607-FV1";
334*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16";
335*4882a593Smuzhiyun		port {
336*4882a593Smuzhiyun			ucam_out0: endpoint {
337*4882a593Smuzhiyun				remote-endpoint = <&mipi_in_ucam0>;
338*4882a593Smuzhiyun				data-lanes = <1 2 3 4>;
339*4882a593Smuzhiyun			};
340*4882a593Smuzhiyun		};
341*4882a593Smuzhiyun	};
342*4882a593Smuzhiyun	ov5695: ov5695@36 {
343*4882a593Smuzhiyun		status = "okay";
344*4882a593Smuzhiyun		compatible = "ovti,ov5695";
345*4882a593Smuzhiyun		reg = <0x36>;
346*4882a593Smuzhiyun		clocks = <&cru CLK_CIF_OUT>;
347*4882a593Smuzhiyun		clock-names = "xvclk";
348*4882a593Smuzhiyun		power-domains = <&power RK3568_PD_VI>;
349*4882a593Smuzhiyun		pinctrl-names = "default";
350*4882a593Smuzhiyun		pinctrl-0 = <&cif_clk>;
351*4882a593Smuzhiyun		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
352*4882a593Smuzhiyun		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
353*4882a593Smuzhiyun		rockchip,camera-module-index = <0>;
354*4882a593Smuzhiyun		rockchip,camera-module-facing = "back";
355*4882a593Smuzhiyun		rockchip,camera-module-name = "TongJu";
356*4882a593Smuzhiyun		rockchip,camera-module-lens-name = "CHT842-MD";
357*4882a593Smuzhiyun		port {
358*4882a593Smuzhiyun			ov5695_out: endpoint {
359*4882a593Smuzhiyun				remote-endpoint = <&mipi_in_ucam2>;
360*4882a593Smuzhiyun				data-lanes = <1 2>;
361*4882a593Smuzhiyun			};
362*4882a593Smuzhiyun		};
363*4882a593Smuzhiyun	};
364*4882a593Smuzhiyun};
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun&i2c5 {
367*4882a593Smuzhiyun	status = "disabled";
368*4882a593Smuzhiyun};
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun&i2s2_2ch {
371*4882a593Smuzhiyun	pinctrl-0 = <&i2s2m0_sclktx &i2s2m0_lrcktx &i2s2m0_sdi &i2s2m0_sdo>;
372*4882a593Smuzhiyun	rockchip,bclk-fs = <32>;
373*4882a593Smuzhiyun	status = "disabled";
374*4882a593Smuzhiyun};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun&mdio0 {
377*4882a593Smuzhiyun	sgmii_phy: phy@1 {
378*4882a593Smuzhiyun		compatible = "ethernet-phy-ieee802.3-c22";
379*4882a593Smuzhiyun		reg = <0x1>;
380*4882a593Smuzhiyun	};
381*4882a593Smuzhiyun};
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun&mdio1 {
384*4882a593Smuzhiyun	rgmii_phy1: phy@0 {
385*4882a593Smuzhiyun		compatible = "ethernet-phy-ieee802.3-c22";
386*4882a593Smuzhiyun		reg = <0x0>;
387*4882a593Smuzhiyun	};
388*4882a593Smuzhiyun};
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun&video_phy0 {
391*4882a593Smuzhiyun	status = "okay";
392*4882a593Smuzhiyun};
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun&video_phy1 {
395*4882a593Smuzhiyun	status = "disabled";
396*4882a593Smuzhiyun};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun&pcie30phy {
399*4882a593Smuzhiyun	status = "okay";
400*4882a593Smuzhiyun};
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun&pcie3x2 {
403*4882a593Smuzhiyun	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
404*4882a593Smuzhiyun	vpcie3v3-supply = <&vcc3v3_pcie>;
405*4882a593Smuzhiyun	status = "okay";
406*4882a593Smuzhiyun};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun&pinctrl {
409*4882a593Smuzhiyun	cam {
410*4882a593Smuzhiyun		camera_pwr: camera-pwr {
411*4882a593Smuzhiyun			rockchip,pins =
412*4882a593Smuzhiyun				/* camera power en */
413*4882a593Smuzhiyun				<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
414*4882a593Smuzhiyun		};
415*4882a593Smuzhiyun	};
416*4882a593Smuzhiyun	headphone {
417*4882a593Smuzhiyun		hp_det: hp-det {
418*4882a593Smuzhiyun			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
419*4882a593Smuzhiyun		};
420*4882a593Smuzhiyun	};
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun	sii902x {
423*4882a593Smuzhiyun		sii902x_hdmi_int: sii902x-hdmi-int {
424*4882a593Smuzhiyun			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
425*4882a593Smuzhiyun		};
426*4882a593Smuzhiyun	};
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun	wireless-wlan {
429*4882a593Smuzhiyun		wifi_host_wake_irq: wifi-host-wake-irq {
430*4882a593Smuzhiyun			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
431*4882a593Smuzhiyun		};
432*4882a593Smuzhiyun	};
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun	wireless-bluetooth {
435*4882a593Smuzhiyun		uart8_gpios: uart8-gpios {
436*4882a593Smuzhiyun			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
437*4882a593Smuzhiyun		};
438*4882a593Smuzhiyun	};
439*4882a593Smuzhiyun};
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun&rgb {
442*4882a593Smuzhiyun	status = "okay";
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun	ports {
445*4882a593Smuzhiyun		port@1 {
446*4882a593Smuzhiyun			reg = <1>;
447*4882a593Smuzhiyun			#address-cells = <1>;
448*4882a593Smuzhiyun			#size-cells = <0>;
449*4882a593Smuzhiyun
450*4882a593Smuzhiyun			rgb_out_sii9022: endpoint@0 {
451*4882a593Smuzhiyun				reg = <0>;
452*4882a593Smuzhiyun				remote-endpoint = <&sii9022_in_rgb>;
453*4882a593Smuzhiyun			};
454*4882a593Smuzhiyun		};
455*4882a593Smuzhiyun	};
456*4882a593Smuzhiyun};
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun&rgb_in_vp2 {
459*4882a593Smuzhiyun	status = "okay";
460*4882a593Smuzhiyun};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun&rkisp {
463*4882a593Smuzhiyun	status = "okay";
464*4882a593Smuzhiyun};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun&rkisp_mmu {
467*4882a593Smuzhiyun	status = "okay";
468*4882a593Smuzhiyun};
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun&rkisp_vir0 {
471*4882a593Smuzhiyun	status = "okay";
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun	port {
474*4882a593Smuzhiyun		#address-cells = <1>;
475*4882a593Smuzhiyun		#size-cells = <0>;
476*4882a593Smuzhiyun
477*4882a593Smuzhiyun		isp0_in: endpoint@0 {
478*4882a593Smuzhiyun			reg = <0>;
479*4882a593Smuzhiyun			remote-endpoint = <&csidphy_out>;
480*4882a593Smuzhiyun		};
481*4882a593Smuzhiyun	};
482*4882a593Smuzhiyun};
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun&route_dsi0 {
485*4882a593Smuzhiyun	status = "okay";
486*4882a593Smuzhiyun	connect = <&vp1_out_dsi0>;
487*4882a593Smuzhiyun};
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun&sata2 {
490*4882a593Smuzhiyun	status = "okay";
491*4882a593Smuzhiyun};
492*4882a593Smuzhiyun
493*4882a593Smuzhiyun&sdmmc2 {
494*4882a593Smuzhiyun	max-frequency = <150000000>;
495*4882a593Smuzhiyun	no-sd;
496*4882a593Smuzhiyun	no-mmc;
497*4882a593Smuzhiyun	bus-width = <4>;
498*4882a593Smuzhiyun	disable-wp;
499*4882a593Smuzhiyun	cap-sd-highspeed;
500*4882a593Smuzhiyun	cap-sdio-irq;
501*4882a593Smuzhiyun	keep-power-in-suspend;
502*4882a593Smuzhiyun	mmc-pwrseq = <&sdio_pwrseq>;
503*4882a593Smuzhiyun	non-removable;
504*4882a593Smuzhiyun	pinctrl-names = "default";
505*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
506*4882a593Smuzhiyun	sd-uhs-sdr104;
507*4882a593Smuzhiyun	status = "okay";
508*4882a593Smuzhiyun};
509*4882a593Smuzhiyun
510*4882a593Smuzhiyun&spdif_8ch {
511*4882a593Smuzhiyun	status = "okay";
512*4882a593Smuzhiyun	pinctrl-names = "default";
513*4882a593Smuzhiyun	pinctrl-0 = <&spdifm1_tx>;
514*4882a593Smuzhiyun};
515*4882a593Smuzhiyun
516*4882a593Smuzhiyun&uart8 {
517*4882a593Smuzhiyun	status = "okay";
518*4882a593Smuzhiyun	pinctrl-names = "default";
519*4882a593Smuzhiyun	pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn>;
520*4882a593Smuzhiyun};
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun&vcc3v3_lcd0_n {
523*4882a593Smuzhiyun	gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
524*4882a593Smuzhiyun	enable-active-high;
525*4882a593Smuzhiyun};
526*4882a593Smuzhiyun
527*4882a593Smuzhiyun&vcc3v3_lcd1_n {
528*4882a593Smuzhiyun	gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
529*4882a593Smuzhiyun	enable-active-high;
530*4882a593Smuzhiyun};
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun&wireless_wlan {
533*4882a593Smuzhiyun	pinctrl-names = "default";
534*4882a593Smuzhiyun	pinctrl-0 = <&wifi_host_wake_irq>;
535*4882a593Smuzhiyun	WIFI,host_wake_irq = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
536*4882a593Smuzhiyun};
537*4882a593Smuzhiyun
538*4882a593Smuzhiyun&wireless_bluetooth {
539*4882a593Smuzhiyun	compatible = "bluetooth-platdata";
540*4882a593Smuzhiyun	clocks = <&rk809 1>;
541*4882a593Smuzhiyun	clock-names = "ext_clock";
542*4882a593Smuzhiyun	//wifi-bt-power-toggle;
543*4882a593Smuzhiyun	uart_rts_gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
544*4882a593Smuzhiyun	pinctrl-names = "default", "rts_gpio";
545*4882a593Smuzhiyun	pinctrl-0 = <&uart8m0_rtsn>;
546*4882a593Smuzhiyun	pinctrl-1 = <&uart8_gpios>;
547*4882a593Smuzhiyun	BT,reset_gpio    = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
548*4882a593Smuzhiyun	BT,wake_gpio     = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
549*4882a593Smuzhiyun	BT,wake_host_irq = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
550*4882a593Smuzhiyun	status = "okay";
551*4882a593Smuzhiyun};
552