1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Broadcom BCM470X / BCM5301X ARM platform code. 3*4882a593Smuzhiyun * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015, 4*4882a593Smuzhiyun * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Copyright 2013-2014 Hauke Mehrtens <hauke@hauke-m.de> 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Licensed under the GNU/GPL. See COPYING for details. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/clock/bcm-nsp.h> 12*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 13*4882a593Smuzhiyun#include <dt-bindings/input/input.h> 14*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 15*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun/ { 18*4882a593Smuzhiyun #address-cells = <1>; 19*4882a593Smuzhiyun #size-cells = <1>; 20*4882a593Smuzhiyun interrupt-parent = <&gic>; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun chipcommonA@18000000 { 23*4882a593Smuzhiyun compatible = "simple-bus"; 24*4882a593Smuzhiyun ranges = <0x00000000 0x18000000 0x00001000>; 25*4882a593Smuzhiyun #address-cells = <1>; 26*4882a593Smuzhiyun #size-cells = <1>; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun uart0: serial@300 { 29*4882a593Smuzhiyun compatible = "ns16550"; 30*4882a593Smuzhiyun reg = <0x0300 0x100>; 31*4882a593Smuzhiyun interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 32*4882a593Smuzhiyun clocks = <&iprocslow>; 33*4882a593Smuzhiyun status = "disabled"; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun uart1: serial@400 { 37*4882a593Smuzhiyun compatible = "ns16550"; 38*4882a593Smuzhiyun reg = <0x0400 0x100>; 39*4882a593Smuzhiyun interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 40*4882a593Smuzhiyun clocks = <&iprocslow>; 41*4882a593Smuzhiyun pinctrl-names = "default"; 42*4882a593Smuzhiyun pinctrl-0 = <&pinmux_uart1>; 43*4882a593Smuzhiyun status = "disabled"; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun mpcore@19000000 { 48*4882a593Smuzhiyun compatible = "simple-bus"; 49*4882a593Smuzhiyun ranges = <0x00000000 0x19000000 0x00023000>; 50*4882a593Smuzhiyun #address-cells = <1>; 51*4882a593Smuzhiyun #size-cells = <1>; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun a9pll: arm_clk@0 { 54*4882a593Smuzhiyun #clock-cells = <0>; 55*4882a593Smuzhiyun compatible = "brcm,nsp-armpll"; 56*4882a593Smuzhiyun clocks = <&osc>; 57*4882a593Smuzhiyun reg = <0x00000 0x1000>; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun scu@20000 { 61*4882a593Smuzhiyun compatible = "arm,cortex-a9-scu"; 62*4882a593Smuzhiyun reg = <0x20000 0x100>; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun timer@20200 { 66*4882a593Smuzhiyun compatible = "arm,cortex-a9-global-timer"; 67*4882a593Smuzhiyun reg = <0x20200 0x100>; 68*4882a593Smuzhiyun interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>; 69*4882a593Smuzhiyun clocks = <&periph_clk>; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun timer@20600 { 73*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-timer"; 74*4882a593Smuzhiyun reg = <0x20600 0x20>; 75*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | 76*4882a593Smuzhiyun IRQ_TYPE_EDGE_RISING)>; 77*4882a593Smuzhiyun clocks = <&periph_clk>; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun watchdog@20620 { 81*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-wdt"; 82*4882a593Smuzhiyun reg = <0x20620 0x20>; 83*4882a593Smuzhiyun interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 84*4882a593Smuzhiyun IRQ_TYPE_EDGE_RISING)>; 85*4882a593Smuzhiyun clocks = <&periph_clk>; 86*4882a593Smuzhiyun }; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun gic: interrupt-controller@21000 { 89*4882a593Smuzhiyun compatible = "arm,cortex-a9-gic"; 90*4882a593Smuzhiyun #interrupt-cells = <3>; 91*4882a593Smuzhiyun #address-cells = <0>; 92*4882a593Smuzhiyun interrupt-controller; 93*4882a593Smuzhiyun reg = <0x21000 0x1000>, 94*4882a593Smuzhiyun <0x20100 0x100>; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun L2: cache-controller@22000 { 98*4882a593Smuzhiyun compatible = "arm,pl310-cache"; 99*4882a593Smuzhiyun reg = <0x22000 0x1000>; 100*4882a593Smuzhiyun cache-unified; 101*4882a593Smuzhiyun arm,shared-override; 102*4882a593Smuzhiyun prefetch-data = <1>; 103*4882a593Smuzhiyun prefetch-instr = <1>; 104*4882a593Smuzhiyun cache-level = <2>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun pmu { 109*4882a593Smuzhiyun compatible = "arm,cortex-a9-pmu"; 110*4882a593Smuzhiyun interrupts = 111*4882a593Smuzhiyun <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 112*4882a593Smuzhiyun <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun clocks { 116*4882a593Smuzhiyun #address-cells = <1>; 117*4882a593Smuzhiyun #size-cells = <1>; 118*4882a593Smuzhiyun ranges; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun osc: oscillator { 121*4882a593Smuzhiyun #clock-cells = <0>; 122*4882a593Smuzhiyun compatible = "fixed-clock"; 123*4882a593Smuzhiyun clock-frequency = <25000000>; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun iprocmed: iprocmed { 127*4882a593Smuzhiyun #clock-cells = <0>; 128*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 129*4882a593Smuzhiyun clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 130*4882a593Smuzhiyun clock-div = <2>; 131*4882a593Smuzhiyun clock-mult = <1>; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun iprocslow: iprocslow { 135*4882a593Smuzhiyun #clock-cells = <0>; 136*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 137*4882a593Smuzhiyun clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 138*4882a593Smuzhiyun clock-div = <4>; 139*4882a593Smuzhiyun clock-mult = <1>; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun periph_clk: periph_clk { 143*4882a593Smuzhiyun #clock-cells = <0>; 144*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 145*4882a593Smuzhiyun clocks = <&a9pll>; 146*4882a593Smuzhiyun clock-div = <2>; 147*4882a593Smuzhiyun clock-mult = <1>; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun usb2_phy: usb2-phy@1800c000 { 152*4882a593Smuzhiyun compatible = "brcm,ns-usb2-phy"; 153*4882a593Smuzhiyun reg = <0x1800c000 0x1000>; 154*4882a593Smuzhiyun reg-names = "dmu"; 155*4882a593Smuzhiyun #phy-cells = <0>; 156*4882a593Smuzhiyun clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>; 157*4882a593Smuzhiyun clock-names = "phy-ref-clk"; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun axi@18000000 { 161*4882a593Smuzhiyun compatible = "brcm,bus-axi"; 162*4882a593Smuzhiyun reg = <0x18000000 0x1000>; 163*4882a593Smuzhiyun ranges = <0x00000000 0x18000000 0x00100000>; 164*4882a593Smuzhiyun #address-cells = <1>; 165*4882a593Smuzhiyun #size-cells = <1>; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun #interrupt-cells = <1>; 168*4882a593Smuzhiyun interrupt-map-mask = <0x000fffff 0xffff>; 169*4882a593Smuzhiyun interrupt-map = 170*4882a593Smuzhiyun /* ChipCommon */ 171*4882a593Smuzhiyun <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun /* Switch Register Access Block */ 174*4882a593Smuzhiyun <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 175*4882a593Smuzhiyun <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 176*4882a593Smuzhiyun <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 177*4882a593Smuzhiyun <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 178*4882a593Smuzhiyun <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 179*4882a593Smuzhiyun <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 180*4882a593Smuzhiyun <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 181*4882a593Smuzhiyun <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 182*4882a593Smuzhiyun <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 183*4882a593Smuzhiyun <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 184*4882a593Smuzhiyun <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 185*4882a593Smuzhiyun <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 186*4882a593Smuzhiyun <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun /* PCIe Controller 0 */ 189*4882a593Smuzhiyun <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 190*4882a593Smuzhiyun <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 191*4882a593Smuzhiyun <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 192*4882a593Smuzhiyun <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, 193*4882a593Smuzhiyun <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>, 194*4882a593Smuzhiyun <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun /* PCIe Controller 1 */ 197*4882a593Smuzhiyun <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>, 198*4882a593Smuzhiyun <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 199*4882a593Smuzhiyun <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 200*4882a593Smuzhiyun <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 201*4882a593Smuzhiyun <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, 202*4882a593Smuzhiyun <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun /* PCIe Controller 2 */ 205*4882a593Smuzhiyun <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 206*4882a593Smuzhiyun <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 207*4882a593Smuzhiyun <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 208*4882a593Smuzhiyun <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 209*4882a593Smuzhiyun <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 210*4882a593Smuzhiyun <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun /* USB 2.0 Controller */ 213*4882a593Smuzhiyun <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun /* USB 3.0 Controller */ 216*4882a593Smuzhiyun <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun /* Ethernet Controller 0 */ 219*4882a593Smuzhiyun <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun /* Ethernet Controller 1 */ 222*4882a593Smuzhiyun <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun /* Ethernet Controller 2 */ 225*4882a593Smuzhiyun <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun /* Ethernet Controller 3 */ 228*4882a593Smuzhiyun <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun /* NAND Controller */ 231*4882a593Smuzhiyun <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, 232*4882a593Smuzhiyun <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, 233*4882a593Smuzhiyun <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 234*4882a593Smuzhiyun <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, 235*4882a593Smuzhiyun <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 236*4882a593Smuzhiyun <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 237*4882a593Smuzhiyun <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 238*4882a593Smuzhiyun <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun chipcommon: chipcommon@0 { 241*4882a593Smuzhiyun reg = <0x00000000 0x1000>; 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun gpio-controller; 244*4882a593Smuzhiyun #gpio-cells = <2>; 245*4882a593Smuzhiyun interrupt-controller; 246*4882a593Smuzhiyun #interrupt-cells = <2>; 247*4882a593Smuzhiyun }; 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun pcie0: pcie@12000 { 250*4882a593Smuzhiyun reg = <0x00012000 0x1000>; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun pcie1: pcie@13000 { 254*4882a593Smuzhiyun reg = <0x00013000 0x1000>; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun pcie2: pcie@14000 { 258*4882a593Smuzhiyun reg = <0x00014000 0x1000>; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun usb2: usb2@21000 { 262*4882a593Smuzhiyun reg = <0x00021000 0x1000>; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun #address-cells = <1>; 265*4882a593Smuzhiyun #size-cells = <1>; 266*4882a593Smuzhiyun ranges; 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun interrupt-parent = <&gic>; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun ehci: ehci@21000 { 271*4882a593Smuzhiyun #usb-cells = <0>; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun compatible = "generic-ehci"; 274*4882a593Smuzhiyun reg = <0x00021000 0x1000>; 275*4882a593Smuzhiyun interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 276*4882a593Smuzhiyun phys = <&usb2_phy>; 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun #address-cells = <1>; 279*4882a593Smuzhiyun #size-cells = <0>; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun ehci_port1: port@1 { 282*4882a593Smuzhiyun reg = <1>; 283*4882a593Smuzhiyun #trigger-source-cells = <0>; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun ehci_port2: port@2 { 287*4882a593Smuzhiyun reg = <2>; 288*4882a593Smuzhiyun #trigger-source-cells = <0>; 289*4882a593Smuzhiyun }; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun ohci: ohci@22000 { 293*4882a593Smuzhiyun #usb-cells = <0>; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun compatible = "generic-ohci"; 296*4882a593Smuzhiyun reg = <0x00022000 0x1000>; 297*4882a593Smuzhiyun interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun #address-cells = <1>; 300*4882a593Smuzhiyun #size-cells = <0>; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun ohci_port1: port@1 { 303*4882a593Smuzhiyun reg = <1>; 304*4882a593Smuzhiyun #trigger-source-cells = <0>; 305*4882a593Smuzhiyun }; 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun ohci_port2: port@2 { 308*4882a593Smuzhiyun reg = <2>; 309*4882a593Smuzhiyun #trigger-source-cells = <0>; 310*4882a593Smuzhiyun }; 311*4882a593Smuzhiyun }; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun usb3: usb3@23000 { 315*4882a593Smuzhiyun reg = <0x00023000 0x1000>; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun #address-cells = <1>; 318*4882a593Smuzhiyun #size-cells = <1>; 319*4882a593Smuzhiyun ranges; 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun interrupt-parent = <&gic>; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun xhci: xhci@23000 { 324*4882a593Smuzhiyun #usb-cells = <0>; 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun compatible = "generic-xhci"; 327*4882a593Smuzhiyun reg = <0x00023000 0x1000>; 328*4882a593Smuzhiyun interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 329*4882a593Smuzhiyun phys = <&usb3_phy>; 330*4882a593Smuzhiyun phy-names = "usb"; 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun #address-cells = <1>; 333*4882a593Smuzhiyun #size-cells = <0>; 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun xhci_port1: port@1 { 336*4882a593Smuzhiyun reg = <1>; 337*4882a593Smuzhiyun #trigger-source-cells = <0>; 338*4882a593Smuzhiyun }; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun }; 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun gmac0: ethernet@24000 { 343*4882a593Smuzhiyun reg = <0x24000 0x800>; 344*4882a593Smuzhiyun }; 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun gmac1: ethernet@25000 { 347*4882a593Smuzhiyun reg = <0x25000 0x800>; 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun gmac2: ethernet@26000 { 351*4882a593Smuzhiyun reg = <0x26000 0x800>; 352*4882a593Smuzhiyun }; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun gmac3: ethernet@27000 { 355*4882a593Smuzhiyun reg = <0x27000 0x800>; 356*4882a593Smuzhiyun }; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun pwm: pwm@18002000 { 360*4882a593Smuzhiyun compatible = "brcm,iproc-pwm"; 361*4882a593Smuzhiyun reg = <0x18002000 0x28>; 362*4882a593Smuzhiyun clocks = <&osc>; 363*4882a593Smuzhiyun #pwm-cells = <3>; 364*4882a593Smuzhiyun status = "disabled"; 365*4882a593Smuzhiyun }; 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun mdio: mdio@18003000 { 368*4882a593Smuzhiyun compatible = "brcm,iproc-mdio"; 369*4882a593Smuzhiyun reg = <0x18003000 0x8>; 370*4882a593Smuzhiyun #size-cells = <0>; 371*4882a593Smuzhiyun #address-cells = <1>; 372*4882a593Smuzhiyun }; 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun mdio-bus-mux@18003000 { 375*4882a593Smuzhiyun compatible = "mdio-mux-mmioreg"; 376*4882a593Smuzhiyun mdio-parent-bus = <&mdio>; 377*4882a593Smuzhiyun #address-cells = <1>; 378*4882a593Smuzhiyun #size-cells = <0>; 379*4882a593Smuzhiyun reg = <0x18003000 0x4>; 380*4882a593Smuzhiyun mux-mask = <0x200>; 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun mdio@0 { 383*4882a593Smuzhiyun reg = <0x0>; 384*4882a593Smuzhiyun #address-cells = <1>; 385*4882a593Smuzhiyun #size-cells = <0>; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun usb3_phy: usb3-phy@10 { 388*4882a593Smuzhiyun compatible = "brcm,ns-ax-usb3-phy"; 389*4882a593Smuzhiyun reg = <0x10>; 390*4882a593Smuzhiyun usb3-dmp-syscon = <&usb3_dmp>; 391*4882a593Smuzhiyun #phy-cells = <0>; 392*4882a593Smuzhiyun status = "disabled"; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun }; 395*4882a593Smuzhiyun }; 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun usb3_dmp: syscon@18105000 { 398*4882a593Smuzhiyun reg = <0x18105000 0x1000>; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun uart2: serial@18008000 { 402*4882a593Smuzhiyun compatible = "ns16550a"; 403*4882a593Smuzhiyun reg = <0x18008000 0x20>; 404*4882a593Smuzhiyun clocks = <&iprocslow>; 405*4882a593Smuzhiyun interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 406*4882a593Smuzhiyun reg-shift = <2>; 407*4882a593Smuzhiyun status = "disabled"; 408*4882a593Smuzhiyun }; 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun i2c0: i2c@18009000 { 411*4882a593Smuzhiyun compatible = "brcm,iproc-i2c"; 412*4882a593Smuzhiyun reg = <0x18009000 0x50>; 413*4882a593Smuzhiyun interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 414*4882a593Smuzhiyun #address-cells = <1>; 415*4882a593Smuzhiyun #size-cells = <0>; 416*4882a593Smuzhiyun clock-frequency = <100000>; 417*4882a593Smuzhiyun status = "disabled"; 418*4882a593Smuzhiyun }; 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun dmu@1800c000 { 421*4882a593Smuzhiyun compatible = "simple-bus"; 422*4882a593Smuzhiyun ranges = <0 0x1800c000 0x1000>; 423*4882a593Smuzhiyun #address-cells = <1>; 424*4882a593Smuzhiyun #size-cells = <1>; 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun cru@100 { 427*4882a593Smuzhiyun compatible = "simple-bus"; 428*4882a593Smuzhiyun reg = <0x100 0x1a4>; 429*4882a593Smuzhiyun ranges; 430*4882a593Smuzhiyun #address-cells = <1>; 431*4882a593Smuzhiyun #size-cells = <1>; 432*4882a593Smuzhiyun 433*4882a593Smuzhiyun pin-controller@1c0 { 434*4882a593Smuzhiyun compatible = "brcm,bcm4708-pinmux"; 435*4882a593Smuzhiyun reg = <0x1c0 0x24>; 436*4882a593Smuzhiyun reg-names = "cru_gpio_control"; 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun spi-pins { 439*4882a593Smuzhiyun groups = "spi_grp"; 440*4882a593Smuzhiyun function = "spi"; 441*4882a593Smuzhiyun }; 442*4882a593Smuzhiyun 443*4882a593Smuzhiyun pinmux_i2c: i2c { 444*4882a593Smuzhiyun groups = "i2c_grp"; 445*4882a593Smuzhiyun function = "i2c"; 446*4882a593Smuzhiyun }; 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun pinmux_pwm: pwm { 449*4882a593Smuzhiyun groups = "pwm0_grp", "pwm1_grp", 450*4882a593Smuzhiyun "pwm2_grp", "pwm3_grp"; 451*4882a593Smuzhiyun function = "pwm"; 452*4882a593Smuzhiyun }; 453*4882a593Smuzhiyun 454*4882a593Smuzhiyun pinmux_uart1: uart1 { 455*4882a593Smuzhiyun groups = "uart1_grp"; 456*4882a593Smuzhiyun function = "uart1"; 457*4882a593Smuzhiyun }; 458*4882a593Smuzhiyun }; 459*4882a593Smuzhiyun }; 460*4882a593Smuzhiyun }; 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun lcpll0: lcpll0@1800c100 { 463*4882a593Smuzhiyun #clock-cells = <1>; 464*4882a593Smuzhiyun compatible = "brcm,nsp-lcpll0"; 465*4882a593Smuzhiyun reg = <0x1800c100 0x14>; 466*4882a593Smuzhiyun clocks = <&osc>; 467*4882a593Smuzhiyun clock-output-names = "lcpll0", "pcie_phy", "sdio", 468*4882a593Smuzhiyun "ddr_phy"; 469*4882a593Smuzhiyun }; 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun genpll: genpll@1800c140 { 472*4882a593Smuzhiyun #clock-cells = <1>; 473*4882a593Smuzhiyun compatible = "brcm,nsp-genpll"; 474*4882a593Smuzhiyun reg = <0x1800c140 0x24>; 475*4882a593Smuzhiyun clocks = <&osc>; 476*4882a593Smuzhiyun clock-output-names = "genpll", "phy", "ethernetclk", 477*4882a593Smuzhiyun "usbclk", "iprocfast", "sata1", 478*4882a593Smuzhiyun "sata2"; 479*4882a593Smuzhiyun }; 480*4882a593Smuzhiyun 481*4882a593Smuzhiyun thermal: thermal@1800c2c0 { 482*4882a593Smuzhiyun compatible = "brcm,ns-thermal"; 483*4882a593Smuzhiyun reg = <0x1800c2c0 0x10>; 484*4882a593Smuzhiyun #thermal-sensor-cells = <0>; 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun srab: srab@18007000 { 488*4882a593Smuzhiyun compatible = "brcm,bcm5301x-srab"; 489*4882a593Smuzhiyun reg = <0x18007000 0x1000>; 490*4882a593Smuzhiyun 491*4882a593Smuzhiyun status = "disabled"; 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun /* ports are defined in board DTS */ 494*4882a593Smuzhiyun }; 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun rng: rng@18004000 { 497*4882a593Smuzhiyun compatible = "brcm,bcm5301x-rng"; 498*4882a593Smuzhiyun reg = <0x18004000 0x14>; 499*4882a593Smuzhiyun }; 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun nand: nand@18028000 { 502*4882a593Smuzhiyun compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand"; 503*4882a593Smuzhiyun reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>; 504*4882a593Smuzhiyun reg-names = "nand", "iproc-idm", "iproc-ext"; 505*4882a593Smuzhiyun interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun #address-cells = <1>; 508*4882a593Smuzhiyun #size-cells = <0>; 509*4882a593Smuzhiyun 510*4882a593Smuzhiyun brcm,nand-has-wp; 511*4882a593Smuzhiyun }; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun spi@18029200 { 514*4882a593Smuzhiyun compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi"; 515*4882a593Smuzhiyun reg = <0x18029200 0x184>, 516*4882a593Smuzhiyun <0x18029000 0x124>, 517*4882a593Smuzhiyun <0x1811b408 0x004>, 518*4882a593Smuzhiyun <0x180293a0 0x01c>; 519*4882a593Smuzhiyun reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg"; 520*4882a593Smuzhiyun interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 521*4882a593Smuzhiyun <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, 522*4882a593Smuzhiyun <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 523*4882a593Smuzhiyun <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 524*4882a593Smuzhiyun <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 525*4882a593Smuzhiyun <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 526*4882a593Smuzhiyun <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 527*4882a593Smuzhiyun interrupt-names = "mspi_done", 528*4882a593Smuzhiyun "mspi_halted", 529*4882a593Smuzhiyun "spi_lr_fullness_reached", 530*4882a593Smuzhiyun "spi_lr_session_aborted", 531*4882a593Smuzhiyun "spi_lr_impatient", 532*4882a593Smuzhiyun "spi_lr_session_done", 533*4882a593Smuzhiyun "spi_lr_overread"; 534*4882a593Smuzhiyun clocks = <&iprocmed>; 535*4882a593Smuzhiyun clock-names = "iprocmed"; 536*4882a593Smuzhiyun num-cs = <2>; 537*4882a593Smuzhiyun #address-cells = <1>; 538*4882a593Smuzhiyun #size-cells = <0>; 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun spi_nor: flash@0 { 541*4882a593Smuzhiyun compatible = "jedec,spi-nor"; 542*4882a593Smuzhiyun reg = <0>; 543*4882a593Smuzhiyun spi-max-frequency = <20000000>; 544*4882a593Smuzhiyun status = "disabled"; 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun partitions { 547*4882a593Smuzhiyun compatible = "brcm,bcm947xx-cfe-partitions"; 548*4882a593Smuzhiyun }; 549*4882a593Smuzhiyun }; 550*4882a593Smuzhiyun }; 551*4882a593Smuzhiyun 552*4882a593Smuzhiyun thermal-zones { 553*4882a593Smuzhiyun cpu_thermal: cpu-thermal { 554*4882a593Smuzhiyun polling-delay-passive = <0>; 555*4882a593Smuzhiyun polling-delay = <1000>; 556*4882a593Smuzhiyun coefficients = <(-556) 418000>; 557*4882a593Smuzhiyun thermal-sensors = <&thermal>; 558*4882a593Smuzhiyun 559*4882a593Smuzhiyun trips { 560*4882a593Smuzhiyun cpu-crit { 561*4882a593Smuzhiyun temperature = <125000>; 562*4882a593Smuzhiyun hysteresis = <0>; 563*4882a593Smuzhiyun type = "critical"; 564*4882a593Smuzhiyun }; 565*4882a593Smuzhiyun }; 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun cooling-maps { 568*4882a593Smuzhiyun }; 569*4882a593Smuzhiyun }; 570*4882a593Smuzhiyun }; 571*4882a593Smuzhiyun}; 572