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 };