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