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