13910cd8cSValentine Barshak/* 23910cd8cSValentine Barshak * Device Tree Source for AMCC Rainier 33910cd8cSValentine Barshak * 43910cd8cSValentine Barshak * Based on Sequoia code 53910cd8cSValentine Barshak * Copyright (c) 2007 MontaVista Software, Inc. 63910cd8cSValentine Barshak * 73910cd8cSValentine Barshak * FIXME: Draft only! 83910cd8cSValentine Barshak * 93910cd8cSValentine Barshak * This file is licensed under the terms of the GNU General Public 103910cd8cSValentine Barshak * License version 2. This program is licensed "as is" without 113910cd8cSValentine Barshak * any warranty of any kind, whether express or implied. 123910cd8cSValentine Barshak * 133910cd8cSValentine Barshak */ 143910cd8cSValentine Barshak 1571f34979SDavid Gibson/dts-v1/; 1671f34979SDavid Gibson 173910cd8cSValentine Barshak/ { 183910cd8cSValentine Barshak #address-cells = <2>; 193910cd8cSValentine Barshak #size-cells = <1>; 203910cd8cSValentine Barshak model = "amcc,rainier"; 213910cd8cSValentine Barshak compatible = "amcc,rainier"; 2271f34979SDavid Gibson dcr-parent = <&{/cpus/cpu@0}>; 233910cd8cSValentine Barshak 248aaed98cSStefan Roese aliases { 258aaed98cSStefan Roese ethernet0 = &EMAC0; 268aaed98cSStefan Roese ethernet1 = &EMAC1; 278aaed98cSStefan Roese serial0 = &UART0; 288aaed98cSStefan Roese serial1 = &UART1; 298aaed98cSStefan Roese serial2 = &UART2; 308aaed98cSStefan Roese serial3 = &UART3; 318aaed98cSStefan Roese }; 328aaed98cSStefan Roese 333910cd8cSValentine Barshak cpus { 343910cd8cSValentine Barshak #address-cells = <1>; 353910cd8cSValentine Barshak #size-cells = <0>; 363910cd8cSValentine Barshak 3772fda114SJosh Boyer cpu@0 { 383910cd8cSValentine Barshak device_type = "cpu"; 3972fda114SJosh Boyer model = "PowerPC,440GRx"; 4071f34979SDavid Gibson reg = <0x00000000>; 413910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 423910cd8cSValentine Barshak timebase-frequency = <0>; /* Filled in by zImage */ 4371f34979SDavid Gibson i-cache-line-size = <32>; 4471f34979SDavid Gibson d-cache-line-size = <32>; 4571f34979SDavid Gibson i-cache-size = <32768>; 4671f34979SDavid Gibson d-cache-size = <32768>; 473910cd8cSValentine Barshak dcr-controller; 483910cd8cSValentine Barshak dcr-access-method = "native"; 493910cd8cSValentine Barshak }; 503910cd8cSValentine Barshak }; 513910cd8cSValentine Barshak 523910cd8cSValentine Barshak memory { 533910cd8cSValentine Barshak device_type = "memory"; 5471f34979SDavid Gibson reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */ 553910cd8cSValentine Barshak }; 563910cd8cSValentine Barshak 573910cd8cSValentine Barshak UIC0: interrupt-controller0 { 583910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 593910cd8cSValentine Barshak interrupt-controller; 603910cd8cSValentine Barshak cell-index = <0>; 6171f34979SDavid Gibson dcr-reg = <0x0c0 0x009>; 623910cd8cSValentine Barshak #address-cells = <0>; 633910cd8cSValentine Barshak #size-cells = <0>; 643910cd8cSValentine Barshak #interrupt-cells = <2>; 653910cd8cSValentine Barshak }; 663910cd8cSValentine Barshak 673910cd8cSValentine Barshak UIC1: interrupt-controller1 { 683910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 693910cd8cSValentine Barshak interrupt-controller; 703910cd8cSValentine Barshak cell-index = <1>; 7171f34979SDavid Gibson dcr-reg = <0x0d0 0x009>; 723910cd8cSValentine Barshak #address-cells = <0>; 733910cd8cSValentine Barshak #size-cells = <0>; 743910cd8cSValentine Barshak #interrupt-cells = <2>; 7571f34979SDavid Gibson interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 763910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 773910cd8cSValentine Barshak }; 783910cd8cSValentine Barshak 793910cd8cSValentine Barshak UIC2: interrupt-controller2 { 803910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 813910cd8cSValentine Barshak interrupt-controller; 823910cd8cSValentine Barshak cell-index = <2>; 8371f34979SDavid Gibson dcr-reg = <0x0e0 0x009>; 843910cd8cSValentine Barshak #address-cells = <0>; 853910cd8cSValentine Barshak #size-cells = <0>; 863910cd8cSValentine Barshak #interrupt-cells = <2>; 8771f34979SDavid Gibson interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */ 883910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 893910cd8cSValentine Barshak }; 903910cd8cSValentine Barshak 913910cd8cSValentine Barshak SDR0: sdr { 923910cd8cSValentine Barshak compatible = "ibm,sdr-440grx", "ibm,sdr-440ep"; 9371f34979SDavid Gibson dcr-reg = <0x00e 0x002>; 943910cd8cSValentine Barshak }; 953910cd8cSValentine Barshak 963910cd8cSValentine Barshak CPR0: cpr { 973910cd8cSValentine Barshak compatible = "ibm,cpr-440grx", "ibm,cpr-440ep"; 9871f34979SDavid Gibson dcr-reg = <0x00c 0x002>; 993910cd8cSValentine Barshak }; 1003910cd8cSValentine Barshak 1013910cd8cSValentine Barshak plb { 1023910cd8cSValentine Barshak compatible = "ibm,plb-440grx", "ibm,plb4"; 1033910cd8cSValentine Barshak #address-cells = <2>; 1043910cd8cSValentine Barshak #size-cells = <1>; 1053910cd8cSValentine Barshak ranges; 1063910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1073910cd8cSValentine Barshak 1083910cd8cSValentine Barshak SDRAM0: sdram { 1093910cd8cSValentine Barshak compatible = "ibm,sdram-440grx", "ibm,sdram-44x-ddr2denali"; 11071f34979SDavid Gibson dcr-reg = <0x010 0x002>; 1113910cd8cSValentine Barshak }; 1123910cd8cSValentine Barshak 1133910cd8cSValentine Barshak DMA0: dma { 1143910cd8cSValentine Barshak compatible = "ibm,dma-440grx", "ibm,dma-4xx"; 11571f34979SDavid Gibson dcr-reg = <0x100 0x027>; 1163910cd8cSValentine Barshak }; 1173910cd8cSValentine Barshak 1183910cd8cSValentine Barshak MAL0: mcmal { 1193910cd8cSValentine Barshak compatible = "ibm,mcmal-440grx", "ibm,mcmal2"; 12071f34979SDavid Gibson dcr-reg = <0x180 0x062>; 1213910cd8cSValentine Barshak num-tx-chans = <2>; 1223910cd8cSValentine Barshak num-rx-chans = <2>; 1233910cd8cSValentine Barshak interrupt-parent = <&MAL0>; 12471f34979SDavid Gibson interrupts = <0x0 0x1 0x2 0x3 0x4>; 1253910cd8cSValentine Barshak #interrupt-cells = <1>; 1263910cd8cSValentine Barshak #address-cells = <0>; 1273910cd8cSValentine Barshak #size-cells = <0>; 12871f34979SDavid Gibson interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 12971f34979SDavid Gibson /*RXEOB*/ 0x1 &UIC0 0xb 0x4 13071f34979SDavid Gibson /*SERR*/ 0x2 &UIC1 0x0 0x4 13171f34979SDavid Gibson /*TXDE*/ 0x3 &UIC1 0x1 0x4 13271f34979SDavid Gibson /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 13371f34979SDavid Gibson interrupt-map-mask = <0xffffffff>; 1343910cd8cSValentine Barshak }; 1353910cd8cSValentine Barshak 1363910cd8cSValentine Barshak POB0: opb { 1373910cd8cSValentine Barshak compatible = "ibm,opb-440grx", "ibm,opb"; 1383910cd8cSValentine Barshak #address-cells = <1>; 1393910cd8cSValentine Barshak #size-cells = <1>; 14071f34979SDavid Gibson ranges = <0x00000000 0x00000001 0x00000000 0x80000000 14171f34979SDavid Gibson 0x80000000 0x00000001 0x80000000 0x80000000>; 1423910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 14371f34979SDavid Gibson interrupts = <0x7 0x4>; 1443910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1453910cd8cSValentine Barshak 1463910cd8cSValentine Barshak EBC0: ebc { 1473910cd8cSValentine Barshak compatible = "ibm,ebc-440grx", "ibm,ebc"; 14871f34979SDavid Gibson dcr-reg = <0x012 0x002>; 1493910cd8cSValentine Barshak #address-cells = <2>; 1503910cd8cSValentine Barshak #size-cells = <1>; 1513910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 15271f34979SDavid Gibson interrupts = <0x5 0x1>; 1533910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 1543910cd8cSValentine Barshak 1553910cd8cSValentine Barshak nor_flash@0,0 { 1563910cd8cSValentine Barshak compatible = "amd,s29gl256n", "cfi-flash"; 1573910cd8cSValentine Barshak bank-width = <2>; 15871f34979SDavid Gibson reg = <0x00000000 0x00000000 0x04000000>; 1593910cd8cSValentine Barshak #address-cells = <1>; 1603910cd8cSValentine Barshak #size-cells = <1>; 1613910cd8cSValentine Barshak partition@0 { 1623910cd8cSValentine Barshak label = "Kernel"; 16371f34979SDavid Gibson reg = <0x00000000 0x00180000>; 1643910cd8cSValentine Barshak }; 1653910cd8cSValentine Barshak partition@180000 { 1663910cd8cSValentine Barshak label = "ramdisk"; 16771f34979SDavid Gibson reg = <0x00180000 0x00200000>; 1683910cd8cSValentine Barshak }; 1693910cd8cSValentine Barshak partition@380000 { 1703910cd8cSValentine Barshak label = "file system"; 17171f34979SDavid Gibson reg = <0x00380000 0x03aa0000>; 1723910cd8cSValentine Barshak }; 1733910cd8cSValentine Barshak partition@3e20000 { 1743910cd8cSValentine Barshak label = "kozio"; 17571f34979SDavid Gibson reg = <0x03e20000 0x00140000>; 1763910cd8cSValentine Barshak }; 1773910cd8cSValentine Barshak partition@3f60000 { 1783910cd8cSValentine Barshak label = "env"; 17971f34979SDavid Gibson reg = <0x03f60000 0x00040000>; 1803910cd8cSValentine Barshak }; 1813910cd8cSValentine Barshak partition@3fa0000 { 1823910cd8cSValentine Barshak label = "u-boot"; 18371f34979SDavid Gibson reg = <0x03fa0000 0x00060000>; 1843910cd8cSValentine Barshak }; 1853910cd8cSValentine Barshak }; 1863910cd8cSValentine Barshak 1873910cd8cSValentine Barshak }; 1883910cd8cSValentine Barshak 1893910cd8cSValentine Barshak UART0: serial@ef600300 { 1903910cd8cSValentine Barshak device_type = "serial"; 1913910cd8cSValentine Barshak compatible = "ns16550"; 19271f34979SDavid Gibson reg = <0xef600300 0x00000008>; 19371f34979SDavid Gibson virtual-reg = <0xef600300>; 1943910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 19571f34979SDavid Gibson current-speed = <115200>; 1963910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 19771f34979SDavid Gibson interrupts = <0x0 0x4>; 1983910cd8cSValentine Barshak }; 1993910cd8cSValentine Barshak 2003910cd8cSValentine Barshak UART1: serial@ef600400 { 2013910cd8cSValentine Barshak device_type = "serial"; 2023910cd8cSValentine Barshak compatible = "ns16550"; 20371f34979SDavid Gibson reg = <0xef600400 0x00000008>; 20471f34979SDavid Gibson virtual-reg = <0xef600400>; 2053910cd8cSValentine Barshak clock-frequency = <0>; 2063910cd8cSValentine Barshak current-speed = <0>; 2073910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 20871f34979SDavid Gibson interrupts = <0x1 0x4>; 2093910cd8cSValentine Barshak }; 2103910cd8cSValentine Barshak 2113910cd8cSValentine Barshak UART2: serial@ef600500 { 2123910cd8cSValentine Barshak device_type = "serial"; 2133910cd8cSValentine Barshak compatible = "ns16550"; 21471f34979SDavid Gibson reg = <0xef600500 0x00000008>; 21571f34979SDavid Gibson virtual-reg = <0xef600500>; 2163910cd8cSValentine Barshak clock-frequency = <0>; 2173910cd8cSValentine Barshak current-speed = <0>; 2183910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 21971f34979SDavid Gibson interrupts = <0x3 0x4>; 2203910cd8cSValentine Barshak }; 2213910cd8cSValentine Barshak 2223910cd8cSValentine Barshak UART3: serial@ef600600 { 2233910cd8cSValentine Barshak device_type = "serial"; 2243910cd8cSValentine Barshak compatible = "ns16550"; 22571f34979SDavid Gibson reg = <0xef600600 0x00000008>; 22671f34979SDavid Gibson virtual-reg = <0xef600600>; 2273910cd8cSValentine Barshak clock-frequency = <0>; 2283910cd8cSValentine Barshak current-speed = <0>; 2293910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 23071f34979SDavid Gibson interrupts = <0x4 0x4>; 2313910cd8cSValentine Barshak }; 2323910cd8cSValentine Barshak 2333910cd8cSValentine Barshak IIC0: i2c@ef600700 { 2343910cd8cSValentine Barshak compatible = "ibm,iic-440grx", "ibm,iic"; 23571f34979SDavid Gibson reg = <0xef600700 0x00000014>; 2363910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 23771f34979SDavid Gibson interrupts = <0x2 0x4>; 2383910cd8cSValentine Barshak }; 2393910cd8cSValentine Barshak 2403910cd8cSValentine Barshak IIC1: i2c@ef600800 { 2413910cd8cSValentine Barshak compatible = "ibm,iic-440grx", "ibm,iic"; 24271f34979SDavid Gibson reg = <0xef600800 0x00000014>; 2433910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 24471f34979SDavid Gibson interrupts = <0x7 0x4>; 2453910cd8cSValentine Barshak }; 2463910cd8cSValentine Barshak 2473910cd8cSValentine Barshak ZMII0: emac-zmii@ef600d00 { 2483910cd8cSValentine Barshak compatible = "ibm,zmii-440grx", "ibm,zmii"; 24971f34979SDavid Gibson reg = <0xef600d00 0x0000000c>; 2503910cd8cSValentine Barshak }; 2513910cd8cSValentine Barshak 2523910cd8cSValentine Barshak RGMII0: emac-rgmii@ef601000 { 2533910cd8cSValentine Barshak compatible = "ibm,rgmii-440grx", "ibm,rgmii"; 25471f34979SDavid Gibson reg = <0xef601000 0x00000008>; 25558c50192SValentine Barshak has-mdio; 2563910cd8cSValentine Barshak }; 2573910cd8cSValentine Barshak 2583910cd8cSValentine Barshak EMAC0: ethernet@ef600e00 { 2593910cd8cSValentine Barshak device_type = "network"; 2603910cd8cSValentine Barshak compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 2613910cd8cSValentine Barshak interrupt-parent = <&EMAC0>; 26271f34979SDavid Gibson interrupts = <0x0 0x1>; 2633910cd8cSValentine Barshak #interrupt-cells = <1>; 2643910cd8cSValentine Barshak #address-cells = <0>; 2653910cd8cSValentine Barshak #size-cells = <0>; 26671f34979SDavid Gibson interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 26771f34979SDavid Gibson /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 26805781ccdSGrant Erickson reg = <0xef600e00 0x00000074>; 2693910cd8cSValentine Barshak local-mac-address = [000000000000]; 2703910cd8cSValentine Barshak mal-device = <&MAL0>; 2713910cd8cSValentine Barshak mal-tx-channel = <0>; 2723910cd8cSValentine Barshak mal-rx-channel = <0>; 2733910cd8cSValentine Barshak cell-index = <0>; 27471f34979SDavid Gibson max-frame-size = <9000>; 27571f34979SDavid Gibson rx-fifo-size = <4096>; 27671f34979SDavid Gibson tx-fifo-size = <2048>; 2773910cd8cSValentine Barshak phy-mode = "rgmii"; 27871f34979SDavid Gibson phy-map = <0x00000000>; 2793910cd8cSValentine Barshak zmii-device = <&ZMII0>; 2803910cd8cSValentine Barshak zmii-channel = <0>; 2813910cd8cSValentine Barshak rgmii-device = <&RGMII0>; 2823910cd8cSValentine Barshak rgmii-channel = <0>; 28358c50192SValentine Barshak has-inverted-stacr-oc; 28458c50192SValentine Barshak has-new-stacr-staopc; 2853910cd8cSValentine Barshak }; 2863910cd8cSValentine Barshak 2873910cd8cSValentine Barshak EMAC1: ethernet@ef600f00 { 2883910cd8cSValentine Barshak device_type = "network"; 2893910cd8cSValentine Barshak compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 2903910cd8cSValentine Barshak interrupt-parent = <&EMAC1>; 29171f34979SDavid Gibson interrupts = <0x0 0x1>; 2923910cd8cSValentine Barshak #interrupt-cells = <1>; 2933910cd8cSValentine Barshak #address-cells = <0>; 2943910cd8cSValentine Barshak #size-cells = <0>; 29571f34979SDavid Gibson interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 29671f34979SDavid Gibson /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 29705781ccdSGrant Erickson reg = <0xef600f00 0x00000074>; 2983910cd8cSValentine Barshak local-mac-address = [000000000000]; 2993910cd8cSValentine Barshak mal-device = <&MAL0>; 3003910cd8cSValentine Barshak mal-tx-channel = <1>; 3013910cd8cSValentine Barshak mal-rx-channel = <1>; 3023910cd8cSValentine Barshak cell-index = <1>; 30371f34979SDavid Gibson max-frame-size = <9000>; 30471f34979SDavid Gibson rx-fifo-size = <4096>; 30571f34979SDavid Gibson tx-fifo-size = <2048>; 3063910cd8cSValentine Barshak phy-mode = "rgmii"; 30771f34979SDavid Gibson phy-map = <0x00000000>; 3083910cd8cSValentine Barshak zmii-device = <&ZMII0>; 3093910cd8cSValentine Barshak zmii-channel = <1>; 3103910cd8cSValentine Barshak rgmii-device = <&RGMII0>; 3113910cd8cSValentine Barshak rgmii-channel = <1>; 31258c50192SValentine Barshak has-inverted-stacr-oc; 31358c50192SValentine Barshak has-new-stacr-staopc; 3143910cd8cSValentine Barshak }; 3153910cd8cSValentine Barshak }; 3160b2e9751SValentine Barshak 3170b2e9751SValentine Barshak PCI0: pci@1ec000000 { 3180b2e9751SValentine Barshak device_type = "pci"; 3190b2e9751SValentine Barshak #interrupt-cells = <1>; 3200b2e9751SValentine Barshak #size-cells = <2>; 3210b2e9751SValentine Barshak #address-cells = <3>; 3220b2e9751SValentine Barshak compatible = "ibm,plb440grx-pci", "ibm,plb-pci"; 3230b2e9751SValentine Barshak primary; 32471f34979SDavid Gibson reg = <0x00000001 0xeec00000 0x00000008 /* Config space access */ 32571f34979SDavid Gibson 0x00000001 0xeed00000 0x00000004 /* IACK */ 32671f34979SDavid Gibson 0x00000001 0xeed00000 0x00000004 /* Special cycle */ 32771f34979SDavid Gibson 0x00000001 0xef400000 0x00000040>; /* Internal registers */ 3280b2e9751SValentine Barshak 3290b2e9751SValentine Barshak /* Outbound ranges, one memory and one IO, 3300b2e9751SValentine Barshak * later cannot be changed. Chip supports a second 3310b2e9751SValentine Barshak * IO range but we don't use it for now 3320b2e9751SValentine Barshak */ 3336f031101SJosh Boyer ranges = <0x02000000 0x0 0x80000000 0x1 0x80000000 0x0 0x40000000 3346f031101SJosh Boyer 0x01000000 0x0 0x00000000 0x1 0xe8000000 0x0 0x00010000 3356f031101SJosh Boyer 0x01000000 0x0 0x00000000 0x1 0xe8800000 0x0 0x03800000>; 3360b2e9751SValentine Barshak 3370b2e9751SValentine Barshak /* Inbound 2GB range starting at 0 */ 33871f34979SDavid Gibson dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 3390b2e9751SValentine Barshak 3400b2e9751SValentine Barshak /* All PCI interrupts are routed to IRQ 67 */ 34171f34979SDavid Gibson interrupt-map-mask = <0x0 0x0 0x0 0x0>; 34271f34979SDavid Gibson interrupt-map = < 0x0 0x0 0x0 0x0 &UIC2 0x3 0x8 >; 3430b2e9751SValentine Barshak }; 3443910cd8cSValentine Barshak }; 3453910cd8cSValentine Barshak 3463910cd8cSValentine Barshak chosen { 3473910cd8cSValentine Barshak linux,stdout-path = "/plb/opb/serial@ef600300"; 3483910cd8cSValentine Barshak bootargs = "console=ttyS0,115200"; 3493910cd8cSValentine Barshak }; 3503910cd8cSValentine Barshak}; 351