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 153910cd8cSValentine Barshak/ { 163910cd8cSValentine Barshak #address-cells = <2>; 173910cd8cSValentine Barshak #size-cells = <1>; 183910cd8cSValentine Barshak model = "amcc,rainier"; 193910cd8cSValentine Barshak compatible = "amcc,rainier"; 2072fda114SJosh Boyer dcr-parent = <&/cpus/cpu@0>; 213910cd8cSValentine Barshak 228aaed98cSStefan Roese aliases { 238aaed98cSStefan Roese ethernet0 = &EMAC0; 248aaed98cSStefan Roese ethernet1 = &EMAC1; 258aaed98cSStefan Roese serial0 = &UART0; 268aaed98cSStefan Roese serial1 = &UART1; 278aaed98cSStefan Roese serial2 = &UART2; 288aaed98cSStefan Roese serial3 = &UART3; 298aaed98cSStefan Roese }; 308aaed98cSStefan Roese 313910cd8cSValentine Barshak cpus { 323910cd8cSValentine Barshak #address-cells = <1>; 333910cd8cSValentine Barshak #size-cells = <0>; 343910cd8cSValentine Barshak 3572fda114SJosh Boyer cpu@0 { 363910cd8cSValentine Barshak device_type = "cpu"; 3772fda114SJosh Boyer model = "PowerPC,440GRx"; 383910cd8cSValentine Barshak reg = <0>; 393910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 403910cd8cSValentine Barshak timebase-frequency = <0>; /* Filled in by zImage */ 413910cd8cSValentine Barshak i-cache-line-size = <20>; 423910cd8cSValentine Barshak d-cache-line-size = <20>; 433910cd8cSValentine Barshak i-cache-size = <8000>; 443910cd8cSValentine Barshak d-cache-size = <8000>; 453910cd8cSValentine Barshak dcr-controller; 463910cd8cSValentine Barshak dcr-access-method = "native"; 473910cd8cSValentine Barshak }; 483910cd8cSValentine Barshak }; 493910cd8cSValentine Barshak 503910cd8cSValentine Barshak memory { 513910cd8cSValentine Barshak device_type = "memory"; 523910cd8cSValentine Barshak reg = <0 0 0>; /* Filled in by zImage */ 533910cd8cSValentine Barshak }; 543910cd8cSValentine Barshak 553910cd8cSValentine Barshak UIC0: interrupt-controller0 { 563910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 573910cd8cSValentine Barshak interrupt-controller; 583910cd8cSValentine Barshak cell-index = <0>; 593910cd8cSValentine Barshak dcr-reg = <0c0 009>; 603910cd8cSValentine Barshak #address-cells = <0>; 613910cd8cSValentine Barshak #size-cells = <0>; 623910cd8cSValentine Barshak #interrupt-cells = <2>; 633910cd8cSValentine Barshak }; 643910cd8cSValentine Barshak 653910cd8cSValentine Barshak UIC1: interrupt-controller1 { 663910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 673910cd8cSValentine Barshak interrupt-controller; 683910cd8cSValentine Barshak cell-index = <1>; 693910cd8cSValentine Barshak dcr-reg = <0d0 009>; 703910cd8cSValentine Barshak #address-cells = <0>; 713910cd8cSValentine Barshak #size-cells = <0>; 723910cd8cSValentine Barshak #interrupt-cells = <2>; 733910cd8cSValentine Barshak interrupts = <1e 4 1f 4>; /* cascade */ 743910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 753910cd8cSValentine Barshak }; 763910cd8cSValentine Barshak 773910cd8cSValentine Barshak UIC2: interrupt-controller2 { 783910cd8cSValentine Barshak compatible = "ibm,uic-440grx","ibm,uic"; 793910cd8cSValentine Barshak interrupt-controller; 803910cd8cSValentine Barshak cell-index = <2>; 813910cd8cSValentine Barshak dcr-reg = <0e0 009>; 823910cd8cSValentine Barshak #address-cells = <0>; 833910cd8cSValentine Barshak #size-cells = <0>; 843910cd8cSValentine Barshak #interrupt-cells = <2>; 853910cd8cSValentine Barshak interrupts = <1c 4 1d 4>; /* cascade */ 863910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 873910cd8cSValentine Barshak }; 883910cd8cSValentine Barshak 893910cd8cSValentine Barshak SDR0: sdr { 903910cd8cSValentine Barshak compatible = "ibm,sdr-440grx", "ibm,sdr-440ep"; 913910cd8cSValentine Barshak dcr-reg = <00e 002>; 923910cd8cSValentine Barshak }; 933910cd8cSValentine Barshak 943910cd8cSValentine Barshak CPR0: cpr { 953910cd8cSValentine Barshak compatible = "ibm,cpr-440grx", "ibm,cpr-440ep"; 963910cd8cSValentine Barshak dcr-reg = <00c 002>; 973910cd8cSValentine Barshak }; 983910cd8cSValentine Barshak 993910cd8cSValentine Barshak plb { 1003910cd8cSValentine Barshak compatible = "ibm,plb-440grx", "ibm,plb4"; 1013910cd8cSValentine Barshak #address-cells = <2>; 1023910cd8cSValentine Barshak #size-cells = <1>; 1033910cd8cSValentine Barshak ranges; 1043910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1053910cd8cSValentine Barshak 1063910cd8cSValentine Barshak SDRAM0: sdram { 1073910cd8cSValentine Barshak compatible = "ibm,sdram-440grx", "ibm,sdram-44x-ddr2denali"; 1083910cd8cSValentine Barshak dcr-reg = <010 2>; 1093910cd8cSValentine Barshak }; 1103910cd8cSValentine Barshak 1113910cd8cSValentine Barshak DMA0: dma { 1123910cd8cSValentine Barshak compatible = "ibm,dma-440grx", "ibm,dma-4xx"; 1133910cd8cSValentine Barshak dcr-reg = <100 027>; 1143910cd8cSValentine Barshak }; 1153910cd8cSValentine Barshak 1163910cd8cSValentine Barshak MAL0: mcmal { 1173910cd8cSValentine Barshak compatible = "ibm,mcmal-440grx", "ibm,mcmal2"; 1183910cd8cSValentine Barshak dcr-reg = <180 62>; 1193910cd8cSValentine Barshak num-tx-chans = <2>; 1203910cd8cSValentine Barshak num-rx-chans = <2>; 1213910cd8cSValentine Barshak interrupt-parent = <&MAL0>; 1223910cd8cSValentine Barshak interrupts = <0 1 2 3 4>; 1233910cd8cSValentine Barshak #interrupt-cells = <1>; 1243910cd8cSValentine Barshak #address-cells = <0>; 1253910cd8cSValentine Barshak #size-cells = <0>; 1263910cd8cSValentine Barshak interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 1273910cd8cSValentine Barshak /*RXEOB*/ 1 &UIC0 b 4 1283910cd8cSValentine Barshak /*SERR*/ 2 &UIC1 0 4 1293910cd8cSValentine Barshak /*TXDE*/ 3 &UIC1 1 4 1303910cd8cSValentine Barshak /*RXDE*/ 4 &UIC1 2 4>; 1313910cd8cSValentine Barshak interrupt-map-mask = <ffffffff>; 1323910cd8cSValentine Barshak }; 1333910cd8cSValentine Barshak 1343910cd8cSValentine Barshak POB0: opb { 1353910cd8cSValentine Barshak compatible = "ibm,opb-440grx", "ibm,opb"; 1363910cd8cSValentine Barshak #address-cells = <1>; 1373910cd8cSValentine Barshak #size-cells = <1>; 1383910cd8cSValentine Barshak ranges = <00000000 1 00000000 80000000 1393910cd8cSValentine Barshak 80000000 1 80000000 80000000>; 1403910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 1413910cd8cSValentine Barshak interrupts = <7 4>; 1423910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1433910cd8cSValentine Barshak 1443910cd8cSValentine Barshak EBC0: ebc { 1453910cd8cSValentine Barshak compatible = "ibm,ebc-440grx", "ibm,ebc"; 1463910cd8cSValentine Barshak dcr-reg = <012 2>; 1473910cd8cSValentine Barshak #address-cells = <2>; 1483910cd8cSValentine Barshak #size-cells = <1>; 1493910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1503910cd8cSValentine Barshak interrupts = <5 1>; 1513910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 1523910cd8cSValentine Barshak 1533910cd8cSValentine Barshak nor_flash@0,0 { 1543910cd8cSValentine Barshak compatible = "amd,s29gl256n", "cfi-flash"; 1553910cd8cSValentine Barshak bank-width = <2>; 1563910cd8cSValentine Barshak reg = <0 000000 4000000>; 1573910cd8cSValentine Barshak #address-cells = <1>; 1583910cd8cSValentine Barshak #size-cells = <1>; 1593910cd8cSValentine Barshak partition@0 { 1603910cd8cSValentine Barshak label = "Kernel"; 1613910cd8cSValentine Barshak reg = <0 180000>; 1623910cd8cSValentine Barshak }; 1633910cd8cSValentine Barshak partition@180000 { 1643910cd8cSValentine Barshak label = "ramdisk"; 1653910cd8cSValentine Barshak reg = <180000 200000>; 1663910cd8cSValentine Barshak }; 1673910cd8cSValentine Barshak partition@380000 { 1683910cd8cSValentine Barshak label = "file system"; 1693910cd8cSValentine Barshak reg = <380000 3aa0000>; 1703910cd8cSValentine Barshak }; 1713910cd8cSValentine Barshak partition@3e20000 { 1723910cd8cSValentine Barshak label = "kozio"; 1733910cd8cSValentine Barshak reg = <3e20000 140000>; 1743910cd8cSValentine Barshak }; 1753910cd8cSValentine Barshak partition@3f60000 { 1763910cd8cSValentine Barshak label = "env"; 1773910cd8cSValentine Barshak reg = <3f60000 40000>; 1783910cd8cSValentine Barshak }; 1793910cd8cSValentine Barshak partition@3fa0000 { 1803910cd8cSValentine Barshak label = "u-boot"; 1813910cd8cSValentine Barshak reg = <3fa0000 60000>; 1823910cd8cSValentine Barshak }; 1833910cd8cSValentine Barshak }; 1843910cd8cSValentine Barshak 1853910cd8cSValentine Barshak }; 1863910cd8cSValentine Barshak 1873910cd8cSValentine Barshak UART0: serial@ef600300 { 1883910cd8cSValentine Barshak device_type = "serial"; 1893910cd8cSValentine Barshak compatible = "ns16550"; 1903910cd8cSValentine Barshak reg = <ef600300 8>; 1913910cd8cSValentine Barshak virtual-reg = <ef600300>; 1923910cd8cSValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 1933910cd8cSValentine Barshak current-speed = <1c200>; 1943910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 1953910cd8cSValentine Barshak interrupts = <0 4>; 1963910cd8cSValentine Barshak }; 1973910cd8cSValentine Barshak 1983910cd8cSValentine Barshak UART1: serial@ef600400 { 1993910cd8cSValentine Barshak device_type = "serial"; 2003910cd8cSValentine Barshak compatible = "ns16550"; 2013910cd8cSValentine Barshak reg = <ef600400 8>; 2023910cd8cSValentine Barshak virtual-reg = <ef600400>; 2033910cd8cSValentine Barshak clock-frequency = <0>; 2043910cd8cSValentine Barshak current-speed = <0>; 2053910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 2063910cd8cSValentine Barshak interrupts = <1 4>; 2073910cd8cSValentine Barshak }; 2083910cd8cSValentine Barshak 2093910cd8cSValentine Barshak UART2: serial@ef600500 { 2103910cd8cSValentine Barshak device_type = "serial"; 2113910cd8cSValentine Barshak compatible = "ns16550"; 2123910cd8cSValentine Barshak reg = <ef600500 8>; 2133910cd8cSValentine Barshak virtual-reg = <ef600500>; 2143910cd8cSValentine Barshak clock-frequency = <0>; 2153910cd8cSValentine Barshak current-speed = <0>; 2163910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 2173910cd8cSValentine Barshak interrupts = <3 4>; 2183910cd8cSValentine Barshak }; 2193910cd8cSValentine Barshak 2203910cd8cSValentine Barshak UART3: serial@ef600600 { 2213910cd8cSValentine Barshak device_type = "serial"; 2223910cd8cSValentine Barshak compatible = "ns16550"; 2233910cd8cSValentine Barshak reg = <ef600600 8>; 2243910cd8cSValentine Barshak virtual-reg = <ef600600>; 2253910cd8cSValentine Barshak clock-frequency = <0>; 2263910cd8cSValentine Barshak current-speed = <0>; 2273910cd8cSValentine Barshak interrupt-parent = <&UIC1>; 2283910cd8cSValentine Barshak interrupts = <4 4>; 2293910cd8cSValentine Barshak }; 2303910cd8cSValentine Barshak 2313910cd8cSValentine Barshak IIC0: i2c@ef600700 { 2323910cd8cSValentine Barshak device_type = "i2c"; 2333910cd8cSValentine Barshak compatible = "ibm,iic-440grx", "ibm,iic"; 2343910cd8cSValentine Barshak reg = <ef600700 14>; 2353910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 2363910cd8cSValentine Barshak interrupts = <2 4>; 2373910cd8cSValentine Barshak }; 2383910cd8cSValentine Barshak 2393910cd8cSValentine Barshak IIC1: i2c@ef600800 { 2403910cd8cSValentine Barshak device_type = "i2c"; 2413910cd8cSValentine Barshak compatible = "ibm,iic-440grx", "ibm,iic"; 2423910cd8cSValentine Barshak reg = <ef600800 14>; 2433910cd8cSValentine Barshak interrupt-parent = <&UIC0>; 2443910cd8cSValentine Barshak interrupts = <7 4>; 2453910cd8cSValentine Barshak }; 2463910cd8cSValentine Barshak 2473910cd8cSValentine Barshak ZMII0: emac-zmii@ef600d00 { 2483910cd8cSValentine Barshak device_type = "zmii-interface"; 2493910cd8cSValentine Barshak compatible = "ibm,zmii-440grx", "ibm,zmii"; 2503910cd8cSValentine Barshak reg = <ef600d00 c>; 2513910cd8cSValentine Barshak }; 2523910cd8cSValentine Barshak 2533910cd8cSValentine Barshak RGMII0: emac-rgmii@ef601000 { 2543910cd8cSValentine Barshak device_type = "rgmii-interface"; 2553910cd8cSValentine Barshak compatible = "ibm,rgmii-440grx", "ibm,rgmii"; 2563910cd8cSValentine Barshak reg = <ef601000 8>; 25758c50192SValentine Barshak has-mdio; 2583910cd8cSValentine Barshak }; 2593910cd8cSValentine Barshak 2603910cd8cSValentine Barshak EMAC0: ethernet@ef600e00 { 2613910cd8cSValentine Barshak linux,network-index = <0>; 2623910cd8cSValentine Barshak device_type = "network"; 2633910cd8cSValentine Barshak compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 2643910cd8cSValentine Barshak interrupt-parent = <&EMAC0>; 2653910cd8cSValentine Barshak interrupts = <0 1>; 2663910cd8cSValentine Barshak #interrupt-cells = <1>; 2673910cd8cSValentine Barshak #address-cells = <0>; 2683910cd8cSValentine Barshak #size-cells = <0>; 2693910cd8cSValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 18 4 2703910cd8cSValentine Barshak /*Wake*/ 1 &UIC1 1d 4>; 2713910cd8cSValentine Barshak reg = <ef600e00 70>; 2723910cd8cSValentine Barshak local-mac-address = [000000000000]; 2733910cd8cSValentine Barshak mal-device = <&MAL0>; 2743910cd8cSValentine Barshak mal-tx-channel = <0>; 2753910cd8cSValentine Barshak mal-rx-channel = <0>; 2763910cd8cSValentine Barshak cell-index = <0>; 2773910cd8cSValentine Barshak max-frame-size = <5dc>; 2783910cd8cSValentine Barshak rx-fifo-size = <1000>; 2793910cd8cSValentine Barshak tx-fifo-size = <800>; 2803910cd8cSValentine Barshak phy-mode = "rgmii"; 2813910cd8cSValentine Barshak phy-map = <00000000>; 2823910cd8cSValentine Barshak zmii-device = <&ZMII0>; 2833910cd8cSValentine Barshak zmii-channel = <0>; 2843910cd8cSValentine Barshak rgmii-device = <&RGMII0>; 2853910cd8cSValentine Barshak rgmii-channel = <0>; 28658c50192SValentine Barshak has-inverted-stacr-oc; 28758c50192SValentine Barshak has-new-stacr-staopc; 2883910cd8cSValentine Barshak }; 2893910cd8cSValentine Barshak 2903910cd8cSValentine Barshak EMAC1: ethernet@ef600f00 { 2913910cd8cSValentine Barshak linux,network-index = <1>; 2923910cd8cSValentine Barshak device_type = "network"; 2933910cd8cSValentine Barshak compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4"; 2943910cd8cSValentine Barshak interrupt-parent = <&EMAC1>; 2953910cd8cSValentine Barshak interrupts = <0 1>; 2963910cd8cSValentine Barshak #interrupt-cells = <1>; 2973910cd8cSValentine Barshak #address-cells = <0>; 2983910cd8cSValentine Barshak #size-cells = <0>; 2993910cd8cSValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 19 4 3003910cd8cSValentine Barshak /*Wake*/ 1 &UIC1 1f 4>; 3013910cd8cSValentine Barshak reg = <ef600f00 70>; 3023910cd8cSValentine Barshak local-mac-address = [000000000000]; 3033910cd8cSValentine Barshak mal-device = <&MAL0>; 3043910cd8cSValentine Barshak mal-tx-channel = <1>; 3053910cd8cSValentine Barshak mal-rx-channel = <1>; 3063910cd8cSValentine Barshak cell-index = <1>; 3073910cd8cSValentine Barshak max-frame-size = <5dc>; 3083910cd8cSValentine Barshak rx-fifo-size = <1000>; 3093910cd8cSValentine Barshak tx-fifo-size = <800>; 3103910cd8cSValentine Barshak phy-mode = "rgmii"; 3113910cd8cSValentine Barshak phy-map = <00000000>; 3123910cd8cSValentine Barshak zmii-device = <&ZMII0>; 3133910cd8cSValentine Barshak zmii-channel = <1>; 3143910cd8cSValentine Barshak rgmii-device = <&RGMII0>; 3153910cd8cSValentine Barshak rgmii-channel = <1>; 31658c50192SValentine Barshak has-inverted-stacr-oc; 31758c50192SValentine Barshak has-new-stacr-staopc; 3183910cd8cSValentine Barshak }; 3193910cd8cSValentine Barshak }; 3200b2e9751SValentine Barshak 3210b2e9751SValentine Barshak PCI0: pci@1ec000000 { 3220b2e9751SValentine Barshak device_type = "pci"; 3230b2e9751SValentine Barshak #interrupt-cells = <1>; 3240b2e9751SValentine Barshak #size-cells = <2>; 3250b2e9751SValentine Barshak #address-cells = <3>; 3260b2e9751SValentine Barshak compatible = "ibm,plb440grx-pci", "ibm,plb-pci"; 3270b2e9751SValentine Barshak primary; 3280b2e9751SValentine Barshak reg = <1 eec00000 8 /* Config space access */ 3290b2e9751SValentine Barshak 1 eed00000 4 /* IACK */ 3300b2e9751SValentine Barshak 1 eed00000 4 /* Special cycle */ 3310b2e9751SValentine Barshak 1 ef400000 40>; /* Internal registers */ 3320b2e9751SValentine Barshak 3330b2e9751SValentine Barshak /* Outbound ranges, one memory and one IO, 3340b2e9751SValentine Barshak * later cannot be changed. Chip supports a second 3350b2e9751SValentine Barshak * IO range but we don't use it for now 3360b2e9751SValentine Barshak */ 3370b2e9751SValentine Barshak ranges = <02000000 0 80000000 1 80000000 0 10000000 3380b2e9751SValentine Barshak 01000000 0 00000000 1 e8000000 0 00100000>; 3390b2e9751SValentine Barshak 3400b2e9751SValentine Barshak /* Inbound 2GB range starting at 0 */ 3410b2e9751SValentine Barshak dma-ranges = <42000000 0 0 0 0 0 80000000>; 3420b2e9751SValentine Barshak 3430b2e9751SValentine Barshak /* All PCI interrupts are routed to IRQ 67 */ 3440b2e9751SValentine Barshak interrupt-map-mask = <0000 0 0 0>; 3450b2e9751SValentine Barshak interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 3460b2e9751SValentine Barshak }; 3473910cd8cSValentine Barshak }; 3483910cd8cSValentine Barshak 3493910cd8cSValentine Barshak chosen { 3503910cd8cSValentine Barshak linux,stdout-path = "/plb/opb/serial@ef600300"; 3513910cd8cSValentine Barshak bootargs = "console=ttyS0,115200"; 3523910cd8cSValentine Barshak }; 3533910cd8cSValentine Barshak}; 354