xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/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		edp0 = &edp0;
13*4882a593Smuzhiyun		edp1 = &edp1;
14*4882a593Smuzhiyun		ethernet0 = &gmac0;
15*4882a593Smuzhiyun		hdptx0 = &hdptxphy0;
16*4882a593Smuzhiyun		hdptx1 = &hdptxphy1;
17*4882a593Smuzhiyun	};
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	usbdrd3_1: usbdrd3_1 {
20*4882a593Smuzhiyun		compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3";
21*4882a593Smuzhiyun		clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
22*4882a593Smuzhiyun			 <&cru ACLK_USB3OTG1>;
23*4882a593Smuzhiyun		clock-names = "ref", "suspend", "bus";
24*4882a593Smuzhiyun		#address-cells = <2>;
25*4882a593Smuzhiyun		#size-cells = <2>;
26*4882a593Smuzhiyun		ranges;
27*4882a593Smuzhiyun		status = "disabled";
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		usbdrd_dwc3_1: usb@fc400000 {
30*4882a593Smuzhiyun			compatible = "snps,dwc3";
31*4882a593Smuzhiyun			reg = <0x0 0xfc400000 0x0 0x400000>;
32*4882a593Smuzhiyun			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
33*4882a593Smuzhiyun			power-domains = <&power RK3588_PD_USB>;
34*4882a593Smuzhiyun			resets = <&cru SRST_A_USB3OTG1>;
35*4882a593Smuzhiyun			reset-names = "usb3-otg";
36*4882a593Smuzhiyun			dr_mode = "host";
37*4882a593Smuzhiyun			phys = <&u2phy1_otg>;
38*4882a593Smuzhiyun			phy-names = "usb2-phy";
39*4882a593Smuzhiyun			phy_type = "utmi_wide";
40*4882a593Smuzhiyun			snps,dis_enblslpm_quirk;
41*4882a593Smuzhiyun			snps,dis-u2-freeclk-exists-quirk;
42*4882a593Smuzhiyun			snps,dis-del-phy-power-chg-quirk;
43*4882a593Smuzhiyun			snps,dis-tx-ipgap-linecheck-quirk;
44*4882a593Smuzhiyun			status = "disabled";
45*4882a593Smuzhiyun		};
46*4882a593Smuzhiyun	};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	pcie30_phy_grf: syscon@fd5b8000 {
49*4882a593Smuzhiyun		compatible = "rockchip,pcie30-phy-grf", "syscon";
50*4882a593Smuzhiyun		reg = <0x0 0xfd5b8000 0x0 0x10000>;
51*4882a593Smuzhiyun	};
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	pipe_phy1_grf: syscon@fd5c0000 {
54*4882a593Smuzhiyun		compatible = "rockchip,pipe-phy-grf", "syscon";
55*4882a593Smuzhiyun		reg = <0x0 0xfd5c0000 0x0 0x100>;
56*4882a593Smuzhiyun	};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	usbdpphy1_grf: syscon@fd5cc000 {
59*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
60*4882a593Smuzhiyun		reg = <0x0 0xfd5cc000 0x0 0x4000>;
61*4882a593Smuzhiyun	};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	usb2phy1_grf: syscon@fd5d4000 {
64*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
65*4882a593Smuzhiyun			     "simple-mfd";
66*4882a593Smuzhiyun		reg = <0x0 0xfd5d4000 0x0 0x4000>;
67*4882a593Smuzhiyun		#address-cells = <1>;
68*4882a593Smuzhiyun		#size-cells = <1>;
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun		u2phy1: usb2-phy@4000 {
71*4882a593Smuzhiyun			compatible = "rockchip,rk3588-usb2phy";
72*4882a593Smuzhiyun			reg = <0x4000 0x10>;
73*4882a593Smuzhiyun			interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
74*4882a593Smuzhiyun			resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
75*4882a593Smuzhiyun			reset-names = "phy", "apb";
76*4882a593Smuzhiyun			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
77*4882a593Smuzhiyun			clock-names = "phyclk";
78*4882a593Smuzhiyun			#clock-cells = <0>;
79*4882a593Smuzhiyun			status = "disabled";
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun			u2phy1_otg: otg-port {
82*4882a593Smuzhiyun				#phy-cells = <0>;
83*4882a593Smuzhiyun				status = "disabled";
84*4882a593Smuzhiyun			};
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun	};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	hdptxphy1_grf: syscon@fd5e4000 {
89*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
90*4882a593Smuzhiyun		reg = <0x0 0xfd5e4000 0x0 0x100>;
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	spdif_tx5: spdif-tx@fddb8000 {
94*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
95*4882a593Smuzhiyun		reg = <0x0 0xfddb8000 0x0 0x1000>;
96*4882a593Smuzhiyun		interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
97*4882a593Smuzhiyun		dmas = <&dmac1 22>;
98*4882a593Smuzhiyun		dma-names = "tx";
99*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
100*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIF5_DP1>, <&cru HCLK_SPDIF5_DP1>;
101*4882a593Smuzhiyun		#sound-dai-cells = <0>;
102*4882a593Smuzhiyun		status = "disabled";
103*4882a593Smuzhiyun	};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	i2s8_8ch: i2s@fddc8000 {
106*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
107*4882a593Smuzhiyun		reg = <0x0 0xfddc8000 0x0 0x1000>;
108*4882a593Smuzhiyun		interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
109*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S8_8CH_TX>, <&cru HCLK_I2S8_8CH>;
110*4882a593Smuzhiyun		clock-names = "mclk_tx", "hclk";
111*4882a593Smuzhiyun		dmas = <&dmac2 22>;
112*4882a593Smuzhiyun		dma-names = "tx";
113*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S8_8CH_TX>;
114*4882a593Smuzhiyun		reset-names = "tx-m";
115*4882a593Smuzhiyun		#sound-dai-cells = <0>;
116*4882a593Smuzhiyun		status = "disabled";
117*4882a593Smuzhiyun	};
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun	spdif_tx4: spdif-tx@fdde8000 {
120*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
121*4882a593Smuzhiyun		reg = <0x0 0xfdde8000 0x0 0x1000>;
122*4882a593Smuzhiyun		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
123*4882a593Smuzhiyun		dmas = <&dmac1 8>;
124*4882a593Smuzhiyun		dma-names = "tx";
125*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
126*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIF4>, <&cru HCLK_SPDIF4>;
127*4882a593Smuzhiyun		#sound-dai-cells = <0>;
128*4882a593Smuzhiyun		status = "disabled";
129*4882a593Smuzhiyun	};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun	i2s6_8ch: i2s@fddf4000 {
132*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
133*4882a593Smuzhiyun		reg = <0x0 0xfddf4000 0x0 0x1000>;
134*4882a593Smuzhiyun		interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
135*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S6_8CH_TX>, <&cru HCLK_I2S6_8CH>;
136*4882a593Smuzhiyun		clock-names = "mclk_tx", "hclk";
137*4882a593Smuzhiyun		dmas = <&dmac2 4>;
138*4882a593Smuzhiyun		dma-names = "tx";
139*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S6_8CH_TX>;
140*4882a593Smuzhiyun		reset-names = "tx-m";
141*4882a593Smuzhiyun		#sound-dai-cells = <0>;
142*4882a593Smuzhiyun		status = "disabled";
143*4882a593Smuzhiyun	};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun	i2s7_8ch: i2s@fddf8000 {
146*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
147*4882a593Smuzhiyun		reg = <0x0 0xfddf8000 0x0 0x1000>;
148*4882a593Smuzhiyun		interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
149*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S7_8CH_RX>, <&cru HCLK_I2S7_8CH>;
150*4882a593Smuzhiyun		clock-names = "mclk_rx", "hclk";
151*4882a593Smuzhiyun		dmas = <&dmac2 21>;
152*4882a593Smuzhiyun		dma-names = "rx";
153*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S7_8CH_RX>;
154*4882a593Smuzhiyun		reset-names = "rx-m";
155*4882a593Smuzhiyun		#sound-dai-cells = <0>;
156*4882a593Smuzhiyun		status = "disabled";
157*4882a593Smuzhiyun	};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun	i2s10_8ch: i2s@fde00000 {
160*4882a593Smuzhiyun		compatible = "rockchip,rk3588-i2s-tdm";
161*4882a593Smuzhiyun		reg = <0x0 0xfde00000 0x0 0x1000>;
162*4882a593Smuzhiyun		interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
163*4882a593Smuzhiyun		clocks = <&cru MCLK_I2S10_8CH_RX>, <&cru HCLK_I2S10_8CH>;
164*4882a593Smuzhiyun		clock-names = "mclk_rx", "hclk";
165*4882a593Smuzhiyun		dmas = <&dmac2 24>;
166*4882a593Smuzhiyun		dma-names = "rx";
167*4882a593Smuzhiyun		resets = <&cru SRST_M_I2S10_8CH_RX>;
168*4882a593Smuzhiyun		reset-names = "rx-m";
169*4882a593Smuzhiyun		#sound-dai-cells = <0>;
170*4882a593Smuzhiyun		status = "disabled";
171*4882a593Smuzhiyun	};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun	spdif_rx1: spdif-rx@fde10000 {
174*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdifrx", "rockchip,rk3308-spdifrx";
175*4882a593Smuzhiyun		reg = <0x0 0xfde10000 0x0 0x1000>;
176*4882a593Smuzhiyun		interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
177*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIFRX1>, <&cru HCLK_SPDIFRX1>;
178*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
179*4882a593Smuzhiyun		dmas = <&dmac0 22>;
180*4882a593Smuzhiyun		dma-names = "rx";
181*4882a593Smuzhiyun		resets = <&cru SRST_M_SPDIFRX1>;
182*4882a593Smuzhiyun		reset-names = "spdifrx-m";
183*4882a593Smuzhiyun		#sound-dai-cells = <0>;
184*4882a593Smuzhiyun		status = "disabled";
185*4882a593Smuzhiyun	};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun	spdif_rx2: spdif-rx@fde18000 {
188*4882a593Smuzhiyun		compatible = "rockchip,rk3588-spdifrx", "rockchip,rk3308-spdifrx";
189*4882a593Smuzhiyun		reg = <0x0 0xfde18000 0x0 0x1000>;
190*4882a593Smuzhiyun		interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
191*4882a593Smuzhiyun		clocks = <&cru MCLK_SPDIFRX2>, <&cru HCLK_SPDIFRX2>;
192*4882a593Smuzhiyun		clock-names = "mclk", "hclk";
193*4882a593Smuzhiyun		dmas = <&dmac0 23>;
194*4882a593Smuzhiyun		dma-names = "rx";
195*4882a593Smuzhiyun		resets = <&cru SRST_M_SPDIFRX2>;
196*4882a593Smuzhiyun		reset-names = "spdifrx-m";
197*4882a593Smuzhiyun		#sound-dai-cells = <0>;
198*4882a593Smuzhiyun		status = "disabled";
199*4882a593Smuzhiyun	};
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun	edp1: edp@fded0000 {
202*4882a593Smuzhiyun		compatible = "rockchip,rk3588-edp";
203*4882a593Smuzhiyun		reg = <0x0 0xfded0000 0x0 0x1000>;
204*4882a593Smuzhiyun		interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
205*4882a593Smuzhiyun		clocks = <&cru CLK_EDP1_24M>, <&cru PCLK_EDP1>,
206*4882a593Smuzhiyun			 <&cru CLK_EDP1_200M>;
207*4882a593Smuzhiyun		clock-names = "dp", "pclk", "spdif";
208*4882a593Smuzhiyun		resets = <&cru SRST_EDP1_24M>, <&cru SRST_P_EDP1>;
209*4882a593Smuzhiyun		reset-names = "dp", "apb";
210*4882a593Smuzhiyun		phys = <&hdptxphy1>;
211*4882a593Smuzhiyun		phy-names = "dp";
212*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_VO1>;
213*4882a593Smuzhiyun		rockchip,grf = <&vo1_grf>;
214*4882a593Smuzhiyun		status = "disabled";
215*4882a593Smuzhiyun	};
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun	pcie3x4: pcie@fe150000 {
218*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
219*4882a593Smuzhiyun		#address-cells = <3>;
220*4882a593Smuzhiyun		#size-cells = <2>;
221*4882a593Smuzhiyun		bus-range = <0x00 0x0f>;
222*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
223*4882a593Smuzhiyun			 <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
224*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX0>;
225*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
226*4882a593Smuzhiyun			      "aclk_dbi", "pclk", "aux";
227*4882a593Smuzhiyun		device_type = "pci";
228*4882a593Smuzhiyun		interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
229*4882a593Smuzhiyun			     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
230*4882a593Smuzhiyun			     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
231*4882a593Smuzhiyun			     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
232*4882a593Smuzhiyun			     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
233*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
234*4882a593Smuzhiyun		#interrupt-cells = <1>;
235*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
236*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
237*4882a593Smuzhiyun				<0 0 0 2 &pcie3x4_intc 1>,
238*4882a593Smuzhiyun				<0 0 0 3 &pcie3x4_intc 2>,
239*4882a593Smuzhiyun				<0 0 0 4 &pcie3x4_intc 3>;
240*4882a593Smuzhiyun		linux,pci-domain = <0>;
241*4882a593Smuzhiyun		num-ib-windows = <16>;
242*4882a593Smuzhiyun		num-ob-windows = <16>;
243*4882a593Smuzhiyun		max-link-speed = <3>;
244*4882a593Smuzhiyun		msi-map = <0x0000 &its 0x0000 0x1000>;
245*4882a593Smuzhiyun		num-lanes = <4>;
246*4882a593Smuzhiyun		phys = <&pcie30phy>;
247*4882a593Smuzhiyun		phy-names = "pcie-phy";
248*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PCIE>;
249*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf0000000 0x0 0xf0000000 0x0 0x100000
250*4882a593Smuzhiyun			  0x81000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x100000
251*4882a593Smuzhiyun			  0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0xe00000
252*4882a593Smuzhiyun			  0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
253*4882a593Smuzhiyun		reg = <0xa 0x40000000 0x0 0x400000>,
254*4882a593Smuzhiyun		      <0x0 0xfe150000 0x0 0x10000>;
255*4882a593Smuzhiyun		reg-names = "pcie-dbi", "pcie-apb";
256*4882a593Smuzhiyun		resets = <&cru SRST_PCIE0_POWER_UP>;
257*4882a593Smuzhiyun		reset-names = "pipe";
258*4882a593Smuzhiyun		status = "disabled";
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun		pcie3x4_intc: legacy-interrupt-controller {
261*4882a593Smuzhiyun			interrupt-controller;
262*4882a593Smuzhiyun			#address-cells = <0>;
263*4882a593Smuzhiyun			#interrupt-cells = <1>;
264*4882a593Smuzhiyun			interrupt-parent = <&gic>;
265*4882a593Smuzhiyun			interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING>;
266*4882a593Smuzhiyun		};
267*4882a593Smuzhiyun	};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	pcie3x2: pcie@fe160000 {
270*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
271*4882a593Smuzhiyun		#address-cells = <3>;
272*4882a593Smuzhiyun		#size-cells = <2>;
273*4882a593Smuzhiyun		bus-range = <0x10 0x1f>;
274*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>,
275*4882a593Smuzhiyun			 <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>,
276*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX1>;
277*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
278*4882a593Smuzhiyun			      "aclk_dbi", "pclk", "aux";
279*4882a593Smuzhiyun		device_type = "pci";
280*4882a593Smuzhiyun		interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
281*4882a593Smuzhiyun			     <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
282*4882a593Smuzhiyun			     <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
283*4882a593Smuzhiyun			     <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
284*4882a593Smuzhiyun			     <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
285*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
286*4882a593Smuzhiyun		#interrupt-cells = <1>;
287*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
288*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
289*4882a593Smuzhiyun				<0 0 0 2 &pcie3x2_intc 1>,
290*4882a593Smuzhiyun				<0 0 0 3 &pcie3x2_intc 2>,
291*4882a593Smuzhiyun				<0 0 0 4 &pcie3x2_intc 3>;
292*4882a593Smuzhiyun		linux,pci-domain = <1>;
293*4882a593Smuzhiyun		num-ib-windows = <16>;
294*4882a593Smuzhiyun		num-ob-windows = <16>;
295*4882a593Smuzhiyun		max-link-speed = <3>;
296*4882a593Smuzhiyun		msi-map = <0x1000 &its 0x1000 0x1000>;
297*4882a593Smuzhiyun		num-lanes = <2>;
298*4882a593Smuzhiyun		phys = <&pcie30phy>;
299*4882a593Smuzhiyun		phy-names = "pcie-phy";
300*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PHP>;
301*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf1000000 0x0 0xf1000000 0x0 0x100000
302*4882a593Smuzhiyun			  0x81000000 0x0 0xf1100000 0x0 0xf1100000 0x0 0x100000
303*4882a593Smuzhiyun			  0x82000000 0x0 0xf1200000 0x0 0xf1200000 0x0 0xe00000
304*4882a593Smuzhiyun			  0xc3000000 0x9 0x40000000 0x9 0x40000000 0x0 0x40000000>;
305*4882a593Smuzhiyun		reg = <0xa 0x40400000 0x0 0x400000>,
306*4882a593Smuzhiyun		      <0x0 0xfe160000 0x0 0x10000>;
307*4882a593Smuzhiyun		reg-names = "pcie-dbi", "pcie-apb";
308*4882a593Smuzhiyun		resets = <&cru SRST_PCIE1_POWER_UP>;
309*4882a593Smuzhiyun		reset-names = "pipe";
310*4882a593Smuzhiyun		status = "disabled";
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun		pcie3x2_intc: legacy-interrupt-controller {
313*4882a593Smuzhiyun			interrupt-controller;
314*4882a593Smuzhiyun			#address-cells = <0>;
315*4882a593Smuzhiyun			#interrupt-cells = <1>;
316*4882a593Smuzhiyun			interrupt-parent = <&gic>;
317*4882a593Smuzhiyun			interrupts = <GIC_SPI 255 IRQ_TYPE_EDGE_RISING>;
318*4882a593Smuzhiyun		};
319*4882a593Smuzhiyun	};
320*4882a593Smuzhiyun
321*4882a593Smuzhiyun	pcie2x1l0: pcie@fe170000 {
322*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
323*4882a593Smuzhiyun		#address-cells = <3>;
324*4882a593Smuzhiyun		#size-cells = <2>;
325*4882a593Smuzhiyun		bus-range = <0x20 0x2f>;
326*4882a593Smuzhiyun		clocks = <&cru ACLK_PCIE_1L0_MSTR>, <&cru ACLK_PCIE_1L0_SLV>,
327*4882a593Smuzhiyun			 <&cru ACLK_PCIE_1L0_DBI>, <&cru PCLK_PCIE_1L0>,
328*4882a593Smuzhiyun			 <&cru CLK_PCIE_AUX2>;
329*4882a593Smuzhiyun		clock-names = "aclk_mst", "aclk_slv",
330*4882a593Smuzhiyun			      "aclk_dbi", "pclk", "aux";
331*4882a593Smuzhiyun		device_type = "pci";
332*4882a593Smuzhiyun		interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
333*4882a593Smuzhiyun			     <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
334*4882a593Smuzhiyun			     <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
335*4882a593Smuzhiyun			     <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
336*4882a593Smuzhiyun			     <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
337*4882a593Smuzhiyun		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
338*4882a593Smuzhiyun		#interrupt-cells = <1>;
339*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 7>;
340*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &pcie2x1l0_intc 0>,
341*4882a593Smuzhiyun				<0 0 0 2 &pcie2x1l0_intc 1>,
342*4882a593Smuzhiyun				<0 0 0 3 &pcie2x1l0_intc 2>,
343*4882a593Smuzhiyun				<0 0 0 4 &pcie2x1l0_intc 3>;
344*4882a593Smuzhiyun		linux,pci-domain = <2>;
345*4882a593Smuzhiyun		num-ib-windows = <8>;
346*4882a593Smuzhiyun		num-ob-windows = <8>;
347*4882a593Smuzhiyun		max-link-speed = <2>;
348*4882a593Smuzhiyun		msi-map = <0x2000 &its 0x2000 0x1000>;
349*4882a593Smuzhiyun		num-lanes = <1>;
350*4882a593Smuzhiyun		phys = <&combphy1_ps PHY_TYPE_PCIE>;
351*4882a593Smuzhiyun		phy-names = "pcie-phy";
352*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PHP>;
353*4882a593Smuzhiyun		ranges = <0x00000800 0x0 0xf2000000 0x0 0xf2000000 0x0 0x100000
354*4882a593Smuzhiyun			  0x81000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x100000
355*4882a593Smuzhiyun			  0x82000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0xe00000
356*4882a593Smuzhiyun			  0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
357*4882a593Smuzhiyun		reg = <0xa 0x40800000 0x0 0x400000>,
358*4882a593Smuzhiyun		      <0x0 0xfe170000 0x0 0x10000>;
359*4882a593Smuzhiyun		reg-names = "pcie-dbi", "pcie-apb";
360*4882a593Smuzhiyun		resets = <&cru SRST_PCIE2_POWER_UP>;
361*4882a593Smuzhiyun		reset-names = "pipe";
362*4882a593Smuzhiyun		status = "disabled";
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun		pcie2x1l0_intc: legacy-interrupt-controller {
365*4882a593Smuzhiyun			interrupt-controller;
366*4882a593Smuzhiyun			#address-cells = <0>;
367*4882a593Smuzhiyun			#interrupt-cells = <1>;
368*4882a593Smuzhiyun			interrupt-parent = <&gic>;
369*4882a593Smuzhiyun			interrupts = <GIC_SPI 240 IRQ_TYPE_EDGE_RISING>;
370*4882a593Smuzhiyun		};
371*4882a593Smuzhiyun	};
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun	gmac0: ethernet@fe1b0000 {
374*4882a593Smuzhiyun		compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
375*4882a593Smuzhiyun		reg = <0x0 0xfe1b0000 0x0 0x10000>;
376*4882a593Smuzhiyun		interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>,
377*4882a593Smuzhiyun			     <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
378*4882a593Smuzhiyun		interrupt-names = "macirq", "eth_wake_irq";
379*4882a593Smuzhiyun		rockchip,grf = <&sys_grf>;
380*4882a593Smuzhiyun		rockchip,php_grf = <&php_grf>;
381*4882a593Smuzhiyun		clocks = <&cru CLK_GMAC0>, <&cru ACLK_GMAC0>,
382*4882a593Smuzhiyun			 <&cru PCLK_GMAC0>, <&cru CLK_GMAC0_PTP_REF>;
383*4882a593Smuzhiyun		clock-names = "stmmaceth", "aclk_mac",
384*4882a593Smuzhiyun			      "pclk_mac", "ptp_ref";
385*4882a593Smuzhiyun		resets = <&cru SRST_A_GMAC0>;
386*4882a593Smuzhiyun		reset-names = "stmmaceth";
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun		snps,mixed-burst;
389*4882a593Smuzhiyun		snps,tso;
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun		snps,axi-config = <&gmac0_stmmac_axi_setup>;
392*4882a593Smuzhiyun		snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
393*4882a593Smuzhiyun		snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
394*4882a593Smuzhiyun		status = "disabled";
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun		mdio0: mdio {
397*4882a593Smuzhiyun			compatible = "snps,dwmac-mdio";
398*4882a593Smuzhiyun			#address-cells = <0x1>;
399*4882a593Smuzhiyun			#size-cells = <0x0>;
400*4882a593Smuzhiyun		};
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun		gmac0_stmmac_axi_setup: stmmac-axi-config {
403*4882a593Smuzhiyun			snps,wr_osr_lmt = <4>;
404*4882a593Smuzhiyun			snps,rd_osr_lmt = <8>;
405*4882a593Smuzhiyun			snps,blen = <0 0 0 0 16 8 4>;
406*4882a593Smuzhiyun		};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun		gmac0_mtl_rx_setup: rx-queues-config {
409*4882a593Smuzhiyun			snps,rx-queues-to-use = <2>;
410*4882a593Smuzhiyun			queue0 {};
411*4882a593Smuzhiyun			queue1 {};
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun		gmac0_mtl_tx_setup: tx-queues-config {
415*4882a593Smuzhiyun			snps,tx-queues-to-use = <2>;
416*4882a593Smuzhiyun			queue0 {};
417*4882a593Smuzhiyun			queue1 {};
418*4882a593Smuzhiyun		};
419*4882a593Smuzhiyun	};
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun	sata1: sata@fe220000 {
422*4882a593Smuzhiyun		compatible = "snps,dwc-ahci";
423*4882a593Smuzhiyun		reg = <0 0xfe220000 0 0x1000>;
424*4882a593Smuzhiyun		clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
425*4882a593Smuzhiyun			 <&cru CLK_RXOOB1>, <&cru CLK_PIPEPHY1_REF>;
426*4882a593Smuzhiyun		clock-names = "sata", "pmalive", "rxoob", "ref";
427*4882a593Smuzhiyun		interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>;
428*4882a593Smuzhiyun		interrupt-names = "hostc";
429*4882a593Smuzhiyun		phys = <&combphy1_ps PHY_TYPE_SATA>;
430*4882a593Smuzhiyun		phy-names = "sata-phy";
431*4882a593Smuzhiyun		ports-implemented = <0x1>;
432*4882a593Smuzhiyun		power-domains = <&power RK3588_PD_PHP>;
433*4882a593Smuzhiyun		status = "disabled";
434*4882a593Smuzhiyun	};
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun	crypto: crypto@fe370000 {
437*4882a593Smuzhiyun		compatible = "rockchip,rk3588-crypto";
438*4882a593Smuzhiyun		reg = <0x0 0xfe370000 0x0 0x4000>;
439*4882a593Smuzhiyun		clocks = <&scmi_clk SCMI_CRYPTO_CORE>, <&scmi_clk SCMI_CRYPTO_PKA>;
440*4882a593Smuzhiyun		clock-names = "sclk_crypto", "apkclk_crypto";
441*4882a593Smuzhiyun		clock-frequency = <350000000>, <350000000>;
442*4882a593Smuzhiyun		status = "disabled";
443*4882a593Smuzhiyun	};
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun	rng: rng@fe378000 {
446*4882a593Smuzhiyun		compatible = "rockchip,trngv1";
447*4882a593Smuzhiyun		reg = <0x0 0xfe378000 0x0 0x200>;
448*4882a593Smuzhiyun		status = "disabled";
449*4882a593Smuzhiyun	};
450*4882a593Smuzhiyun
451*4882a593Smuzhiyun	hdptxphy1: phy@fed70000 {
452*4882a593Smuzhiyun		compatible = "rockchip,rk3588-hdptx-phy";
453*4882a593Smuzhiyun		reg = <0x0 0xfed70000 0x0 0x2000>;
454*4882a593Smuzhiyun		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX1>;
455*4882a593Smuzhiyun		clock-names = "ref", "apb";
456*4882a593Smuzhiyun		resets = <&cru SRST_HDPTX1>, <&cru SRST_P_HDPTX1>,
457*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_INIT>, <&cru SRST_HDPTX1_CMN>,
458*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_LANE>, <&cru SRST_HDPTX1_ROPLL>,
459*4882a593Smuzhiyun			 <&cru SRST_HDPTX1_LCPLL>;
460*4882a593Smuzhiyun		reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
461*4882a593Smuzhiyun			      "lcpll";
462*4882a593Smuzhiyun		rockchip,grf = <&hdptxphy1_grf>;
463*4882a593Smuzhiyun		#phy-cells = <0>;
464*4882a593Smuzhiyun		status = "disabled";
465*4882a593Smuzhiyun	};
466*4882a593Smuzhiyun
467*4882a593Smuzhiyun	usbdp_phy1: phy@fed90000 {
468*4882a593Smuzhiyun		compatible = "rockchip,rk3588-usbdp-phy";
469*4882a593Smuzhiyun		reg = <0x0 0xfed90000 0x0 0x10000>;
470*4882a593Smuzhiyun		rockchip,usb-grf = <&usb_grf>;
471*4882a593Smuzhiyun		rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
472*4882a593Smuzhiyun		rockchip,vo-grf = <&vo0_grf>;
473*4882a593Smuzhiyun		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
474*4882a593Smuzhiyun			 <&cru CLK_USBDP_PHY1_IMMORTAL>,
475*4882a593Smuzhiyun			 <&cru PCLK_USBDPPHY1>;
476*4882a593Smuzhiyun		clock-names = "refclk", "immortal", "pclk";
477*4882a593Smuzhiyun		resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
478*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_CMN>,
479*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_LANE>,
480*4882a593Smuzhiyun			 <&cru SRST_USBDP_COMBO_PHY1_PCS>,
481*4882a593Smuzhiyun			 <&cru SRST_P_USBDPPHY1>;
482*4882a593Smuzhiyun		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
483*4882a593Smuzhiyun		status = "disabled";
484*4882a593Smuzhiyun
485*4882a593Smuzhiyun		usbdp_phy1_dp: dp-port {
486*4882a593Smuzhiyun			#phy-cells = <0>;
487*4882a593Smuzhiyun			status = "disabled";
488*4882a593Smuzhiyun		};
489*4882a593Smuzhiyun
490*4882a593Smuzhiyun		usbdp_phy1_u3: u3-port {
491*4882a593Smuzhiyun			#phy-cells = <0>;
492*4882a593Smuzhiyun			status = "disabled";
493*4882a593Smuzhiyun		};
494*4882a593Smuzhiyun	};
495*4882a593Smuzhiyun
496*4882a593Smuzhiyun	combphy1_ps: phy@fee10000 {
497*4882a593Smuzhiyun		compatible = "rockchip,rk3588-naneng-combphy";
498*4882a593Smuzhiyun		reg = <0x0 0xfee10000 0x0 0x100>;
499*4882a593Smuzhiyun		#phy-cells = <1>;
500*4882a593Smuzhiyun		clocks = <&cru CLK_REF_PIPE_PHY1>, <&cru PCLK_PCIE_COMBO_PIPE_PHY1>;
501*4882a593Smuzhiyun		clock-names = "refclk", "apbclk";
502*4882a593Smuzhiyun		assigned-clocks = <&cru CLK_REF_PIPE_PHY1>;
503*4882a593Smuzhiyun		assigned-clock-rates = <100000000>;
504*4882a593Smuzhiyun		resets = <&cru SRST_P_PCIE2_PHY1>, <&cru SRST_REF_PIPE_PHY1>;
505*4882a593Smuzhiyun		reset-names = "combphy-apb", "combphy";
506*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
507*4882a593Smuzhiyun		rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
508*4882a593Smuzhiyun		rockchip,pcie1ln-sel-bits = <0x100 0 0 0>;
509*4882a593Smuzhiyun		status = "disabled";
510*4882a593Smuzhiyun	};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun	pcie30phy: phy@fee80000 {
513*4882a593Smuzhiyun		compatible = "rockchip,rk3588-pcie3-phy";
514*4882a593Smuzhiyun		reg = <0x0 0xfee80000 0x0 0x20000>;
515*4882a593Smuzhiyun		#phy-cells = <0>;
516*4882a593Smuzhiyun		clocks = <&cru PCLK_PCIE_COMBO_PIPE_PHY>;
517*4882a593Smuzhiyun		clock-names = "pclk";
518*4882a593Smuzhiyun		resets = <&cru SRST_PCIE30_PHY>;
519*4882a593Smuzhiyun		reset-names = "phy";
520*4882a593Smuzhiyun		rockchip,pipe-grf = <&php_grf>;
521*4882a593Smuzhiyun		rockchip,phy-grf = <&pcie30_phy_grf>;
522*4882a593Smuzhiyun		status = "disabled";
523*4882a593Smuzhiyun	};
524*4882a593Smuzhiyun
525*4882a593Smuzhiyun};
526