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