Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Device Tree Source for FSP2
0003  *
0004  * Copyright 2010,2012 IBM Corp.
0005  *
0006  * This file is licensed under the terms of the GNU General Public
0007  * License version 2.  This program is licensed "as is" without
0008  * any warranty of any kind, whether express or implied.
0009  */
0010 
0011 
0012 /dts-v1/;
0013 
0014 / {
0015         #address-cells = <2>;
0016         #size-cells = <1>;
0017         model = "ibm,fsp2";
0018         compatible = "ibm,fsp2";
0019         dcr-parent = <&{/cpus/cpu@0}>;
0020 
0021         aliases {
0022                 ethernet0 = &EMAC0;
0023                 ethernet1 = &EMAC1;
0024                 serial0 = &UART0;
0025         };
0026 
0027         cpus {
0028                 #address-cells = <1>;
0029                 #size-cells = <0>;
0030 
0031                 cpu@0 {
0032                         device_type = "cpu";
0033                         model = "PowerPC, 476FSP2";
0034                         reg = <0x0>;
0035                         clock-frequency = <0>;    /* Filled in by cuboot */
0036                         timebase-frequency = <0>; /* Filled in by cuboot */
0037                         i-cache-line-size = <32>;
0038                         d-cache-line-size = <32>;
0039                         d-cache-size = <32768>;
0040                         i-cache-size = <32768>;
0041                         dcr-controller;
0042                         dcr-access-method = "native";
0043                 };
0044         };
0045 
0046         memory {
0047                 device_type = "memory";
0048                 reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by
0049                                                              cuboot */
0050         };
0051 
0052         clocks {
0053                 mmc_clk: mmc_clk {
0054                         compatible = "fixed-clock";
0055                         #clock-cells = <0>;
0056                         clock-frequency = <50000000>;
0057                         clock-output-names = "mmc_clk";
0058                 };
0059         };
0060 
0061         UIC0: uic0 {
0062                 #address-cells = <0>;
0063                 #size-cells = <0>;
0064                 #interrupt-cells = <2>;
0065                 compatible = "ibm,uic";
0066                 interrupt-controller;
0067                 cell-index = <0>;
0068                 dcr-reg = <0x2c0 0x8>;
0069         };
0070 
0071         /* "interrupts" field is <bit level bit level>
0072            first pair is non-critical, second is critical */
0073         UIC1_0: uic1_0 {
0074                 #address-cells = <0>;
0075                 #size-cells = <0>;
0076                 #interrupt-cells = <2>;
0077 
0078                 compatible = "ibm,uic";
0079                 interrupt-controller;
0080                 cell-index = <1>;
0081                 dcr-reg = <0x2c8 0x8>;
0082                 interrupt-parent = <&UIC0>;
0083                 interrupts = <21 0x4 4 0x84>;
0084         };
0085 
0086         /* PSI and DMA */
0087         UIC1_1: uic1_1 {
0088                 #address-cells = <0>;
0089                 #size-cells = <0>;
0090                 #interrupt-cells = <2>;
0091 
0092                 compatible = "ibm,uic";
0093                 interrupt-controller;
0094                 cell-index = <2>;
0095                 dcr-reg = <0x350 0x8>;
0096                 interrupt-parent = <&UIC0>;
0097                 interrupts = <22 0x4 5 0x84>;
0098         };
0099 
0100         /* Ethernet and USB */
0101         UIC1_2: uic1_2 {
0102                 #address-cells = <0>;
0103                 #size-cells = <0>;
0104                 #interrupt-cells = <2>;
0105 
0106                 compatible = "ibm,uic";
0107                 interrupt-controller;
0108                 cell-index = <3>;
0109                 dcr-reg = <0x358 0x8>;
0110                 interrupt-parent = <&UIC0>;
0111                 interrupts = <23 0x4 6 0x84>;
0112         };
0113 
0114         /* PLB Errors */
0115         UIC1_3: uic1_3 {
0116                 #address-cells = <0>;
0117                 #size-cells = <0>;
0118                 #interrupt-cells = <2>;
0119 
0120                 compatible = "ibm,uic";
0121                 interrupt-controller;
0122                 cell-index = <4>;
0123                 dcr-reg = <0x360 0x8>;
0124                 interrupt-parent = <&UIC0>;
0125                 interrupts = <24 0x4 7 0x84>;
0126         };
0127 
0128         UIC1_4: uic1_4 {
0129                 #address-cells = <0>;
0130                 #size-cells = <0>;
0131                 #interrupt-cells = <2>;
0132 
0133                 compatible = "ibm,uic";
0134                 interrupt-controller;
0135                 cell-index = <5>;
0136                 dcr-reg = <0x368 0x8>;
0137                 interrupt-parent = <&UIC0>;
0138                 interrupts = <25 0x4 8 0x84>;
0139         };
0140 
0141         UIC1_5: uic1_5 {
0142                 #address-cells = <0>;
0143                 #size-cells = <0>;
0144                 #interrupt-cells = <2>;
0145 
0146                 compatible = "ibm,uic";
0147                 interrupt-controller;
0148                 cell-index = <6>;
0149                 dcr-reg = <0x370 0x8>;
0150                 interrupt-parent = <&UIC0>;
0151                 interrupts = <26 0x4 9 0x84>;
0152         };
0153 
0154         /* 2nd level UICs for FSI */
0155         UIC2_0: uic2_0 {
0156                 #address-cells = <0>;
0157                 #size-cells = <0>;
0158                 #interrupt-cells = <2>;
0159 
0160                 compatible = "ibm,uic";
0161                 interrupt-controller;
0162                 cell-index = <7>;
0163                 dcr-reg = <0x2d0 0x8>;
0164                 interrupt-parent = <&UIC1_0>;
0165                 interrupts = <16 0x4 0 0x84>;
0166         };
0167 
0168         UIC2_1: uic2_1 {
0169                 #address-cells = <0>;
0170                 #size-cells = <0>;
0171                 #interrupt-cells = <2>;
0172 
0173                 compatible = "ibm,uic";
0174                 interrupt-controller;
0175                 cell-index = <8>;
0176                 dcr-reg = <0x2d8 0x8>;
0177                 interrupt-parent = <&UIC1_0>;
0178                 interrupts = <17 0x4 1 0x84>;
0179         };
0180 
0181         UIC2_2: uic2_2 {
0182                 #address-cells = <0>;
0183                 #size-cells = <0>;
0184                 #interrupt-cells = <2>;
0185 
0186                 compatible = "ibm,uic";
0187                 interrupt-controller;
0188                 cell-index = <9>;
0189                 dcr-reg = <0x2e0 0x8>;
0190                 interrupt-parent = <&UIC1_0>;
0191                 interrupts = <18 0x4 2 0x84>;
0192         };
0193 
0194         UIC2_3: uic2_3 {
0195                 #address-cells = <0>;
0196                 #size-cells = <0>;
0197                 #interrupt-cells = <2>;
0198 
0199                 compatible = "ibm,uic";
0200                 interrupt-controller;
0201                 cell-index = <10>;
0202                 dcr-reg = <0x2e8 0x8>;
0203                 interrupt-parent = <&UIC1_0>;
0204                 interrupts = <19 0x4 3 0x84>;
0205         };
0206 
0207         UIC2_4: uic2_4 {
0208                 #address-cells = <0>;
0209                 #size-cells = <0>;
0210                 #interrupt-cells = <2>;
0211 
0212                 compatible = "ibm,uic";
0213                 interrupt-controller;
0214                 cell-index = <11>;
0215                 dcr-reg = <0x2f0 0x8>;
0216                 interrupt-parent = <&UIC1_0>;
0217                 interrupts = <20 0x4 4 0x84>;
0218         };
0219 
0220         UIC2_5: uic2_5 {
0221                 #address-cells = <0>;
0222                 #size-cells = <0>;
0223                 #interrupt-cells = <2>;
0224 
0225                 compatible = "ibm,uic";
0226                 interrupt-controller;
0227                 cell-index = <12>;
0228                 dcr-reg = <0x2f8 0x8>;
0229                 interrupt-parent = <&UIC1_0>;
0230                 interrupts = <21 0x4 5 0x84>;
0231         };
0232 
0233         UIC2_6: uic2_6 {
0234                 #address-cells = <0>;
0235                 #size-cells = <0>;
0236                 #interrupt-cells = <2>;
0237 
0238                 compatible = "ibm,uic";
0239                 interrupt-controller;
0240                 cell-index = <13>;
0241                 dcr-reg = <0x300 0x8>;
0242                 interrupt-parent = <&UIC1_0>;
0243                 interrupts = <22 0x4 6 0x84>;
0244         };
0245 
0246         UIC2_7: uic2_7 {
0247                 #address-cells = <0>;
0248                 #size-cells = <0>;
0249                 #interrupt-cells = <2>;
0250 
0251                 compatible = "ibm,uic";
0252                 interrupt-controller;
0253                 cell-index = <14>;
0254                 dcr-reg = <0x308 0x8>;
0255                 interrupt-parent = <&UIC1_0>;
0256                 interrupts = <23 0x4 7 0x84>;
0257         };
0258 
0259         UIC2_8: uic2_8 {
0260                 #address-cells = <0>;
0261                 #size-cells = <0>;
0262                 #interrupt-cells = <2>;
0263 
0264                 compatible = "ibm,uic";
0265                 interrupt-controller;
0266                 cell-index = <15>;
0267                 dcr-reg = <0x310 0x8>;
0268                 interrupt-parent = <&UIC1_0>;
0269                 interrupts = <24 0x4 8 0x84>;
0270         };
0271 
0272         UIC2_9: uic2_9 {
0273                 #address-cells = <0>;
0274                 #size-cells = <0>;
0275                 #interrupt-cells = <2>;
0276 
0277                 compatible = "ibm,uic";
0278                 interrupt-controller;
0279                 cell-index = <16>;
0280                 dcr-reg = <0x318 0x8>;
0281                 interrupt-parent = <&UIC1_0>;
0282                 interrupts = <25 0x4 9 0x84>;
0283         };
0284 
0285         UIC2_10: uic2_10 {
0286                 #address-cells = <0>;
0287                 #size-cells = <0>;
0288                 #interrupt-cells = <2>;
0289 
0290                 compatible = "ibm,uic";
0291                 interrupt-controller;
0292                 cell-index = <17>;
0293                 dcr-reg = <0x320 0x8>;
0294                 interrupt-parent = <&UIC1_0>;
0295                 interrupts = <26 0x4 10 0x84>;
0296         };
0297 
0298         UIC2_11: uic2_11 {
0299                 #address-cells = <0>;
0300                 #size-cells = <0>;
0301                 #interrupt-cells = <2>;
0302 
0303                 compatible = "ibm,uic";
0304                 interrupt-controller;
0305                 cell-index = <18>;
0306                 dcr-reg = <0x328 0x8>;
0307                 interrupt-parent = <&UIC1_0>;
0308                 interrupts = <27 0x4 11 0x84>;
0309         };
0310 
0311         UIC2_12: uic2_12 {
0312                 #address-cells = <0>;
0313                 #size-cells = <0>;
0314                 #interrupt-cells = <2>;
0315 
0316                 compatible = "ibm,uic";
0317                 interrupt-controller;
0318                 cell-index = <19>;
0319                 dcr-reg = <0x330 0x8>;
0320                 interrupt-parent = <&UIC1_0>;
0321                 interrupts = <28 0x4 12 0x84>;
0322         };
0323 
0324         UIC2_13: uic2_13 {
0325                 #address-cells = <0>;
0326                 #size-cells = <0>;
0327                 #interrupt-cells = <2>;
0328 
0329                 compatible = "ibm,uic";
0330                 interrupt-controller;
0331                 cell-index = <20>;
0332                 dcr-reg = <0x338 0x8>;
0333                 interrupt-parent = <&UIC1_0>;
0334                 interrupts = <29 0x4 13 0x84>;
0335         };
0336 
0337         UIC2_14: uic2_14 {
0338                 #address-cells = <0>;
0339                 #size-cells = <0>;
0340                 #interrupt-cells = <2>;
0341 
0342                 compatible = "ibm,uic";
0343                 interrupt-controller;
0344                 cell-index = <21>;
0345                 dcr-reg = <0x340 0x8>;
0346                 interrupt-parent = <&UIC1_0>;
0347                 interrupts = <30 0x4 14 0x84>;
0348         };
0349 
0350         UIC2_15: uic2_15 {
0351                 #address-cells = <0>;
0352                 #size-cells = <0>;
0353                 #interrupt-cells = <2>;
0354 
0355                 compatible = "ibm,uic";
0356                 interrupt-controller;
0357                 cell-index = <22>;
0358                 dcr-reg = <0x348 0x8>;
0359                 interrupt-parent = <&UIC1_0>;
0360                 interrupts = <31 0x4 15 0x84>;
0361         };
0362 
0363         plb6 {
0364                 compatible = "ibm,plb6";
0365                 #address-cells = <2>;
0366                 #size-cells = <1>;
0367                 ranges;
0368 
0369                 MCW0: memory-controller-wrapper {
0370                         compatible = "ibm,cw-476fsp2";
0371                         dcr-reg = <0x11111800 0x40>;
0372                 };
0373 
0374                 MCIF0: memory-controller {
0375                         compatible = "ibm,sdram-476fsp2", "ibm,sdram-4xx-ddr3";
0376                         dcr-reg = <0x11120000 0x10000>;
0377                         mcer-device = <&MCW0>;
0378                         interrupt-parent = <&UIC0>;
0379                         interrupts = <10 0x84   /* ECC UE */
0380                                       11 0x84>; /* ECC CE */
0381                 };
0382         };
0383 
0384         plb4 {
0385                 compatible = "ibm,plb4";
0386                 #address-cells = <1>;
0387                 #size-cells = <1>;
0388                 ranges = <0x00000000 0x00000010 0x00000000 0x80000000
0389                           0x80000000 0x00000010 0x80000000 0x80000000>;
0390                 clock-frequency = <333333334>;
0391 
0392                 plb6-system-hung-irq {
0393                         compatible = "ibm,bus-error-irq";
0394                         #interrupt-cells = <2>;
0395                         interrupt-parent = <&UIC0>;
0396                         interrupts = <0 0x84>;
0397                 };
0398 
0399                 l2-error-irq {
0400                         compatible = "ibm,bus-error-irq";
0401                         #interrupt-cells = <2>;
0402                         interrupt-parent = <&UIC0>;
0403                         interrupts = <20 0x84>;
0404                 };
0405 
0406                 plb6-plb4-irq {
0407                         compatible = "ibm,bus-error-irq";
0408                         #interrupt-cells = <2>;
0409                         interrupt-parent = <&UIC0>;
0410                         interrupts = <1 0x84>;
0411                 };
0412 
0413                 plb4-ahb-irq {
0414                         compatible = "ibm,bus-error-irq";
0415                         #interrupt-cells = <2>;
0416                         interrupt-parent = <&UIC1_3>;
0417                         interrupts = <20 0x84>;
0418                 };
0419 
0420                 opbd-error-irq {
0421                         compatible = "ibm,opbd-error-irq";
0422                         #interrupt-cells = <2>;
0423                         interrupt-parent = <&UIC1_4>;
0424                         interrupts = <5 0x84>;
0425                 };
0426 
0427                 cmu-error-irq {
0428                         compatible = "ibm,cmu-error-irq";
0429                         #interrupt-cells = <2>;
0430                         interrupt-parent = <&UIC0>;
0431                         interrupts = <28 0x84>;
0432                 };
0433 
0434                 conf-error-irq {
0435                         compatible = "ibm,conf-error-irq";
0436                         #interrupt-cells = <2>;
0437                         interrupt-parent = <&UIC1_4>;
0438                         interrupts = <11 0x84>;
0439                 };
0440 
0441                 mc-ue-irq {
0442                         compatible = "ibm,mc-ue-irq";
0443                         #interrupt-cells = <2>;
0444                         interrupt-parent = <&UIC0>;
0445                         interrupts = <10 0x84>;
0446                 };
0447 
0448                 reset-warning-irq {
0449                         compatible = "ibm,reset-warning-irq";
0450                         #interrupt-cells = <2>;
0451                         interrupt-parent = <&UIC0>;
0452                         interrupts = <17 0x84>;
0453                 };
0454 
0455                 MAL0: mcmal0 {
0456                         #interrupt-cells = <1>;
0457                         #address-cells = <0>;
0458                         #size-cells = <0>;
0459                         compatible = "ibm,mcmal";
0460                         dcr-reg = <0x80 0x80>;
0461                         num-tx-chans = <1>;
0462                         num-rx-chans = <1>;
0463                         interrupt-parent = <&MAL0>;
0464                         interrupts = <0 1 2 3 4>;
0465                         /* index interrupt-parent interrupt# type */
0466                         interrupt-map = </*TXEOB*/ 0 &UIC1_2 4 0x4
0467                                          /*RXEOB*/ 1 &UIC1_2 3 0x4
0468                                          /*SERR*/  2 &UIC1_2 7 0x4
0469                                          /*TXDE*/  3 &UIC1_2 6 0x4
0470                                          /*RXDE*/  4 &UIC1_2 5 0x4>;
0471                 };
0472 
0473                 MAL1: mcmal1 {
0474                         #interrupt-cells = <1>;
0475                         #address-cells = <0>;
0476                         #size-cells = <0>;
0477                         compatible = "ibm,mcmal";
0478                         dcr-reg = <0x100 0x80>;
0479                         num-tx-chans = <1>;
0480                         num-rx-chans = <1>;
0481                         interrupt-parent = <&MAL1>;
0482                         interrupts = <0 1 2 3 4>;
0483                         /* index interrupt-parent interrupt# type */
0484                         interrupt-map = </*TXEOB*/ 0 &UIC1_2 12 0x4
0485                                          /*RXEOB*/ 1 &UIC1_2 11 0x4
0486                                          /*SERR*/  2 &UIC1_2 15 0x4
0487                                          /*TXDE*/  3 &UIC1_2 14 0x4
0488                                          /*RXDE*/  4 &UIC1_2 13 0x4>;
0489                 };
0490 
0491                 mmc0: mmc@20c0000 {
0492                         compatible      = "st,sdhci-stih407", "st,sdhci";
0493                         reg             = <0x020c0000 0x20000>;
0494                         reg-names       = "mmc";
0495                         interrupts      = <21 0x4>;
0496                         interrupt-parent = <&UIC1_3>;
0497                         interrupt-names = "mmcirq";
0498                         pinctrl-names   = "default";
0499                         pinctrl-0       = <>;
0500                         clock-names     = "mmc";
0501                         clocks          = <&mmc_clk>;
0502                         bus-width       = <4>;
0503                         non-removable;
0504                         sd-uhs-sdr50;
0505                         sd-uhs-sdr104;
0506                         sd-uhs-ddr50;
0507                 };
0508 
0509                 opb {
0510                         compatible = "ibm,opb";
0511                         #address-cells = <1>;
0512                         #size-cells = <1>;
0513                         ranges; // pass-thru to parent bus
0514                         clock-frequency = <83333334>;
0515 
0516                         EMAC0: ethernet@b0000000 {
0517                                 linux,network-index = <0>;
0518                                 device_type = "network";
0519                                 compatible = "ibm,emac4sync";
0520                                 has-inverted-stacr-oc;
0521                                 interrupt-parent = <&UIC1_2>;
0522                                 interrupts = <1 0x4 0 0x4>;
0523                                 reg = <0xb0000000 0x100>;
0524                                 local-mac-address = [000000000000]; /* Filled in by
0525                                                                cuboot */
0526                                 mal-device = <&MAL0>;
0527                                 mal-tx-channel = <0>;
0528                                 mal-rx-channel = <0>;
0529                                 cell-index = <0>;
0530                                 max-frame-size = <1500>;
0531                                 rx-fifo-size = <4096>;
0532                                 tx-fifo-size = <4096>;
0533                                 rx-fifo-size-gige = <16384>;
0534                                 tx-fifo-size-gige = <8192>;
0535                                 phy-address = <1>;
0536                                 phy-mode = "rgmii";
0537                                 phy-map = <00000003>;
0538                                 rgmii-device = <&RGMII>;
0539                                 rgmii-channel = <0>;
0540                         };
0541 
0542                         EMAC1: ethernet@b0000100 {
0543                                 linux,network-index = <1>;
0544                                 device_type = "network";
0545                                 compatible = "ibm,emac4sync";
0546                                 has-inverted-stacr-oc;
0547                                 interrupt-parent = <&UIC1_2>;
0548                                 interrupts = <9 0x4 8 0x4>;
0549                                 reg = <0xb0000100 0x100>;
0550                                 local-mac-address = [000000000000]; /* Filled in by
0551                                                                cuboot */
0552                                 mal-device = <&MAL1>;
0553                                 mal-tx-channel = <0>;
0554                                 mal-rx-channel = <0>;
0555                                 cell-index = <1>;
0556                                 max-frame-size = <1500>;
0557                                 rx-fifo-size = <4096>;
0558                                 tx-fifo-size = <4096>;
0559                                 rx-fifo-size-gige = <16384>;
0560                                 tx-fifo-size-gige = <8192>;
0561                                 phy-address = <2>;
0562                                 phy-mode = "rgmii";
0563                                 phy-map = <00000003>;
0564                                 rgmii-device = <&RGMII>;
0565                                 rgmii-channel = <1>;
0566                         };
0567 
0568                         RGMII: rgmii@b0000600 {
0569                                 compatible = "ibm,rgmii";
0570                                 has-mdio;
0571                                 reg = <0xb0000600 0x8>;
0572                         };
0573 
0574                         UART0: serial@b0020000 {
0575                                 device_type = "serial";
0576                                 compatible = "ns16550";
0577                                 reg = <0xb0020000 0x8>;
0578                                 virtual-reg = <0xb0020000>;
0579                                 clock-frequency = <20833333>;
0580                                 current-speed = <115200>;
0581                                 interrupt-parent = <&UIC0>;
0582                                 interrupts = <31 0x4>;
0583                         };
0584                 };
0585 
0586                 OHCI1: ohci@2040000 {
0587                         compatible = "ohci-le";
0588                         reg = <0x02040000 0xa0>;
0589                         interrupt-parent = <&UIC1_3>;
0590                         interrupts = <28 0x8 29 0x8>;
0591                 };
0592 
0593                 OHCI2: ohci@2080000 {
0594                         compatible = "ohci-le";
0595                         reg = <0x02080000 0xa0>;
0596                         interrupt-parent = <&UIC1_3>;
0597                         interrupts = <30 0x8 31 0x8>;
0598                 };
0599 
0600                 EHCI: ehci@2000000 {
0601                         compatible = "usb-ehci";
0602                         reg = <0x02000000 0xa4>;
0603                         interrupt-parent = <&UIC1_3>;
0604                         interrupts = <23 0x4>;
0605                 };
0606 
0607         };
0608 
0609         chosen {
0610                 stdout-path = "/plb/opb/serial@b0020000";
0611                 bootargs = "console=ttyS0,115200 rw log_buf_len=32768 debug";
0612         };
0613 };