1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2008 Extreme Engineering Solutions, Inc. 4 * Based on MPC8572DS device tree from Freescale Semiconductor, Inc. 5 * 6 * XPedite5330 3U CompactPCI module based on MPC8572E 7 */ 8 9/dts-v1/; 10/ { 11 model = "xes,xpedite5330"; 12 compatible = "xes,xpedite5330", "xes,MPC8572"; 13 #address-cells = <2>; 14 #size-cells = <2>; 15 form-factor = "3U CompactPCI"; 16 boot-bank = <0x0>; /* 0: Primary flash, 1: Secondary flash */ 17 18 aliases { 19 ethernet0 = &enet0; 20 ethernet1 = &enet1; 21 serial0 = &serial0; 22 serial1 = &serial1; 23 pci0 = &pci0; 24 pci1 = &pci1; 25 pci2 = &pci2; 26 }; 27 28 pmcslots { 29 #address-cells = <1>; 30 #size-cells = <0>; 31 32 pmcslot@0 { 33 cell-index = <0>; 34 /* 35 * boolean properties (true if defined): 36 * monarch; 37 * module-present; 38 */ 39 }; 40 }; 41 42 xmcslots { 43 #address-cells = <1>; 44 #size-cells = <0>; 45 46 xmcslot@0 { 47 cell-index = <0>; 48 /* 49 * boolean properties (true if defined): 50 * module-present; 51 */ 52 }; 53 }; 54 55 cpci { 56 /* 57 * boolean properties (true if defined): 58 * system-controller; 59 */ 60 system-controller; 61 }; 62 63 cpus { 64 #address-cells = <1>; 65 #size-cells = <0>; 66 67 PowerPC,8572@0 { 68 device_type = "cpu"; 69 reg = <0x0>; 70 d-cache-line-size = <32>; // 32 bytes 71 i-cache-line-size = <32>; // 32 bytes 72 d-cache-size = <0x8000>; // L1, 32K 73 i-cache-size = <0x8000>; // L1, 32K 74 timebase-frequency = <0>; 75 bus-frequency = <0>; 76 clock-frequency = <0>; 77 next-level-cache = <&L2>; 78 }; 79 80 PowerPC,8572@1 { 81 device_type = "cpu"; 82 reg = <0x1>; 83 d-cache-line-size = <32>; // 32 bytes 84 i-cache-line-size = <32>; // 32 bytes 85 d-cache-size = <0x8000>; // L1, 32K 86 i-cache-size = <0x8000>; // L1, 32K 87 timebase-frequency = <0>; 88 bus-frequency = <0>; 89 clock-frequency = <0>; 90 next-level-cache = <&L2>; 91 }; 92 }; 93 94 memory { 95 device_type = "memory"; 96 reg = <0x0 0x0 0x0 0x0>; // Filled in by U-Boot 97 }; 98 99 localbus@ef005000 { 100 #address-cells = <2>; 101 #size-cells = <1>; 102 compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus"; 103 reg = <0 0xef005000 0 0x1000>; 104 interrupts = <19 2>; 105 interrupt-parent = <&mpic>; 106 /* Local bus region mappings */ 107 ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */ 108 1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */ 109 2 0 0 0xef800000 0x40000 /* CS2: NAND CE1 */ 110 3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */ 111 112 nor-boot@0,0 { 113 compatible = "amd,s29gl01gp", "cfi-flash"; 114 bank-width = <2>; 115 reg = <0 0 0x8000000>; /* 128MB */ 116 #address-cells = <1>; 117 #size-cells = <1>; 118 partition@0 { 119 label = "Primary user space"; 120 reg = <0x00000000 0x6f00000>; /* 111 MB */ 121 }; 122 partition@6f00000 { 123 label = "Primary kernel"; 124 reg = <0x6f00000 0x1000000>; /* 16 MB */ 125 }; 126 partition@7f00000 { 127 label = "Primary DTB"; 128 reg = <0x7f00000 0x40000>; /* 256 KB */ 129 }; 130 partition@7f40000 { 131 label = "Primary U-Boot environment"; 132 reg = <0x7f40000 0x40000>; /* 256 KB */ 133 }; 134 partition@7f80000 { 135 label = "Primary U-Boot"; 136 reg = <0x7f80000 0x80000>; /* 512 KB */ 137 read-only; 138 }; 139 }; 140 141 nor-alternate@1,0 { 142 compatible = "amd,s29gl01gp", "cfi-flash"; 143 bank-width = <2>; 144 //reg = <0xf0000000 0x08000000>; /* 128MB */ 145 reg = <1 0 0x8000000>; /* 128MB */ 146 #address-cells = <1>; 147 #size-cells = <1>; 148 partition@0 { 149 label = "Secondary user space"; 150 reg = <0x00000000 0x6f00000>; /* 111 MB */ 151 }; 152 partition@6f00000 { 153 label = "Secondary kernel"; 154 reg = <0x6f00000 0x1000000>; /* 16 MB */ 155 }; 156 partition@7f00000 { 157 label = "Secondary DTB"; 158 reg = <0x7f00000 0x40000>; /* 256 KB */ 159 }; 160 partition@7f40000 { 161 label = "Secondary U-Boot environment"; 162 reg = <0x7f40000 0x40000>; /* 256 KB */ 163 }; 164 partition@7f80000 { 165 label = "Secondary U-Boot"; 166 reg = <0x7f80000 0x80000>; /* 512 KB */ 167 read-only; 168 }; 169 }; 170 171 nand@2,0 { 172 #address-cells = <1>; 173 #size-cells = <1>; 174 /* 175 * Actual part could be ST Micro NAND08GW3B2A (1 GB), 176 * Micron MT29F8G08DAA (2x 512 MB), or Micron 177 * MT29F16G08FAA (2x 1 GB), depending on the build 178 * configuration 179 */ 180 compatible = "fsl,mpc8572-fcm-nand", 181 "fsl,elbc-fcm-nand"; 182 reg = <2 0 0x40000>; 183 /* U-Boot should fix this up if chip size > 1 GB */ 184 partition@0 { 185 label = "NAND Filesystem"; 186 reg = <0 0x40000000>; 187 }; 188 }; 189 190 }; 191 192 soc8572@ef000000 { 193 #address-cells = <1>; 194 #size-cells = <1>; 195 device_type = "soc"; 196 compatible = "fsl,mpc8572-immr", "simple-bus"; 197 ranges = <0x0 0 0xef000000 0x100000>; 198 bus-frequency = <0>; // Filled out by uboot. 199 200 ecm-law@0 { 201 compatible = "fsl,ecm-law"; 202 reg = <0x0 0x1000>; 203 fsl,num-laws = <12>; 204 }; 205 206 ecm@1000 { 207 compatible = "fsl,mpc8572-ecm", "fsl,ecm"; 208 reg = <0x1000 0x1000>; 209 interrupts = <17 2>; 210 interrupt-parent = <&mpic>; 211 }; 212 213 memory-controller@2000 { 214 compatible = "fsl,mpc8572-memory-controller"; 215 reg = <0x2000 0x1000>; 216 interrupt-parent = <&mpic>; 217 interrupts = <18 2>; 218 }; 219 220 memory-controller@6000 { 221 compatible = "fsl,mpc8572-memory-controller"; 222 reg = <0x6000 0x1000>; 223 interrupt-parent = <&mpic>; 224 interrupts = <18 2>; 225 }; 226 227 L2: l2-cache-controller@20000 { 228 compatible = "fsl,mpc8572-l2-cache-controller"; 229 reg = <0x20000 0x1000>; 230 cache-line-size = <32>; // 32 bytes 231 cache-size = <0x100000>; // L2, 1M 232 interrupt-parent = <&mpic>; 233 interrupts = <16 2>; 234 }; 235 236 i2c@3000 { 237 #address-cells = <1>; 238 #size-cells = <0>; 239 cell-index = <0>; 240 compatible = "fsl-i2c"; 241 reg = <0x3000 0x100>; 242 interrupts = <43 2>; 243 interrupt-parent = <&mpic>; 244 dfsrr; 245 246 temp-sensor@48 { 247 compatible = "dallas,ds1631", "dallas,ds1621"; 248 reg = <0x48>; 249 }; 250 251 temp-sensor@4c { 252 compatible = "adi,adt7461"; 253 reg = <0x4c>; 254 }; 255 256 cpu-supervisor@51 { 257 compatible = "dallas,ds4510"; 258 reg = <0x51>; 259 }; 260 261 eeprom@54 { 262 compatible = "atmel,at24c128b"; 263 reg = <0x54>; 264 }; 265 266 rtc@68 { 267 compatible = "st,m41t00", 268 "dallas,ds1338"; 269 reg = <0x68>; 270 }; 271 272 pcie-switch@70 { 273 compatible = "plx,pex8518"; 274 reg = <0x70>; 275 }; 276 277 gpio1: gpio@18 { 278 compatible = "nxp,pca9557"; 279 reg = <0x18>; 280 #gpio-cells = <2>; 281 gpio-controller; 282 polarity = <0x00>; 283 }; 284 285 gpio2: gpio@1c { 286 compatible = "nxp,pca9557"; 287 reg = <0x1c>; 288 #gpio-cells = <2>; 289 gpio-controller; 290 polarity = <0x00>; 291 }; 292 293 gpio3: gpio@1e { 294 compatible = "nxp,pca9557"; 295 reg = <0x1e>; 296 #gpio-cells = <2>; 297 gpio-controller; 298 polarity = <0x00>; 299 }; 300 301 gpio4: gpio@1f { 302 compatible = "nxp,pca9557"; 303 reg = <0x1f>; 304 #gpio-cells = <2>; 305 gpio-controller; 306 polarity = <0x00>; 307 }; 308 }; 309 310 i2c@3100 { 311 #address-cells = <1>; 312 #size-cells = <0>; 313 cell-index = <1>; 314 compatible = "fsl-i2c"; 315 reg = <0x3100 0x100>; 316 interrupts = <43 2>; 317 interrupt-parent = <&mpic>; 318 dfsrr; 319 }; 320 321 dma@c300 { 322 #address-cells = <1>; 323 #size-cells = <1>; 324 compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; 325 reg = <0xc300 0x4>; 326 ranges = <0x0 0xc100 0x200>; 327 cell-index = <1>; 328 dma-channel@0 { 329 compatible = "fsl,mpc8572-dma-channel", 330 "fsl,eloplus-dma-channel"; 331 reg = <0x0 0x80>; 332 cell-index = <0>; 333 interrupt-parent = <&mpic>; 334 interrupts = <76 2>; 335 }; 336 dma-channel@80 { 337 compatible = "fsl,mpc8572-dma-channel", 338 "fsl,eloplus-dma-channel"; 339 reg = <0x80 0x80>; 340 cell-index = <1>; 341 interrupt-parent = <&mpic>; 342 interrupts = <77 2>; 343 }; 344 dma-channel@100 { 345 compatible = "fsl,mpc8572-dma-channel", 346 "fsl,eloplus-dma-channel"; 347 reg = <0x100 0x80>; 348 cell-index = <2>; 349 interrupt-parent = <&mpic>; 350 interrupts = <78 2>; 351 }; 352 dma-channel@180 { 353 compatible = "fsl,mpc8572-dma-channel", 354 "fsl,eloplus-dma-channel"; 355 reg = <0x180 0x80>; 356 cell-index = <3>; 357 interrupt-parent = <&mpic>; 358 interrupts = <79 2>; 359 }; 360 }; 361 362 dma@21300 { 363 #address-cells = <1>; 364 #size-cells = <1>; 365 compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; 366 reg = <0x21300 0x4>; 367 ranges = <0x0 0x21100 0x200>; 368 cell-index = <0>; 369 dma-channel@0 { 370 compatible = "fsl,mpc8572-dma-channel", 371 "fsl,eloplus-dma-channel"; 372 reg = <0x0 0x80>; 373 cell-index = <0>; 374 interrupt-parent = <&mpic>; 375 interrupts = <20 2>; 376 }; 377 dma-channel@80 { 378 compatible = "fsl,mpc8572-dma-channel", 379 "fsl,eloplus-dma-channel"; 380 reg = <0x80 0x80>; 381 cell-index = <1>; 382 interrupt-parent = <&mpic>; 383 interrupts = <21 2>; 384 }; 385 dma-channel@100 { 386 compatible = "fsl,mpc8572-dma-channel", 387 "fsl,eloplus-dma-channel"; 388 reg = <0x100 0x80>; 389 cell-index = <2>; 390 interrupt-parent = <&mpic>; 391 interrupts = <22 2>; 392 }; 393 dma-channel@180 { 394 compatible = "fsl,mpc8572-dma-channel", 395 "fsl,eloplus-dma-channel"; 396 reg = <0x180 0x80>; 397 cell-index = <3>; 398 interrupt-parent = <&mpic>; 399 interrupts = <23 2>; 400 }; 401 }; 402 403 /* eTSEC 1 */ 404 enet0: ethernet@24000 { 405 #address-cells = <1>; 406 #size-cells = <1>; 407 cell-index = <0>; 408 device_type = "network"; 409 model = "eTSEC"; 410 compatible = "gianfar"; 411 reg = <0x24000 0x1000>; 412 ranges = <0x0 0x24000 0x1000>; 413 local-mac-address = [ 00 00 00 00 00 00 ]; 414 interrupts = <29 2 30 2 34 2>; 415 interrupt-parent = <&mpic>; 416 tbi-handle = <&tbi0>; 417 phy-handle = <&phy0>; 418 phy-connection-type = "sgmii"; 419 420 mdio@520 { 421 #address-cells = <1>; 422 #size-cells = <0>; 423 compatible = "fsl,gianfar-mdio"; 424 reg = <0x520 0x20>; 425 426 phy0: ethernet-phy@1 { 427 interrupt-parent = <&mpic>; 428 interrupts = <8 1>; 429 reg = <0x1>; 430 }; 431 phy1: ethernet-phy@2 { 432 interrupt-parent = <&mpic>; 433 interrupts = <8 1>; 434 reg = <0x2>; 435 }; 436 tbi0: tbi-phy@11 { 437 reg = <0x11>; 438 device_type = "tbi-phy"; 439 }; 440 }; 441 }; 442 443 /* eTSEC 2 */ 444 enet1: ethernet@25000 { 445 #address-cells = <1>; 446 #size-cells = <1>; 447 cell-index = <1>; 448 device_type = "network"; 449 model = "eTSEC"; 450 compatible = "gianfar"; 451 reg = <0x25000 0x1000>; 452 ranges = <0x0 0x25000 0x1000>; 453 local-mac-address = [ 00 00 00 00 00 00 ]; 454 interrupts = <35 2 36 2 40 2>; 455 interrupt-parent = <&mpic>; 456 tbi-handle = <&tbi1>; 457 phy-handle = <&phy1>; 458 phy-connection-type = "sgmii"; 459 460 mdio@520 { 461 #address-cells = <1>; 462 #size-cells = <0>; 463 compatible = "fsl,gianfar-tbi"; 464 reg = <0x520 0x20>; 465 466 tbi1: tbi-phy@11 { 467 reg = <0x11>; 468 device_type = "tbi-phy"; 469 }; 470 }; 471 }; 472 473 /* UART0 */ 474 serial0: serial@4500 { 475 cell-index = <0>; 476 device_type = "serial"; 477 compatible = "fsl,ns16550", "ns16550"; 478 reg = <0x4500 0x100>; 479 clock-frequency = <0>; 480 interrupts = <42 2>; 481 interrupt-parent = <&mpic>; 482 }; 483 484 /* UART1 */ 485 serial1: serial@4600 { 486 cell-index = <1>; 487 device_type = "serial"; 488 compatible = "fsl,ns16550", "ns16550"; 489 reg = <0x4600 0x100>; 490 clock-frequency = <0>; 491 interrupts = <42 2>; 492 interrupt-parent = <&mpic>; 493 }; 494 495 global-utilities@e0000 { //global utilities block 496 compatible = "fsl,mpc8572-guts"; 497 reg = <0xe0000 0x1000>; 498 fsl,has-rstcr; 499 }; 500 501 msi@41600 { 502 compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; 503 reg = <0x41600 0x80>; 504 msi-available-ranges = <0 0x100>; 505 interrupts = < 506 0xe0 0 507 0xe1 0 508 0xe2 0 509 0xe3 0 510 0xe4 0 511 0xe5 0 512 0xe6 0 513 0xe7 0>; 514 interrupt-parent = <&mpic>; 515 }; 516 517 crypto@30000 { 518 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2", 519 "fsl,sec2.1", "fsl,sec2.0"; 520 reg = <0x30000 0x10000>; 521 interrupts = <45 2 58 2>; 522 interrupt-parent = <&mpic>; 523 fsl,num-channels = <4>; 524 fsl,channel-fifo-len = <24>; 525 fsl,exec-units-mask = <0x9fe>; 526 fsl,descriptor-types-mask = <0x3ab0ebf>; 527 }; 528 529 mpic: pic@40000 { 530 interrupt-controller; 531 #address-cells = <0>; 532 #interrupt-cells = <2>; 533 reg = <0x40000 0x40000>; 534 compatible = "chrp,open-pic"; 535 device_type = "open-pic"; 536 }; 537 538 gpio0: gpio@f000 { 539 compatible = "fsl,mpc8572-gpio"; 540 reg = <0xf000 0x1000>; 541 interrupts = <47 2>; 542 interrupt-parent = <&mpic>; 543 #gpio-cells = <2>; 544 gpio-controller; 545 }; 546 547 gpio-leds { 548 compatible = "gpio-leds"; 549 550 heartbeat { 551 label = "Heartbeat"; 552 gpios = <&gpio0 4 1>; 553 linux,default-trigger = "heartbeat"; 554 }; 555 556 yellow { 557 label = "Yellow"; 558 gpios = <&gpio0 5 1>; 559 }; 560 561 red { 562 label = "Red"; 563 gpios = <&gpio0 6 1>; 564 }; 565 566 green { 567 label = "Green"; 568 gpios = <&gpio0 7 1>; 569 }; 570 }; 571 572 /* PME (pattern-matcher) */ 573 pme@10000 { 574 compatible = "fsl,mpc8572-pme", "pme8572"; 575 reg = <0x10000 0x5000>; 576 interrupts = <57 2 64 2 65 2 66 2 67 2>; 577 interrupt-parent = <&mpic>; 578 }; 579 580 tlu@2f000 { 581 compatible = "fsl,mpc8572-tlu", "fsl_tlu"; 582 reg = <0x2f000 0x1000>; 583 interrupts = <61 2>; 584 interrupt-parent = <&mpic>; 585 }; 586 587 tlu@15000 { 588 compatible = "fsl,mpc8572-tlu", "fsl_tlu"; 589 reg = <0x15000 0x1000>; 590 interrupts = <75 2>; 591 interrupt-parent = <&mpic>; 592 }; 593 }; 594 595 /* PCI Express controller 3 - CompactPCI bus via PEX8112 bridge */ 596 pci0: pcie@ef008000 { 597 compatible = "fsl,mpc8548-pcie"; 598 device_type = "pci"; 599 #interrupt-cells = <1>; 600 #size-cells = <2>; 601 #address-cells = <3>; 602 reg = <0 0xef008000 0 0x1000>; 603 bus-range = <0 255>; 604 ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x10000000 605 0x1000000 0x0 0x00000000 0 0xe9000000 0x0 0x10000>; 606 clock-frequency = <33333333>; 607 interrupt-parent = <&mpic>; 608 interrupts = <24 2>; 609 interrupt-map-mask = <0xff00 0x0 0x0 0x7>; 610 interrupt-map = < 611 0x0 0x0 0x0 0x1 &mpic 0x0 0x1 612 0x0 0x0 0x0 0x2 &mpic 0x1 0x1 613 0x0 0x0 0x0 0x3 &mpic 0x2 0x1 614 0x0 0x0 0x0 0x4 &mpic 0x3 0x1 615 >; 616 pcie@0 { 617 reg = <0x0 0x0 0x0 0x0 0x0>; 618 #size-cells = <2>; 619 #address-cells = <3>; 620 device_type = "pci"; 621 ranges = <0x02000000 0x0 0xe0000000 622 0x02000000 0x0 0xe0000000 623 0x0 0x10000000 624 625 0x01000000 0x0 0x0 626 0x01000000 0x0 0x0 627 0x0 0x100000>; 628 }; 629 }; 630 631 /* PCI Express controller 2, PMC module via PEX8112 bridge */ 632 pci1: pcie@ef009000 { 633 compatible = "fsl,mpc8548-pcie"; 634 device_type = "pci"; 635 #interrupt-cells = <1>; 636 #size-cells = <2>; 637 #address-cells = <3>; 638 reg = <0 0xef009000 0 0x1000>; 639 bus-range = <0 255>; 640 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000 641 0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x10000>; 642 clock-frequency = <33333333>; 643 interrupt-parent = <&mpic>; 644 interrupts = <25 2>; 645 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 646 interrupt-map = < 647 /* IDSEL 0x0 */ 648 0x0 0x0 0x0 0x1 &mpic 0x4 0x1 649 0x0 0x0 0x0 0x2 &mpic 0x5 0x1 650 0x0 0x0 0x0 0x3 &mpic 0x6 0x1 651 0x0 0x0 0x0 0x4 &mpic 0x7 0x1 652 >; 653 pcie@0 { 654 reg = <0x0 0x0 0x0 0x0 0x0>; 655 #size-cells = <2>; 656 #address-cells = <3>; 657 device_type = "pci"; 658 ranges = <0x2000000 0x0 0xc0000000 659 0x2000000 0x0 0xc0000000 660 0x0 0x10000000 661 662 0x1000000 0x0 0x0 663 0x1000000 0x0 0x0 664 0x0 0x100000>; 665 }; 666 }; 667 668 /* PCI Express controller 1, XMC P15 */ 669 pci2: pcie@ef00a000 { 670 compatible = "fsl,mpc8548-pcie"; 671 device_type = "pci"; 672 #interrupt-cells = <1>; 673 #size-cells = <2>; 674 #address-cells = <3>; 675 reg = <0 0xef00a000 0 0x1000>; 676 bus-range = <0 255>; 677 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000 678 0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>; 679 clock-frequency = <33333333>; 680 interrupt-parent = <&mpic>; 681 interrupts = <26 2>; 682 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 683 interrupt-map = < 684 /* IDSEL 0x0 */ 685 0x0 0x0 0x0 0x1 &mpic 0x0 0x1 686 0x0 0x0 0x0 0x2 &mpic 0x1 0x1 687 0x0 0x0 0x0 0x3 &mpic 0x2 0x1 688 0x0 0x0 0x0 0x4 &mpic 0x3 0x1 689 >; 690 pcie@0 { 691 reg = <0x0 0x0 0x0 0x0 0x0>; 692 #size-cells = <2>; 693 #address-cells = <3>; 694 device_type = "pci"; 695 ranges = <0x2000000 0x0 0x80000000 696 0x2000000 0x0 0x80000000 697 0x0 0x40000000 698 699 0x1000000 0x0 0x0 700 0x1000000 0x0 0x0 701 0x0 0x100000>; 702 }; 703 }; 704}; 705