1*ca5b3410SRobert Richter/* 2*ca5b3410SRobert Richter * dts file for AppliedMicro (APM) X-Gene Storm SOC 3*ca5b3410SRobert Richter * 4*ca5b3410SRobert Richter * Copyright (C) 2013, Applied Micro Circuits Corporation 5*ca5b3410SRobert Richter * 6*ca5b3410SRobert Richter * This program is free software; you can redistribute it and/or 7*ca5b3410SRobert Richter * modify it under the terms of the GNU General Public License as 8*ca5b3410SRobert Richter * published by the Free Software Foundation; either version 2 of 9*ca5b3410SRobert Richter * the License, or (at your option) any later version. 10*ca5b3410SRobert Richter */ 11*ca5b3410SRobert Richter 12*ca5b3410SRobert Richter/ { 13*ca5b3410SRobert Richter compatible = "apm,xgene-storm"; 14*ca5b3410SRobert Richter interrupt-parent = <&gic>; 15*ca5b3410SRobert Richter #address-cells = <2>; 16*ca5b3410SRobert Richter #size-cells = <2>; 17*ca5b3410SRobert Richter 18*ca5b3410SRobert Richter cpus { 19*ca5b3410SRobert Richter #address-cells = <2>; 20*ca5b3410SRobert Richter #size-cells = <0>; 21*ca5b3410SRobert Richter 22*ca5b3410SRobert Richter cpu@000 { 23*ca5b3410SRobert Richter device_type = "cpu"; 24*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 25*ca5b3410SRobert Richter reg = <0x0 0x000>; 26*ca5b3410SRobert Richter enable-method = "spin-table"; 27*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 28*ca5b3410SRobert Richter }; 29*ca5b3410SRobert Richter cpu@001 { 30*ca5b3410SRobert Richter device_type = "cpu"; 31*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 32*ca5b3410SRobert Richter reg = <0x0 0x001>; 33*ca5b3410SRobert Richter enable-method = "spin-table"; 34*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 35*ca5b3410SRobert Richter }; 36*ca5b3410SRobert Richter cpu@100 { 37*ca5b3410SRobert Richter device_type = "cpu"; 38*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 39*ca5b3410SRobert Richter reg = <0x0 0x100>; 40*ca5b3410SRobert Richter enable-method = "spin-table"; 41*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 42*ca5b3410SRobert Richter }; 43*ca5b3410SRobert Richter cpu@101 { 44*ca5b3410SRobert Richter device_type = "cpu"; 45*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 46*ca5b3410SRobert Richter reg = <0x0 0x101>; 47*ca5b3410SRobert Richter enable-method = "spin-table"; 48*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 49*ca5b3410SRobert Richter }; 50*ca5b3410SRobert Richter cpu@200 { 51*ca5b3410SRobert Richter device_type = "cpu"; 52*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 53*ca5b3410SRobert Richter reg = <0x0 0x200>; 54*ca5b3410SRobert Richter enable-method = "spin-table"; 55*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 56*ca5b3410SRobert Richter }; 57*ca5b3410SRobert Richter cpu@201 { 58*ca5b3410SRobert Richter device_type = "cpu"; 59*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 60*ca5b3410SRobert Richter reg = <0x0 0x201>; 61*ca5b3410SRobert Richter enable-method = "spin-table"; 62*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 63*ca5b3410SRobert Richter }; 64*ca5b3410SRobert Richter cpu@300 { 65*ca5b3410SRobert Richter device_type = "cpu"; 66*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 67*ca5b3410SRobert Richter reg = <0x0 0x300>; 68*ca5b3410SRobert Richter enable-method = "spin-table"; 69*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 70*ca5b3410SRobert Richter }; 71*ca5b3410SRobert Richter cpu@301 { 72*ca5b3410SRobert Richter device_type = "cpu"; 73*ca5b3410SRobert Richter compatible = "apm,potenza", "arm,armv8"; 74*ca5b3410SRobert Richter reg = <0x0 0x301>; 75*ca5b3410SRobert Richter enable-method = "spin-table"; 76*ca5b3410SRobert Richter cpu-release-addr = <0x1 0x0000fff8>; 77*ca5b3410SRobert Richter }; 78*ca5b3410SRobert Richter }; 79*ca5b3410SRobert Richter 80*ca5b3410SRobert Richter gic: interrupt-controller@78010000 { 81*ca5b3410SRobert Richter compatible = "arm,cortex-a15-gic"; 82*ca5b3410SRobert Richter #interrupt-cells = <3>; 83*ca5b3410SRobert Richter interrupt-controller; 84*ca5b3410SRobert Richter reg = <0x0 0x78010000 0x0 0x1000>, /* GIC Dist */ 85*ca5b3410SRobert Richter <0x0 0x78020000 0x0 0x1000>, /* GIC CPU */ 86*ca5b3410SRobert Richter <0x0 0x78040000 0x0 0x2000>, /* GIC VCPU Control */ 87*ca5b3410SRobert Richter <0x0 0x78060000 0x0 0x2000>; /* GIC VCPU */ 88*ca5b3410SRobert Richter interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */ 89*ca5b3410SRobert Richter }; 90*ca5b3410SRobert Richter 91*ca5b3410SRobert Richter timer { 92*ca5b3410SRobert Richter compatible = "arm,armv8-timer"; 93*ca5b3410SRobert Richter interrupts = <1 0 0xff01>, /* Secure Phys IRQ */ 94*ca5b3410SRobert Richter <1 13 0xff01>, /* Non-secure Phys IRQ */ 95*ca5b3410SRobert Richter <1 14 0xff01>, /* Virt IRQ */ 96*ca5b3410SRobert Richter <1 15 0xff01>; /* Hyp IRQ */ 97*ca5b3410SRobert Richter clock-frequency = <50000000>; 98*ca5b3410SRobert Richter }; 99*ca5b3410SRobert Richter 100*ca5b3410SRobert Richter soc { 101*ca5b3410SRobert Richter compatible = "simple-bus"; 102*ca5b3410SRobert Richter #address-cells = <2>; 103*ca5b3410SRobert Richter #size-cells = <2>; 104*ca5b3410SRobert Richter ranges; 105*ca5b3410SRobert Richter 106*ca5b3410SRobert Richter clocks { 107*ca5b3410SRobert Richter #address-cells = <2>; 108*ca5b3410SRobert Richter #size-cells = <2>; 109*ca5b3410SRobert Richter ranges; 110*ca5b3410SRobert Richter refclk: refclk { 111*ca5b3410SRobert Richter compatible = "fixed-clock"; 112*ca5b3410SRobert Richter #clock-cells = <1>; 113*ca5b3410SRobert Richter clock-frequency = <100000000>; 114*ca5b3410SRobert Richter clock-output-names = "refclk"; 115*ca5b3410SRobert Richter }; 116*ca5b3410SRobert Richter 117*ca5b3410SRobert Richter pcppll: pcppll@17000100 { 118*ca5b3410SRobert Richter compatible = "apm,xgene-pcppll-clock"; 119*ca5b3410SRobert Richter #clock-cells = <1>; 120*ca5b3410SRobert Richter clocks = <&refclk 0>; 121*ca5b3410SRobert Richter clock-names = "pcppll"; 122*ca5b3410SRobert Richter reg = <0x0 0x17000100 0x0 0x1000>; 123*ca5b3410SRobert Richter clock-output-names = "pcppll"; 124*ca5b3410SRobert Richter type = <0>; 125*ca5b3410SRobert Richter }; 126*ca5b3410SRobert Richter 127*ca5b3410SRobert Richter socpll: socpll@17000120 { 128*ca5b3410SRobert Richter compatible = "apm,xgene-socpll-clock"; 129*ca5b3410SRobert Richter #clock-cells = <1>; 130*ca5b3410SRobert Richter clocks = <&refclk 0>; 131*ca5b3410SRobert Richter clock-names = "socpll"; 132*ca5b3410SRobert Richter reg = <0x0 0x17000120 0x0 0x1000>; 133*ca5b3410SRobert Richter clock-output-names = "socpll"; 134*ca5b3410SRobert Richter type = <1>; 135*ca5b3410SRobert Richter }; 136*ca5b3410SRobert Richter 137*ca5b3410SRobert Richter socplldiv2: socplldiv2 { 138*ca5b3410SRobert Richter compatible = "fixed-factor-clock"; 139*ca5b3410SRobert Richter #clock-cells = <1>; 140*ca5b3410SRobert Richter clocks = <&socpll 0>; 141*ca5b3410SRobert Richter clock-names = "socplldiv2"; 142*ca5b3410SRobert Richter clock-mult = <1>; 143*ca5b3410SRobert Richter clock-div = <2>; 144*ca5b3410SRobert Richter clock-output-names = "socplldiv2"; 145*ca5b3410SRobert Richter }; 146*ca5b3410SRobert Richter 147*ca5b3410SRobert Richter qmlclk: qmlclk { 148*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 149*ca5b3410SRobert Richter #clock-cells = <1>; 150*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 151*ca5b3410SRobert Richter clock-names = "qmlclk"; 152*ca5b3410SRobert Richter reg = <0x0 0x1703C000 0x0 0x1000>; 153*ca5b3410SRobert Richter reg-names = "csr-reg"; 154*ca5b3410SRobert Richter clock-output-names = "qmlclk"; 155*ca5b3410SRobert Richter }; 156*ca5b3410SRobert Richter 157*ca5b3410SRobert Richter ethclk: ethclk { 158*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 159*ca5b3410SRobert Richter #clock-cells = <1>; 160*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 161*ca5b3410SRobert Richter clock-names = "ethclk"; 162*ca5b3410SRobert Richter reg = <0x0 0x17000000 0x0 0x1000>; 163*ca5b3410SRobert Richter reg-names = "div-reg"; 164*ca5b3410SRobert Richter divider-offset = <0x238>; 165*ca5b3410SRobert Richter divider-width = <0x9>; 166*ca5b3410SRobert Richter divider-shift = <0x0>; 167*ca5b3410SRobert Richter clock-output-names = "ethclk"; 168*ca5b3410SRobert Richter }; 169*ca5b3410SRobert Richter 170*ca5b3410SRobert Richter menetclk: menetclk { 171*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 172*ca5b3410SRobert Richter #clock-cells = <1>; 173*ca5b3410SRobert Richter clocks = <ðclk 0>; 174*ca5b3410SRobert Richter reg = <0x0 0x1702C000 0x0 0x1000>; 175*ca5b3410SRobert Richter reg-names = "csr-reg"; 176*ca5b3410SRobert Richter clock-output-names = "menetclk"; 177*ca5b3410SRobert Richter }; 178*ca5b3410SRobert Richter 179*ca5b3410SRobert Richter sge0clk: sge0clk@1f21c000 { 180*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 181*ca5b3410SRobert Richter #clock-cells = <1>; 182*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 183*ca5b3410SRobert Richter reg = <0x0 0x1f21c000 0x0 0x1000>; 184*ca5b3410SRobert Richter reg-names = "csr-reg"; 185*ca5b3410SRobert Richter csr-mask = <0x3>; 186*ca5b3410SRobert Richter clock-output-names = "sge0clk"; 187*ca5b3410SRobert Richter }; 188*ca5b3410SRobert Richter 189*ca5b3410SRobert Richter xge0clk: xge0clk@1f61c000 { 190*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 191*ca5b3410SRobert Richter #clock-cells = <1>; 192*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 193*ca5b3410SRobert Richter reg = <0x0 0x1f61c000 0x0 0x1000>; 194*ca5b3410SRobert Richter reg-names = "csr-reg"; 195*ca5b3410SRobert Richter csr-mask = <0x3>; 196*ca5b3410SRobert Richter clock-output-names = "xge0clk"; 197*ca5b3410SRobert Richter }; 198*ca5b3410SRobert Richter 199*ca5b3410SRobert Richter sataphy1clk: sataphy1clk@1f21c000 { 200*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 201*ca5b3410SRobert Richter #clock-cells = <1>; 202*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 203*ca5b3410SRobert Richter reg = <0x0 0x1f21c000 0x0 0x1000>; 204*ca5b3410SRobert Richter reg-names = "csr-reg"; 205*ca5b3410SRobert Richter clock-output-names = "sataphy1clk"; 206*ca5b3410SRobert Richter status = "disabled"; 207*ca5b3410SRobert Richter csr-offset = <0x4>; 208*ca5b3410SRobert Richter csr-mask = <0x00>; 209*ca5b3410SRobert Richter enable-offset = <0x0>; 210*ca5b3410SRobert Richter enable-mask = <0x06>; 211*ca5b3410SRobert Richter }; 212*ca5b3410SRobert Richter 213*ca5b3410SRobert Richter sataphy2clk: sataphy1clk@1f22c000 { 214*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 215*ca5b3410SRobert Richter #clock-cells = <1>; 216*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 217*ca5b3410SRobert Richter reg = <0x0 0x1f22c000 0x0 0x1000>; 218*ca5b3410SRobert Richter reg-names = "csr-reg"; 219*ca5b3410SRobert Richter clock-output-names = "sataphy2clk"; 220*ca5b3410SRobert Richter status = "ok"; 221*ca5b3410SRobert Richter csr-offset = <0x4>; 222*ca5b3410SRobert Richter csr-mask = <0x3a>; 223*ca5b3410SRobert Richter enable-offset = <0x0>; 224*ca5b3410SRobert Richter enable-mask = <0x06>; 225*ca5b3410SRobert Richter }; 226*ca5b3410SRobert Richter 227*ca5b3410SRobert Richter sataphy3clk: sataphy1clk@1f23c000 { 228*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 229*ca5b3410SRobert Richter #clock-cells = <1>; 230*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 231*ca5b3410SRobert Richter reg = <0x0 0x1f23c000 0x0 0x1000>; 232*ca5b3410SRobert Richter reg-names = "csr-reg"; 233*ca5b3410SRobert Richter clock-output-names = "sataphy3clk"; 234*ca5b3410SRobert Richter status = "ok"; 235*ca5b3410SRobert Richter csr-offset = <0x4>; 236*ca5b3410SRobert Richter csr-mask = <0x3a>; 237*ca5b3410SRobert Richter enable-offset = <0x0>; 238*ca5b3410SRobert Richter enable-mask = <0x06>; 239*ca5b3410SRobert Richter }; 240*ca5b3410SRobert Richter 241*ca5b3410SRobert Richter sata01clk: sata01clk@1f21c000 { 242*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 243*ca5b3410SRobert Richter #clock-cells = <1>; 244*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 245*ca5b3410SRobert Richter reg = <0x0 0x1f21c000 0x0 0x1000>; 246*ca5b3410SRobert Richter reg-names = "csr-reg"; 247*ca5b3410SRobert Richter clock-output-names = "sata01clk"; 248*ca5b3410SRobert Richter csr-offset = <0x4>; 249*ca5b3410SRobert Richter csr-mask = <0x05>; 250*ca5b3410SRobert Richter enable-offset = <0x0>; 251*ca5b3410SRobert Richter enable-mask = <0x39>; 252*ca5b3410SRobert Richter }; 253*ca5b3410SRobert Richter 254*ca5b3410SRobert Richter sata23clk: sata23clk@1f22c000 { 255*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 256*ca5b3410SRobert Richter #clock-cells = <1>; 257*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 258*ca5b3410SRobert Richter reg = <0x0 0x1f22c000 0x0 0x1000>; 259*ca5b3410SRobert Richter reg-names = "csr-reg"; 260*ca5b3410SRobert Richter clock-output-names = "sata23clk"; 261*ca5b3410SRobert Richter csr-offset = <0x4>; 262*ca5b3410SRobert Richter csr-mask = <0x05>; 263*ca5b3410SRobert Richter enable-offset = <0x0>; 264*ca5b3410SRobert Richter enable-mask = <0x39>; 265*ca5b3410SRobert Richter }; 266*ca5b3410SRobert Richter 267*ca5b3410SRobert Richter sata45clk: sata45clk@1f23c000 { 268*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 269*ca5b3410SRobert Richter #clock-cells = <1>; 270*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 271*ca5b3410SRobert Richter reg = <0x0 0x1f23c000 0x0 0x1000>; 272*ca5b3410SRobert Richter reg-names = "csr-reg"; 273*ca5b3410SRobert Richter clock-output-names = "sata45clk"; 274*ca5b3410SRobert Richter csr-offset = <0x4>; 275*ca5b3410SRobert Richter csr-mask = <0x05>; 276*ca5b3410SRobert Richter enable-offset = <0x0>; 277*ca5b3410SRobert Richter enable-mask = <0x39>; 278*ca5b3410SRobert Richter }; 279*ca5b3410SRobert Richter 280*ca5b3410SRobert Richter rtcclk: rtcclk@17000000 { 281*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 282*ca5b3410SRobert Richter #clock-cells = <1>; 283*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 284*ca5b3410SRobert Richter reg = <0x0 0x17000000 0x0 0x2000>; 285*ca5b3410SRobert Richter reg-names = "csr-reg"; 286*ca5b3410SRobert Richter csr-offset = <0xc>; 287*ca5b3410SRobert Richter csr-mask = <0x2>; 288*ca5b3410SRobert Richter enable-offset = <0x10>; 289*ca5b3410SRobert Richter enable-mask = <0x2>; 290*ca5b3410SRobert Richter clock-output-names = "rtcclk"; 291*ca5b3410SRobert Richter }; 292*ca5b3410SRobert Richter 293*ca5b3410SRobert Richter rngpkaclk: rngpkaclk@17000000 { 294*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 295*ca5b3410SRobert Richter #clock-cells = <1>; 296*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 297*ca5b3410SRobert Richter reg = <0x0 0x17000000 0x0 0x2000>; 298*ca5b3410SRobert Richter reg-names = "csr-reg"; 299*ca5b3410SRobert Richter csr-offset = <0xc>; 300*ca5b3410SRobert Richter csr-mask = <0x10>; 301*ca5b3410SRobert Richter enable-offset = <0x10>; 302*ca5b3410SRobert Richter enable-mask = <0x10>; 303*ca5b3410SRobert Richter clock-output-names = "rngpkaclk"; 304*ca5b3410SRobert Richter }; 305*ca5b3410SRobert Richter 306*ca5b3410SRobert Richter pcie0clk: pcie0clk@1f2bc000 { 307*ca5b3410SRobert Richter status = "disabled"; 308*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 309*ca5b3410SRobert Richter #clock-cells = <1>; 310*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 311*ca5b3410SRobert Richter reg = <0x0 0x1f2bc000 0x0 0x1000>; 312*ca5b3410SRobert Richter reg-names = "csr-reg"; 313*ca5b3410SRobert Richter clock-output-names = "pcie0clk"; 314*ca5b3410SRobert Richter }; 315*ca5b3410SRobert Richter 316*ca5b3410SRobert Richter pcie1clk: pcie1clk@1f2cc000 { 317*ca5b3410SRobert Richter status = "disabled"; 318*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 319*ca5b3410SRobert Richter #clock-cells = <1>; 320*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 321*ca5b3410SRobert Richter reg = <0x0 0x1f2cc000 0x0 0x1000>; 322*ca5b3410SRobert Richter reg-names = "csr-reg"; 323*ca5b3410SRobert Richter clock-output-names = "pcie1clk"; 324*ca5b3410SRobert Richter }; 325*ca5b3410SRobert Richter 326*ca5b3410SRobert Richter pcie2clk: pcie2clk@1f2dc000 { 327*ca5b3410SRobert Richter status = "disabled"; 328*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 329*ca5b3410SRobert Richter #clock-cells = <1>; 330*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 331*ca5b3410SRobert Richter reg = <0x0 0x1f2dc000 0x0 0x1000>; 332*ca5b3410SRobert Richter reg-names = "csr-reg"; 333*ca5b3410SRobert Richter clock-output-names = "pcie2clk"; 334*ca5b3410SRobert Richter }; 335*ca5b3410SRobert Richter 336*ca5b3410SRobert Richter pcie3clk: pcie3clk@1f50c000 { 337*ca5b3410SRobert Richter status = "disabled"; 338*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 339*ca5b3410SRobert Richter #clock-cells = <1>; 340*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 341*ca5b3410SRobert Richter reg = <0x0 0x1f50c000 0x0 0x1000>; 342*ca5b3410SRobert Richter reg-names = "csr-reg"; 343*ca5b3410SRobert Richter clock-output-names = "pcie3clk"; 344*ca5b3410SRobert Richter }; 345*ca5b3410SRobert Richter 346*ca5b3410SRobert Richter pcie4clk: pcie4clk@1f51c000 { 347*ca5b3410SRobert Richter status = "disabled"; 348*ca5b3410SRobert Richter compatible = "apm,xgene-device-clock"; 349*ca5b3410SRobert Richter #clock-cells = <1>; 350*ca5b3410SRobert Richter clocks = <&socplldiv2 0>; 351*ca5b3410SRobert Richter reg = <0x0 0x1f51c000 0x0 0x1000>; 352*ca5b3410SRobert Richter reg-names = "csr-reg"; 353*ca5b3410SRobert Richter clock-output-names = "pcie4clk"; 354*ca5b3410SRobert Richter }; 355*ca5b3410SRobert Richter }; 356*ca5b3410SRobert Richter 357*ca5b3410SRobert Richter pcie0: pcie@1f2b0000 { 358*ca5b3410SRobert Richter status = "disabled"; 359*ca5b3410SRobert Richter device_type = "pci"; 360*ca5b3410SRobert Richter compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 361*ca5b3410SRobert Richter #interrupt-cells = <1>; 362*ca5b3410SRobert Richter #size-cells = <2>; 363*ca5b3410SRobert Richter #address-cells = <3>; 364*ca5b3410SRobert Richter reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ 365*ca5b3410SRobert Richter 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 366*ca5b3410SRobert Richter reg-names = "csr", "cfg"; 367*ca5b3410SRobert Richter ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */ 368*ca5b3410SRobert Richter 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */ 369*ca5b3410SRobert Richter dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 370*ca5b3410SRobert Richter 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 371*ca5b3410SRobert Richter interrupt-map-mask = <0x0 0x0 0x0 0x7>; 372*ca5b3410SRobert Richter interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1 373*ca5b3410SRobert Richter 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1 374*ca5b3410SRobert Richter 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1 375*ca5b3410SRobert Richter 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>; 376*ca5b3410SRobert Richter dma-coherent; 377*ca5b3410SRobert Richter clocks = <&pcie0clk 0>; 378*ca5b3410SRobert Richter }; 379*ca5b3410SRobert Richter 380*ca5b3410SRobert Richter pcie1: pcie@1f2c0000 { 381*ca5b3410SRobert Richter status = "disabled"; 382*ca5b3410SRobert Richter device_type = "pci"; 383*ca5b3410SRobert Richter compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 384*ca5b3410SRobert Richter #interrupt-cells = <1>; 385*ca5b3410SRobert Richter #size-cells = <2>; 386*ca5b3410SRobert Richter #address-cells = <3>; 387*ca5b3410SRobert Richter reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */ 388*ca5b3410SRobert Richter 0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 389*ca5b3410SRobert Richter reg-names = "csr", "cfg"; 390*ca5b3410SRobert Richter ranges = <0x01000000 0x0 0x00000000 0xd0 0x10000000 0x00 0x00010000 /* io */ 391*ca5b3410SRobert Richter 0x02000000 0x0 0x80000000 0xd1 0x80000000 0x00 0x80000000>; /* mem */ 392*ca5b3410SRobert Richter dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 393*ca5b3410SRobert Richter 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 394*ca5b3410SRobert Richter interrupt-map-mask = <0x0 0x0 0x0 0x7>; 395*ca5b3410SRobert Richter interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x1 396*ca5b3410SRobert Richter 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x1 397*ca5b3410SRobert Richter 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x1 398*ca5b3410SRobert Richter 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x1>; 399*ca5b3410SRobert Richter dma-coherent; 400*ca5b3410SRobert Richter clocks = <&pcie1clk 0>; 401*ca5b3410SRobert Richter }; 402*ca5b3410SRobert Richter 403*ca5b3410SRobert Richter pcie2: pcie@1f2d0000 { 404*ca5b3410SRobert Richter status = "disabled"; 405*ca5b3410SRobert Richter device_type = "pci"; 406*ca5b3410SRobert Richter compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 407*ca5b3410SRobert Richter #interrupt-cells = <1>; 408*ca5b3410SRobert Richter #size-cells = <2>; 409*ca5b3410SRobert Richter #address-cells = <3>; 410*ca5b3410SRobert Richter reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */ 411*ca5b3410SRobert Richter 0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */ 412*ca5b3410SRobert Richter reg-names = "csr", "cfg"; 413*ca5b3410SRobert Richter ranges = <0x01000000 0x0 0x00000000 0x90 0x10000000 0x0 0x00010000 /* io */ 414*ca5b3410SRobert Richter 0x02000000 0x0 0x80000000 0x91 0x80000000 0x0 0x80000000>; /* mem */ 415*ca5b3410SRobert Richter dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 416*ca5b3410SRobert Richter 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 417*ca5b3410SRobert Richter interrupt-map-mask = <0x0 0x0 0x0 0x7>; 418*ca5b3410SRobert Richter interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x1 419*ca5b3410SRobert Richter 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x1 420*ca5b3410SRobert Richter 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x1 421*ca5b3410SRobert Richter 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x1>; 422*ca5b3410SRobert Richter dma-coherent; 423*ca5b3410SRobert Richter clocks = <&pcie2clk 0>; 424*ca5b3410SRobert Richter }; 425*ca5b3410SRobert Richter 426*ca5b3410SRobert Richter pcie3: pcie@1f500000 { 427*ca5b3410SRobert Richter status = "disabled"; 428*ca5b3410SRobert Richter device_type = "pci"; 429*ca5b3410SRobert Richter compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 430*ca5b3410SRobert Richter #interrupt-cells = <1>; 431*ca5b3410SRobert Richter #size-cells = <2>; 432*ca5b3410SRobert Richter #address-cells = <3>; 433*ca5b3410SRobert Richter reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */ 434*ca5b3410SRobert Richter 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 435*ca5b3410SRobert Richter reg-names = "csr", "cfg"; 436*ca5b3410SRobert Richter ranges = <0x01000000 0x0 0x00000000 0xa0 0x10000000 0x0 0x00010000 /* io */ 437*ca5b3410SRobert Richter 0x02000000 0x0 0x80000000 0xa1 0x80000000 0x0 0x80000000>; /* mem */ 438*ca5b3410SRobert Richter dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 439*ca5b3410SRobert Richter 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 440*ca5b3410SRobert Richter interrupt-map-mask = <0x0 0x0 0x0 0x7>; 441*ca5b3410SRobert Richter interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x1 442*ca5b3410SRobert Richter 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x1 443*ca5b3410SRobert Richter 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x1 444*ca5b3410SRobert Richter 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x1>; 445*ca5b3410SRobert Richter dma-coherent; 446*ca5b3410SRobert Richter clocks = <&pcie3clk 0>; 447*ca5b3410SRobert Richter }; 448*ca5b3410SRobert Richter 449*ca5b3410SRobert Richter pcie4: pcie@1f510000 { 450*ca5b3410SRobert Richter status = "disabled"; 451*ca5b3410SRobert Richter device_type = "pci"; 452*ca5b3410SRobert Richter compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 453*ca5b3410SRobert Richter #interrupt-cells = <1>; 454*ca5b3410SRobert Richter #size-cells = <2>; 455*ca5b3410SRobert Richter #address-cells = <3>; 456*ca5b3410SRobert Richter reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */ 457*ca5b3410SRobert Richter 0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */ 458*ca5b3410SRobert Richter reg-names = "csr", "cfg"; 459*ca5b3410SRobert Richter ranges = <0x01000000 0x0 0x00000000 0xc0 0x10000000 0x0 0x00010000 /* io */ 460*ca5b3410SRobert Richter 0x02000000 0x0 0x80000000 0xc1 0x80000000 0x0 0x80000000>; /* mem */ 461*ca5b3410SRobert Richter dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 462*ca5b3410SRobert Richter 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 463*ca5b3410SRobert Richter interrupt-map-mask = <0x0 0x0 0x0 0x7>; 464*ca5b3410SRobert Richter interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x1 465*ca5b3410SRobert Richter 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x1 466*ca5b3410SRobert Richter 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x1 467*ca5b3410SRobert Richter 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x1>; 468*ca5b3410SRobert Richter dma-coherent; 469*ca5b3410SRobert Richter clocks = <&pcie4clk 0>; 470*ca5b3410SRobert Richter }; 471*ca5b3410SRobert Richter 472*ca5b3410SRobert Richter serial0: serial@1c020000 { 473*ca5b3410SRobert Richter status = "disabled"; 474*ca5b3410SRobert Richter device_type = "serial"; 475*ca5b3410SRobert Richter compatible = "ns16550a"; 476*ca5b3410SRobert Richter reg = <0 0x1c020000 0x0 0x1000>; 477*ca5b3410SRobert Richter reg-shift = <2>; 478*ca5b3410SRobert Richter clock-frequency = <10000000>; /* Updated by bootloader */ 479*ca5b3410SRobert Richter interrupt-parent = <&gic>; 480*ca5b3410SRobert Richter interrupts = <0x0 0x4c 0x4>; 481*ca5b3410SRobert Richter }; 482*ca5b3410SRobert Richter 483*ca5b3410SRobert Richter serial1: serial@1c021000 { 484*ca5b3410SRobert Richter status = "disabled"; 485*ca5b3410SRobert Richter device_type = "serial"; 486*ca5b3410SRobert Richter compatible = "ns16550a"; 487*ca5b3410SRobert Richter reg = <0 0x1c021000 0x0 0x1000>; 488*ca5b3410SRobert Richter reg-shift = <2>; 489*ca5b3410SRobert Richter clock-frequency = <10000000>; /* Updated by bootloader */ 490*ca5b3410SRobert Richter interrupt-parent = <&gic>; 491*ca5b3410SRobert Richter interrupts = <0x0 0x4d 0x4>; 492*ca5b3410SRobert Richter }; 493*ca5b3410SRobert Richter 494*ca5b3410SRobert Richter serial2: serial@1c022000 { 495*ca5b3410SRobert Richter status = "disabled"; 496*ca5b3410SRobert Richter device_type = "serial"; 497*ca5b3410SRobert Richter compatible = "ns16550a"; 498*ca5b3410SRobert Richter reg = <0 0x1c022000 0x0 0x1000>; 499*ca5b3410SRobert Richter reg-shift = <2>; 500*ca5b3410SRobert Richter clock-frequency = <10000000>; /* Updated by bootloader */ 501*ca5b3410SRobert Richter interrupt-parent = <&gic>; 502*ca5b3410SRobert Richter interrupts = <0x0 0x4e 0x4>; 503*ca5b3410SRobert Richter }; 504*ca5b3410SRobert Richter 505*ca5b3410SRobert Richter serial3: serial@1c023000 { 506*ca5b3410SRobert Richter status = "disabled"; 507*ca5b3410SRobert Richter device_type = "serial"; 508*ca5b3410SRobert Richter compatible = "ns16550a"; 509*ca5b3410SRobert Richter reg = <0 0x1c023000 0x0 0x1000>; 510*ca5b3410SRobert Richter reg-shift = <2>; 511*ca5b3410SRobert Richter clock-frequency = <10000000>; /* Updated by bootloader */ 512*ca5b3410SRobert Richter interrupt-parent = <&gic>; 513*ca5b3410SRobert Richter interrupts = <0x0 0x4f 0x4>; 514*ca5b3410SRobert Richter }; 515*ca5b3410SRobert Richter 516*ca5b3410SRobert Richter phy1: phy@1f21a000 { 517*ca5b3410SRobert Richter compatible = "apm,xgene-phy"; 518*ca5b3410SRobert Richter reg = <0x0 0x1f21a000 0x0 0x100>; 519*ca5b3410SRobert Richter #phy-cells = <1>; 520*ca5b3410SRobert Richter clocks = <&sataphy1clk 0>; 521*ca5b3410SRobert Richter status = "disabled"; 522*ca5b3410SRobert Richter apm,tx-boost-gain = <30 30 30 30 30 30>; 523*ca5b3410SRobert Richter apm,tx-eye-tuning = <2 10 10 2 10 10>; 524*ca5b3410SRobert Richter }; 525*ca5b3410SRobert Richter 526*ca5b3410SRobert Richter phy2: phy@1f22a000 { 527*ca5b3410SRobert Richter compatible = "apm,xgene-phy"; 528*ca5b3410SRobert Richter reg = <0x0 0x1f22a000 0x0 0x100>; 529*ca5b3410SRobert Richter #phy-cells = <1>; 530*ca5b3410SRobert Richter clocks = <&sataphy2clk 0>; 531*ca5b3410SRobert Richter status = "ok"; 532*ca5b3410SRobert Richter apm,tx-boost-gain = <30 30 30 30 30 30>; 533*ca5b3410SRobert Richter apm,tx-eye-tuning = <1 10 10 2 10 10>; 534*ca5b3410SRobert Richter }; 535*ca5b3410SRobert Richter 536*ca5b3410SRobert Richter phy3: phy@1f23a000 { 537*ca5b3410SRobert Richter compatible = "apm,xgene-phy"; 538*ca5b3410SRobert Richter reg = <0x0 0x1f23a000 0x0 0x100>; 539*ca5b3410SRobert Richter #phy-cells = <1>; 540*ca5b3410SRobert Richter clocks = <&sataphy3clk 0>; 541*ca5b3410SRobert Richter status = "ok"; 542*ca5b3410SRobert Richter apm,tx-boost-gain = <31 31 31 31 31 31>; 543*ca5b3410SRobert Richter apm,tx-eye-tuning = <2 10 10 2 10 10>; 544*ca5b3410SRobert Richter }; 545*ca5b3410SRobert Richter 546*ca5b3410SRobert Richter sata1: sata@1a000000 { 547*ca5b3410SRobert Richter compatible = "apm,xgene-ahci"; 548*ca5b3410SRobert Richter reg = <0x0 0x1a000000 0x0 0x1000>, 549*ca5b3410SRobert Richter <0x0 0x1f210000 0x0 0x1000>, 550*ca5b3410SRobert Richter <0x0 0x1f21d000 0x0 0x1000>, 551*ca5b3410SRobert Richter <0x0 0x1f21e000 0x0 0x1000>, 552*ca5b3410SRobert Richter <0x0 0x1f217000 0x0 0x1000>; 553*ca5b3410SRobert Richter interrupts = <0x0 0x86 0x4>; 554*ca5b3410SRobert Richter dma-coherent; 555*ca5b3410SRobert Richter status = "disabled"; 556*ca5b3410SRobert Richter clocks = <&sata01clk 0>; 557*ca5b3410SRobert Richter phys = <&phy1 0>; 558*ca5b3410SRobert Richter phy-names = "sata-phy"; 559*ca5b3410SRobert Richter }; 560*ca5b3410SRobert Richter 561*ca5b3410SRobert Richter sata2: sata@1a400000 { 562*ca5b3410SRobert Richter compatible = "apm,xgene-ahci"; 563*ca5b3410SRobert Richter reg = <0x0 0x1a400000 0x0 0x1000>, 564*ca5b3410SRobert Richter <0x0 0x1f220000 0x0 0x1000>, 565*ca5b3410SRobert Richter <0x0 0x1f22d000 0x0 0x1000>, 566*ca5b3410SRobert Richter <0x0 0x1f22e000 0x0 0x1000>, 567*ca5b3410SRobert Richter <0x0 0x1f227000 0x0 0x1000>; 568*ca5b3410SRobert Richter interrupts = <0x0 0x87 0x4>; 569*ca5b3410SRobert Richter dma-coherent; 570*ca5b3410SRobert Richter status = "ok"; 571*ca5b3410SRobert Richter clocks = <&sata23clk 0>; 572*ca5b3410SRobert Richter phys = <&phy2 0>; 573*ca5b3410SRobert Richter phy-names = "sata-phy"; 574*ca5b3410SRobert Richter }; 575*ca5b3410SRobert Richter 576*ca5b3410SRobert Richter sata3: sata@1a800000 { 577*ca5b3410SRobert Richter compatible = "apm,xgene-ahci"; 578*ca5b3410SRobert Richter reg = <0x0 0x1a800000 0x0 0x1000>, 579*ca5b3410SRobert Richter <0x0 0x1f230000 0x0 0x1000>, 580*ca5b3410SRobert Richter <0x0 0x1f23d000 0x0 0x1000>, 581*ca5b3410SRobert Richter <0x0 0x1f23e000 0x0 0x1000>; 582*ca5b3410SRobert Richter interrupts = <0x0 0x88 0x4>; 583*ca5b3410SRobert Richter dma-coherent; 584*ca5b3410SRobert Richter status = "ok"; 585*ca5b3410SRobert Richter clocks = <&sata45clk 0>; 586*ca5b3410SRobert Richter phys = <&phy3 0>; 587*ca5b3410SRobert Richter phy-names = "sata-phy"; 588*ca5b3410SRobert Richter }; 589*ca5b3410SRobert Richter 590*ca5b3410SRobert Richter rtc: rtc@10510000 { 591*ca5b3410SRobert Richter compatible = "apm,xgene-rtc"; 592*ca5b3410SRobert Richter reg = <0x0 0x10510000 0x0 0x400>; 593*ca5b3410SRobert Richter interrupts = <0x0 0x46 0x4>; 594*ca5b3410SRobert Richter #clock-cells = <1>; 595*ca5b3410SRobert Richter clocks = <&rtcclk 0>; 596*ca5b3410SRobert Richter }; 597*ca5b3410SRobert Richter 598*ca5b3410SRobert Richter menet: ethernet@17020000 { 599*ca5b3410SRobert Richter compatible = "apm,xgene-enet"; 600*ca5b3410SRobert Richter status = "disabled"; 601*ca5b3410SRobert Richter reg = <0x0 0x17020000 0x0 0xd100>, 602*ca5b3410SRobert Richter <0x0 0X17030000 0x0 0X400>, 603*ca5b3410SRobert Richter <0x0 0X10000000 0x0 0X200>; 604*ca5b3410SRobert Richter reg-names = "enet_csr", "ring_csr", "ring_cmd"; 605*ca5b3410SRobert Richter interrupts = <0x0 0x3c 0x4>; 606*ca5b3410SRobert Richter dma-coherent; 607*ca5b3410SRobert Richter clocks = <&menetclk 0>; 608*ca5b3410SRobert Richter /* mac address will be overwritten by the bootloader */ 609*ca5b3410SRobert Richter local-mac-address = [00 00 00 00 00 00]; 610*ca5b3410SRobert Richter phy-connection-type = "rgmii"; 611*ca5b3410SRobert Richter phy-handle = <&menetphy>; 612*ca5b3410SRobert Richter mdio { 613*ca5b3410SRobert Richter compatible = "apm,xgene-mdio"; 614*ca5b3410SRobert Richter #address-cells = <1>; 615*ca5b3410SRobert Richter #size-cells = <0>; 616*ca5b3410SRobert Richter menetphy: menetphy@3 { 617*ca5b3410SRobert Richter compatible = "ethernet-phy-id001c.c915"; 618*ca5b3410SRobert Richter reg = <0x3>; 619*ca5b3410SRobert Richter }; 620*ca5b3410SRobert Richter 621*ca5b3410SRobert Richter }; 622*ca5b3410SRobert Richter }; 623*ca5b3410SRobert Richter 624*ca5b3410SRobert Richter sgenet0: ethernet@1f210000 { 625*ca5b3410SRobert Richter compatible = "apm,xgene-enet"; 626*ca5b3410SRobert Richter status = "disabled"; 627*ca5b3410SRobert Richter reg = <0x0 0x1f210000 0x0 0x10000>, 628*ca5b3410SRobert Richter <0x0 0x1f200000 0x0 0X10000>, 629*ca5b3410SRobert Richter <0x0 0x1B000000 0x0 0X20000>; 630*ca5b3410SRobert Richter reg-names = "enet_csr", "ring_csr", "ring_cmd"; 631*ca5b3410SRobert Richter interrupts = <0x0 0xA0 0x4>; 632*ca5b3410SRobert Richter dma-coherent; 633*ca5b3410SRobert Richter clocks = <&sge0clk 0>; 634*ca5b3410SRobert Richter local-mac-address = [00 00 00 00 00 00]; 635*ca5b3410SRobert Richter phy-connection-type = "sgmii"; 636*ca5b3410SRobert Richter }; 637*ca5b3410SRobert Richter 638*ca5b3410SRobert Richter xgenet: ethernet@1f610000 { 639*ca5b3410SRobert Richter compatible = "apm,xgene-enet"; 640*ca5b3410SRobert Richter status = "disabled"; 641*ca5b3410SRobert Richter reg = <0x0 0x1f610000 0x0 0xd100>, 642*ca5b3410SRobert Richter <0x0 0x1f600000 0x0 0X400>, 643*ca5b3410SRobert Richter <0x0 0x18000000 0x0 0X200>; 644*ca5b3410SRobert Richter reg-names = "enet_csr", "ring_csr", "ring_cmd"; 645*ca5b3410SRobert Richter interrupts = <0x0 0x60 0x4>; 646*ca5b3410SRobert Richter dma-coherent; 647*ca5b3410SRobert Richter clocks = <&xge0clk 0>; 648*ca5b3410SRobert Richter /* mac address will be overwritten by the bootloader */ 649*ca5b3410SRobert Richter local-mac-address = [00 00 00 00 00 00]; 650*ca5b3410SRobert Richter phy-connection-type = "xgmii"; 651*ca5b3410SRobert Richter }; 652*ca5b3410SRobert Richter 653*ca5b3410SRobert Richter rng: rng@10520000 { 654*ca5b3410SRobert Richter compatible = "apm,xgene-rng"; 655*ca5b3410SRobert Richter reg = <0x0 0x10520000 0x0 0x100>; 656*ca5b3410SRobert Richter interrupts = <0x0 0x41 0x4>; 657*ca5b3410SRobert Richter clocks = <&rngpkaclk 0>; 658*ca5b3410SRobert Richter }; 659*ca5b3410SRobert Richter }; 660*ca5b3410SRobert Richter}; 661