1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree Include file for Marvell Armada 37xx family of SoCs. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2016 Marvell 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Gregory CLEMENT <gregory.clement@free-electrons.com> 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun/ { 14*4882a593Smuzhiyun model = "Marvell Armada 37xx SoC"; 15*4882a593Smuzhiyun compatible = "marvell,armada3700"; 16*4882a593Smuzhiyun interrupt-parent = <&gic>; 17*4882a593Smuzhiyun #address-cells = <2>; 18*4882a593Smuzhiyun #size-cells = <2>; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun aliases { 21*4882a593Smuzhiyun serial0 = &uart0; 22*4882a593Smuzhiyun serial1 = &uart1; 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun reserved-memory { 26*4882a593Smuzhiyun #address-cells = <2>; 27*4882a593Smuzhiyun #size-cells = <2>; 28*4882a593Smuzhiyun ranges; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* 31*4882a593Smuzhiyun * The PSCI firmware region depicted below is the default one 32*4882a593Smuzhiyun * and should be updated by the bootloader. 33*4882a593Smuzhiyun */ 34*4882a593Smuzhiyun psci-area@4000000 { 35*4882a593Smuzhiyun reg = <0 0x4000000 0 0x200000>; 36*4882a593Smuzhiyun no-map; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun cpus { 41*4882a593Smuzhiyun #address-cells = <1>; 42*4882a593Smuzhiyun #size-cells = <0>; 43*4882a593Smuzhiyun cpu0: cpu@0 { 44*4882a593Smuzhiyun device_type = "cpu"; 45*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 46*4882a593Smuzhiyun reg = <0>; 47*4882a593Smuzhiyun clocks = <&nb_periph_clk 16>; 48*4882a593Smuzhiyun enable-method = "psci"; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun psci { 53*4882a593Smuzhiyun compatible = "arm,psci-0.2"; 54*4882a593Smuzhiyun method = "smc"; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun timer { 58*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 59*4882a593Smuzhiyun interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, 60*4882a593Smuzhiyun <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, 61*4882a593Smuzhiyun <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, 62*4882a593Smuzhiyun <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun pmu { 66*4882a593Smuzhiyun compatible = "arm,armv8-pmuv3"; 67*4882a593Smuzhiyun interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun soc { 71*4882a593Smuzhiyun compatible = "simple-bus"; 72*4882a593Smuzhiyun #address-cells = <2>; 73*4882a593Smuzhiyun #size-cells = <2>; 74*4882a593Smuzhiyun ranges; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun internal-regs@d0000000 { 77*4882a593Smuzhiyun #address-cells = <1>; 78*4882a593Smuzhiyun #size-cells = <1>; 79*4882a593Smuzhiyun compatible = "simple-bus"; 80*4882a593Smuzhiyun /* 32M internal register @ 0xd000_0000 */ 81*4882a593Smuzhiyun ranges = <0x0 0x0 0xd0000000 0x2000000>; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun wdt: watchdog@8300 { 84*4882a593Smuzhiyun compatible = "marvell,armada-3700-wdt"; 85*4882a593Smuzhiyun reg = <0x8300 0x40>; 86*4882a593Smuzhiyun marvell,system-controller = <&cpu_misc>; 87*4882a593Smuzhiyun clocks = <&xtalclk>; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun cpu_misc: system-controller@d000 { 91*4882a593Smuzhiyun compatible = "marvell,armada-3700-cpu-misc", 92*4882a593Smuzhiyun "syscon"; 93*4882a593Smuzhiyun reg = <0xd000 0x1000>; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun spi0: spi@10600 { 97*4882a593Smuzhiyun compatible = "marvell,armada-3700-spi"; 98*4882a593Smuzhiyun #address-cells = <1>; 99*4882a593Smuzhiyun #size-cells = <0>; 100*4882a593Smuzhiyun reg = <0x10600 0xA00>; 101*4882a593Smuzhiyun clocks = <&nb_periph_clk 7>; 102*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 103*4882a593Smuzhiyun num-cs = <4>; 104*4882a593Smuzhiyun status = "disabled"; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun i2c0: i2c@11000 { 108*4882a593Smuzhiyun compatible = "marvell,armada-3700-i2c"; 109*4882a593Smuzhiyun reg = <0x11000 0x24>; 110*4882a593Smuzhiyun #address-cells = <1>; 111*4882a593Smuzhiyun #size-cells = <0>; 112*4882a593Smuzhiyun clocks = <&nb_periph_clk 10>; 113*4882a593Smuzhiyun interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 114*4882a593Smuzhiyun mrvl,i2c-fast-mode; 115*4882a593Smuzhiyun status = "disabled"; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun i2c1: i2c@11080 { 119*4882a593Smuzhiyun compatible = "marvell,armada-3700-i2c"; 120*4882a593Smuzhiyun reg = <0x11080 0x24>; 121*4882a593Smuzhiyun #address-cells = <1>; 122*4882a593Smuzhiyun #size-cells = <0>; 123*4882a593Smuzhiyun clocks = <&nb_periph_clk 9>; 124*4882a593Smuzhiyun interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 125*4882a593Smuzhiyun mrvl,i2c-fast-mode; 126*4882a593Smuzhiyun status = "disabled"; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun avs: avs@11500 { 130*4882a593Smuzhiyun compatible = "marvell,armada-3700-avs", 131*4882a593Smuzhiyun "syscon"; 132*4882a593Smuzhiyun reg = <0x11500 0x40>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun uart0: serial@12000 { 136*4882a593Smuzhiyun compatible = "marvell,armada-3700-uart"; 137*4882a593Smuzhiyun reg = <0x12000 0x18>; 138*4882a593Smuzhiyun clocks = <&xtalclk>; 139*4882a593Smuzhiyun interrupts = 140*4882a593Smuzhiyun <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 141*4882a593Smuzhiyun <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 142*4882a593Smuzhiyun <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 143*4882a593Smuzhiyun interrupt-names = "uart-sum", "uart-tx", "uart-rx"; 144*4882a593Smuzhiyun status = "disabled"; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun uart1: serial@12200 { 148*4882a593Smuzhiyun compatible = "marvell,armada-3700-uart-ext"; 149*4882a593Smuzhiyun reg = <0x12200 0x30>; 150*4882a593Smuzhiyun clocks = <&xtalclk>; 151*4882a593Smuzhiyun interrupts = 152*4882a593Smuzhiyun <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, 153*4882a593Smuzhiyun <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; 154*4882a593Smuzhiyun interrupt-names = "uart-tx", "uart-rx"; 155*4882a593Smuzhiyun status = "disabled"; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun nb_periph_clk: nb-periph-clk@13000 { 159*4882a593Smuzhiyun compatible = "marvell,armada-3700-periph-clock-nb", 160*4882a593Smuzhiyun "syscon"; 161*4882a593Smuzhiyun reg = <0x13000 0x100>; 162*4882a593Smuzhiyun clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, 163*4882a593Smuzhiyun <&tbg 3>, <&xtalclk>; 164*4882a593Smuzhiyun #clock-cells = <1>; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun sb_periph_clk: sb-periph-clk@18000 { 168*4882a593Smuzhiyun compatible = "marvell,armada-3700-periph-clock-sb"; 169*4882a593Smuzhiyun reg = <0x18000 0x100>; 170*4882a593Smuzhiyun clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, 171*4882a593Smuzhiyun <&tbg 3>, <&xtalclk>; 172*4882a593Smuzhiyun #clock-cells = <1>; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun tbg: tbg@13200 { 176*4882a593Smuzhiyun compatible = "marvell,armada-3700-tbg-clock"; 177*4882a593Smuzhiyun reg = <0x13200 0x100>; 178*4882a593Smuzhiyun clocks = <&xtalclk>; 179*4882a593Smuzhiyun #clock-cells = <1>; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun pinctrl_nb: pinctrl@13800 { 183*4882a593Smuzhiyun compatible = "marvell,armada3710-nb-pinctrl", 184*4882a593Smuzhiyun "syscon", "simple-mfd"; 185*4882a593Smuzhiyun reg = <0x13800 0x100>, <0x13C00 0x20>; 186*4882a593Smuzhiyun /* MPP1[19:0] */ 187*4882a593Smuzhiyun gpionb: gpio { 188*4882a593Smuzhiyun #gpio-cells = <2>; 189*4882a593Smuzhiyun gpio-ranges = <&pinctrl_nb 0 0 36>; 190*4882a593Smuzhiyun gpio-controller; 191*4882a593Smuzhiyun interrupt-controller; 192*4882a593Smuzhiyun #interrupt-cells = <2>; 193*4882a593Smuzhiyun interrupts = 194*4882a593Smuzhiyun <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 195*4882a593Smuzhiyun <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 196*4882a593Smuzhiyun <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 197*4882a593Smuzhiyun <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 198*4882a593Smuzhiyun <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 199*4882a593Smuzhiyun <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 200*4882a593Smuzhiyun <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 201*4882a593Smuzhiyun <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 202*4882a593Smuzhiyun <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, 203*4882a593Smuzhiyun <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 204*4882a593Smuzhiyun <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, 205*4882a593Smuzhiyun <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun xtalclk: xtal-clk { 209*4882a593Smuzhiyun compatible = "marvell,armada-3700-xtal-clock"; 210*4882a593Smuzhiyun clock-output-names = "xtal"; 211*4882a593Smuzhiyun #clock-cells = <0>; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun spi_quad_pins: spi-quad-pins { 215*4882a593Smuzhiyun groups = "spi_quad"; 216*4882a593Smuzhiyun function = "spi"; 217*4882a593Smuzhiyun }; 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun spi_cs1_pins: spi-cs1-pins { 220*4882a593Smuzhiyun groups = "spi_cs1"; 221*4882a593Smuzhiyun function = "spi"; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun i2c1_pins: i2c1-pins { 225*4882a593Smuzhiyun groups = "i2c1"; 226*4882a593Smuzhiyun function = "i2c"; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun i2c2_pins: i2c2-pins { 230*4882a593Smuzhiyun groups = "i2c2"; 231*4882a593Smuzhiyun function = "i2c"; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun uart1_pins: uart1-pins { 235*4882a593Smuzhiyun groups = "uart1"; 236*4882a593Smuzhiyun function = "uart"; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun uart2_pins: uart2-pins { 240*4882a593Smuzhiyun groups = "uart2"; 241*4882a593Smuzhiyun function = "uart"; 242*4882a593Smuzhiyun }; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun mmc_pins: mmc-pins { 245*4882a593Smuzhiyun groups = "emmc_nb"; 246*4882a593Smuzhiyun function = "emmc"; 247*4882a593Smuzhiyun }; 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun nb_pm: syscon@14000 { 251*4882a593Smuzhiyun compatible = "marvell,armada-3700-nb-pm", 252*4882a593Smuzhiyun "syscon"; 253*4882a593Smuzhiyun reg = <0x14000 0x60>; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun comphy: phy@18300 { 257*4882a593Smuzhiyun compatible = "marvell,comphy-a3700"; 258*4882a593Smuzhiyun reg = <0x18300 0x300>, 259*4882a593Smuzhiyun <0x1F000 0x400>, 260*4882a593Smuzhiyun <0x5C000 0x400>, 261*4882a593Smuzhiyun <0xe0178 0x8>; 262*4882a593Smuzhiyun reg-names = "comphy", 263*4882a593Smuzhiyun "lane1_pcie_gbe", 264*4882a593Smuzhiyun "lane0_usb3_gbe", 265*4882a593Smuzhiyun "lane2_sata_usb3"; 266*4882a593Smuzhiyun #address-cells = <1>; 267*4882a593Smuzhiyun #size-cells = <0>; 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun comphy0: phy@0 { 270*4882a593Smuzhiyun reg = <0>; 271*4882a593Smuzhiyun #phy-cells = <1>; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun comphy1: phy@1 { 275*4882a593Smuzhiyun reg = <1>; 276*4882a593Smuzhiyun #phy-cells = <1>; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun comphy2: phy@2 { 280*4882a593Smuzhiyun reg = <2>; 281*4882a593Smuzhiyun #phy-cells = <1>; 282*4882a593Smuzhiyun }; 283*4882a593Smuzhiyun }; 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun pinctrl_sb: pinctrl@18800 { 286*4882a593Smuzhiyun compatible = "marvell,armada3710-sb-pinctrl", 287*4882a593Smuzhiyun "syscon", "simple-mfd"; 288*4882a593Smuzhiyun reg = <0x18800 0x100>, <0x18C00 0x20>; 289*4882a593Smuzhiyun /* MPP2[23:0] */ 290*4882a593Smuzhiyun gpiosb: gpio { 291*4882a593Smuzhiyun #gpio-cells = <2>; 292*4882a593Smuzhiyun gpio-ranges = <&pinctrl_sb 0 0 30>; 293*4882a593Smuzhiyun gpio-controller; 294*4882a593Smuzhiyun interrupt-controller; 295*4882a593Smuzhiyun #interrupt-cells = <2>; 296*4882a593Smuzhiyun interrupts = 297*4882a593Smuzhiyun <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 298*4882a593Smuzhiyun <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, 299*4882a593Smuzhiyun <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, 300*4882a593Smuzhiyun <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 301*4882a593Smuzhiyun <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 302*4882a593Smuzhiyun }; 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun rgmii_pins: mii-pins { 305*4882a593Smuzhiyun groups = "rgmii"; 306*4882a593Smuzhiyun function = "mii"; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun smi_pins: smi-pins { 310*4882a593Smuzhiyun groups = "smi"; 311*4882a593Smuzhiyun function = "smi"; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun sdio_pins: sdio-pins { 315*4882a593Smuzhiyun groups = "sdio_sb"; 316*4882a593Smuzhiyun function = "sdio"; 317*4882a593Smuzhiyun }; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun pcie_reset_pins: pcie-reset-pins { 320*4882a593Smuzhiyun groups = "pcie1"; /* this actually controls "pcie1_reset" */ 321*4882a593Smuzhiyun function = "gpio"; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun pcie_clkreq_pins: pcie-clkreq-pins { 325*4882a593Smuzhiyun groups = "pcie1_clkreq"; 326*4882a593Smuzhiyun function = "pcie"; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun }; 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun eth0: ethernet@30000 { 331*4882a593Smuzhiyun compatible = "marvell,armada-3700-neta"; 332*4882a593Smuzhiyun reg = <0x30000 0x4000>; 333*4882a593Smuzhiyun interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 334*4882a593Smuzhiyun clocks = <&sb_periph_clk 8>; 335*4882a593Smuzhiyun status = "disabled"; 336*4882a593Smuzhiyun }; 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun mdio: mdio@32004 { 339*4882a593Smuzhiyun #address-cells = <1>; 340*4882a593Smuzhiyun #size-cells = <0>; 341*4882a593Smuzhiyun compatible = "marvell,orion-mdio"; 342*4882a593Smuzhiyun reg = <0x32004 0x4>; 343*4882a593Smuzhiyun }; 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun eth1: ethernet@40000 { 346*4882a593Smuzhiyun compatible = "marvell,armada-3700-neta"; 347*4882a593Smuzhiyun reg = <0x40000 0x4000>; 348*4882a593Smuzhiyun interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 349*4882a593Smuzhiyun clocks = <&sb_periph_clk 7>; 350*4882a593Smuzhiyun status = "disabled"; 351*4882a593Smuzhiyun }; 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun usb3: usb@58000 { 354*4882a593Smuzhiyun compatible = "marvell,armada3700-xhci", 355*4882a593Smuzhiyun "generic-xhci"; 356*4882a593Smuzhiyun reg = <0x58000 0x4000>; 357*4882a593Smuzhiyun marvell,usb-misc-reg = <&usb32_syscon>; 358*4882a593Smuzhiyun interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 359*4882a593Smuzhiyun clocks = <&sb_periph_clk 12>; 360*4882a593Smuzhiyun phys = <&comphy0 0>, <&usb2_utmi_otg_phy>; 361*4882a593Smuzhiyun phy-names = "usb3-phy", "usb2-utmi-otg-phy"; 362*4882a593Smuzhiyun status = "disabled"; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun usb2_utmi_otg_phy: phy@5d000 { 366*4882a593Smuzhiyun compatible = "marvell,a3700-utmi-otg-phy"; 367*4882a593Smuzhiyun reg = <0x5d000 0x800>; 368*4882a593Smuzhiyun marvell,usb-misc-reg = <&usb32_syscon>; 369*4882a593Smuzhiyun #phy-cells = <0>; 370*4882a593Smuzhiyun }; 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun usb32_syscon: system-controller@5d800 { 373*4882a593Smuzhiyun compatible = "marvell,armada-3700-usb2-host-device-misc", 374*4882a593Smuzhiyun "syscon"; 375*4882a593Smuzhiyun reg = <0x5d800 0x800>; 376*4882a593Smuzhiyun }; 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun usb2: usb@5e000 { 379*4882a593Smuzhiyun compatible = "marvell,armada-3700-ehci"; 380*4882a593Smuzhiyun reg = <0x5e000 0x1000>; 381*4882a593Smuzhiyun marvell,usb-misc-reg = <&usb2_syscon>; 382*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 383*4882a593Smuzhiyun phys = <&usb2_utmi_host_phy>; 384*4882a593Smuzhiyun phy-names = "usb2-utmi-host-phy"; 385*4882a593Smuzhiyun status = "disabled"; 386*4882a593Smuzhiyun }; 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun usb2_utmi_host_phy: phy@5f000 { 389*4882a593Smuzhiyun compatible = "marvell,a3700-utmi-host-phy"; 390*4882a593Smuzhiyun reg = <0x5f000 0x800>; 391*4882a593Smuzhiyun marvell,usb-misc-reg = <&usb2_syscon>; 392*4882a593Smuzhiyun #phy-cells = <0>; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun 395*4882a593Smuzhiyun usb2_syscon: system-controller@5f800 { 396*4882a593Smuzhiyun compatible = "marvell,armada-3700-usb2-host-misc", 397*4882a593Smuzhiyun "syscon"; 398*4882a593Smuzhiyun reg = <0x5f800 0x800>; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun xor@60900 { 402*4882a593Smuzhiyun compatible = "marvell,armada-3700-xor"; 403*4882a593Smuzhiyun reg = <0x60900 0x100>, 404*4882a593Smuzhiyun <0x60b00 0x100>; 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun xor10 { 407*4882a593Smuzhiyun interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 408*4882a593Smuzhiyun }; 409*4882a593Smuzhiyun xor11 { 410*4882a593Smuzhiyun interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 411*4882a593Smuzhiyun }; 412*4882a593Smuzhiyun }; 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun crypto: crypto@90000 { 415*4882a593Smuzhiyun compatible = "inside-secure,safexcel-eip97ies"; 416*4882a593Smuzhiyun reg = <0x90000 0x20000>; 417*4882a593Smuzhiyun interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 418*4882a593Smuzhiyun <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 419*4882a593Smuzhiyun <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 420*4882a593Smuzhiyun <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 421*4882a593Smuzhiyun <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 422*4882a593Smuzhiyun <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 423*4882a593Smuzhiyun interrupt-names = "mem", "ring0", "ring1", 424*4882a593Smuzhiyun "ring2", "ring3", "eip"; 425*4882a593Smuzhiyun clocks = <&nb_periph_clk 15>; 426*4882a593Smuzhiyun }; 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun rwtm: mailbox@b0000 { 429*4882a593Smuzhiyun compatible = "marvell,armada-3700-rwtm-mailbox"; 430*4882a593Smuzhiyun reg = <0xb0000 0x100>; 431*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 432*4882a593Smuzhiyun #mbox-cells = <1>; 433*4882a593Smuzhiyun }; 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun sdhci1: sdhci@d0000 { 436*4882a593Smuzhiyun compatible = "marvell,armada-3700-sdhci", 437*4882a593Smuzhiyun "marvell,sdhci-xenon"; 438*4882a593Smuzhiyun reg = <0xd0000 0x300>, 439*4882a593Smuzhiyun <0x1e808 0x4>; 440*4882a593Smuzhiyun interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 441*4882a593Smuzhiyun clocks = <&nb_periph_clk 0>; 442*4882a593Smuzhiyun clock-names = "core"; 443*4882a593Smuzhiyun status = "disabled"; 444*4882a593Smuzhiyun }; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun sdhci0: sdhci@d8000 { 447*4882a593Smuzhiyun compatible = "marvell,armada-3700-sdhci", 448*4882a593Smuzhiyun "marvell,sdhci-xenon"; 449*4882a593Smuzhiyun reg = <0xd8000 0x300>, 450*4882a593Smuzhiyun <0x17808 0x4>; 451*4882a593Smuzhiyun interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 452*4882a593Smuzhiyun clocks = <&nb_periph_clk 0>; 453*4882a593Smuzhiyun clock-names = "core"; 454*4882a593Smuzhiyun status = "disabled"; 455*4882a593Smuzhiyun }; 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun sata: sata@e0000 { 458*4882a593Smuzhiyun compatible = "marvell,armada-3700-ahci"; 459*4882a593Smuzhiyun reg = <0xe0000 0x178>; 460*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 461*4882a593Smuzhiyun clocks = <&nb_periph_clk 1>; 462*4882a593Smuzhiyun status = "disabled"; 463*4882a593Smuzhiyun }; 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun gic: interrupt-controller@1d00000 { 466*4882a593Smuzhiyun compatible = "arm,gic-v3"; 467*4882a593Smuzhiyun #interrupt-cells = <3>; 468*4882a593Smuzhiyun interrupt-controller; 469*4882a593Smuzhiyun reg = <0x1d00000 0x10000>, /* GICD */ 470*4882a593Smuzhiyun <0x1d40000 0x40000>, /* GICR */ 471*4882a593Smuzhiyun <0x1d80000 0x2000>, /* GICC */ 472*4882a593Smuzhiyun <0x1d90000 0x2000>, /* GICH */ 473*4882a593Smuzhiyun <0x1da0000 0x20000>; /* GICV */ 474*4882a593Smuzhiyun interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 475*4882a593Smuzhiyun }; 476*4882a593Smuzhiyun }; 477*4882a593Smuzhiyun 478*4882a593Smuzhiyun pcie0: pcie@d0070000 { 479*4882a593Smuzhiyun compatible = "marvell,armada-3700-pcie"; 480*4882a593Smuzhiyun device_type = "pci"; 481*4882a593Smuzhiyun status = "disabled"; 482*4882a593Smuzhiyun reg = <0 0xd0070000 0 0x20000>; 483*4882a593Smuzhiyun #address-cells = <3>; 484*4882a593Smuzhiyun #size-cells = <2>; 485*4882a593Smuzhiyun bus-range = <0x00 0xff>; 486*4882a593Smuzhiyun interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 487*4882a593Smuzhiyun #interrupt-cells = <1>; 488*4882a593Smuzhiyun msi-parent = <&pcie0>; 489*4882a593Smuzhiyun msi-controller; 490*4882a593Smuzhiyun /* 491*4882a593Smuzhiyun * The 128 MiB address range [0xe8000000-0xf0000000] is 492*4882a593Smuzhiyun * dedicated for PCIe and can be assigned to 8 windows 493*4882a593Smuzhiyun * with size a power of two. Use one 64 KiB window for 494*4882a593Smuzhiyun * IO at the end and the remaining seven windows 495*4882a593Smuzhiyun * (totaling 127 MiB) for MEM. 496*4882a593Smuzhiyun */ 497*4882a593Smuzhiyun ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x07f00000 /* Port 0 MEM */ 498*4882a593Smuzhiyun 0x81000000 0 0x00000000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */ 499*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 7>; 500*4882a593Smuzhiyun interrupt-map = <0 0 0 1 &pcie_intc 0>, 501*4882a593Smuzhiyun <0 0 0 2 &pcie_intc 1>, 502*4882a593Smuzhiyun <0 0 0 3 &pcie_intc 2>, 503*4882a593Smuzhiyun <0 0 0 4 &pcie_intc 3>; 504*4882a593Smuzhiyun max-link-speed = <2>; 505*4882a593Smuzhiyun phys = <&comphy1 0>; 506*4882a593Smuzhiyun pcie_intc: interrupt-controller { 507*4882a593Smuzhiyun interrupt-controller; 508*4882a593Smuzhiyun #interrupt-cells = <1>; 509*4882a593Smuzhiyun }; 510*4882a593Smuzhiyun }; 511*4882a593Smuzhiyun }; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun firmware { 514*4882a593Smuzhiyun armada-3700-rwtm { 515*4882a593Smuzhiyun compatible = "marvell,armada-3700-rwtm-firmware"; 516*4882a593Smuzhiyun mboxes = <&rwtm 0>; 517*4882a593Smuzhiyun status = "okay"; 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun }; 520*4882a593Smuzhiyun}; 521