Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Device Tree Source for AMCC Sequoia
0003  *
0004  * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
0005  * Copyright (c) 2006, 2007 IBM Corp.
0006  *
0007  * FIXME: Draft only!
0008  *
0009  * This file is licensed under the terms of the GNU General Public
0010  * License version 2.  This program is licensed "as is" without
0011  * any warranty of any kind, whether express or implied.
0012  *
0013  */
0014 
0015 /dts-v1/;
0016 
0017 / {
0018         #address-cells = <2>;
0019         #size-cells = <1>;
0020         model = "amcc,sequoia";
0021         compatible = "amcc,sequoia";
0022         dcr-parent = <&{/cpus/cpu@0}>;
0023 
0024         aliases {
0025                 ethernet0 = &EMAC0;
0026                 ethernet1 = &EMAC1;
0027                 serial0 = &UART0;
0028                 serial1 = &UART1;
0029                 serial2 = &UART2;
0030                 serial3 = &UART3;
0031         };
0032 
0033         cpus {
0034                 #address-cells = <1>;
0035                 #size-cells = <0>;
0036 
0037                 cpu@0 {
0038                         device_type = "cpu";
0039                         model = "PowerPC,440EPx";
0040                         reg = <0x00000000>;
0041                         clock-frequency = <0>; /* Filled in by zImage */
0042                         timebase-frequency = <0>; /* Filled in by zImage */
0043                         i-cache-line-size = <32>;
0044                         d-cache-line-size = <32>;
0045                         i-cache-size = <32768>;
0046                         d-cache-size = <32768>;
0047                         dcr-controller;
0048                         dcr-access-method = "native";
0049                 };
0050         };
0051 
0052         memory {
0053                 device_type = "memory";
0054                 reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
0055         };
0056 
0057         UIC0: interrupt-controller0 {
0058                 compatible = "ibm,uic-440epx","ibm,uic";
0059                 interrupt-controller;
0060                 cell-index = <0>;
0061                 dcr-reg = <0x0c0 0x009>;
0062                 #address-cells = <0>;
0063                 #size-cells = <0>;
0064                 #interrupt-cells = <2>;
0065         };
0066 
0067         UIC1: interrupt-controller1 {
0068                 compatible = "ibm,uic-440epx","ibm,uic";
0069                 interrupt-controller;
0070                 cell-index = <1>;
0071                 dcr-reg = <0x0d0 0x009>;
0072                 #address-cells = <0>;
0073                 #size-cells = <0>;
0074                 #interrupt-cells = <2>;
0075                 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
0076                 interrupt-parent = <&UIC0>;
0077         };
0078 
0079         UIC2: interrupt-controller2 {
0080                 compatible = "ibm,uic-440epx","ibm,uic";
0081                 interrupt-controller;
0082                 cell-index = <2>;
0083                 dcr-reg = <0x0e0 0x009>;
0084                 #address-cells = <0>;
0085                 #size-cells = <0>;
0086                 #interrupt-cells = <2>;
0087                 interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
0088                 interrupt-parent = <&UIC0>;
0089         };
0090 
0091         SDR0: sdr {
0092                 compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
0093                 dcr-reg = <0x00e 0x002>;
0094         };
0095 
0096         CPR0: cpr {
0097                 compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
0098                 dcr-reg = <0x00c 0x002>;
0099         };
0100 
0101         plb {
0102                 compatible = "ibm,plb-440epx", "ibm,plb4";
0103                 #address-cells = <2>;
0104                 #size-cells = <1>;
0105                 ranges;
0106                 clock-frequency = <0>; /* Filled in by zImage */
0107 
0108                 SDRAM0: sdram {
0109                         compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";
0110                         dcr-reg = <0x010 0x002>;
0111                 };
0112 
0113                 CRYPTO: crypto@e0100000 {
0114                         compatible = "amcc,ppc440epx-crypto","amcc,ppc4xx-crypto";
0115                         reg = <0 0xE0100000 0x80400>;
0116                         interrupt-parent = <&UIC0>;
0117                         interrupts = <0x17 0x4>;
0118                 };
0119 
0120                 rng@e0120000 {
0121                         compatible = "amcc,ppc440epx-rng","amcc,ppc4xx-rng";
0122                         reg = <0 0xE0120000 0x150>;
0123                 };
0124 
0125                 DMA0: dma {
0126                         compatible = "ibm,dma-440epx", "ibm,dma-4xx";
0127                         dcr-reg = <0x100 0x027>;
0128                 };
0129 
0130                 MAL0: mcmal {
0131                         compatible = "ibm,mcmal-440epx", "ibm,mcmal2";
0132                         dcr-reg = <0x180 0x062>;
0133                         num-tx-chans = <2>;
0134                         num-rx-chans = <2>;
0135                         interrupt-parent = <&MAL0>;
0136                         interrupts = <0x0 0x1 0x2 0x3 0x4>;
0137                         #interrupt-cells = <1>;
0138                         #address-cells = <0>;
0139                         #size-cells = <0>;
0140                         interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
0141                                         /*RXEOB*/ 0x1 &UIC0 0xb 0x4
0142                                         /*SERR*/  0x2 &UIC1 0x0 0x4
0143                                         /*TXDE*/  0x3 &UIC1 0x1 0x4
0144                                         /*RXDE*/  0x4 &UIC1 0x2 0x4>;
0145                         interrupt-map-mask = <0xffffffff>;
0146                 };
0147 
0148                 USB1: usb@e0000400 {
0149                         compatible = "ibm,usb-ohci-440epx", "ohci-be";
0150                         reg = <0x00000000 0xe0000400 0x00000060>;
0151                         interrupt-parent = <&UIC0>;
0152                         interrupts = <0x15 0x8>;
0153                 };
0154 
0155                 USB0: ehci@e0000300 {
0156                         compatible = "ibm,usb-ehci-440epx", "usb-ehci";
0157                         interrupt-parent = <&UIC0>;
0158                         interrupts = <0x1a 0x4>;
0159                         reg = <0x00000000 0xe0000300 0x00000090 0x00000000 0xe0000390 0x00000070>;
0160                         big-endian;
0161                 };
0162 
0163                 POB0: opb {
0164                         compatible = "ibm,opb-440epx", "ibm,opb";
0165                         #address-cells = <1>;
0166                         #size-cells = <1>;
0167                         ranges = <0x00000000 0x00000001 0x00000000 0x80000000
0168                                   0x80000000 0x00000001 0x80000000 0x80000000>;
0169                         interrupt-parent = <&UIC1>;
0170                         interrupts = <0x7 0x4>;
0171                         clock-frequency = <0>; /* Filled in by zImage */
0172 
0173                         EBC0: ebc {
0174                                 compatible = "ibm,ebc-440epx", "ibm,ebc";
0175                                 dcr-reg = <0x012 0x002>;
0176                                 #address-cells = <2>;
0177                                 #size-cells = <1>;
0178                                 clock-frequency = <0>; /* Filled in by zImage */
0179                                 interrupts = <0x5 0x1>;
0180                                 interrupt-parent = <&UIC1>;
0181 
0182                                 nor_flash@0,0 {
0183                                         compatible = "amd,s29gl256n", "cfi-flash";
0184                                         bank-width = <2>;
0185                                         reg = <0x00000000 0x00000000 0x04000000>;
0186                                         #address-cells = <1>;
0187                                         #size-cells = <1>;
0188                                         partition@0 {
0189                                                 label = "Kernel";
0190                                                 reg = <0x00000000 0x00180000>;
0191                                         };
0192                                         partition@180000 {
0193                                                 label = "ramdisk";
0194                                                 reg = <0x00180000 0x00200000>;
0195                                         };
0196                                         partition@380000 {
0197                                                 label = "file system";
0198                                                 reg = <0x00380000 0x03aa0000>;
0199                                         };
0200                                         partition@3e20000 {
0201                                                 label = "kozio";
0202                                                 reg = <0x03e20000 0x00140000>;
0203                                         };
0204                                         partition@3f60000 {
0205                                                 label = "env";
0206                                                 reg = <0x03f60000 0x00040000>;
0207                                         };
0208                                         partition@3fa0000 {
0209                                                 label = "u-boot";
0210                                                 reg = <0x03fa0000 0x00060000>;
0211                                         };
0212                                 };
0213 
0214                                 ndfc@3,0 {
0215                                         compatible = "ibm,ndfc";
0216                                         reg = <0x00000003 0x00000000 0x00002000>;
0217                                         ccr = <0x00001000>;
0218                                         bank-settings = <0x80002222>;
0219                                         #address-cells = <1>;
0220                                         #size-cells = <1>;
0221 
0222                                         nand {
0223                                                 #address-cells = <1>;
0224                                                 #size-cells = <1>;
0225 
0226                                                 partition@0 {
0227                                                         label = "u-boot";
0228                                                         reg = <0x00000000 0x00084000>;
0229                                                 };
0230                                                 partition@84000 {
0231                                                         label = "user";
0232                                                         reg = <0x00084000 0x01f7c000>;
0233                                                 };
0234                                         };
0235                                 };
0236                         };
0237 
0238                         UART0: serial@ef600300 {
0239                                 device_type = "serial";
0240                                 compatible = "ns16550";
0241                                 reg = <0xef600300 0x00000008>;
0242                                 virtual-reg = <0xef600300>;
0243                                 clock-frequency = <0>; /* Filled in by zImage */
0244                                 current-speed = <115200>;
0245                                 interrupt-parent = <&UIC0>;
0246                                 interrupts = <0x0 0x4>;
0247                         };
0248 
0249                         UART1: serial@ef600400 {
0250                                 device_type = "serial";
0251                                 compatible = "ns16550";
0252                                 reg = <0xef600400 0x00000008>;
0253                                 virtual-reg = <0xef600400>;
0254                                 clock-frequency = <0>;
0255                                 current-speed = <0>;
0256                                 interrupt-parent = <&UIC0>;
0257                                 interrupts = <0x1 0x4>;
0258                         };
0259 
0260                         UART2: serial@ef600500 {
0261                                 device_type = "serial";
0262                                 compatible = "ns16550";
0263                                 reg = <0xef600500 0x00000008>;
0264                                 virtual-reg = <0xef600500>;
0265                                 clock-frequency = <0>;
0266                                 current-speed = <0>;
0267                                 interrupt-parent = <&UIC1>;
0268                                 interrupts = <0x3 0x4>;
0269                         };
0270 
0271                         UART3: serial@ef600600 {
0272                                 device_type = "serial";
0273                                 compatible = "ns16550";
0274                                 reg = <0xef600600 0x00000008>;
0275                                 virtual-reg = <0xef600600>;
0276                                 clock-frequency = <0>;
0277                                 current-speed = <0>;
0278                                 interrupt-parent = <&UIC1>;
0279                                 interrupts = <0x4 0x4>;
0280                         };
0281 
0282                         IIC0: i2c@ef600700 {
0283                                 #address-cells = <1>;
0284                                 #size-cells = <0>;
0285                                 compatible = "ibm,iic-440epx", "ibm,iic";
0286                                 reg = <0xef600700 0x00000014>;
0287                                 interrupt-parent = <&UIC0>;
0288                                 interrupts = <0x2 0x4>;
0289 
0290                                 hwmon@48 {
0291                                         compatible = "adi,ad7414";
0292                                         reg = <0x48>;
0293                                 };
0294                         };
0295 
0296                         IIC1: i2c@ef600800 {
0297                                 #address-cells = <1>;
0298                                 #size-cells = <0>;
0299                                 compatible = "ibm,iic-440epx", "ibm,iic";
0300                                 reg = <0xef600800 0x00000014>;
0301                                 interrupt-parent = <&UIC0>;
0302                                 interrupts = <0x7 0x4>;
0303                         };
0304 
0305                         ZMII0: emac-zmii@ef600d00 {
0306                                 compatible = "ibm,zmii-440epx", "ibm,zmii";
0307                                 reg = <0xef600d00 0x0000000c>;
0308                         };
0309 
0310                         RGMII0: emac-rgmii@ef601000 {
0311                                 compatible = "ibm,rgmii-440epx", "ibm,rgmii";
0312                                 reg = <0xef601000 0x00000008>;
0313                                 has-mdio;
0314                         };
0315 
0316                         EMAC0: ethernet@ef600e00 {
0317                                 device_type = "network";
0318                                 compatible = "ibm,emac-440epx", "ibm,emac4";
0319                                 interrupt-parent = <&EMAC0>;
0320                                 interrupts = <0x0 0x1>;
0321                                 #interrupt-cells = <1>;
0322                                 #address-cells = <0>;
0323                                 #size-cells = <0>;
0324                                 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
0325                                                 /*Wake*/  0x1 &UIC1 0x1d 0x4>;
0326                                 reg = <0xef600e00 0x00000074>;
0327                                 local-mac-address = [000000000000];
0328                                 mal-device = <&MAL0>;
0329                                 mal-tx-channel = <0>;
0330                                 mal-rx-channel = <0>;
0331                                 cell-index = <0>;
0332                                 max-frame-size = <9000>;
0333                                 rx-fifo-size = <4096>;
0334                                 tx-fifo-size = <2048>;
0335                                 phy-mode = "rgmii";
0336                                 phy-map = <0x00000000>;
0337                                 zmii-device = <&ZMII0>;
0338                                 zmii-channel = <0>;
0339                                 rgmii-device = <&RGMII0>;
0340                                 rgmii-channel = <0>;
0341                                 has-inverted-stacr-oc;
0342                                 has-new-stacr-staopc;
0343                         };
0344 
0345                         EMAC1: ethernet@ef600f00 {
0346                                 device_type = "network";
0347                                 compatible = "ibm,emac-440epx", "ibm,emac4";
0348                                 interrupt-parent = <&EMAC1>;
0349                                 interrupts = <0x0 0x1>;
0350                                 #interrupt-cells = <1>;
0351                                 #address-cells = <0>;
0352                                 #size-cells = <0>;
0353                                 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
0354                                                 /*Wake*/  0x1 &UIC1 0x1f 0x4>;
0355                                 reg = <0xef600f00 0x00000074>;
0356                                 local-mac-address = [000000000000];
0357                                 mal-device = <&MAL0>;
0358                                 mal-tx-channel = <1>;
0359                                 mal-rx-channel = <1>;
0360                                 cell-index = <1>;
0361                                 max-frame-size = <9000>;
0362                                 rx-fifo-size = <4096>;
0363                                 tx-fifo-size = <2048>;
0364                                 phy-mode = "rgmii";
0365                                 phy-map = <0x00000000>;
0366                                 zmii-device = <&ZMII0>;
0367                                 zmii-channel = <1>;
0368                                 rgmii-device = <&RGMII0>;
0369                                 rgmii-channel = <1>;
0370                                 has-inverted-stacr-oc;
0371                                 has-new-stacr-staopc;
0372                         };
0373                 };
0374 
0375                 PCI0: pci@1ec000000 {
0376                         device_type = "pci";
0377                         #interrupt-cells = <1>;
0378                         #size-cells = <2>;
0379                         #address-cells = <3>;
0380                         compatible = "ibm,plb440epx-pci", "ibm,plb-pci";
0381                         primary;
0382                         reg = <0x00000001 0xeec00000 0x00000008 /* Config space access */
0383                                0x00000001 0xeed00000 0x00000004 /* IACK */
0384                                0x00000001 0xeed00000 0x00000004 /* Special cycle */
0385                                0x00000001 0xef400000 0x00000040>;       /* Internal registers */
0386 
0387                         /* Outbound ranges, one memory and one IO,
0388                          * later cannot be changed. Chip supports a second
0389                          * IO range but we don't use it for now
0390                          * From the 440EPx user manual:
0391                          * PCI 1 Memory     1 8000 0000     1 BFFF FFFF     1GB
0392                          * I/O              1 E800 0000     1 E800 FFFF     64KB
0393                          * I/O              1 E880 0000     1 EBFF FFFF     56MB
0394                          */
0395                         ranges = <0x02000000 0x00000000 0x80000000 0x00000001 0x80000000 0x00000000 0x40000000
0396                                 0x01000000 0x00000000 0x00000000 0x00000001 0xe8000000 0x00000000 0x00010000
0397                                 0x01000000 0x00000000 0x00000000 0x00000001 0xe8800000 0x00000000 0x03800000>;
0398 
0399                         /* Inbound 2GB range starting at 0 */
0400                         dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
0401 
0402                         /* All PCI interrupts are routed to IRQ 67 */
0403                         interrupt-map-mask = <0x0 0x0 0x0 0x0>;
0404                         interrupt-map = < 0x0 0x0 0x0 0x0 &UIC2 0x3 0x8 >;
0405                 };
0406         };
0407 
0408         chosen {
0409                 stdout-path = "/plb/opb/serial@ef600300";
0410                 bootargs = "console=ttyS0,115200";
0411         };
0412 };