xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/rockchip/rk3588.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#include <dt-bindings/phy/phy-snps-pcie3.h>
7*4882a593Smuzhiyun#include "rk3588s.dtsi"
8*4882a593Smuzhiyun#include "rk3588-vccio3-pinctrl.dtsi"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	aliases {
12*4882a593Smuzhiyun		dp0 = &dp0;
13*4882a593Smuzhiyun		dp1 = &dp1;
14*4882a593Smuzhiyun		edp0 = &edp0;
15*4882a593Smuzhiyun		edp1 = &edp1;
16*4882a593Smuzhiyun		ethernet0 = &gmac0;
17*4882a593Smuzhiyun		hdptx0 = &hdptxphy0;
18*4882a593Smuzhiyun		hdptx1 = &hdptxphy1;
19*4882a593Smuzhiyun		hdptxhdmi0 = &hdptxphy_hdmi0;
20*4882a593Smuzhiyun		hdptxhdmi1 = &hdptxphy_hdmi1;
21*4882a593Smuzhiyun		hdmi0 = &hdmi0;
22*4882a593Smuzhiyun		hdmi1 = &hdmi1;
23*4882a593Smuzhiyun		hdmirx0 = &hdmirx_ctrler;
24*4882a593Smuzhiyun		rkcif_mipi_lvds4= &rkcif_mipi_lvds4;
25*4882a593Smuzhiyun		rkcif_mipi_lvds5= &rkcif_mipi_lvds5;
26*4882a593Smuzhiyun		usbdp0 = &usbdp_phy0;
27*4882a593Smuzhiyun		usbdp1 = &usbdp_phy1;
28*4882a593Smuzhiyun	};
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	rkcif_mipi_lvds4: rkcif-mipi-lvds4 {
31*4882a593Smuzhiyun		compatible = "rockchip,rkcif-mipi-lvds";
32*4882a593Smuzhiyun		rockchip,hw = <&rkcif>;
33*4882a593Smuzhiyun		iommus = <&rkcif_mmu>;
34*4882a593Smuzhiyun		status = "disabled";
35*4882a593Smuzhiyun	};
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	rkcif_mipi_lvds4_sditf: rkcif-mipi-lvds4-sditf {
38*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
39*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds4>;
40*4882a593Smuzhiyun		status = "disabled";
41*4882a593Smuzhiyun	};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	rkcif_mipi_lvds4_sditf_vir1: rkcif-mipi-lvds4-sditf-vir1 {
44*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
45*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds4>;
46*4882a593Smuzhiyun		status = "disabled";
47*4882a593Smuzhiyun	};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	rkcif_mipi_lvds4_sditf_vir2: rkcif-mipi-lvds4-sditf-vir2 {
50*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
51*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds4>;
52*4882a593Smuzhiyun		status = "disabled";
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	rkcif_mipi_lvds4_sditf_vir3: rkcif-mipi-lvds4-sditf-vir3 {
56*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
57*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds4>;
58*4882a593Smuzhiyun		status = "disabled";
59*4882a593Smuzhiyun	};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	rkcif_mipi_lvds5: rkcif-mipi-lvds5 {
62*4882a593Smuzhiyun		compatible = "rockchip,rkcif-mipi-lvds";
63*4882a593Smuzhiyun		rockchip,hw = <&rkcif>;
64*4882a593Smuzhiyun		iommus = <&rkcif_mmu>;
65*4882a593Smuzhiyun		status = "disabled";
66*4882a593Smuzhiyun	};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun	rkcif_mipi_lvds5_sditf: rkcif-mipi-lvds5-sditf {
69*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
70*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds5>;
71*4882a593Smuzhiyun		status = "disabled";
72*4882a593Smuzhiyun	};
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	rkcif_mipi_lvds5_sditf_vir1: rkcif-mipi-lvds5-sditf-vir1 {
75*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
76*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds5>;
77*4882a593Smuzhiyun		status = "disabled";
78*4882a593Smuzhiyun	};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	rkcif_mipi_lvds5_sditf_vir2: rkcif-mipi-lvds5-sditf-vir2 {
81*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
82*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds5>;
83*4882a593Smuzhiyun		status = "disabled";
84*4882a593Smuzhiyun	};
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun	rkcif_mipi_lvds5_sditf_vir3: rkcif-mipi-lvds5-sditf-vir3 {
87*4882a593Smuzhiyun		compatible = "rockchip,rkcif-sditf";
88*4882a593Smuzhiyun		rockchip,cif = <&rkcif_mipi_lvds5>;
89*4882a593Smuzhiyun		status = "disabled";
90*4882a593Smuzhiyun	};
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun	usbdrd3_1: usbdrd3_1 {
93*4882a593Smuzhiyun		compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3";
94*4882a593Smuzhiyun		clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
95*4882a593Smuzhiyun			 <&cru ACLK_USB3OTG1>;
96*4882a593Smuzhiyun		clock-names = "ref", "suspend", "bus";
97*4882a593Smuzhiyun		#address-cells = <2>;
98*4882a593Smuzhiyun		#size-cells = <2>;
99*4882a593Smuzhiyun		ranges;
100*4882a593Smuzhiyun		status = "disabled";
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun		usbdrd_dwc3_1: usb@fc400000 {
103*4882a593Smuzhiyun			compatible = "snps,dwc3";
104*4882a593Smuzhiyun			reg = <0x0 0xfc400000 0x0 0x400000>;
105*4882a593Smuzhiyun			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
106*4882a593Smuzhiyun			power-domains = <&power RK3588_PD_USB>;
107*4882a593Smuzhiyun			resets = <&cru SRST_A_USB3OTG1>;
108*4882a593Smuzhiyun			reset-names = "usb3-otg";
109*4882a593Smuzhiyun			dr_mode = "host";
110*4882a593Smuzhiyun			phys = <&u2phy1_otg>, <&usbdp_phy1_u3>;
111*4882a593Smuzhiyun			phy-names = "usb2-phy", "usb3-phy";
112*4882a593Smuzhiyun			phy_type = "utmi_wide";
113*4882a593Smuzhiyun			snps,dis_enblslpm_quirk;
114*4882a593Smuzhiyun			snps,dis-u1-entry-quirk;
115*4882a593Smuzhiyun			snps,dis-u2-entry-quirk;
116*4882a593Smuzhiyun			snps,dis-u2-freeclk-exists-quirk;
117*4882a593Smuzhiyun			snps,dis-del-phy-power-chg-quirk;
118*4882a593Smuzhiyun			snps,dis-tx-ipgap-linecheck-quirk;
119*4882a593Smuzhiyun			snps,parkmode-disable-ss-quirk;
120*4882a593Smuzhiyun			status = "disabled";
121*4882a593Smuzhiyun		};
122*4882a593Smuzhiyun	};
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun	pcie30_phy_grf: syscon@fd5b8000 {
125*4882a593Smuzhiyun		compatible = "rockchip,pcie30-phy-grf", "syscon";
126*4882a593Smuzhiyun		reg = <0x0 0xfd5b8000 0x0 0x10000>;
127*4882a593Smuzhiyun	};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	pipe_phy1_grf: syscon@fd5c0000 {
130*4882a593Smuzhiyun		compatible = "rockchip,pipe-phy-grf", "syscon";
131*4882a593Smuzhiyun		reg = <0x0 0xfd5c0000 0x0 0x100>;
132*4882a593Smuzhiyun	};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	usbdpphy1_grf: syscon@fd5cc000 {
135*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
136*4882a593Smuzhiyun		reg = <0x0 0xfd5cc000 0x0 0x4000>;
137*4882a593Smuzhiyun	};
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun	usb2phy1_grf: syscon@fd5d4000 {
140*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
141*4882a593Smuzhiyun			     "simple-mfd";
142*4882a593Smuzhiyun		reg = <0x0 0xfd5d4000 0x0 0x4000>;
143*4882a593Smuzhiyun		#address-cells = <1>;
144*4882a593Smuzhiyun		#size-cells = <1>;
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun		u2phy1: usb2-phy@4000 {
147*4882a593Smuzhiyun			compatible = "rockchip,rk3588-usb2phy";
148*4882a593Smuzhiyun			reg = <0x4000 0x10>;
149*4882a593Smuzhiyun			interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
150*4882a593Smuzhiyun			resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
151*4882a593Smuzhiyun			reset-names = "phy", "apb";
152*4882a593Smuzhiyun			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
153*4882a593Smuzhiyun			clock-names = "phyclk";
154*4882a593Smuzhiyun			clock-output-names = "usb480m_phy1";
155*4882a593Smuzhiyun			#clock-cells = <0>;
156*4882a593Smuzhiyun			rockchip,usbctrl-grf = <&usb_grf>;
157*4882a593Smuzhiyun			status = "disabled";
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun			u2phy1_otg: otg-port {
160*4882a593Smuzhiyun				#phy-cells = <0>;
161*4882a593Smuzhiyun				status = "disabled";
162*4882a593Smuzhiyun			};
163*4882a593Smuzhiyun		};
164*4882a593Smuzhiyun	};
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun	hdptxphy1_grf: syscon@fd5e4000 {
167*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
168*4882a593Smuzhiyun		reg = <0x0 0xfd5e4000 0x0 0x100>;
169*4882a593Smuzhiyun	};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	spdif_tx5: spdif-tx@fddb8000 {
172*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
173*4882a593Smuzhiyun		reg = <0x0 0xfddb8000 0x0 0x1000>;
174*4882a593Smuzhiyun		interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
175*4882a593Smuzhiyun		dmas = <&dmac1 22>;
176*4882a593Smuzhiyun		dma-names = "tx";
177*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
178*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIF5>, <&cru HCLK_SPDIF5_DP1>;
179*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_SPDIF5_DP1_SRC>;
180*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
181*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO0>;
182*4882a593Smuzhiyun		#sound-dai-cells = <0>;
183*4882a593Smuzhiyun		status = "disabled";
184*4882a593Smuzhiyun	};
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun	i2s8_8ch: i2s@fddc8000 {
187*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
188*4882a593Smuzhiyun		reg = <0x0 0xfddc8000 0x0 0x1000>;
189*4882a593Smuzhiyun		interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
190*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S8_8CH_TX>, <&cru HCLK_I2S8_8CH>;
191*4882a593Smuzhiyun		clock-names = "mclk_tx", "hclk";
192*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_I2S8_8CH_TX_SRC>;
193*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
194*4882a593Smuzhiyun		dmas = <&dmac2 22>;
195*4882a593Smuzhiyun		dma-names = "tx";
196*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO0>;
197*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S8_8CH_TX>;
198*4882a593Smuzhiyun		reset-names = "tx-m";
199*4882a593Smuzhiyun		rockchip,playback-only;
200*4882a593Smuzhiyun		#sound-dai-cells = <0>;
201*4882a593Smuzhiyun		status = "disabled";
202*4882a593Smuzhiyun	};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun	spdif_tx4: spdif-tx@fdde8000 {
205*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
206*4882a593Smuzhiyun		reg = <0x0 0xfdde8000 0x0 0x1000>;
207*4882a593Smuzhiyun		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
208*4882a593Smuzhiyun		dmas = <&dmac1 8>;
209*4882a593Smuzhiyun		dma-names = "tx";
210*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
211*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIF4>, <&cru HCLK_SPDIF4>;
212*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_SPDIF4_SRC>;
213*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
214*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
215*4882a593Smuzhiyun		#sound-dai-cells = <0>;
216*4882a593Smuzhiyun		status = "disabled";
217*4882a593Smuzhiyun	};
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun	i2s6_8ch: i2s@fddf4000 {
220*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
221*4882a593Smuzhiyun		reg = <0x0 0xfddf4000 0x0 0x1000>;
222*4882a593Smuzhiyun		interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
223*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S6_8CH_TX>, <&cru MCLK_I2S6_8CH_TX>, <&cru HCLK_I2S6_8CH>;
224*4882a593Smuzhiyun		clock-names = "mclk_tx", "mclk_rx", "hclk";
225*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_I2S6_8CH_TX_SRC>;
226*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_GPLL>;
227*4882a593Smuzhiyun		dmas = <&dmac2 4>;
228*4882a593Smuzhiyun		dma-names = "tx";
229*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
230*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S6_8CH_TX>;
231*4882a593Smuzhiyun		reset-names = "tx-m";
232*4882a593Smuzhiyun		rockchip,always-on;
233*4882a593Smuzhiyun		rockchip,hdmi-path;
234*4882a593Smuzhiyun		rockchip,playback-only;
235*4882a593Smuzhiyun		#sound-dai-cells = <0>;
236*4882a593Smuzhiyun		status = "disabled";
237*4882a593Smuzhiyun	};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun	i2s7_8ch: i2s@fddf8000 {
240*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
241*4882a593Smuzhiyun		reg = <0x0 0xfddf8000 0x0 0x1000>;
242*4882a593Smuzhiyun		interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
243*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S7_8CH_RX>, <&cru MCLK_I2S7_8CH_RX>, <&cru HCLK_I2S7_8CH>;
244*4882a593Smuzhiyun		clock-names = "mclk_tx", "mclk_rx", "hclk";
245*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_I2S7_8CH_RX_SRC>;
246*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
247*4882a593Smuzhiyun		dmas = <&dmac2 21>;
248*4882a593Smuzhiyun		dma-names = "rx";
249*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
250*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S7_8CH_RX>;
251*4882a593Smuzhiyun		reset-names = "rx-m";
252*4882a593Smuzhiyun		rockchip,capture-only;
253*4882a593Smuzhiyun		#sound-dai-cells = <0>;
254*4882a593Smuzhiyun		status = "disabled";
255*4882a593Smuzhiyun	};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun	i2s10_8ch: i2s@fde00000 {
258*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
259*4882a593Smuzhiyun		reg = <0x0 0xfde00000 0x0 0x1000>;
260*4882a593Smuzhiyun		interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
261*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S10_8CH_RX>, <&cru MCLK_I2S10_8CH_RX>, <&cru HCLK_I2S10_8CH>;
262*4882a593Smuzhiyun		clock-names = "mclk_tx", "mclk_rx", "hclk";
263*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_I2S10_8CH_RX_SRC>;
264*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
265*4882a593Smuzhiyun		dmas = <&dmac2 24>;
266*4882a593Smuzhiyun		dma-names = "rx";
267*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
268*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S10_8CH_RX>;
269*4882a593Smuzhiyun		reset-names = "rx-m";
270*4882a593Smuzhiyun		rockchip,capture-only;
271*4882a593Smuzhiyun		#sound-dai-cells = <0>;
272*4882a593Smuzhiyun		status = "disabled";
273*4882a593Smuzhiyun	};
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun	spdif_rx1: spdif-rx@fde10000 {
276*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdifrx", "rockchip,rk3308-spdifrx";
277*4882a593Smuzhiyun		reg = <0x0 0xfde10000 0x0 0x1000>;
278*4882a593Smuzhiyun		interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
279*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIFRX1>, <&cru HCLK_SPDIFRX1>;
280*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
281*4882a593Smuzhiyun		assigned-clocks = <&cru MCLK_SPDIFRX1>;
282*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
283*4882a593Smuzhiyun		dmas = <&dmac0 22>;
284*4882a593Smuzhiyun		dma-names = "rx";
285*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
286*4882a593Smuzhiyun		resets = <&cru SRST_M_SPDIFRX1>;
287*4882a593Smuzhiyun		reset-names = "spdifrx-m";
288*4882a593Smuzhiyun		#sound-dai-cells = <0>;
289*4882a593Smuzhiyun		status = "disabled";
290*4882a593Smuzhiyun	};
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun	spdif_rx2: spdif-rx@fde18000 {
293*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdifrx", "rockchip,rk3308-spdifrx";
294*4882a593Smuzhiyun		reg = <0x0 0xfde18000 0x0 0x1000>;
295*4882a593Smuzhiyun		interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
296*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIFRX2>, <&cru HCLK_SPDIFRX2>;
297*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
298*4882a593Smuzhiyun		assigned-clocks = <&cru MCLK_SPDIFRX2>;
299*4882a593Smuzhiyun		assigned-clock-parents = <&cru PLL_AUPLL>;
300*4882a593Smuzhiyun		dmas = <&dmac0 23>;
301*4882a593Smuzhiyun		dma-names = "rx";
302*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
303*4882a593Smuzhiyun		resets = <&cru SRST_M_SPDIFRX2>;
304*4882a593Smuzhiyun		reset-names = "spdifrx-m";
305*4882a593Smuzhiyun		#sound-dai-cells = <0>;
306*4882a593Smuzhiyun		status = "disabled";
307*4882a593Smuzhiyun	};
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun	dp1: dp@fde60000 {
310*4882a593Smuzhiyun		compatible = "rockchip,rk3588-dp";
311*4882a593Smuzhiyun		reg = <0x0 0xfde60000 0x0 0x4000>;
312*4882a593Smuzhiyun		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
313*4882a593Smuzhiyun		clocks = <&cru PCLK_DP1>, <&cru CLK_AUX16M_1>,
314*4882a593Smuzhiyun			 <&cru MCLK_I2S8_8CH_TX>, <&cru MCLK_SPDIF5_DP1>,
315*4882a593Smuzhiyun			 <&hclk_vo0>, <&cru CLK_DP1>;
316*4882a593Smuzhiyun		clock-names = "apb", "aux", "i2s", "spdif", "hclk", "hdcp";
317*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_AUX16M_1>;
318*4882a593Smuzhiyun		assigned-clock-rates = <16000000>;
319*4882a593Smuzhiyun		resets = <&cru SRST_DP1>;
320*4882a593Smuzhiyun		phys = <&usbdp_phy1_dp>;
321*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO0>;
322*4882a593Smuzhiyun		#sound-dai-cells = <1>;
323*4882a593Smuzhiyun		status = "disabled";
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun		ports {
326*4882a593Smuzhiyun			#address-cells = <1>;
327*4882a593Smuzhiyun			#size-cells = <0>;
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun			port@0 {
330*4882a593Smuzhiyun				reg = <0>;
331*4882a593Smuzhiyun				#address-cells = <1>;
332*4882a593Smuzhiyun				#size-cells = <0>;
333*4882a593Smuzhiyun
334*4882a593Smuzhiyun				dp1_in_vp0: endpoint@0 {
335*4882a593Smuzhiyun					reg = <0>;
336*4882a593Smuzhiyun					remote-endpoint = <&vp0_out_dp1>;
337*4882a593Smuzhiyun					status = "disabled";
338*4882a593Smuzhiyun				};
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun				dp1_in_vp1: endpoint@1 {
341*4882a593Smuzhiyun					reg = <1>;
342*4882a593Smuzhiyun					remote-endpoint = <&vp1_out_dp1>;
343*4882a593Smuzhiyun					status = "disabled";
344*4882a593Smuzhiyun				};
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun				dp1_in_vp2: endpoint@2 {
347*4882a593Smuzhiyun					reg = <2>;
348*4882a593Smuzhiyun					remote-endpoint = <&vp2_out_dp1>;
349*4882a593Smuzhiyun					status = "disabled";
350*4882a593Smuzhiyun				};
351*4882a593Smuzhiyun			};
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun			port@1 {
354*4882a593Smuzhiyun				reg = <1>;
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun				dp1_out: endpoint { };
357*4882a593Smuzhiyun			};
358*4882a593Smuzhiyun		};
359*4882a593Smuzhiyun	};
360*4882a593Smuzhiyun
361*4882a593Smuzhiyun	hdmi1: hdmi@fdea0000 {
362*4882a593Smuzhiyun		compatible = "rockchip,rk3588-dw-hdmi";
363*4882a593Smuzhiyun		reg = <0x0 0xfdea0000 0x0 0x20000>;
364*4882a593Smuzhiyun		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
365*4882a593Smuzhiyun			     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
366*4882a593Smuzhiyun			     <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
367*4882a593Smuzhiyun			     <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
368*4882a593Smuzhiyun			     <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
369*4882a593Smuzhiyun		clocks = <&cru PCLK_HDMITX1>,
370*4882a593Smuzhiyun			 <&cru CLK_HDMIHDP1>,
371*4882a593Smuzhiyun			 <&cru CLK_HDMITX1_EARC>,
372*4882a593Smuzhiyun			 <&cru CLK_HDMITX1_REF>,
373*4882a593Smuzhiyun			 <&cru MCLK_I2S6_8CH_TX>,
374*4882a593Smuzhiyun			 <&cru DCLK_VOP0>,
375*4882a593Smuzhiyun			 <&cru DCLK_VOP1>,
376*4882a593Smuzhiyun			 <&cru DCLK_VOP2>,
377*4882a593Smuzhiyun			 <&cru DCLK_VOP3>,
378*4882a593Smuzhiyun			 <&hclk_vo1>,
379*4882a593Smuzhiyun			 <&hdptxphy_hdmi_clk1>;
380*4882a593Smuzhiyun		clock-names = "pclk",
381*4882a593Smuzhiyun			      "hpd",
382*4882a593Smuzhiyun			      "earc",
383*4882a593Smuzhiyun			      "hdmitx_ref",
384*4882a593Smuzhiyun			      "aud",
385*4882a593Smuzhiyun			      "dclk_vp0",
386*4882a593Smuzhiyun			      "dclk_vp1",
387*4882a593Smuzhiyun			      "dclk_vp2",
388*4882a593Smuzhiyun			      "dclk_vp3",
389*4882a593Smuzhiyun			      "hclk_vo1",
390*4882a593Smuzhiyun			      "link_clk";
391*4882a593Smuzhiyun		resets = <&cru SRST_HDMITX1_REF>, <&cru SRST_HDMIHDP1>;
392*4882a593Smuzhiyun		reset-names = "ref", "hdp";
393*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
394*4882a593Smuzhiyun		pinctrl-names = "default";
395*4882a593Smuzhiyun		pinctrl-0 = <&hdmim2_tx1_cec &hdmim0_tx1_hpd &hdmim1_tx1_scl &hdmim1_tx1_sda>;
396*4882a593Smuzhiyun		reg-io-width = <4>;
397*4882a593Smuzhiyun		rockchip,grf = <&sys_grf>;
398*4882a593Smuzhiyun		rockchip,vo1_grf = <&vo1_grf>;
399*4882a593Smuzhiyun		phys = <&hdptxphy_hdmi1>;
400*4882a593Smuzhiyun		phy-names = "hdmi";
401*4882a593Smuzhiyun		#sound-dai-cells = <0>;
402*4882a593Smuzhiyun		status = "disabled";
403*4882a593Smuzhiyun
404*4882a593Smuzhiyun		ports {
405*4882a593Smuzhiyun			#address-cells = <1>;
406*4882a593Smuzhiyun			#size-cells = <0>;
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun			hdmi1_in: port@0 {
409*4882a593Smuzhiyun				reg = <0>;
410*4882a593Smuzhiyun				#address-cells = <1>;
411*4882a593Smuzhiyun				#size-cells = <0>;
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun				hdmi1_in_vp0: endpoint@0 {
414*4882a593Smuzhiyun					reg = <0>;
415*4882a593Smuzhiyun					remote-endpoint = <&vp0_out_hdmi1>;
416*4882a593Smuzhiyun					status = "disabled";
417*4882a593Smuzhiyun				};
418*4882a593Smuzhiyun
419*4882a593Smuzhiyun				hdmi1_in_vp1: endpoint@1 {
420*4882a593Smuzhiyun					reg = <1>;
421*4882a593Smuzhiyun					remote-endpoint = <&vp1_out_hdmi1>;
422*4882a593Smuzhiyun					status = "disabled";
423*4882a593Smuzhiyun				};
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun				hdmi1_in_vp2: endpoint@2 {
426*4882a593Smuzhiyun					reg = <2>;
427*4882a593Smuzhiyun					remote-endpoint = <&vp2_out_hdmi1>;
428*4882a593Smuzhiyun					status = "disabled";
429*4882a593Smuzhiyun				};
430*4882a593Smuzhiyun			};
431*4882a593Smuzhiyun		};
432*4882a593Smuzhiyun	};
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun	edp1: edp@fded0000 {
435*4882a593Smuzhiyun		compatible = "rockchip,rk3588-edp";
436*4882a593Smuzhiyun		reg = <0x0 0xfded0000 0x0 0x1000>;
437*4882a593Smuzhiyun		interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
438*4882a593Smuzhiyun		clocks = <&cru CLK_EDP1_24M>, <&cru PCLK_EDP1>,
439*4882a593Smuzhiyun			 <&cru CLK_EDP1_200M>, <&hclk_vo1>;
440*4882a593Smuzhiyun		clock-names = "dp", "pclk", "spdif", "hclk";
441*4882a593Smuzhiyun		resets = <&cru SRST_EDP1_24M>, <&cru SRST_P_EDP1>;
442*4882a593Smuzhiyun		reset-names = "dp", "apb";
443*4882a593Smuzhiyun		phys = <&hdptxphy1>;
444*4882a593Smuzhiyun		phy-names = "dp";
445*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
446*4882a593Smuzhiyun		rockchip,grf = <&vo1_grf>;
447*4882a593Smuzhiyun		status = "disabled";
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun		ports {
450*4882a593Smuzhiyun			#address-cells = <1>;
451*4882a593Smuzhiyun			#size-cells = <0>;
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun			port@0 {
454*4882a593Smuzhiyun				reg = <0>;
455*4882a593Smuzhiyun				#address-cells = <1>;
456*4882a593Smuzhiyun				#size-cells = <0>;
457*4882a593Smuzhiyun
458*4882a593Smuzhiyun				edp1_in_vp0: endpoint@0 {
459*4882a593Smuzhiyun					reg = <0>;
460*4882a593Smuzhiyun					remote-endpoint = <&vp0_out_edp1>;
461*4882a593Smuzhiyun					status = "disabled";
462*4882a593Smuzhiyun				};
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun				edp1_in_vp1: endpoint@1 {
465*4882a593Smuzhiyun					reg = <1>;
466*4882a593Smuzhiyun					remote-endpoint = <&vp1_out_edp1>;
467*4882a593Smuzhiyun					status = "disabled";
468*4882a593Smuzhiyun				};
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun				edp1_in_vp2: endpoint@2 {
471*4882a593Smuzhiyun					reg = <2>;
472*4882a593Smuzhiyun					remote-endpoint = <&vp2_out_edp1>;
473*4882a593Smuzhiyun					status = "disabled";
474*4882a593Smuzhiyun				};
475*4882a593Smuzhiyun			};
476*4882a593Smuzhiyun
477*4882a593Smuzhiyun			port@1 {
478*4882a593Smuzhiyun				reg = <1>;
479*4882a593Smuzhiyun
480*4882a593Smuzhiyun				edp1_out: endpoint { };
481*4882a593Smuzhiyun			};
482*4882a593Smuzhiyun		};
483*4882a593Smuzhiyun	};
484*4882a593Smuzhiyun
485*4882a593Smuzhiyun	hdmirx_ctrler: hdmirx-controller@fdee0000 {
486*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdmirx-ctrler", "rockchip,hdmirx-ctrler";
487*4882a593Smuzhiyun		reg = <0x0 0xfdee0000 0x0 0x6000>;
488*4882a593Smuzhiyun		reg-names = "hdmirx_regs";
489*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
490*4882a593Smuzhiyun		rockchip,grf = <&sys_grf>;
491*4882a593Smuzhiyun		rockchip,vo1_grf = <&vo1_grf>;
492*4882a593Smuzhiyun		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
493*4882a593Smuzhiyun			     <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
494*4882a593Smuzhiyun			     <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
495*4882a593Smuzhiyun		interrupt-names = "cec", "hdmi", "dma";
496*4882a593Smuzhiyun		clocks = <&cru ACLK_HDMIRX>,
497*4882a593Smuzhiyun			 <&cru CLK_HDMIRX_AUD>,
498*4882a593Smuzhiyun			 <&cru CLK_CR_PARA>,
499*4882a593Smuzhiyun			 <&cru PCLK_HDMIRX>,
500*4882a593Smuzhiyun			 <&cru CLK_HDMIRX_REF>,
501*4882a593Smuzhiyun			 <&cru PCLK_S_HDMIRX>,
502*4882a593Smuzhiyun			 <&hclk_vo1>;
503*4882a593Smuzhiyun		clock-names = "aclk",
504*4882a593Smuzhiyun			      "audio",
505*4882a593Smuzhiyun			      "cr_para",
506*4882a593Smuzhiyun			      "pclk",
507*4882a593Smuzhiyun			      "ref",
508*4882a593Smuzhiyun			      "hclk_s_hdmirx",
509*4882a593Smuzhiyun			      "hclk_vo1";
510*4882a593Smuzhiyun		resets = <&cru SRST_A_HDMIRX>, <&cru SRST_P_HDMIRX>,
511*4882a593Smuzhiyun			 <&cru SRST_HDMIRX_REF>, <&cru SRST_A_HDMIRX_BIU>;
512*4882a593Smuzhiyun		reset-names = "rst_a", "rst_p", "rst_ref", "rst_biu";
513*4882a593Smuzhiyun		pinctrl-0 = <&hdmim1_rx>;
514*4882a593Smuzhiyun		pinctrl-names = "default";
515*4882a593Smuzhiyun		status = "disabled";
516*4882a593Smuzhiyun	};
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun	pcie3x4: pcie@fe150000 {
519*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
520*4882a593Smuzhiyun		#address-cells = <3>;
521*4882a593Smuzhiyun		#size-cells = <2>;
522*4882a593Smuzhiyun		bus-range = <0x00 0x0f>;
523*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
524*4882a593Smuzhiyun			 <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
525*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
526*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
527*4882a593Smuzhiyun			      "aclk_dbi", "pclk",
528*4882a593Smuzhiyun			      "aux", "pipe";
529*4882a593Smuzhiyun		device_type = "pci";
530*4882a593Smuzhiyun		interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
531*4882a593Smuzhiyun			     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
532*4882a593Smuzhiyun			     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
533*4882a593Smuzhiyun			     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
534*4882a593Smuzhiyun			     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
535*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
536*4882a593Smuzhiyun		#interrupt-cells = <1>;
537*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
538*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
539*4882a593Smuzhiyun				<0 0 0 2 &pcie3x4_intc 1>,
540*4882a593Smuzhiyun				<0 0 0 3 &pcie3x4_intc 2>,
541*4882a593Smuzhiyun				<0 0 0 4 &pcie3x4_intc 3>;
542*4882a593Smuzhiyun		linux,pci-domain = <0>;
543*4882a593Smuzhiyun		num-ib-windows = <16>;
544*4882a593Smuzhiyun		num-ob-windows = <16>;
545*4882a593Smuzhiyun		num-viewport = <8>;
546*4882a593Smuzhiyun		max-link-speed = <3>;
547*4882a593Smuzhiyun		msi-map = <0x0000 &its1 0x0000 0x1000>;
548*4882a593Smuzhiyun		num-lanes = <4>;
549*4882a593Smuzhiyun		phys = <&pcie30phy>;
550*4882a593Smuzhiyun		phy-names = "pcie-phy";
551*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PCIE>;
552*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf0000000 0x0 0xf0000000 0x0 0x100000
553*4882a593Smuzhiyun			  0x81000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x100000
554*4882a593Smuzhiyun			  0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0xe00000
555*4882a593Smuzhiyun			  0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
556*4882a593Smuzhiyun		reg = <0x0 0xfe150000 0x0 0x10000>,
557*4882a593Smuzhiyun		      <0xa 0x40000000 0x0 0x400000>;
558*4882a593Smuzhiyun		reg-names = "pcie-apb", "pcie-dbi";
559*4882a593Smuzhiyun		resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
560*4882a593Smuzhiyun		reset-names = "pcie", "periph";
561*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
562*4882a593Smuzhiyun		status = "disabled";
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun		pcie3x4_intc: legacy-interrupt-controller {
565*4882a593Smuzhiyun			interrupt-controller;
566*4882a593Smuzhiyun			#address-cells = <0>;
567*4882a593Smuzhiyun			#interrupt-cells = <1>;
568*4882a593Smuzhiyun			interrupt-parent = <&gic>;
569*4882a593Smuzhiyun			interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING>;
570*4882a593Smuzhiyun		};
571*4882a593Smuzhiyun	};
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun	pcie3x2: pcie@fe160000 {
574*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
575*4882a593Smuzhiyun		#address-cells = <3>;
576*4882a593Smuzhiyun		#size-cells = <2>;
577*4882a593Smuzhiyun		bus-range = <0x10 0x1f>;
578*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>,
579*4882a593Smuzhiyun			 <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>,
580*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>;
581*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
582*4882a593Smuzhiyun			      "aclk_dbi", "pclk",
583*4882a593Smuzhiyun			      "aux", "pipe";
584*4882a593Smuzhiyun		device_type = "pci";
585*4882a593Smuzhiyun		interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
586*4882a593Smuzhiyun			     <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
587*4882a593Smuzhiyun			     <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
588*4882a593Smuzhiyun			     <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
589*4882a593Smuzhiyun			     <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
590*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
591*4882a593Smuzhiyun		#interrupt-cells = <1>;
592*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
593*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
594*4882a593Smuzhiyun				<0 0 0 2 &pcie3x2_intc 1>,
595*4882a593Smuzhiyun				<0 0 0 3 &pcie3x2_intc 2>,
596*4882a593Smuzhiyun				<0 0 0 4 &pcie3x2_intc 3>;
597*4882a593Smuzhiyun		linux,pci-domain = <1>;
598*4882a593Smuzhiyun		num-ib-windows = <16>;
599*4882a593Smuzhiyun		num-ob-windows = <16>;
600*4882a593Smuzhiyun		num-viewport = <8>;
601*4882a593Smuzhiyun		max-link-speed = <3>;
602*4882a593Smuzhiyun		msi-map = <0x1000 &its1 0x1000 0x1000>;
603*4882a593Smuzhiyun		num-lanes = <2>;
604*4882a593Smuzhiyun		phys = <&pcie30phy>;
605*4882a593Smuzhiyun		phy-names = "pcie-phy";
606*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PCIE>;
607*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf1000000 0x0 0xf1000000 0x0 0x100000
608*4882a593Smuzhiyun			  0x81000000 0x0 0xf1100000 0x0 0xf1100000 0x0 0x100000
609*4882a593Smuzhiyun			  0x82000000 0x0 0xf1200000 0x0 0xf1200000 0x0 0xe00000
610*4882a593Smuzhiyun			  0xc3000000 0x9 0x40000000 0x9 0x40000000 0x0 0x40000000>;
611*4882a593Smuzhiyun		reg = <0x0 0xfe160000 0x0 0x10000>,
612*4882a593Smuzhiyun		      <0xa 0x40400000 0x0 0x400000>;
613*4882a593Smuzhiyun		reg-names = "pcie-apb", "pcie-dbi";
614*4882a593Smuzhiyun		resets = <&cru SRST_PCIE1_POWER_UP>, <&cru SRST_P_PCIE1>;
615*4882a593Smuzhiyun		reset-names = "pcie", "periph";
616*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
617*4882a593Smuzhiyun		status = "disabled";
618*4882a593Smuzhiyun
619*4882a593Smuzhiyun		pcie3x2_intc: legacy-interrupt-controller {
620*4882a593Smuzhiyun			interrupt-controller;
621*4882a593Smuzhiyun			#address-cells = <0>;
622*4882a593Smuzhiyun			#interrupt-cells = <1>;
623*4882a593Smuzhiyun			interrupt-parent = <&gic>;
624*4882a593Smuzhiyun			interrupts = <GIC_SPI 255 IRQ_TYPE_EDGE_RISING>;
625*4882a593Smuzhiyun		};
626*4882a593Smuzhiyun	};
627*4882a593Smuzhiyun
628*4882a593Smuzhiyun	pcie2x1l0: pcie@fe170000 {
629*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
630*4882a593Smuzhiyun		#address-cells = <3>;
631*4882a593Smuzhiyun		#size-cells = <2>;
632*4882a593Smuzhiyun		bus-range = <0x20 0x2f>;
633*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_1L0_MSTR>, <&cru ACLK_PCIE_1L0_SLV>,
634*4882a593Smuzhiyun			 <&cru ACLK_PCIE_1L0_DBI>, <&cru PCLK_PCIE_1L0>,
635*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX2>, <&cru CLK_PCIE1L0_PIPE>;
636*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
637*4882a593Smuzhiyun			      "aclk_dbi", "pclk",
638*4882a593Smuzhiyun			      "aux", "pipe";
639*4882a593Smuzhiyun		device_type = "pci";
640*4882a593Smuzhiyun		interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
641*4882a593Smuzhiyun			     <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
642*4882a593Smuzhiyun			     <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
643*4882a593Smuzhiyun			     <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
644*4882a593Smuzhiyun			     <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
645*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
646*4882a593Smuzhiyun		#interrupt-cells = <1>;
647*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
648*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie2x1l0_intc 0>,
649*4882a593Smuzhiyun				<0 0 0 2 &pcie2x1l0_intc 1>,
650*4882a593Smuzhiyun				<0 0 0 3 &pcie2x1l0_intc 2>,
651*4882a593Smuzhiyun				<0 0 0 4 &pcie2x1l0_intc 3>;
652*4882a593Smuzhiyun		linux,pci-domain = <2>;
653*4882a593Smuzhiyun		num-ib-windows = <8>;
654*4882a593Smuzhiyun		num-ob-windows = <8>;
655*4882a593Smuzhiyun		num-viewport = <4>;
656*4882a593Smuzhiyun		max-link-speed = <2>;
657*4882a593Smuzhiyun		msi-map = <0x2000 &its0 0x2000 0x1000>;
658*4882a593Smuzhiyun		num-lanes = <1>;
659*4882a593Smuzhiyun		phys = <&combphy1_ps PHY_TYPE_PCIE>;
660*4882a593Smuzhiyun		phy-names = "pcie-phy";
661*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf2000000 0x0 0xf2000000 0x0 0x100000
662*4882a593Smuzhiyun			  0x81000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x100000
663*4882a593Smuzhiyun			  0x82000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0xe00000
664*4882a593Smuzhiyun			  0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
665*4882a593Smuzhiyun		reg = <0x0 0xfe170000 0x0 0x10000>,
666*4882a593Smuzhiyun		      <0xa 0x40800000 0x0 0x400000>;
667*4882a593Smuzhiyun		reg-names = "pcie-apb", "pcie-dbi";
668*4882a593Smuzhiyun		resets = <&cru SRST_PCIE2_POWER_UP>, <&cru SRST_P_PCIE2>;
669*4882a593Smuzhiyun		reset-names = "pcie", "periph";
670*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
671*4882a593Smuzhiyun		status = "disabled";
672*4882a593Smuzhiyun
673*4882a593Smuzhiyun		pcie2x1l0_intc: legacy-interrupt-controller {
674*4882a593Smuzhiyun			interrupt-controller;
675*4882a593Smuzhiyun			#address-cells = <0>;
676*4882a593Smuzhiyun			#interrupt-cells = <1>;
677*4882a593Smuzhiyun			interrupt-parent = <&gic>;
678*4882a593Smuzhiyun			interrupts = <GIC_SPI 240 IRQ_TYPE_EDGE_RISING>;
679*4882a593Smuzhiyun		};
680*4882a593Smuzhiyun	};
681*4882a593Smuzhiyun
682*4882a593Smuzhiyun	gmac_uio0: uio@fe1b0000 {
683*4882a593Smuzhiyun		compatible = "rockchip,uio-gmac";
684*4882a593Smuzhiyun		reg = <0x0 0xfe1b0000 0x0 0x10000>;
685*4882a593Smuzhiyun		rockchip,ethernet = <&gmac0>;
686*4882a593Smuzhiyun		status = "disabled";
687*4882a593Smuzhiyun	};
688*4882a593Smuzhiyun
689*4882a593Smuzhiyun	gmac0: ethernet@fe1b0000 {
690*4882a593Smuzhiyun		compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
691*4882a593Smuzhiyun		reg = <0x0 0xfe1b0000 0x0 0x10000>;
692*4882a593Smuzhiyun		interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>,
693*4882a593Smuzhiyun			     <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
694*4882a593Smuzhiyun		interrupt-names = "macirq", "eth_wake_irq";
695*4882a593Smuzhiyun		rockchip,grf = <&sys_grf>;
696*4882a593Smuzhiyun		rockchip,php_grf = <&php_grf>;
697*4882a593Smuzhiyun		clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
698*4882a593Smuzhiyun			 <&cru PCLK_GMAC0>, <&cru ACLK_GMAC0>,
699*4882a593Smuzhiyun			 <&cru CLK_GMAC0_PTP_REF>;
700*4882a593Smuzhiyun		clock-names = "stmmaceth", "clk_mac_ref",
701*4882a593Smuzhiyun			      "pclk_mac", "aclk_mac",
702*4882a593Smuzhiyun			      "ptp_ref";
703*4882a593Smuzhiyun		resets = <&cru SRST_A_GMAC0>;
704*4882a593Smuzhiyun		reset-names = "stmmaceth";
705*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_GMAC>;
706*4882a593Smuzhiyun
707*4882a593Smuzhiyun		snps,mixed-burst;
708*4882a593Smuzhiyun		snps,tso;
709*4882a593Smuzhiyun
710*4882a593Smuzhiyun		snps,axi-config = <&gmac0_stmmac_axi_setup>;
711*4882a593Smuzhiyun		snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
712*4882a593Smuzhiyun		snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
713*4882a593Smuzhiyun		status = "disabled";
714*4882a593Smuzhiyun
715*4882a593Smuzhiyun		mdio0: mdio {
716*4882a593Smuzhiyun			compatible = "snps,dwmac-mdio";
717*4882a593Smuzhiyun			#address-cells = <0x1>;
718*4882a593Smuzhiyun			#size-cells = <0x0>;
719*4882a593Smuzhiyun		};
720*4882a593Smuzhiyun
721*4882a593Smuzhiyun		gmac0_stmmac_axi_setup: stmmac-axi-config {
722*4882a593Smuzhiyun			snps,wr_osr_lmt = <4>;
723*4882a593Smuzhiyun			snps,rd_osr_lmt = <8>;
724*4882a593Smuzhiyun			snps,blen = <0 0 0 0 16 8 4>;
725*4882a593Smuzhiyun		};
726*4882a593Smuzhiyun
727*4882a593Smuzhiyun		gmac0_mtl_rx_setup: rx-queues-config {
728*4882a593Smuzhiyun			snps,rx-queues-to-use = <1>;
729*4882a593Smuzhiyun			queue0 {};
730*4882a593Smuzhiyun		};
731*4882a593Smuzhiyun
732*4882a593Smuzhiyun		gmac0_mtl_tx_setup: tx-queues-config {
733*4882a593Smuzhiyun			snps,tx-queues-to-use = <1>;
734*4882a593Smuzhiyun			queue0 {};
735*4882a593Smuzhiyun		};
736*4882a593Smuzhiyun	};
737*4882a593Smuzhiyun
738*4882a593Smuzhiyun	sata1: sata@fe220000 {
739*4882a593Smuzhiyun		compatible = "rockchip,rk-ahci", "snps,dwc-ahci";
740*4882a593Smuzhiyun		reg = <0 0xfe220000 0 0x1000>;
741*4882a593Smuzhiyun		clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
742*4882a593Smuzhiyun			 <&cru CLK_RXOOB1>, <&cru CLK_PIPEPHY1_REF>,
743*4882a593Smuzhiyun			 <&cru CLK_PIPEPHY1_PIPE_ASIC_G>;
744*4882a593Smuzhiyun		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
745*4882a593Smuzhiyun		interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>;
746*4882a593Smuzhiyun		interrupt-names = "hostc";
747*4882a593Smuzhiyun		phys = <&combphy1_ps PHY_TYPE_SATA>;
748*4882a593Smuzhiyun		phy-names = "sata-phy";
749*4882a593Smuzhiyun		ports-implemented = <0x1>;
750*4882a593Smuzhiyun		status = "disabled";
751*4882a593Smuzhiyun	};
752*4882a593Smuzhiyun
753*4882a593Smuzhiyun	hdptxphy1: phy@fed70000 {
754*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdptx-phy";
755*4882a593Smuzhiyun		reg = <0x0 0xfed70000 0x0 0x2000>;
756*4882a593Smuzhiyun		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX1>;
757*4882a593Smuzhiyun		clock-names = "ref", "apb";
758*4882a593Smuzhiyun		resets = <&cru SRST_P_HDPTX1>, <&cru SRST_HDPTX1_INIT>,
759*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_CMN>, <&cru SRST_HDPTX1_LANE>;
760*4882a593Smuzhiyun		reset-names = "apb", "init", "cmn", "lane";
761*4882a593Smuzhiyun		rockchip,grf = <&hdptxphy1_grf>;
762*4882a593Smuzhiyun		#phy-cells = <0>;
763*4882a593Smuzhiyun		status = "disabled";
764*4882a593Smuzhiyun	};
765*4882a593Smuzhiyun
766*4882a593Smuzhiyun	hdptxphy_hdmi1: hdmiphy@fed70000 {
767*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdptx-phy-hdmi";
768*4882a593Smuzhiyun		reg = <0x0 0xfed70000 0x0 0x2000>;
769*4882a593Smuzhiyun		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX1>;
770*4882a593Smuzhiyun		clock-names = "ref", "apb";
771*4882a593Smuzhiyun		resets = <&cru SRST_HDPTX1>, <&cru SRST_P_HDPTX1>,
772*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_INIT>, <&cru SRST_HDPTX1_CMN>,
773*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_LANE>, <&cru SRST_HDPTX1_ROPLL>,
774*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_LCPLL>;
775*4882a593Smuzhiyun		reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
776*4882a593Smuzhiyun			      "lcpll";
777*4882a593Smuzhiyun		rockchip,grf = <&hdptxphy1_grf>;
778*4882a593Smuzhiyun		#phy-cells = <0>;
779*4882a593Smuzhiyun		status = "disabled";
780*4882a593Smuzhiyun
781*4882a593Smuzhiyun		hdptxphy_hdmi_clk1: clk-port {
782*4882a593Smuzhiyun			#clock-cells = <0>;
783*4882a593Smuzhiyun			status = "okay";
784*4882a593Smuzhiyun		};
785*4882a593Smuzhiyun	};
786*4882a593Smuzhiyun
787*4882a593Smuzhiyun
788*4882a593Smuzhiyun	usbdp_phy1: phy@fed90000 {
789*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usbdp-phy";
790*4882a593Smuzhiyun		reg = <0x0 0xfed90000 0x0 0x10000>;
791*4882a593Smuzhiyun		rockchip,u2phy-grf = <&usb2phy1_grf>;
792*4882a593Smuzhiyun		rockchip,usb-grf = <&usb_grf>;
793*4882a593Smuzhiyun		rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
794*4882a593Smuzhiyun		rockchip,vo-grf = <&vo0_grf>;
795*4882a593Smuzhiyun		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
796*4882a593Smuzhiyun			 <&cru CLK_USBDP_PHY1_IMMORTAL>,
797*4882a593Smuzhiyun			 <&cru PCLK_USBDPPHY1>,
798*4882a593Smuzhiyun			 <&u2phy1>;
799*4882a593Smuzhiyun		clock-names = "refclk", "immortal", "pclk", "utmi";
800*4882a593Smuzhiyun		resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
801*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_CMN>,
802*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_LANE>,
803*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_PCS>,
804*4882a593Smuzhiyun			 <&cru SRST_P_USBDPPHY1>;
805*4882a593Smuzhiyun		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
806*4882a593Smuzhiyun		status = "disabled";
807*4882a593Smuzhiyun
808*4882a593Smuzhiyun		usbdp_phy1_dp: dp-port {
809*4882a593Smuzhiyun			#phy-cells = <0>;
810*4882a593Smuzhiyun			status = "disabled";
811*4882a593Smuzhiyun		};
812*4882a593Smuzhiyun
813*4882a593Smuzhiyun		usbdp_phy1_u3: u3-port {
814*4882a593Smuzhiyun			#phy-cells = <0>;
815*4882a593Smuzhiyun			status = "disabled";
816*4882a593Smuzhiyun		};
817*4882a593Smuzhiyun	};
818*4882a593Smuzhiyun
819*4882a593Smuzhiyun	combphy1_ps: phy@fee10000 {
820*4882a593Smuzhiyun		compatible = "rockchip,rk3588-naneng-combphy";
821*4882a593Smuzhiyun		reg = <0x0 0xfee10000 0x0 0x100>;
822*4882a593Smuzhiyun		#phy-cells = <1>;
823*4882a593Smuzhiyun		clocks = <&cru CLK_REF_PIPE_PHY1>, <&cru PCLK_PCIE_COMBO_PIPE_PHY1>,
824*4882a593Smuzhiyun			 <&cru PCLK_PHP_ROOT>;
825*4882a593Smuzhiyun		clock-names = "refclk", "apbclk", "phpclk";
826*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_REF_PIPE_PHY1>;
827*4882a593Smuzhiyun		assigned-clock-rates = <100000000>;
828*4882a593Smuzhiyun		resets = <&cru SRST_P_PCIE2_PHY1>, <&cru SRST_REF_PIPE_PHY1>;
829*4882a593Smuzhiyun		reset-names = "combphy-apb", "combphy";
830*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
831*4882a593Smuzhiyun		rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
832*4882a593Smuzhiyun		rockchip,pcie1ln-sel-bits = <0x100 0 0 0>;
833*4882a593Smuzhiyun		status = "disabled";
834*4882a593Smuzhiyun	};
835*4882a593Smuzhiyun
836*4882a593Smuzhiyun	pcie30phy: phy@fee80000 {
837*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie3-phy";
838*4882a593Smuzhiyun		reg = <0x0 0xfee80000 0x0 0x20000>;
839*4882a593Smuzhiyun		#phy-cells = <0>;
840*4882a593Smuzhiyun		clocks = <&cru PCLK_PCIE_COMBO_PIPE_PHY>;
841*4882a593Smuzhiyun		clock-names = "pclk";
842*4882a593Smuzhiyun		resets = <&cru SRST_PCIE30_PHY>;
843*4882a593Smuzhiyun		reset-names = "phy";
844*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
845*4882a593Smuzhiyun		rockchip,phy-grf = <&pcie30_phy_grf>;
846*4882a593Smuzhiyun		status = "disabled";
847*4882a593Smuzhiyun	};
848*4882a593Smuzhiyun
849*4882a593Smuzhiyun};
850*4882a593Smuzhiyun
851*4882a593Smuzhiyun&display_subsystem {
852*4882a593Smuzhiyun	route {
853*4882a593Smuzhiyun		route_dp1: route-dp1 {
854*4882a593Smuzhiyun			status = "disabled";
855*4882a593Smuzhiyun			logo,uboot = "logo.bmp";
856*4882a593Smuzhiyun			logo,kernel = "logo_kernel.bmp";
857*4882a593Smuzhiyun			logo,mode = "center";
858*4882a593Smuzhiyun			charge_logo,mode = "center";
859*4882a593Smuzhiyun			connect = <&vp1_out_dp1>;
860*4882a593Smuzhiyun		};
861*4882a593Smuzhiyun
862*4882a593Smuzhiyun		route_hdmi1: route-hdmi1 {
863*4882a593Smuzhiyun			status = "disabled";
864*4882a593Smuzhiyun			logo,uboot = "logo.bmp";
865*4882a593Smuzhiyun			logo,kernel = "logo_kernel.bmp";
866*4882a593Smuzhiyun			logo,mode = "center";
867*4882a593Smuzhiyun			charge_logo,mode = "center";
868*4882a593Smuzhiyun			connect = <&vp1_out_hdmi1>;
869*4882a593Smuzhiyun		};
870*4882a593Smuzhiyun	};
871*4882a593Smuzhiyun};
872*4882a593Smuzhiyun
873*4882a593Smuzhiyun&vp0 {
874*4882a593Smuzhiyun	vp0_out_dp1: endpoint@3 {
875*4882a593Smuzhiyun		reg = <3>;
876*4882a593Smuzhiyun		remote-endpoint = <&dp1_in_vp0>;
877*4882a593Smuzhiyun	};
878*4882a593Smuzhiyun
879*4882a593Smuzhiyun	vp0_out_edp1: endpoint@4 {
880*4882a593Smuzhiyun		reg = <4>;
881*4882a593Smuzhiyun		remote-endpoint = <&edp1_in_vp0>;
882*4882a593Smuzhiyun	};
883*4882a593Smuzhiyun
884*4882a593Smuzhiyun	vp0_out_hdmi1: endpoint@5 {
885*4882a593Smuzhiyun		reg = <5>;
886*4882a593Smuzhiyun		remote-endpoint = <&hdmi1_in_vp0>;
887*4882a593Smuzhiyun	};
888*4882a593Smuzhiyun};
889*4882a593Smuzhiyun
890*4882a593Smuzhiyun&vp1 {
891*4882a593Smuzhiyun	vp1_out_dp1: endpoint@3 {
892*4882a593Smuzhiyun		reg = <3>;
893*4882a593Smuzhiyun		remote-endpoint = <&dp1_in_vp1>;
894*4882a593Smuzhiyun	};
895*4882a593Smuzhiyun
896*4882a593Smuzhiyun	vp1_out_edp1: endpoint@4 {
897*4882a593Smuzhiyun		reg = <4>;
898*4882a593Smuzhiyun		remote-endpoint = <&edp1_in_vp1>;
899*4882a593Smuzhiyun	};
900*4882a593Smuzhiyun
901*4882a593Smuzhiyun	vp1_out_hdmi1: endpoint@5 {
902*4882a593Smuzhiyun		reg = <5>;
903*4882a593Smuzhiyun		remote-endpoint = <&hdmi1_in_vp1>;
904*4882a593Smuzhiyun	};
905*4882a593Smuzhiyun};
906*4882a593Smuzhiyun
907*4882a593Smuzhiyun&vp2 {
908*4882a593Smuzhiyun	vp2_out_dp1: endpoint@5 {
909*4882a593Smuzhiyun		reg = <5>;
910*4882a593Smuzhiyun		remote-endpoint = <&dp1_in_vp2>;
911*4882a593Smuzhiyun	};
912*4882a593Smuzhiyun
913*4882a593Smuzhiyun	vp2_out_edp1: endpoint@6 {
914*4882a593Smuzhiyun		reg = <6>;
915*4882a593Smuzhiyun		remote-endpoint = <&edp1_in_vp2>;
916*4882a593Smuzhiyun	};
917*4882a593Smuzhiyun
918*4882a593Smuzhiyun	vp2_out_hdmi1: endpoint@7 {
919*4882a593Smuzhiyun		reg = <7>;
920*4882a593Smuzhiyun		remote-endpoint = <&hdmi1_in_vp2>;
921*4882a593Smuzhiyun	};
922*4882a593Smuzhiyun};
923