1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * dts file for AppliedMicro (APM) X-Gene Storm SOC 4 * 5 * Copyright (C) 2013, Applied Micro Circuits Corporation 6 */ 7 8/ { 9 compatible = "apm,xgene-storm"; 10 interrupt-parent = <&gic>; 11 #address-cells = <2>; 12 #size-cells = <2>; 13 14 cpus { 15 #address-cells = <2>; 16 #size-cells = <0>; 17 18 cpu@0 { 19 device_type = "cpu"; 20 compatible = "apm,potenza"; 21 reg = <0x0 0x000>; 22 enable-method = "spin-table"; 23 cpu-release-addr = <0x1 0x0000fff8>; 24 next-level-cache = <&xgene_L2_0>; 25 }; 26 cpu@1 { 27 device_type = "cpu"; 28 compatible = "apm,potenza"; 29 reg = <0x0 0x001>; 30 enable-method = "spin-table"; 31 cpu-release-addr = <0x1 0x0000fff8>; 32 next-level-cache = <&xgene_L2_0>; 33 }; 34 cpu@100 { 35 device_type = "cpu"; 36 compatible = "apm,potenza"; 37 reg = <0x0 0x100>; 38 enable-method = "spin-table"; 39 cpu-release-addr = <0x1 0x0000fff8>; 40 next-level-cache = <&xgene_L2_1>; 41 }; 42 cpu@101 { 43 device_type = "cpu"; 44 compatible = "apm,potenza"; 45 reg = <0x0 0x101>; 46 enable-method = "spin-table"; 47 cpu-release-addr = <0x1 0x0000fff8>; 48 next-level-cache = <&xgene_L2_1>; 49 }; 50 cpu@200 { 51 device_type = "cpu"; 52 compatible = "apm,potenza"; 53 reg = <0x0 0x200>; 54 enable-method = "spin-table"; 55 cpu-release-addr = <0x1 0x0000fff8>; 56 next-level-cache = <&xgene_L2_2>; 57 }; 58 cpu@201 { 59 device_type = "cpu"; 60 compatible = "apm,potenza"; 61 reg = <0x0 0x201>; 62 enable-method = "spin-table"; 63 cpu-release-addr = <0x1 0x0000fff8>; 64 next-level-cache = <&xgene_L2_2>; 65 }; 66 cpu@300 { 67 device_type = "cpu"; 68 compatible = "apm,potenza"; 69 reg = <0x0 0x300>; 70 enable-method = "spin-table"; 71 cpu-release-addr = <0x1 0x0000fff8>; 72 next-level-cache = <&xgene_L2_3>; 73 }; 74 cpu@301 { 75 device_type = "cpu"; 76 compatible = "apm,potenza"; 77 reg = <0x0 0x301>; 78 enable-method = "spin-table"; 79 cpu-release-addr = <0x1 0x0000fff8>; 80 next-level-cache = <&xgene_L2_3>; 81 }; 82 xgene_L2_0: l2-cache-0 { 83 compatible = "cache"; 84 cache-level = <2>; 85 cache-unified; 86 }; 87 xgene_L2_1: l2-cache-1 { 88 compatible = "cache"; 89 cache-level = <2>; 90 cache-unified; 91 }; 92 xgene_L2_2: l2-cache-2 { 93 compatible = "cache"; 94 cache-level = <2>; 95 cache-unified; 96 }; 97 xgene_L2_3: l2-cache-3 { 98 compatible = "cache"; 99 cache-level = <2>; 100 cache-unified; 101 }; 102 }; 103 104 gic: interrupt-controller@78010000 { 105 compatible = "arm,cortex-a15-gic"; 106 #interrupt-cells = <3>; 107 interrupt-controller; 108 reg = <0x0 0x78010000 0x0 0x1000>, /* GIC Dist */ 109 <0x0 0x78020000 0x0 0x1000>, /* GIC CPU */ 110 <0x0 0x78040000 0x0 0x2000>, /* GIC VCPU Control */ 111 <0x0 0x78060000 0x0 0x2000>; /* GIC VCPU */ 112 interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */ 113 }; 114 115 timer { 116 compatible = "arm,armv8-timer"; 117 interrupts = <1 0 0xff08>, /* Secure Phys IRQ */ 118 <1 13 0xff08>, /* Non-secure Phys IRQ */ 119 <1 14 0xff08>, /* Virt IRQ */ 120 <1 15 0xff08>; /* Hyp IRQ */ 121 clock-frequency = <50000000>; 122 }; 123 124 pmu { 125 compatible = "apm,potenza-pmu", "arm,armv8-pmuv3"; 126 interrupts = <1 12 0xff04>; 127 }; 128 129 soc { 130 compatible = "simple-bus"; 131 #address-cells = <2>; 132 #size-cells = <2>; 133 ranges; 134 dma-ranges = <0x0 0x0 0x0 0x0 0x400 0x0>; 135 136 clocks { 137 #address-cells = <2>; 138 #size-cells = <2>; 139 ranges; 140 refclk: refclk { 141 compatible = "fixed-clock"; 142 #clock-cells = <1>; 143 clock-frequency = <100000000>; 144 clock-output-names = "refclk"; 145 }; 146 147 pcppll: pcppll@17000100 { 148 compatible = "apm,xgene-pcppll-clock"; 149 #clock-cells = <1>; 150 clocks = <&refclk 0>; 151 clock-names = "pcppll"; 152 reg = <0x0 0x17000100 0x0 0x1000>; 153 clock-output-names = "pcppll"; 154 type = <0>; 155 }; 156 157 socpll: socpll@17000120 { 158 compatible = "apm,xgene-socpll-clock"; 159 #clock-cells = <1>; 160 clocks = <&refclk 0>; 161 clock-names = "socpll"; 162 reg = <0x0 0x17000120 0x0 0x1000>; 163 clock-output-names = "socpll"; 164 type = <1>; 165 }; 166 167 socplldiv2: socplldiv2 { 168 compatible = "fixed-factor-clock"; 169 #clock-cells = <1>; 170 clocks = <&socpll 0>; 171 clock-names = "socplldiv2"; 172 clock-mult = <1>; 173 clock-div = <2>; 174 clock-output-names = "socplldiv2"; 175 }; 176 177 ahbclk: ahbclk@17000000 { 178 compatible = "apm,xgene-device-clock"; 179 #clock-cells = <1>; 180 clocks = <&socplldiv2 0>; 181 reg = <0x0 0x17000000 0x0 0x2000>; 182 reg-names = "div-reg"; 183 divider-offset = <0x164>; 184 divider-width = <0x5>; 185 divider-shift = <0x0>; 186 clock-output-names = "ahbclk"; 187 }; 188 189 sdioclk: sdioclk@1f2ac000 { 190 compatible = "apm,xgene-device-clock"; 191 #clock-cells = <1>; 192 clocks = <&socplldiv2 0>; 193 reg = <0x0 0x1f2ac000 0x0 0x1000 194 0x0 0x17000000 0x0 0x2000>; 195 reg-names = "csr-reg", "div-reg"; 196 csr-offset = <0x0>; 197 csr-mask = <0x2>; 198 enable-offset = <0x8>; 199 enable-mask = <0x2>; 200 divider-offset = <0x178>; 201 divider-width = <0x8>; 202 divider-shift = <0x0>; 203 clock-output-names = "sdioclk"; 204 }; 205 206 ethclk: ethclk { 207 compatible = "apm,xgene-device-clock"; 208 #clock-cells = <1>; 209 clocks = <&socplldiv2 0>; 210 clock-names = "ethclk"; 211 reg = <0x0 0x17000000 0x0 0x1000>; 212 reg-names = "div-reg"; 213 divider-offset = <0x238>; 214 divider-width = <0x9>; 215 divider-shift = <0x0>; 216 clock-output-names = "ethclk"; 217 }; 218 219 menetclk: menetclk { 220 compatible = "apm,xgene-device-clock"; 221 #clock-cells = <1>; 222 clocks = <ðclk 0>; 223 reg = <0x0 0x1702c000 0x0 0x1000>; 224 reg-names = "csr-reg"; 225 clock-output-names = "menetclk"; 226 }; 227 228 sge0clk: sge0clk@1f21c000 { 229 compatible = "apm,xgene-device-clock"; 230 #clock-cells = <1>; 231 clocks = <&socplldiv2 0>; 232 reg = <0x0 0x1f21c000 0x0 0x1000>; 233 reg-names = "csr-reg"; 234 csr-mask = <0xa>; 235 enable-mask = <0xf>; 236 clock-output-names = "sge0clk"; 237 }; 238 239 xge0clk: xge0clk@1f61c000 { 240 compatible = "apm,xgene-device-clock"; 241 #clock-cells = <1>; 242 clocks = <&socplldiv2 0>; 243 reg = <0x0 0x1f61c000 0x0 0x1000>; 244 reg-names = "csr-reg"; 245 csr-mask = <0x3>; 246 clock-output-names = "xge0clk"; 247 }; 248 249 xge1clk: xge1clk@1f62c000 { 250 compatible = "apm,xgene-device-clock"; 251 status = "disabled"; 252 #clock-cells = <1>; 253 clocks = <&socplldiv2 0>; 254 reg = <0x0 0x1f62c000 0x0 0x1000>; 255 reg-names = "csr-reg"; 256 csr-mask = <0x3>; 257 clock-output-names = "xge1clk"; 258 }; 259 260 sataphy1clk: sataphy1clk@1f21c000 { 261 compatible = "apm,xgene-device-clock"; 262 #clock-cells = <1>; 263 clocks = <&socplldiv2 0>; 264 reg = <0x0 0x1f21c000 0x0 0x1000>; 265 reg-names = "csr-reg"; 266 clock-output-names = "sataphy1clk"; 267 status = "disabled"; 268 csr-offset = <0x4>; 269 csr-mask = <0x00>; 270 enable-offset = <0x0>; 271 enable-mask = <0x06>; 272 }; 273 274 sataphy2clk: sataphy1clk@1f22c000 { 275 compatible = "apm,xgene-device-clock"; 276 #clock-cells = <1>; 277 clocks = <&socplldiv2 0>; 278 reg = <0x0 0x1f22c000 0x0 0x1000>; 279 reg-names = "csr-reg"; 280 clock-output-names = "sataphy2clk"; 281 status = "okay"; 282 csr-offset = <0x4>; 283 csr-mask = <0x3a>; 284 enable-offset = <0x0>; 285 enable-mask = <0x06>; 286 }; 287 288 sataphy3clk: sataphy1clk@1f23c000 { 289 compatible = "apm,xgene-device-clock"; 290 #clock-cells = <1>; 291 clocks = <&socplldiv2 0>; 292 reg = <0x0 0x1f23c000 0x0 0x1000>; 293 reg-names = "csr-reg"; 294 clock-output-names = "sataphy3clk"; 295 status = "okay"; 296 csr-offset = <0x4>; 297 csr-mask = <0x3a>; 298 enable-offset = <0x0>; 299 enable-mask = <0x06>; 300 }; 301 302 sata01clk: sata01clk@1f21c000 { 303 compatible = "apm,xgene-device-clock"; 304 #clock-cells = <1>; 305 clocks = <&socplldiv2 0>; 306 reg = <0x0 0x1f21c000 0x0 0x1000>; 307 reg-names = "csr-reg"; 308 clock-output-names = "sata01clk"; 309 csr-offset = <0x4>; 310 csr-mask = <0x05>; 311 enable-offset = <0x0>; 312 enable-mask = <0x39>; 313 }; 314 315 sata23clk: sata23clk@1f22c000 { 316 compatible = "apm,xgene-device-clock"; 317 #clock-cells = <1>; 318 clocks = <&socplldiv2 0>; 319 reg = <0x0 0x1f22c000 0x0 0x1000>; 320 reg-names = "csr-reg"; 321 clock-output-names = "sata23clk"; 322 csr-offset = <0x4>; 323 csr-mask = <0x05>; 324 enable-offset = <0x0>; 325 enable-mask = <0x39>; 326 }; 327 328 sata45clk: sata45clk@1f23c000 { 329 compatible = "apm,xgene-device-clock"; 330 #clock-cells = <1>; 331 clocks = <&socplldiv2 0>; 332 reg = <0x0 0x1f23c000 0x0 0x1000>; 333 reg-names = "csr-reg"; 334 clock-output-names = "sata45clk"; 335 csr-offset = <0x4>; 336 csr-mask = <0x05>; 337 enable-offset = <0x0>; 338 enable-mask = <0x39>; 339 }; 340 341 rtcclk: rtcclk@17000000 { 342 compatible = "apm,xgene-device-clock"; 343 #clock-cells = <1>; 344 clocks = <&socplldiv2 0>; 345 reg = <0x0 0x17000000 0x0 0x2000>; 346 reg-names = "csr-reg"; 347 csr-offset = <0xc>; 348 csr-mask = <0x2>; 349 enable-offset = <0x10>; 350 enable-mask = <0x2>; 351 clock-output-names = "rtcclk"; 352 }; 353 354 rngpkaclk: rngpkaclk@17000000 { 355 compatible = "apm,xgene-device-clock"; 356 #clock-cells = <1>; 357 clocks = <&socplldiv2 0>; 358 reg = <0x0 0x17000000 0x0 0x2000>; 359 reg-names = "csr-reg"; 360 csr-offset = <0xc>; 361 csr-mask = <0x10>; 362 enable-offset = <0x10>; 363 enable-mask = <0x10>; 364 clock-output-names = "rngpkaclk"; 365 }; 366 367 pcie0clk: pcie0clk@1f2bc000 { 368 status = "disabled"; 369 compatible = "apm,xgene-device-clock"; 370 #clock-cells = <1>; 371 clocks = <&socplldiv2 0>; 372 reg = <0x0 0x1f2bc000 0x0 0x1000>; 373 reg-names = "csr-reg"; 374 clock-output-names = "pcie0clk"; 375 }; 376 377 pcie1clk: pcie1clk@1f2cc000 { 378 status = "disabled"; 379 compatible = "apm,xgene-device-clock"; 380 #clock-cells = <1>; 381 clocks = <&socplldiv2 0>; 382 reg = <0x0 0x1f2cc000 0x0 0x1000>; 383 reg-names = "csr-reg"; 384 clock-output-names = "pcie1clk"; 385 }; 386 387 pcie2clk: pcie2clk@1f2dc000 { 388 status = "disabled"; 389 compatible = "apm,xgene-device-clock"; 390 #clock-cells = <1>; 391 clocks = <&socplldiv2 0>; 392 reg = <0x0 0x1f2dc000 0x0 0x1000>; 393 reg-names = "csr-reg"; 394 clock-output-names = "pcie2clk"; 395 }; 396 397 pcie3clk: pcie3clk@1f50c000 { 398 status = "disabled"; 399 compatible = "apm,xgene-device-clock"; 400 #clock-cells = <1>; 401 clocks = <&socplldiv2 0>; 402 reg = <0x0 0x1f50c000 0x0 0x1000>; 403 reg-names = "csr-reg"; 404 clock-output-names = "pcie3clk"; 405 }; 406 407 pcie4clk: pcie4clk@1f51c000 { 408 status = "disabled"; 409 compatible = "apm,xgene-device-clock"; 410 #clock-cells = <1>; 411 clocks = <&socplldiv2 0>; 412 reg = <0x0 0x1f51c000 0x0 0x1000>; 413 reg-names = "csr-reg"; 414 clock-output-names = "pcie4clk"; 415 }; 416 417 dmaclk: dmaclk@1f27c000 { 418 compatible = "apm,xgene-device-clock"; 419 #clock-cells = <1>; 420 clocks = <&socplldiv2 0>; 421 reg = <0x0 0x1f27c000 0x0 0x1000>; 422 reg-names = "csr-reg"; 423 clock-output-names = "dmaclk"; 424 }; 425 }; 426 427 msi: msi@79000000 { 428 compatible = "apm,xgene1-msi"; 429 msi-controller; 430 reg = <0x00 0x79000000 0x0 0x900000>; 431 interrupts = < 0x0 0x10 0x4 432 0x0 0x11 0x4 433 0x0 0x12 0x4 434 0x0 0x13 0x4 435 0x0 0x14 0x4 436 0x0 0x15 0x4 437 0x0 0x16 0x4 438 0x0 0x17 0x4 439 0x0 0x18 0x4 440 0x0 0x19 0x4 441 0x0 0x1a 0x4 442 0x0 0x1b 0x4 443 0x0 0x1c 0x4 444 0x0 0x1d 0x4 445 0x0 0x1e 0x4 446 0x0 0x1f 0x4>; 447 }; 448 449 scu: system-clk-controller@17000000 { 450 compatible = "apm,xgene-scu","syscon"; 451 reg = <0x0 0x17000000 0x0 0x400>; 452 }; 453 454 reboot: reboot@17000014 { 455 compatible = "syscon-reboot"; 456 regmap = <&scu>; 457 offset = <0x14>; 458 mask = <0x1>; 459 }; 460 461 csw: csw@7e200000 { 462 compatible = "apm,xgene-csw", "syscon"; 463 reg = <0x0 0x7e200000 0x0 0x1000>; 464 }; 465 466 mcba: mcba@7e700000 { 467 compatible = "apm,xgene-mcb", "syscon"; 468 reg = <0x0 0x7e700000 0x0 0x1000>; 469 }; 470 471 mcbb: mcbb@7e720000 { 472 compatible = "apm,xgene-mcb", "syscon"; 473 reg = <0x0 0x7e720000 0x0 0x1000>; 474 }; 475 476 efuse: efuse@1054a000 { 477 compatible = "apm,xgene-efuse", "syscon"; 478 reg = <0x0 0x1054a000 0x0 0x20>; 479 }; 480 481 rb: rb@7e000000 { 482 compatible = "apm,xgene-rb", "syscon"; 483 reg = <0x0 0x7e000000 0x0 0x10>; 484 }; 485 486 edac@78800000 { 487 compatible = "apm,xgene-edac"; 488 #address-cells = <2>; 489 #size-cells = <2>; 490 ranges; 491 regmap-csw = <&csw>; 492 regmap-mcba = <&mcba>; 493 regmap-mcbb = <&mcbb>; 494 regmap-efuse = <&efuse>; 495 regmap-rb = <&rb>; 496 reg = <0x0 0x78800000 0x0 0x100>; 497 interrupts = <0x0 0x20 0x4>, 498 <0x0 0x21 0x4>, 499 <0x0 0x27 0x4>; 500 501 edacmc@7e800000 { 502 compatible = "apm,xgene-edac-mc"; 503 reg = <0x0 0x7e800000 0x0 0x1000>; 504 memory-controller = <0>; 505 }; 506 507 edacmc@7e840000 { 508 compatible = "apm,xgene-edac-mc"; 509 reg = <0x0 0x7e840000 0x0 0x1000>; 510 memory-controller = <1>; 511 }; 512 513 edacmc@7e880000 { 514 compatible = "apm,xgene-edac-mc"; 515 reg = <0x0 0x7e880000 0x0 0x1000>; 516 memory-controller = <2>; 517 }; 518 519 edacmc@7e8c0000 { 520 compatible = "apm,xgene-edac-mc"; 521 reg = <0x0 0x7e8c0000 0x0 0x1000>; 522 memory-controller = <3>; 523 }; 524 525 edacpmd@7c000000 { 526 compatible = "apm,xgene-edac-pmd"; 527 reg = <0x0 0x7c000000 0x0 0x200000>; 528 pmd-controller = <0>; 529 }; 530 531 edacpmd@7c200000 { 532 compatible = "apm,xgene-edac-pmd"; 533 reg = <0x0 0x7c200000 0x0 0x200000>; 534 pmd-controller = <1>; 535 }; 536 537 edacpmd@7c400000 { 538 compatible = "apm,xgene-edac-pmd"; 539 reg = <0x0 0x7c400000 0x0 0x200000>; 540 pmd-controller = <2>; 541 }; 542 543 edacpmd@7c600000 { 544 compatible = "apm,xgene-edac-pmd"; 545 reg = <0x0 0x7c600000 0x0 0x200000>; 546 pmd-controller = <3>; 547 }; 548 549 edacl3@7e600000 { 550 compatible = "apm,xgene-edac-l3"; 551 reg = <0x0 0x7e600000 0x0 0x1000>; 552 }; 553 554 edacsoc@7e930000 { 555 compatible = "apm,xgene-edac-soc-v1"; 556 reg = <0x0 0x7e930000 0x0 0x1000>; 557 }; 558 }; 559 560 pmu: pmu@78810000 { 561 compatible = "apm,xgene-pmu-v2"; 562 #address-cells = <2>; 563 #size-cells = <2>; 564 ranges; 565 regmap-csw = <&csw>; 566 regmap-mcba = <&mcba>; 567 regmap-mcbb = <&mcbb>; 568 reg = <0x0 0x78810000 0x0 0x1000>; 569 interrupts = <0x0 0x22 0x4>; 570 571 pmul3c@7e610000 { 572 compatible = "apm,xgene-pmu-l3c"; 573 reg = <0x0 0x7e610000 0x0 0x1000>; 574 }; 575 576 pmuiob@7e940000 { 577 compatible = "apm,xgene-pmu-iob"; 578 reg = <0x0 0x7e940000 0x0 0x1000>; 579 }; 580 581 pmucmcb@7e710000 { 582 compatible = "apm,xgene-pmu-mcb"; 583 reg = <0x0 0x7e710000 0x0 0x1000>; 584 enable-bit-index = <0>; 585 }; 586 587 pmucmcb@7e730000 { 588 compatible = "apm,xgene-pmu-mcb"; 589 reg = <0x0 0x7e730000 0x0 0x1000>; 590 enable-bit-index = <1>; 591 }; 592 593 pmucmc@7e810000 { 594 compatible = "apm,xgene-pmu-mc"; 595 reg = <0x0 0x7e810000 0x0 0x1000>; 596 enable-bit-index = <0>; 597 }; 598 599 pmucmc@7e850000 { 600 compatible = "apm,xgene-pmu-mc"; 601 reg = <0x0 0x7e850000 0x0 0x1000>; 602 enable-bit-index = <1>; 603 }; 604 605 pmucmc@7e890000 { 606 compatible = "apm,xgene-pmu-mc"; 607 reg = <0x0 0x7e890000 0x0 0x1000>; 608 enable-bit-index = <2>; 609 }; 610 611 pmucmc@7e8d0000 { 612 compatible = "apm,xgene-pmu-mc"; 613 reg = <0x0 0x7e8d0000 0x0 0x1000>; 614 enable-bit-index = <3>; 615 }; 616 }; 617 618 pcie0: pcie@1f2b0000 { 619 status = "disabled"; 620 device_type = "pci"; 621 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 622 #interrupt-cells = <1>; 623 #size-cells = <2>; 624 #address-cells = <3>; 625 reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ 626 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 627 reg-names = "csr", "cfg"; 628 ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */ 629 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000 /* mem */ 630 0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */ 631 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 632 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 633 bus-range = <0x00 0xff>; 634 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 635 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x4 636 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x4 637 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x4 638 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x4>; 639 dma-coherent; 640 clocks = <&pcie0clk 0>; 641 msi-parent = <&msi>; 642 }; 643 644 pcie1: pcie@1f2c0000 { 645 status = "disabled"; 646 device_type = "pci"; 647 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 648 #interrupt-cells = <1>; 649 #size-cells = <2>; 650 #address-cells = <3>; 651 reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */ 652 0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 653 reg-names = "csr", "cfg"; 654 ranges = <0x01000000 0x00 0x00000000 0xd0 0x10000000 0x00 0x00010000 /* io */ 655 0x02000000 0x00 0x80000000 0xd1 0x80000000 0x00 0x80000000 /* mem */ 656 0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */ 657 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 658 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 659 bus-range = <0x00 0xff>; 660 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 661 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x4 662 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x4 663 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x4 664 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x4>; 665 dma-coherent; 666 clocks = <&pcie1clk 0>; 667 msi-parent = <&msi>; 668 }; 669 670 pcie2: pcie@1f2d0000 { 671 status = "disabled"; 672 device_type = "pci"; 673 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 674 #interrupt-cells = <1>; 675 #size-cells = <2>; 676 #address-cells = <3>; 677 reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */ 678 0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */ 679 reg-names = "csr", "cfg"; 680 ranges = <0x01000000 0x00 0x00000000 0x90 0x10000000 0x00 0x00010000 /* io */ 681 0x02000000 0x00 0x80000000 0x91 0x80000000 0x00 0x80000000 /* mem */ 682 0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */ 683 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 684 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 685 bus-range = <0x00 0xff>; 686 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 687 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x4 688 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x4 689 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x4 690 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x4>; 691 dma-coherent; 692 clocks = <&pcie2clk 0>; 693 msi-parent = <&msi>; 694 }; 695 696 pcie3: pcie@1f500000 { 697 status = "disabled"; 698 device_type = "pci"; 699 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 700 #interrupt-cells = <1>; 701 #size-cells = <2>; 702 #address-cells = <3>; 703 reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */ 704 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */ 705 reg-names = "csr", "cfg"; 706 ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000 /* io */ 707 0x02000000 0x00 0x80000000 0xa1 0x80000000 0x00 0x80000000 /* mem */ 708 0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */ 709 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 710 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 711 bus-range = <0x00 0xff>; 712 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 713 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x4 714 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x4 715 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x4 716 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x4>; 717 dma-coherent; 718 clocks = <&pcie3clk 0>; 719 msi-parent = <&msi>; 720 }; 721 722 pcie4: pcie@1f510000 { 723 status = "disabled"; 724 device_type = "pci"; 725 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; 726 #interrupt-cells = <1>; 727 #size-cells = <2>; 728 #address-cells = <3>; 729 reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */ 730 0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */ 731 reg-names = "csr", "cfg"; 732 ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000 /* io */ 733 0x02000000 0x00 0x80000000 0xc1 0x80000000 0x00 0x80000000 /* mem */ 734 0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */ 735 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000 736 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>; 737 bus-range = <0x00 0xff>; 738 interrupt-map-mask = <0x0 0x0 0x0 0x7>; 739 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x4 740 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x4 741 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x4 742 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x4>; 743 dma-coherent; 744 clocks = <&pcie4clk 0>; 745 msi-parent = <&msi>; 746 }; 747 748 mailbox: mailbox@10540000 { 749 compatible = "apm,xgene-slimpro-mbox"; 750 reg = <0x0 0x10540000 0x0 0xa000>; 751 #mbox-cells = <1>; 752 interrupts = <0x0 0x0 0x4>, 753 <0x0 0x1 0x4>, 754 <0x0 0x2 0x4>, 755 <0x0 0x3 0x4>, 756 <0x0 0x4 0x4>, 757 <0x0 0x5 0x4>, 758 <0x0 0x6 0x4>, 759 <0x0 0x7 0x4>; 760 }; 761 762 i2cslimpro { 763 compatible = "apm,xgene-slimpro-i2c"; 764 mboxes = <&mailbox 0>; 765 }; 766 767 hwmonslimpro { 768 compatible = "apm,xgene-slimpro-hwmon"; 769 mboxes = <&mailbox 7>; 770 }; 771 772 serial0: serial@1c020000 { 773 status = "disabled"; 774 compatible = "ns16550a"; 775 reg = <0 0x1c020000 0x0 0x1000>; 776 reg-shift = <2>; 777 clock-frequency = <10000000>; /* Updated by bootloader */ 778 interrupt-parent = <&gic>; 779 interrupts = <0x0 0x4c 0x4>; 780 }; 781 782 serial1: serial@1c021000 { 783 status = "disabled"; 784 compatible = "ns16550a"; 785 reg = <0 0x1c021000 0x0 0x1000>; 786 reg-shift = <2>; 787 clock-frequency = <10000000>; /* Updated by bootloader */ 788 interrupt-parent = <&gic>; 789 interrupts = <0x0 0x4d 0x4>; 790 }; 791 792 serial2: serial@1c022000 { 793 status = "disabled"; 794 compatible = "ns16550a"; 795 reg = <0 0x1c022000 0x0 0x1000>; 796 reg-shift = <2>; 797 clock-frequency = <10000000>; /* Updated by bootloader */ 798 interrupt-parent = <&gic>; 799 interrupts = <0x0 0x4e 0x4>; 800 }; 801 802 serial3: serial@1c023000 { 803 status = "disabled"; 804 compatible = "ns16550a"; 805 reg = <0 0x1c023000 0x0 0x1000>; 806 reg-shift = <2>; 807 clock-frequency = <10000000>; /* Updated by bootloader */ 808 interrupt-parent = <&gic>; 809 interrupts = <0x0 0x4f 0x4>; 810 }; 811 812 mmc0: mmc@1c000000 { 813 compatible = "arasan,sdhci-4.9a"; 814 reg = <0x0 0x1c000000 0x0 0x100>; 815 interrupts = <0x0 0x49 0x4>; 816 dma-coherent; 817 no-1-8-v; 818 clock-names = "clk_xin", "clk_ahb"; 819 clocks = <&sdioclk 0>, <&ahbclk 0>; 820 }; 821 822 gfcgpio: gpio0@1701c000 { 823 compatible = "apm,xgene-gpio"; 824 reg = <0x0 0x1701c000 0x0 0x40>; 825 gpio-controller; 826 #gpio-cells = <2>; 827 }; 828 829 dwgpio: gpio@1c024000 { 830 compatible = "snps,dw-apb-gpio"; 831 reg = <0x0 0x1c024000 0x0 0x1000>; 832 #address-cells = <1>; 833 #size-cells = <0>; 834 835 porta: gpio-controller@0 { 836 compatible = "snps,dw-apb-gpio-port"; 837 gpio-controller; 838 #gpio-cells = <2>; 839 snps,nr-gpios = <32>; 840 reg = <0>; 841 }; 842 }; 843 844 i2c0: i2c@10512000 { 845 status = "disabled"; 846 #address-cells = <1>; 847 #size-cells = <0>; 848 compatible = "snps,designware-i2c"; 849 reg = <0x0 0x10512000 0x0 0x1000>; 850 interrupts = <0 0x44 0x4>; 851 #clock-cells = <1>; 852 clocks = <&ahbclk 0>; 853 bus_num = <0>; 854 }; 855 856 phy1: phy@1f21a000 { 857 compatible = "apm,xgene-phy"; 858 reg = <0x0 0x1f21a000 0x0 0x100>; 859 #phy-cells = <1>; 860 clocks = <&sataphy1clk 0>; 861 status = "disabled"; 862 apm,tx-boost-gain = <30 30 30 30 30 30>; 863 apm,tx-eye-tuning = <2 10 10 2 10 10>; 864 }; 865 866 phy2: phy@1f22a000 { 867 compatible = "apm,xgene-phy"; 868 reg = <0x0 0x1f22a000 0x0 0x100>; 869 #phy-cells = <1>; 870 clocks = <&sataphy2clk 0>; 871 status = "okay"; 872 apm,tx-boost-gain = <30 30 30 30 30 30>; 873 apm,tx-eye-tuning = <1 10 10 2 10 10>; 874 }; 875 876 phy3: phy@1f23a000 { 877 compatible = "apm,xgene-phy"; 878 reg = <0x0 0x1f23a000 0x0 0x100>; 879 #phy-cells = <1>; 880 clocks = <&sataphy3clk 0>; 881 status = "okay"; 882 apm,tx-boost-gain = <31 31 31 31 31 31>; 883 apm,tx-eye-tuning = <2 10 10 2 10 10>; 884 }; 885 886 sata1: sata@1a000000 { 887 compatible = "apm,xgene-ahci"; 888 reg = <0x0 0x1a000000 0x0 0x1000>, 889 <0x0 0x1f210000 0x0 0x1000>, 890 <0x0 0x1f21d000 0x0 0x1000>, 891 <0x0 0x1f21e000 0x0 0x1000>, 892 <0x0 0x1f217000 0x0 0x1000>; 893 interrupts = <0x0 0x86 0x4>; 894 dma-coherent; 895 status = "disabled"; 896 clocks = <&sata01clk 0>; 897 phys = <&phy1 0>; 898 phy-names = "sata-phy"; 899 }; 900 901 sata2: sata@1a400000 { 902 compatible = "apm,xgene-ahci"; 903 reg = <0x0 0x1a400000 0x0 0x1000>, 904 <0x0 0x1f220000 0x0 0x1000>, 905 <0x0 0x1f22d000 0x0 0x1000>, 906 <0x0 0x1f22e000 0x0 0x1000>, 907 <0x0 0x1f227000 0x0 0x1000>; 908 interrupts = <0x0 0x87 0x4>; 909 dma-coherent; 910 status = "okay"; 911 clocks = <&sata23clk 0>; 912 phys = <&phy2 0>; 913 phy-names = "sata-phy"; 914 }; 915 916 sata3: sata@1a800000 { 917 compatible = "apm,xgene-ahci"; 918 reg = <0x0 0x1a800000 0x0 0x1000>, 919 <0x0 0x1f230000 0x0 0x1000>, 920 <0x0 0x1f23d000 0x0 0x1000>, 921 <0x0 0x1f23e000 0x0 0x1000>; 922 interrupts = <0x0 0x88 0x4>; 923 dma-coherent; 924 status = "okay"; 925 clocks = <&sata45clk 0>; 926 phys = <&phy3 0>; 927 phy-names = "sata-phy"; 928 }; 929 930 /* Node-name might need to be coded as dwusb for backward compatibility */ 931 usb0: usb@19000000 { 932 status = "disabled"; 933 compatible = "snps,dwc3"; 934 reg = <0x0 0x19000000 0x0 0x100000>; 935 interrupts = <0x0 0x89 0x4>; 936 dma-coherent; 937 dr_mode = "host"; 938 }; 939 940 usb1: usb@19800000 { 941 status = "disabled"; 942 compatible = "snps,dwc3"; 943 reg = <0x0 0x19800000 0x0 0x100000>; 944 interrupts = <0x0 0x8a 0x4>; 945 dma-coherent; 946 dr_mode = "host"; 947 }; 948 949 sbgpio: gpio@17001000{ 950 compatible = "apm,xgene-gpio-sb"; 951 reg = <0x0 0x17001000 0x0 0x400>; 952 #gpio-cells = <2>; 953 gpio-controller; 954 interrupts = <0x0 0x28 0x1>, 955 <0x0 0x29 0x1>, 956 <0x0 0x2a 0x1>, 957 <0x0 0x2b 0x1>, 958 <0x0 0x2c 0x1>, 959 <0x0 0x2d 0x1>; 960 interrupt-parent = <&gic>; 961 #interrupt-cells = <2>; 962 interrupt-controller; 963 }; 964 965 rtc: rtc@10510000 { 966 compatible = "apm,xgene-rtc"; 967 reg = <0x0 0x10510000 0x0 0x400>; 968 interrupts = <0x0 0x46 0x4>; 969 #clock-cells = <1>; 970 clocks = <&rtcclk 0>; 971 }; 972 973 mdio: mdio@17020000 { 974 compatible = "apm,xgene-mdio-rgmii"; 975 #address-cells = <1>; 976 #size-cells = <0>; 977 reg = <0x0 0x17020000 0x0 0xd100>; 978 clocks = <&menetclk 0>; 979 }; 980 981 menet: ethernet@17020000 { 982 compatible = "apm,xgene-enet"; 983 status = "disabled"; 984 reg = <0x0 0x17020000 0x0 0xd100>, 985 <0x0 0x17030000 0x0 0xc300>, 986 <0x0 0x10000000 0x0 0x200>; 987 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 988 interrupts = <0x0 0x3c 0x4>; 989 dma-coherent; 990 clocks = <&menetclk 0>; 991 /* mac address will be overwritten by the bootloader */ 992 local-mac-address = [00 00 00 00 00 00]; 993 phy-connection-type = "rgmii"; 994 phy-handle = <&menetphy>,<&menet0phy>; 995 mdio { 996 compatible = "apm,xgene-mdio"; 997 #address-cells = <1>; 998 #size-cells = <0>; 999 menetphy: menetphy@3 { 1000 compatible = "ethernet-phy-id001c.c915"; 1001 reg = <0x3>; 1002 }; 1003 1004 }; 1005 }; 1006 1007 sgenet0: ethernet@1f210000 { 1008 compatible = "apm,xgene1-sgenet"; 1009 status = "disabled"; 1010 reg = <0x0 0x1f210000 0x0 0xd100>, 1011 <0x0 0x1f200000 0x0 0xc300>, 1012 <0x0 0x1b000000 0x0 0x200>; 1013 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 1014 interrupts = <0x0 0xa0 0x4>, 1015 <0x0 0xa1 0x4>; 1016 dma-coherent; 1017 clocks = <&sge0clk 0>; 1018 local-mac-address = [00 00 00 00 00 00]; 1019 phy-connection-type = "sgmii"; 1020 phy-handle = <&sgenet0phy>; 1021 }; 1022 1023 sgenet1: ethernet@1f210030 { 1024 compatible = "apm,xgene1-sgenet"; 1025 status = "disabled"; 1026 reg = <0x0 0x1f210030 0x0 0xd100>, 1027 <0x0 0x1f200000 0x0 0xc300>, 1028 <0x0 0x1b000000 0x0 0x8000>; 1029 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 1030 interrupts = <0x0 0xac 0x4>, 1031 <0x0 0xad 0x4>; 1032 port-id = <1>; 1033 dma-coherent; 1034 local-mac-address = [00 00 00 00 00 00]; 1035 phy-connection-type = "sgmii"; 1036 phy-handle = <&sgenet1phy>; 1037 }; 1038 1039 xgenet: ethernet@1f610000 { 1040 compatible = "apm,xgene1-xgenet"; 1041 status = "disabled"; 1042 reg = <0x0 0x1f610000 0x0 0xd100>, 1043 <0x0 0x1f600000 0x0 0xc300>, 1044 <0x0 0x18000000 0x0 0x200>; 1045 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 1046 interrupts = <0x0 0x60 0x4>, 1047 <0x0 0x61 0x4>, 1048 <0x0 0x62 0x4>, 1049 <0x0 0x63 0x4>, 1050 <0x0 0x64 0x4>, 1051 <0x0 0x65 0x4>, 1052 <0x0 0x66 0x4>, 1053 <0x0 0x67 0x4>; 1054 channel = <0>; 1055 dma-coherent; 1056 clocks = <&xge0clk 0>; 1057 /* mac address will be overwritten by the bootloader */ 1058 local-mac-address = [00 00 00 00 00 00]; 1059 phy-connection-type = "xgmii"; 1060 }; 1061 1062 xgenet1: ethernet@1f620000 { 1063 compatible = "apm,xgene1-xgenet"; 1064 status = "disabled"; 1065 reg = <0x0 0x1f620000 0x0 0xd100>, 1066 <0x0 0x1f600000 0x0 0xc300>, 1067 <0x0 0x18000000 0x0 0x8000>; 1068 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 1069 interrupts = <0x0 0x6c 0x4>, 1070 <0x0 0x6d 0x4>; 1071 port-id = <1>; 1072 dma-coherent; 1073 clocks = <&xge1clk 0>; 1074 /* mac address will be overwritten by the bootloader */ 1075 local-mac-address = [00 00 00 00 00 00]; 1076 phy-connection-type = "xgmii"; 1077 }; 1078 1079 rng: rng@10520000 { 1080 compatible = "apm,xgene-rng"; 1081 reg = <0x0 0x10520000 0x0 0x100>; 1082 interrupts = <0x0 0x41 0x4>; 1083 clocks = <&rngpkaclk 0>; 1084 }; 1085 1086 dma: dma@1f270000 { 1087 compatible = "apm,xgene-storm-dma"; 1088 device_type = "dma"; 1089 reg = <0x0 0x1f270000 0x0 0x10000>, 1090 <0x0 0x1f200000 0x0 0x10000>, 1091 <0x0 0x1b000000 0x0 0x400000>, 1092 <0x0 0x1054a000 0x0 0x100>; 1093 interrupts = <0x0 0x82 0x4>, 1094 <0x0 0xb8 0x4>, 1095 <0x0 0xb9 0x4>, 1096 <0x0 0xba 0x4>, 1097 <0x0 0xbb 0x4>; 1098 dma-coherent; 1099 clocks = <&dmaclk 0>; 1100 }; 1101 }; 1102}; 1103