xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3588-extra.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4*0e8011faSEmmanuel Vadot */
5*0e8011faSEmmanuel Vadot
6*0e8011faSEmmanuel Vadot#include "rk3588-base.dtsi"
7*0e8011faSEmmanuel Vadot#include "rk3588-extra-pinctrl.dtsi"
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadot/ {
10*0e8011faSEmmanuel Vadot	usb_host1_xhci: usb@fc400000 {
11*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
12*0e8011faSEmmanuel Vadot		reg = <0x0 0xfc400000 0x0 0x400000>;
13*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
14*0e8011faSEmmanuel Vadot		clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
15*0e8011faSEmmanuel Vadot			 <&cru ACLK_USB3OTG1>;
16*0e8011faSEmmanuel Vadot		clock-names = "ref_clk", "suspend_clk", "bus_clk";
17*0e8011faSEmmanuel Vadot		dr_mode = "otg";
18*0e8011faSEmmanuel Vadot		phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
19*0e8011faSEmmanuel Vadot		phy-names = "usb2-phy", "usb3-phy";
20*0e8011faSEmmanuel Vadot		phy_type = "utmi_wide";
21*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_USB>;
22*0e8011faSEmmanuel Vadot		resets = <&cru SRST_A_USB3OTG1>;
23*0e8011faSEmmanuel Vadot		snps,dis_enblslpm_quirk;
24*0e8011faSEmmanuel Vadot		snps,dis-u2-freeclk-exists-quirk;
25*0e8011faSEmmanuel Vadot		snps,dis-del-phy-power-chg-quirk;
26*0e8011faSEmmanuel Vadot		snps,dis-tx-ipgap-linecheck-quirk;
27*0e8011faSEmmanuel Vadot		status = "disabled";
28*0e8011faSEmmanuel Vadot	};
29*0e8011faSEmmanuel Vadot
30*0e8011faSEmmanuel Vadot	pcie30_phy_grf: syscon@fd5b8000 {
31*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
32*0e8011faSEmmanuel Vadot		reg = <0x0 0xfd5b8000 0x0 0x10000>;
33*0e8011faSEmmanuel Vadot	};
34*0e8011faSEmmanuel Vadot
35*0e8011faSEmmanuel Vadot	pipe_phy1_grf: syscon@fd5c0000 {
36*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
37*0e8011faSEmmanuel Vadot		reg = <0x0 0xfd5c0000 0x0 0x100>;
38*0e8011faSEmmanuel Vadot	};
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot	usbdpphy1_grf: syscon@fd5cc000 {
41*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
42*0e8011faSEmmanuel Vadot		reg = <0x0 0xfd5cc000 0x0 0x4000>;
43*0e8011faSEmmanuel Vadot	};
44*0e8011faSEmmanuel Vadot
45*0e8011faSEmmanuel Vadot	usb2phy1_grf: syscon@fd5d4000 {
46*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
47*0e8011faSEmmanuel Vadot		reg = <0x0 0xfd5d4000 0x0 0x4000>;
48*0e8011faSEmmanuel Vadot		#address-cells = <1>;
49*0e8011faSEmmanuel Vadot		#size-cells = <1>;
50*0e8011faSEmmanuel Vadot
51*0e8011faSEmmanuel Vadot		u2phy1: usb2phy@4000 {
52*0e8011faSEmmanuel Vadot			compatible = "rockchip,rk3588-usb2phy";
53*0e8011faSEmmanuel Vadot			reg = <0x4000 0x10>;
54*0e8011faSEmmanuel Vadot			#clock-cells = <0>;
55*0e8011faSEmmanuel Vadot			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
56*0e8011faSEmmanuel Vadot			clock-names = "phyclk";
57*0e8011faSEmmanuel Vadot			clock-output-names = "usb480m_phy1";
58*0e8011faSEmmanuel Vadot			interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
59*0e8011faSEmmanuel Vadot			resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
60*0e8011faSEmmanuel Vadot			reset-names = "phy", "apb";
61*0e8011faSEmmanuel Vadot			status = "disabled";
62*0e8011faSEmmanuel Vadot
63*0e8011faSEmmanuel Vadot			u2phy1_otg: otg-port {
64*0e8011faSEmmanuel Vadot				#phy-cells = <0>;
65*0e8011faSEmmanuel Vadot				status = "disabled";
66*0e8011faSEmmanuel Vadot			};
67*0e8011faSEmmanuel Vadot		};
68*0e8011faSEmmanuel Vadot	};
69*0e8011faSEmmanuel Vadot
70*0e8011faSEmmanuel Vadot	i2s8_8ch: i2s@fddc8000 {
71*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-i2s-tdm";
72*0e8011faSEmmanuel Vadot		reg = <0x0 0xfddc8000 0x0 0x1000>;
73*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH 0>;
74*0e8011faSEmmanuel Vadot		clocks = <&cru MCLK_I2S8_8CH_TX>, <&cru MCLK_I2S8_8CH_TX>, <&cru HCLK_I2S8_8CH>;
75*0e8011faSEmmanuel Vadot		clock-names = "mclk_tx", "mclk_rx", "hclk";
76*0e8011faSEmmanuel Vadot		assigned-clocks = <&cru CLK_I2S8_8CH_TX_SRC>;
77*0e8011faSEmmanuel Vadot		assigned-clock-parents = <&cru PLL_AUPLL>;
78*0e8011faSEmmanuel Vadot		dmas = <&dmac2 22>;
79*0e8011faSEmmanuel Vadot		dma-names = "tx";
80*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_VO0>;
81*0e8011faSEmmanuel Vadot		resets = <&cru SRST_M_I2S8_8CH_TX>;
82*0e8011faSEmmanuel Vadot		reset-names = "tx-m";
83*0e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
84*0e8011faSEmmanuel Vadot		status = "disabled";
85*0e8011faSEmmanuel Vadot	};
86*0e8011faSEmmanuel Vadot
87*0e8011faSEmmanuel Vadot	i2s6_8ch: i2s@fddf4000 {
88*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-i2s-tdm";
89*0e8011faSEmmanuel Vadot		reg = <0x0 0xfddf4000 0x0 0x1000>;
90*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
91*0e8011faSEmmanuel Vadot		clocks = <&cru MCLK_I2S6_8CH_TX>, <&cru MCLK_I2S6_8CH_TX>, <&cru HCLK_I2S6_8CH>;
92*0e8011faSEmmanuel Vadot		clock-names = "mclk_tx", "mclk_rx", "hclk";
93*0e8011faSEmmanuel Vadot		assigned-clocks = <&cru CLK_I2S6_8CH_TX_SRC>;
94*0e8011faSEmmanuel Vadot		assigned-clock-parents = <&cru PLL_AUPLL>;
95*0e8011faSEmmanuel Vadot		dmas = <&dmac2 4>;
96*0e8011faSEmmanuel Vadot		dma-names = "tx";
97*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_VO1>;
98*0e8011faSEmmanuel Vadot		resets = <&cru SRST_M_I2S6_8CH_TX>;
99*0e8011faSEmmanuel Vadot		reset-names = "tx-m";
100*0e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
101*0e8011faSEmmanuel Vadot		status = "disabled";
102*0e8011faSEmmanuel Vadot	};
103*0e8011faSEmmanuel Vadot
104*0e8011faSEmmanuel Vadot	i2s7_8ch: i2s@fddf8000 {
105*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-i2s-tdm";
106*0e8011faSEmmanuel Vadot		reg = <0x0 0xfddf8000 0x0 0x1000>;
107*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH 0>;
108*0e8011faSEmmanuel Vadot		clocks = <&cru MCLK_I2S7_8CH_RX>, <&cru MCLK_I2S7_8CH_RX>, <&cru HCLK_I2S7_8CH>;
109*0e8011faSEmmanuel Vadot		clock-names = "mclk_tx", "mclk_rx", "hclk";
110*0e8011faSEmmanuel Vadot		assigned-clocks = <&cru CLK_I2S7_8CH_RX_SRC>;
111*0e8011faSEmmanuel Vadot		assigned-clock-parents = <&cru PLL_AUPLL>;
112*0e8011faSEmmanuel Vadot		dmas = <&dmac2 21>;
113*0e8011faSEmmanuel Vadot		dma-names = "rx";
114*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_VO1>;
115*0e8011faSEmmanuel Vadot		resets = <&cru SRST_M_I2S7_8CH_RX>;
116*0e8011faSEmmanuel Vadot		reset-names = "rx-m";
117*0e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
118*0e8011faSEmmanuel Vadot		status = "disabled";
119*0e8011faSEmmanuel Vadot	};
120*0e8011faSEmmanuel Vadot
121*0e8011faSEmmanuel Vadot	i2s10_8ch: i2s@fde00000 {
122*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-i2s-tdm";
123*0e8011faSEmmanuel Vadot		reg = <0x0 0xfde00000 0x0 0x1000>;
124*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH 0>;
125*0e8011faSEmmanuel Vadot		clocks = <&cru MCLK_I2S10_8CH_RX>, <&cru MCLK_I2S10_8CH_RX>, <&cru HCLK_I2S10_8CH>;
126*0e8011faSEmmanuel Vadot		clock-names = "mclk_tx", "mclk_rx", "hclk";
127*0e8011faSEmmanuel Vadot		assigned-clocks = <&cru CLK_I2S10_8CH_RX_SRC>;
128*0e8011faSEmmanuel Vadot		assigned-clock-parents = <&cru PLL_AUPLL>;
129*0e8011faSEmmanuel Vadot		dmas = <&dmac2 24>;
130*0e8011faSEmmanuel Vadot		dma-names = "rx";
131*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_VO1>;
132*0e8011faSEmmanuel Vadot		resets = <&cru SRST_M_I2S10_8CH_RX>;
133*0e8011faSEmmanuel Vadot		reset-names = "rx-m";
134*0e8011faSEmmanuel Vadot		#sound-dai-cells = <0>;
135*0e8011faSEmmanuel Vadot		status = "disabled";
136*0e8011faSEmmanuel Vadot	};
137*0e8011faSEmmanuel Vadot
138*0e8011faSEmmanuel Vadot	pcie3x4: pcie@fe150000 {
139*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
140*0e8011faSEmmanuel Vadot		#address-cells = <3>;
141*0e8011faSEmmanuel Vadot		#size-cells = <2>;
142*0e8011faSEmmanuel Vadot		bus-range = <0x00 0x0f>;
143*0e8011faSEmmanuel Vadot		clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
144*0e8011faSEmmanuel Vadot			 <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
145*0e8011faSEmmanuel Vadot			 <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
146*0e8011faSEmmanuel Vadot		clock-names = "aclk_mst", "aclk_slv",
147*0e8011faSEmmanuel Vadot			      "aclk_dbi", "pclk",
148*0e8011faSEmmanuel Vadot			      "aux", "pipe";
149*0e8011faSEmmanuel Vadot		device_type = "pci";
150*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
151*0e8011faSEmmanuel Vadot			     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
152*0e8011faSEmmanuel Vadot			     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
153*0e8011faSEmmanuel Vadot			     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
154*0e8011faSEmmanuel Vadot			     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>;
155*0e8011faSEmmanuel Vadot		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
156*0e8011faSEmmanuel Vadot		#interrupt-cells = <1>;
157*0e8011faSEmmanuel Vadot		interrupt-map-mask = <0 0 0 7>;
158*0e8011faSEmmanuel Vadot		interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
159*0e8011faSEmmanuel Vadot				<0 0 0 2 &pcie3x4_intc 1>,
160*0e8011faSEmmanuel Vadot				<0 0 0 3 &pcie3x4_intc 2>,
161*0e8011faSEmmanuel Vadot				<0 0 0 4 &pcie3x4_intc 3>;
162*0e8011faSEmmanuel Vadot		linux,pci-domain = <0>;
163*0e8011faSEmmanuel Vadot		max-link-speed = <3>;
164*0e8011faSEmmanuel Vadot		msi-map = <0x0000 &its1 0x0000 0x1000>;
165*0e8011faSEmmanuel Vadot		num-lanes = <4>;
166*0e8011faSEmmanuel Vadot		phys = <&pcie30phy>;
167*0e8011faSEmmanuel Vadot		phy-names = "pcie-phy";
168*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_PCIE>;
169*0e8011faSEmmanuel Vadot		ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
170*0e8011faSEmmanuel Vadot			 <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x00e00000>,
171*0e8011faSEmmanuel Vadot			 <0x03000000 0x0 0x40000000 0x9 0x00000000 0x0 0x40000000>;
172*0e8011faSEmmanuel Vadot		reg = <0xa 0x40000000 0x0 0x00400000>,
173*0e8011faSEmmanuel Vadot		      <0x0 0xfe150000 0x0 0x00010000>,
174*0e8011faSEmmanuel Vadot		      <0x0 0xf0000000 0x0 0x00100000>;
175*0e8011faSEmmanuel Vadot		reg-names = "dbi", "apb", "config";
176*0e8011faSEmmanuel Vadot		resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
177*0e8011faSEmmanuel Vadot		reset-names = "pwr", "pipe";
178*0e8011faSEmmanuel Vadot		status = "disabled";
179*0e8011faSEmmanuel Vadot
180*0e8011faSEmmanuel Vadot		pcie3x4_intc: legacy-interrupt-controller {
181*0e8011faSEmmanuel Vadot			interrupt-controller;
182*0e8011faSEmmanuel Vadot			#address-cells = <0>;
183*0e8011faSEmmanuel Vadot			#interrupt-cells = <1>;
184*0e8011faSEmmanuel Vadot			interrupt-parent = <&gic>;
185*0e8011faSEmmanuel Vadot			interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING 0>;
186*0e8011faSEmmanuel Vadot		};
187*0e8011faSEmmanuel Vadot	};
188*0e8011faSEmmanuel Vadot
189*0e8011faSEmmanuel Vadot	pcie3x4_ep: pcie-ep@fe150000 {
190*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie-ep";
191*0e8011faSEmmanuel Vadot		reg = <0xa 0x40000000 0x0 0x00100000>,
192*0e8011faSEmmanuel Vadot		      <0xa 0x40100000 0x0 0x00100000>,
193*0e8011faSEmmanuel Vadot		      <0x0 0xfe150000 0x0 0x00010000>,
194*0e8011faSEmmanuel Vadot		      <0x9 0x00000000 0x0 0x40000000>,
195*0e8011faSEmmanuel Vadot		      <0xa 0x40300000 0x0 0x00100000>;
196*0e8011faSEmmanuel Vadot		reg-names = "dbi", "dbi2", "apb", "addr_space", "atu";
197*0e8011faSEmmanuel Vadot		clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
198*0e8011faSEmmanuel Vadot			 <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
199*0e8011faSEmmanuel Vadot			 <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
200*0e8011faSEmmanuel Vadot		clock-names = "aclk_mst", "aclk_slv",
201*0e8011faSEmmanuel Vadot			      "aclk_dbi", "pclk",
202*0e8011faSEmmanuel Vadot			      "aux", "pipe";
203*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
204*0e8011faSEmmanuel Vadot			     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
205*0e8011faSEmmanuel Vadot			     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
206*0e8011faSEmmanuel Vadot			     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
207*0e8011faSEmmanuel Vadot			     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>,
208*0e8011faSEmmanuel Vadot			     <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 0>,
209*0e8011faSEmmanuel Vadot			     <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH 0>,
210*0e8011faSEmmanuel Vadot			     <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 0>,
211*0e8011faSEmmanuel Vadot			     <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
212*0e8011faSEmmanuel Vadot		interrupt-names = "sys", "pmc", "msg", "legacy", "err",
213*0e8011faSEmmanuel Vadot				  "dma0", "dma1", "dma2", "dma3";
214*0e8011faSEmmanuel Vadot		max-link-speed = <3>;
215*0e8011faSEmmanuel Vadot		num-lanes = <4>;
216*0e8011faSEmmanuel Vadot		phys = <&pcie30phy>;
217*0e8011faSEmmanuel Vadot		phy-names = "pcie-phy";
218*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_PCIE>;
219*0e8011faSEmmanuel Vadot		resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
220*0e8011faSEmmanuel Vadot		reset-names = "pwr", "pipe";
221*0e8011faSEmmanuel Vadot		status = "disabled";
222*0e8011faSEmmanuel Vadot	};
223*0e8011faSEmmanuel Vadot
224*0e8011faSEmmanuel Vadot	pcie3x2: pcie@fe160000 {
225*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
226*0e8011faSEmmanuel Vadot		#address-cells = <3>;
227*0e8011faSEmmanuel Vadot		#size-cells = <2>;
228*0e8011faSEmmanuel Vadot		bus-range = <0x10 0x1f>;
229*0e8011faSEmmanuel Vadot		clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>,
230*0e8011faSEmmanuel Vadot			 <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>,
231*0e8011faSEmmanuel Vadot			 <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>;
232*0e8011faSEmmanuel Vadot		clock-names = "aclk_mst", "aclk_slv",
233*0e8011faSEmmanuel Vadot			      "aclk_dbi", "pclk",
234*0e8011faSEmmanuel Vadot			      "aux", "pipe";
235*0e8011faSEmmanuel Vadot		device_type = "pci";
236*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH 0>,
237*0e8011faSEmmanuel Vadot			     <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>,
238*0e8011faSEmmanuel Vadot			     <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH 0>,
239*0e8011faSEmmanuel Vadot			     <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH 0>,
240*0e8011faSEmmanuel Vadot			     <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH 0>;
241*0e8011faSEmmanuel Vadot		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
242*0e8011faSEmmanuel Vadot		#interrupt-cells = <1>;
243*0e8011faSEmmanuel Vadot		interrupt-map-mask = <0 0 0 7>;
244*0e8011faSEmmanuel Vadot		interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
245*0e8011faSEmmanuel Vadot				<0 0 0 2 &pcie3x2_intc 1>,
246*0e8011faSEmmanuel Vadot				<0 0 0 3 &pcie3x2_intc 2>,
247*0e8011faSEmmanuel Vadot				<0 0 0 4 &pcie3x2_intc 3>;
248*0e8011faSEmmanuel Vadot		linux,pci-domain = <1>;
249*0e8011faSEmmanuel Vadot		max-link-speed = <3>;
250*0e8011faSEmmanuel Vadot		msi-map = <0x1000 &its1 0x1000 0x1000>;
251*0e8011faSEmmanuel Vadot		num-lanes = <2>;
252*0e8011faSEmmanuel Vadot		phys = <&pcie30phy>;
253*0e8011faSEmmanuel Vadot		phy-names = "pcie-phy";
254*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_PCIE>;
255*0e8011faSEmmanuel Vadot		ranges = <0x01000000 0x0 0xf1100000 0x0 0xf1100000 0x0 0x00100000>,
256*0e8011faSEmmanuel Vadot			 <0x02000000 0x0 0xf1200000 0x0 0xf1200000 0x0 0x00e00000>,
257*0e8011faSEmmanuel Vadot			 <0x03000000 0x0 0x40000000 0x9 0x40000000 0x0 0x40000000>;
258*0e8011faSEmmanuel Vadot		reg = <0xa 0x40400000 0x0 0x00400000>,
259*0e8011faSEmmanuel Vadot		      <0x0 0xfe160000 0x0 0x00010000>,
260*0e8011faSEmmanuel Vadot		      <0x0 0xf1000000 0x0 0x00100000>;
261*0e8011faSEmmanuel Vadot		reg-names = "dbi", "apb", "config";
262*0e8011faSEmmanuel Vadot		resets = <&cru SRST_PCIE1_POWER_UP>, <&cru SRST_P_PCIE1>;
263*0e8011faSEmmanuel Vadot		reset-names = "pwr", "pipe";
264*0e8011faSEmmanuel Vadot		status = "disabled";
265*0e8011faSEmmanuel Vadot
266*0e8011faSEmmanuel Vadot		pcie3x2_intc: legacy-interrupt-controller {
267*0e8011faSEmmanuel Vadot			interrupt-controller;
268*0e8011faSEmmanuel Vadot			#address-cells = <0>;
269*0e8011faSEmmanuel Vadot			#interrupt-cells = <1>;
270*0e8011faSEmmanuel Vadot			interrupt-parent = <&gic>;
271*0e8011faSEmmanuel Vadot			interrupts = <GIC_SPI 255 IRQ_TYPE_EDGE_RISING 0>;
272*0e8011faSEmmanuel Vadot		};
273*0e8011faSEmmanuel Vadot	};
274*0e8011faSEmmanuel Vadot
275*0e8011faSEmmanuel Vadot	pcie2x1l0: pcie@fe170000 {
276*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
277*0e8011faSEmmanuel Vadot		bus-range = <0x20 0x2f>;
278*0e8011faSEmmanuel Vadot		clocks = <&cru ACLK_PCIE_1L0_MSTR>, <&cru ACLK_PCIE_1L0_SLV>,
279*0e8011faSEmmanuel Vadot			 <&cru ACLK_PCIE_1L0_DBI>, <&cru PCLK_PCIE_1L0>,
280*0e8011faSEmmanuel Vadot			 <&cru CLK_PCIE_AUX2>, <&cru CLK_PCIE1L0_PIPE>;
281*0e8011faSEmmanuel Vadot		clock-names = "aclk_mst", "aclk_slv",
282*0e8011faSEmmanuel Vadot			      "aclk_dbi", "pclk",
283*0e8011faSEmmanuel Vadot			      "aux", "pipe";
284*0e8011faSEmmanuel Vadot		device_type = "pci";
285*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>,
286*0e8011faSEmmanuel Vadot			     <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH 0>,
287*0e8011faSEmmanuel Vadot			     <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH 0>,
288*0e8011faSEmmanuel Vadot			     <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH 0>,
289*0e8011faSEmmanuel Vadot			     <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
290*0e8011faSEmmanuel Vadot		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
291*0e8011faSEmmanuel Vadot		#interrupt-cells = <1>;
292*0e8011faSEmmanuel Vadot		interrupt-map-mask = <0 0 0 7>;
293*0e8011faSEmmanuel Vadot		interrupt-map = <0 0 0 1 &pcie2x1l0_intc 0>,
294*0e8011faSEmmanuel Vadot				<0 0 0 2 &pcie2x1l0_intc 1>,
295*0e8011faSEmmanuel Vadot				<0 0 0 3 &pcie2x1l0_intc 2>,
296*0e8011faSEmmanuel Vadot				<0 0 0 4 &pcie2x1l0_intc 3>;
297*0e8011faSEmmanuel Vadot		linux,pci-domain = <2>;
298*0e8011faSEmmanuel Vadot		max-link-speed = <2>;
299*0e8011faSEmmanuel Vadot		msi-map = <0x2000 &its0 0x2000 0x1000>;
300*0e8011faSEmmanuel Vadot		num-lanes = <1>;
301*0e8011faSEmmanuel Vadot		phys = <&combphy1_ps PHY_TYPE_PCIE>;
302*0e8011faSEmmanuel Vadot		phy-names = "pcie-phy";
303*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_PCIE>;
304*0e8011faSEmmanuel Vadot		ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
305*0e8011faSEmmanuel Vadot			 <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x00e00000>,
306*0e8011faSEmmanuel Vadot			 <0x03000000 0x0 0x40000000 0x9 0x80000000 0x0 0x40000000>;
307*0e8011faSEmmanuel Vadot		reg = <0xa 0x40800000 0x0 0x00400000>,
308*0e8011faSEmmanuel Vadot		      <0x0 0xfe170000 0x0 0x00010000>,
309*0e8011faSEmmanuel Vadot		      <0x0 0xf2000000 0x0 0x00100000>;
310*0e8011faSEmmanuel Vadot		reg-names = "dbi", "apb", "config";
311*0e8011faSEmmanuel Vadot		resets = <&cru SRST_PCIE2_POWER_UP>, <&cru SRST_P_PCIE2>;
312*0e8011faSEmmanuel Vadot		reset-names = "pwr", "pipe";
313*0e8011faSEmmanuel Vadot		#address-cells = <3>;
314*0e8011faSEmmanuel Vadot		#size-cells = <2>;
315*0e8011faSEmmanuel Vadot		status = "disabled";
316*0e8011faSEmmanuel Vadot
317*0e8011faSEmmanuel Vadot		pcie2x1l0_intc: legacy-interrupt-controller {
318*0e8011faSEmmanuel Vadot			interrupt-controller;
319*0e8011faSEmmanuel Vadot			#address-cells = <0>;
320*0e8011faSEmmanuel Vadot			#interrupt-cells = <1>;
321*0e8011faSEmmanuel Vadot			interrupt-parent = <&gic>;
322*0e8011faSEmmanuel Vadot			interrupts = <GIC_SPI 240 IRQ_TYPE_EDGE_RISING 0>;
323*0e8011faSEmmanuel Vadot		};
324*0e8011faSEmmanuel Vadot	};
325*0e8011faSEmmanuel Vadot
326*0e8011faSEmmanuel Vadot	gmac0: ethernet@fe1b0000 {
327*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
328*0e8011faSEmmanuel Vadot		reg = <0x0 0xfe1b0000 0x0 0x10000>;
329*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH 0>,
330*0e8011faSEmmanuel Vadot			     <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH 0>;
331*0e8011faSEmmanuel Vadot		interrupt-names = "macirq", "eth_wake_irq";
332*0e8011faSEmmanuel Vadot		clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
333*0e8011faSEmmanuel Vadot			 <&cru PCLK_GMAC0>, <&cru ACLK_GMAC0>,
334*0e8011faSEmmanuel Vadot			 <&cru CLK_GMAC0_PTP_REF>;
335*0e8011faSEmmanuel Vadot		clock-names = "stmmaceth", "clk_mac_ref",
336*0e8011faSEmmanuel Vadot			      "pclk_mac", "aclk_mac",
337*0e8011faSEmmanuel Vadot			      "ptp_ref";
338*0e8011faSEmmanuel Vadot		power-domains = <&power RK3588_PD_GMAC>;
339*0e8011faSEmmanuel Vadot		resets = <&cru SRST_A_GMAC0>;
340*0e8011faSEmmanuel Vadot		reset-names = "stmmaceth";
341*0e8011faSEmmanuel Vadot		rockchip,grf = <&sys_grf>;
342*0e8011faSEmmanuel Vadot		rockchip,php-grf = <&php_grf>;
343*0e8011faSEmmanuel Vadot		snps,axi-config = <&gmac0_stmmac_axi_setup>;
344*0e8011faSEmmanuel Vadot		snps,mixed-burst;
345*0e8011faSEmmanuel Vadot		snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
346*0e8011faSEmmanuel Vadot		snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
347*0e8011faSEmmanuel Vadot		snps,tso;
348*0e8011faSEmmanuel Vadot		status = "disabled";
349*0e8011faSEmmanuel Vadot
350*0e8011faSEmmanuel Vadot		mdio0: mdio {
351*0e8011faSEmmanuel Vadot			compatible = "snps,dwmac-mdio";
352*0e8011faSEmmanuel Vadot			#address-cells = <0x1>;
353*0e8011faSEmmanuel Vadot			#size-cells = <0x0>;
354*0e8011faSEmmanuel Vadot		};
355*0e8011faSEmmanuel Vadot
356*0e8011faSEmmanuel Vadot		gmac0_stmmac_axi_setup: stmmac-axi-config {
357*0e8011faSEmmanuel Vadot			snps,blen = <0 0 0 0 16 8 4>;
358*0e8011faSEmmanuel Vadot			snps,wr_osr_lmt = <4>;
359*0e8011faSEmmanuel Vadot			snps,rd_osr_lmt = <8>;
360*0e8011faSEmmanuel Vadot		};
361*0e8011faSEmmanuel Vadot
362*0e8011faSEmmanuel Vadot		gmac0_mtl_rx_setup: rx-queues-config {
363*0e8011faSEmmanuel Vadot			snps,rx-queues-to-use = <2>;
364*0e8011faSEmmanuel Vadot			queue0 {};
365*0e8011faSEmmanuel Vadot			queue1 {};
366*0e8011faSEmmanuel Vadot		};
367*0e8011faSEmmanuel Vadot
368*0e8011faSEmmanuel Vadot		gmac0_mtl_tx_setup: tx-queues-config {
369*0e8011faSEmmanuel Vadot			snps,tx-queues-to-use = <2>;
370*0e8011faSEmmanuel Vadot			queue0 {};
371*0e8011faSEmmanuel Vadot			queue1 {};
372*0e8011faSEmmanuel Vadot		};
373*0e8011faSEmmanuel Vadot	};
374*0e8011faSEmmanuel Vadot
375*0e8011faSEmmanuel Vadot	sata1: sata@fe220000 {
376*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
377*0e8011faSEmmanuel Vadot		reg = <0 0xfe220000 0 0x1000>;
378*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 0>;
379*0e8011faSEmmanuel Vadot		clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
380*0e8011faSEmmanuel Vadot			 <&cru CLK_RXOOB1>, <&cru CLK_PIPEPHY1_REF>,
381*0e8011faSEmmanuel Vadot			 <&cru CLK_PIPEPHY1_PIPE_ASIC_G>;
382*0e8011faSEmmanuel Vadot		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
383*0e8011faSEmmanuel Vadot		ports-implemented = <0x1>;
384*0e8011faSEmmanuel Vadot		#address-cells = <1>;
385*0e8011faSEmmanuel Vadot		#size-cells = <0>;
386*0e8011faSEmmanuel Vadot		status = "disabled";
387*0e8011faSEmmanuel Vadot
388*0e8011faSEmmanuel Vadot		sata-port@0 {
389*0e8011faSEmmanuel Vadot			reg = <0>;
390*0e8011faSEmmanuel Vadot			hba-port-cap = <HBA_PORT_FBSCP>;
391*0e8011faSEmmanuel Vadot			phys = <&combphy1_ps PHY_TYPE_SATA>;
392*0e8011faSEmmanuel Vadot			phy-names = "sata-phy";
393*0e8011faSEmmanuel Vadot			snps,rx-ts-max = <32>;
394*0e8011faSEmmanuel Vadot			snps,tx-ts-max = <32>;
395*0e8011faSEmmanuel Vadot		};
396*0e8011faSEmmanuel Vadot	};
397*0e8011faSEmmanuel Vadot
398*0e8011faSEmmanuel Vadot	usbdp_phy1: phy@fed90000 {
399*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-usbdp-phy";
400*0e8011faSEmmanuel Vadot		reg = <0x0 0xfed90000 0x0 0x10000>;
401*0e8011faSEmmanuel Vadot		#phy-cells = <1>;
402*0e8011faSEmmanuel Vadot		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
403*0e8011faSEmmanuel Vadot			 <&cru CLK_USBDP_PHY1_IMMORTAL>,
404*0e8011faSEmmanuel Vadot			 <&cru PCLK_USBDPPHY1>,
405*0e8011faSEmmanuel Vadot			 <&u2phy1>;
406*0e8011faSEmmanuel Vadot		clock-names = "refclk", "immortal", "pclk", "utmi";
407*0e8011faSEmmanuel Vadot		resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
408*0e8011faSEmmanuel Vadot			 <&cru SRST_USBDP_COMBO_PHY1_CMN>,
409*0e8011faSEmmanuel Vadot			 <&cru SRST_USBDP_COMBO_PHY1_LANE>,
410*0e8011faSEmmanuel Vadot			 <&cru SRST_USBDP_COMBO_PHY1_PCS>,
411*0e8011faSEmmanuel Vadot			 <&cru SRST_P_USBDPPHY1>;
412*0e8011faSEmmanuel Vadot		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
413*0e8011faSEmmanuel Vadot		rockchip,u2phy-grf = <&usb2phy1_grf>;
414*0e8011faSEmmanuel Vadot		rockchip,usb-grf = <&usb_grf>;
415*0e8011faSEmmanuel Vadot		rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
416*0e8011faSEmmanuel Vadot		rockchip,vo-grf = <&vo0_grf>;
417*0e8011faSEmmanuel Vadot		status = "disabled";
418*0e8011faSEmmanuel Vadot	};
419*0e8011faSEmmanuel Vadot
420*0e8011faSEmmanuel Vadot	combphy1_ps: phy@fee10000 {
421*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-naneng-combphy";
422*0e8011faSEmmanuel Vadot		reg = <0x0 0xfee10000 0x0 0x100>;
423*0e8011faSEmmanuel Vadot		clocks = <&cru CLK_REF_PIPE_PHY1>, <&cru PCLK_PCIE_COMBO_PIPE_PHY1>,
424*0e8011faSEmmanuel Vadot			 <&cru PCLK_PHP_ROOT>;
425*0e8011faSEmmanuel Vadot		clock-names = "ref", "apb", "pipe";
426*0e8011faSEmmanuel Vadot		assigned-clocks = <&cru CLK_REF_PIPE_PHY1>;
427*0e8011faSEmmanuel Vadot		assigned-clock-rates = <100000000>;
428*0e8011faSEmmanuel Vadot		#phy-cells = <1>;
429*0e8011faSEmmanuel Vadot		resets = <&cru SRST_REF_PIPE_PHY1>, <&cru SRST_P_PCIE2_PHY1>;
430*0e8011faSEmmanuel Vadot		reset-names = "phy", "apb";
431*0e8011faSEmmanuel Vadot		rockchip,pipe-grf = <&php_grf>;
432*0e8011faSEmmanuel Vadot		rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
433*0e8011faSEmmanuel Vadot		status = "disabled";
434*0e8011faSEmmanuel Vadot	};
435*0e8011faSEmmanuel Vadot
436*0e8011faSEmmanuel Vadot	pcie30phy: phy@fee80000 {
437*0e8011faSEmmanuel Vadot		compatible = "rockchip,rk3588-pcie3-phy";
438*0e8011faSEmmanuel Vadot		reg = <0x0 0xfee80000 0x0 0x20000>;
439*0e8011faSEmmanuel Vadot		#phy-cells = <0>;
440*0e8011faSEmmanuel Vadot		clocks = <&cru PCLK_PCIE_COMBO_PIPE_PHY>;
441*0e8011faSEmmanuel Vadot		clock-names = "pclk";
442*0e8011faSEmmanuel Vadot		resets = <&cru SRST_PCIE30_PHY>;
443*0e8011faSEmmanuel Vadot		reset-names = "phy";
444*0e8011faSEmmanuel Vadot		rockchip,pipe-grf = <&php_grf>;
445*0e8011faSEmmanuel Vadot		rockchip,phy-grf = <&pcie30_phy_grf>;
446*0e8011faSEmmanuel Vadot		status = "disabled";
447*0e8011faSEmmanuel Vadot	};
448*0e8011faSEmmanuel Vadot};
449