1d60ff953SValentine Barshak/* 2d60ff953SValentine Barshak * Device Tree Source for AMCC Sequoia 3d60ff953SValentine Barshak * 4d60ff953SValentine Barshak * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com> 5d60ff953SValentine Barshak * Copyright (c) 2006, 2007 IBM Corp. 6d60ff953SValentine Barshak * 7d60ff953SValentine Barshak * FIXME: Draft only! 8d60ff953SValentine Barshak * 9d60ff953SValentine Barshak * This file is licensed under the terms of the GNU General Public 10d60ff953SValentine Barshak * License version 2. This program is licensed "as is" without 11d60ff953SValentine Barshak * any warranty of any kind, whether express or implied. 12d60ff953SValentine Barshak * 13d60ff953SValentine Barshak */ 14d60ff953SValentine Barshak 15d60ff953SValentine Barshak/ { 16d60ff953SValentine Barshak #address-cells = <2>; 17d60ff953SValentine Barshak #size-cells = <1>; 18d60ff953SValentine Barshak model = "amcc,sequoia"; 19d60ff953SValentine Barshak compatible = "amcc,sequoia"; 2072fda114SJosh Boyer dcr-parent = <&/cpus/cpu@0>; 21d60ff953SValentine 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 31d60ff953SValentine Barshak cpus { 32d60ff953SValentine Barshak #address-cells = <1>; 33d60ff953SValentine Barshak #size-cells = <0>; 34d60ff953SValentine Barshak 3572fda114SJosh Boyer cpu@0 { 36d60ff953SValentine Barshak device_type = "cpu"; 3772fda114SJosh Boyer model = "PowerPC,440EPx"; 38d60ff953SValentine Barshak reg = <0>; 39d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 40d60ff953SValentine Barshak timebase-frequency = <0>; /* Filled in by zImage */ 41d60ff953SValentine Barshak i-cache-line-size = <20>; 42d60ff953SValentine Barshak d-cache-line-size = <20>; 43d60ff953SValentine Barshak i-cache-size = <8000>; 44d60ff953SValentine Barshak d-cache-size = <8000>; 45d60ff953SValentine Barshak dcr-controller; 46d60ff953SValentine Barshak dcr-access-method = "native"; 47d60ff953SValentine Barshak }; 48d60ff953SValentine Barshak }; 49d60ff953SValentine Barshak 50d60ff953SValentine Barshak memory { 51d60ff953SValentine Barshak device_type = "memory"; 52d60ff953SValentine Barshak reg = <0 0 0>; /* Filled in by zImage */ 53d60ff953SValentine Barshak }; 54d60ff953SValentine Barshak 55d60ff953SValentine Barshak UIC0: interrupt-controller0 { 56d60ff953SValentine Barshak compatible = "ibm,uic-440epx","ibm,uic"; 57d60ff953SValentine Barshak interrupt-controller; 58d60ff953SValentine Barshak cell-index = <0>; 59d60ff953SValentine Barshak dcr-reg = <0c0 009>; 60d60ff953SValentine Barshak #address-cells = <0>; 61d60ff953SValentine Barshak #size-cells = <0>; 62d60ff953SValentine Barshak #interrupt-cells = <2>; 63d60ff953SValentine Barshak }; 64d60ff953SValentine Barshak 65d60ff953SValentine Barshak UIC1: interrupt-controller1 { 66d60ff953SValentine Barshak compatible = "ibm,uic-440epx","ibm,uic"; 67d60ff953SValentine Barshak interrupt-controller; 68d60ff953SValentine Barshak cell-index = <1>; 69d60ff953SValentine Barshak dcr-reg = <0d0 009>; 70d60ff953SValentine Barshak #address-cells = <0>; 71d60ff953SValentine Barshak #size-cells = <0>; 72d60ff953SValentine Barshak #interrupt-cells = <2>; 73d60ff953SValentine Barshak interrupts = <1e 4 1f 4>; /* cascade */ 74d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 75d60ff953SValentine Barshak }; 76d60ff953SValentine Barshak 77d60ff953SValentine Barshak UIC2: interrupt-controller2 { 78d60ff953SValentine Barshak compatible = "ibm,uic-440epx","ibm,uic"; 79d60ff953SValentine Barshak interrupt-controller; 80d60ff953SValentine Barshak cell-index = <2>; 81d60ff953SValentine Barshak dcr-reg = <0e0 009>; 82d60ff953SValentine Barshak #address-cells = <0>; 83d60ff953SValentine Barshak #size-cells = <0>; 84d60ff953SValentine Barshak #interrupt-cells = <2>; 85d60ff953SValentine Barshak interrupts = <1c 4 1d 4>; /* cascade */ 86d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 87d60ff953SValentine Barshak }; 88d60ff953SValentine Barshak 89d60ff953SValentine Barshak SDR0: sdr { 90d60ff953SValentine Barshak compatible = "ibm,sdr-440epx", "ibm,sdr-440ep"; 91d60ff953SValentine Barshak dcr-reg = <00e 002>; 92d60ff953SValentine Barshak }; 93d60ff953SValentine Barshak 94d60ff953SValentine Barshak CPR0: cpr { 95d60ff953SValentine Barshak compatible = "ibm,cpr-440epx", "ibm,cpr-440ep"; 96d60ff953SValentine Barshak dcr-reg = <00c 002>; 97d60ff953SValentine Barshak }; 98d60ff953SValentine Barshak 99d60ff953SValentine Barshak plb { 100d60ff953SValentine Barshak compatible = "ibm,plb-440epx", "ibm,plb4"; 101d60ff953SValentine Barshak #address-cells = <2>; 102d60ff953SValentine Barshak #size-cells = <1>; 103d60ff953SValentine Barshak ranges; 104d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 105d60ff953SValentine Barshak 106d60ff953SValentine Barshak SDRAM0: sdram { 107d60ff953SValentine Barshak compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali"; 108d60ff953SValentine Barshak dcr-reg = <010 2>; 109d60ff953SValentine Barshak }; 110d60ff953SValentine Barshak 111d60ff953SValentine Barshak DMA0: dma { 112d60ff953SValentine Barshak compatible = "ibm,dma-440epx", "ibm,dma-4xx"; 113d60ff953SValentine Barshak dcr-reg = <100 027>; 114d60ff953SValentine Barshak }; 115d60ff953SValentine Barshak 116d60ff953SValentine Barshak MAL0: mcmal { 117d60ff953SValentine Barshak compatible = "ibm,mcmal-440epx", "ibm,mcmal2"; 118d60ff953SValentine Barshak dcr-reg = <180 62>; 119bd0076ccSValentine Barshak num-tx-chans = <2>; 120bd0076ccSValentine Barshak num-rx-chans = <2>; 121d60ff953SValentine Barshak interrupt-parent = <&MAL0>; 122d60ff953SValentine Barshak interrupts = <0 1 2 3 4>; 123d60ff953SValentine Barshak #interrupt-cells = <1>; 124d60ff953SValentine Barshak #address-cells = <0>; 125d60ff953SValentine Barshak #size-cells = <0>; 126d60ff953SValentine Barshak interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 127d60ff953SValentine Barshak /*RXEOB*/ 1 &UIC0 b 4 128d60ff953SValentine Barshak /*SERR*/ 2 &UIC1 0 4 129d60ff953SValentine Barshak /*TXDE*/ 3 &UIC1 1 4 130d60ff953SValentine Barshak /*RXDE*/ 4 &UIC1 2 4>; 131d60ff953SValentine Barshak interrupt-map-mask = <ffffffff>; 132d60ff953SValentine Barshak }; 133d60ff953SValentine Barshak 134f82f5a26SValentine Barshak USB1: usb@e0000400 { 135f82f5a26SValentine Barshak compatible = "ohci-be"; 136f82f5a26SValentine Barshak reg = <0 e0000400 60>; 137f82f5a26SValentine Barshak interrupt-parent = <&UIC0>; 138f82f5a26SValentine Barshak interrupts = <15 8>; 139f82f5a26SValentine Barshak }; 140f82f5a26SValentine Barshak 141d60ff953SValentine Barshak POB0: opb { 142d60ff953SValentine Barshak compatible = "ibm,opb-440epx", "ibm,opb"; 143d60ff953SValentine Barshak #address-cells = <1>; 144d60ff953SValentine Barshak #size-cells = <1>; 145d60ff953SValentine Barshak ranges = <00000000 1 00000000 80000000 146d60ff953SValentine Barshak 80000000 1 80000000 80000000>; 147d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 148d60ff953SValentine Barshak interrupts = <7 4>; 149d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 150d60ff953SValentine Barshak 151d60ff953SValentine Barshak EBC0: ebc { 152d60ff953SValentine Barshak compatible = "ibm,ebc-440epx", "ibm,ebc"; 153d60ff953SValentine Barshak dcr-reg = <012 2>; 154d60ff953SValentine Barshak #address-cells = <2>; 155d60ff953SValentine Barshak #size-cells = <1>; 156d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 157d60ff953SValentine Barshak interrupts = <5 1>; 158d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 159d60ff953SValentine Barshak 160d60ff953SValentine Barshak nor_flash@0,0 { 161504ca43eSJosh Boyer compatible = "amd,s29gl256n", "cfi-flash"; 162d60ff953SValentine Barshak bank-width = <2>; 163d60ff953SValentine Barshak reg = <0 000000 4000000>; 164504ca43eSJosh Boyer #address-cells = <1>; 165504ca43eSJosh Boyer #size-cells = <1>; 166504ca43eSJosh Boyer partition@0 { 167504ca43eSJosh Boyer label = "Kernel"; 168504ca43eSJosh Boyer reg = <0 180000>; 169504ca43eSJosh Boyer }; 170504ca43eSJosh Boyer partition@180000 { 171504ca43eSJosh Boyer label = "ramdisk"; 172504ca43eSJosh Boyer reg = <180000 200000>; 173504ca43eSJosh Boyer }; 174504ca43eSJosh Boyer partition@380000 { 175504ca43eSJosh Boyer label = "file system"; 176504ca43eSJosh Boyer reg = <380000 3aa0000>; 177504ca43eSJosh Boyer }; 178504ca43eSJosh Boyer partition@3e20000 { 179504ca43eSJosh Boyer label = "kozio"; 180504ca43eSJosh Boyer reg = <3e20000 140000>; 181504ca43eSJosh Boyer }; 182504ca43eSJosh Boyer partition@3f60000 { 183504ca43eSJosh Boyer label = "env"; 184504ca43eSJosh Boyer reg = <3f60000 40000>; 185504ca43eSJosh Boyer }; 186504ca43eSJosh Boyer partition@3fa0000 { 187504ca43eSJosh Boyer label = "u-boot"; 188504ca43eSJosh Boyer reg = <3fa0000 60000>; 189504ca43eSJosh Boyer }; 190d60ff953SValentine Barshak }; 191d60ff953SValentine Barshak 192d60ff953SValentine Barshak }; 193d60ff953SValentine Barshak 194d60ff953SValentine Barshak UART0: serial@ef600300 { 195d60ff953SValentine Barshak device_type = "serial"; 196d60ff953SValentine Barshak compatible = "ns16550"; 197d60ff953SValentine Barshak reg = <ef600300 8>; 198d60ff953SValentine Barshak virtual-reg = <ef600300>; 199d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 200d60ff953SValentine Barshak current-speed = <1c200>; 201d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 202d60ff953SValentine Barshak interrupts = <0 4>; 203d60ff953SValentine Barshak }; 204d60ff953SValentine Barshak 205d60ff953SValentine Barshak UART1: serial@ef600400 { 206d60ff953SValentine Barshak device_type = "serial"; 207d60ff953SValentine Barshak compatible = "ns16550"; 208d60ff953SValentine Barshak reg = <ef600400 8>; 209d60ff953SValentine Barshak virtual-reg = <ef600400>; 210d60ff953SValentine Barshak clock-frequency = <0>; 211d60ff953SValentine Barshak current-speed = <0>; 212d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 213d60ff953SValentine Barshak interrupts = <1 4>; 214d60ff953SValentine Barshak }; 215d60ff953SValentine Barshak 216d60ff953SValentine Barshak UART2: serial@ef600500 { 217d60ff953SValentine Barshak device_type = "serial"; 218d60ff953SValentine Barshak compatible = "ns16550"; 219d60ff953SValentine Barshak reg = <ef600500 8>; 220d60ff953SValentine Barshak virtual-reg = <ef600500>; 221d60ff953SValentine Barshak clock-frequency = <0>; 222d60ff953SValentine Barshak current-speed = <0>; 223d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 224d60ff953SValentine Barshak interrupts = <3 4>; 225d60ff953SValentine Barshak }; 226d60ff953SValentine Barshak 227d60ff953SValentine Barshak UART3: serial@ef600600 { 228d60ff953SValentine Barshak device_type = "serial"; 229d60ff953SValentine Barshak compatible = "ns16550"; 230d60ff953SValentine Barshak reg = <ef600600 8>; 231d60ff953SValentine Barshak virtual-reg = <ef600600>; 232d60ff953SValentine Barshak clock-frequency = <0>; 233d60ff953SValentine Barshak current-speed = <0>; 234d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 235d60ff953SValentine Barshak interrupts = <4 4>; 236d60ff953SValentine Barshak }; 237d60ff953SValentine Barshak 238d60ff953SValentine Barshak IIC0: i2c@ef600700 { 239d60ff953SValentine Barshak device_type = "i2c"; 240d60ff953SValentine Barshak compatible = "ibm,iic-440epx", "ibm,iic"; 241d60ff953SValentine Barshak reg = <ef600700 14>; 242d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 243d60ff953SValentine Barshak interrupts = <2 4>; 244d60ff953SValentine Barshak }; 245d60ff953SValentine Barshak 246d60ff953SValentine Barshak IIC1: i2c@ef600800 { 247d60ff953SValentine Barshak device_type = "i2c"; 248d60ff953SValentine Barshak compatible = "ibm,iic-440epx", "ibm,iic"; 249d60ff953SValentine Barshak reg = <ef600800 14>; 250d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 251d60ff953SValentine Barshak interrupts = <7 4>; 252d60ff953SValentine Barshak }; 253d60ff953SValentine Barshak 254d60ff953SValentine Barshak ZMII0: emac-zmii@ef600d00 { 255d60ff953SValentine Barshak device_type = "zmii-interface"; 256d60ff953SValentine Barshak compatible = "ibm,zmii-440epx", "ibm,zmii"; 257d60ff953SValentine Barshak reg = <ef600d00 c>; 258d60ff953SValentine Barshak }; 259d60ff953SValentine Barshak 2601f69dcfdSValentine Barshak RGMII0: emac-rgmii@ef601000 { 2611f69dcfdSValentine Barshak device_type = "rgmii-interface"; 2621f69dcfdSValentine Barshak compatible = "ibm,rgmii-440epx", "ibm,rgmii"; 2631f69dcfdSValentine Barshak reg = <ef601000 8>; 2641f57877aSBenjamin Herrenschmidt has-mdio; 2651f69dcfdSValentine Barshak }; 2661f69dcfdSValentine Barshak 267d60ff953SValentine Barshak EMAC0: ethernet@ef600e00 { 268d60ff953SValentine Barshak linux,network-index = <0>; 269d60ff953SValentine Barshak device_type = "network"; 270d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 271d60ff953SValentine Barshak interrupt-parent = <&EMAC0>; 272d60ff953SValentine Barshak interrupts = <0 1>; 273d60ff953SValentine Barshak #interrupt-cells = <1>; 274d60ff953SValentine Barshak #address-cells = <0>; 275d60ff953SValentine Barshak #size-cells = <0>; 276d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 18 4 277d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1d 4>; 278d60ff953SValentine Barshak reg = <ef600e00 70>; 279d60ff953SValentine Barshak local-mac-address = [000000000000]; 280d60ff953SValentine Barshak mal-device = <&MAL0>; 281bd0076ccSValentine Barshak mal-tx-channel = <0>; 282d60ff953SValentine Barshak mal-rx-channel = <0>; 283d60ff953SValentine Barshak cell-index = <0>; 284d60ff953SValentine Barshak max-frame-size = <5dc>; 285d60ff953SValentine Barshak rx-fifo-size = <1000>; 286d60ff953SValentine Barshak tx-fifo-size = <800>; 2871f69dcfdSValentine Barshak phy-mode = "rgmii"; 288d60ff953SValentine Barshak phy-map = <00000000>; 289d60ff953SValentine Barshak zmii-device = <&ZMII0>; 290d60ff953SValentine Barshak zmii-channel = <0>; 2911f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 2921f69dcfdSValentine Barshak rgmii-channel = <0>; 293bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 294bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 295d60ff953SValentine Barshak }; 296d60ff953SValentine Barshak 297d60ff953SValentine Barshak EMAC1: ethernet@ef600f00 { 298d60ff953SValentine Barshak linux,network-index = <1>; 299d60ff953SValentine Barshak device_type = "network"; 300d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 301d60ff953SValentine Barshak interrupt-parent = <&EMAC1>; 302d60ff953SValentine Barshak interrupts = <0 1>; 303d60ff953SValentine Barshak #interrupt-cells = <1>; 304d60ff953SValentine Barshak #address-cells = <0>; 305d60ff953SValentine Barshak #size-cells = <0>; 306d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 19 4 307d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1f 4>; 308d60ff953SValentine Barshak reg = <ef600f00 70>; 309d60ff953SValentine Barshak local-mac-address = [000000000000]; 310d60ff953SValentine Barshak mal-device = <&MAL0>; 311bd0076ccSValentine Barshak mal-tx-channel = <1>; 312d60ff953SValentine Barshak mal-rx-channel = <1>; 313d60ff953SValentine Barshak cell-index = <1>; 314d60ff953SValentine Barshak max-frame-size = <5dc>; 315d60ff953SValentine Barshak rx-fifo-size = <1000>; 316d60ff953SValentine Barshak tx-fifo-size = <800>; 3171f69dcfdSValentine Barshak phy-mode = "rgmii"; 318d60ff953SValentine Barshak phy-map = <00000000>; 319d60ff953SValentine Barshak zmii-device = <&ZMII0>; 320d60ff953SValentine Barshak zmii-channel = <1>; 3211f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 3221f69dcfdSValentine Barshak rgmii-channel = <1>; 323bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 324bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 325d60ff953SValentine Barshak }; 326d60ff953SValentine Barshak }; 3272a13448aSValentine Barshak 3282a13448aSValentine Barshak PCI0: pci@1ec000000 { 3292a13448aSValentine Barshak device_type = "pci"; 3302a13448aSValentine Barshak #interrupt-cells = <1>; 3312a13448aSValentine Barshak #size-cells = <2>; 3322a13448aSValentine Barshak #address-cells = <3>; 3332a13448aSValentine Barshak compatible = "ibm,plb440epx-pci", "ibm,plb-pci"; 3342a13448aSValentine Barshak primary; 3352a13448aSValentine Barshak reg = <1 eec00000 8 /* Config space access */ 3362a13448aSValentine Barshak 1 eed00000 4 /* IACK */ 3372a13448aSValentine Barshak 1 eed00000 4 /* Special cycle */ 3382a13448aSValentine Barshak 1 ef400000 40>; /* Internal registers */ 3392a13448aSValentine Barshak 3402a13448aSValentine Barshak /* Outbound ranges, one memory and one IO, 3412a13448aSValentine Barshak * later cannot be changed. Chip supports a second 3422a13448aSValentine Barshak * IO range but we don't use it for now 3432a13448aSValentine Barshak */ 3442a13448aSValentine Barshak ranges = <02000000 0 80000000 1 80000000 0 10000000 3452a13448aSValentine Barshak 01000000 0 00000000 1 e8000000 0 00100000>; 3462a13448aSValentine Barshak 3472a13448aSValentine Barshak /* Inbound 2GB range starting at 0 */ 3482a13448aSValentine Barshak dma-ranges = <42000000 0 0 0 0 0 80000000>; 3492a13448aSValentine Barshak 3502a13448aSValentine Barshak /* All PCI interrupts are routed to IRQ 67 */ 3512a13448aSValentine Barshak interrupt-map-mask = <0000 0 0 0>; 3522a13448aSValentine Barshak interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 3532a13448aSValentine Barshak }; 354d60ff953SValentine Barshak }; 355d60ff953SValentine Barshak 356d60ff953SValentine Barshak chosen { 357d60ff953SValentine Barshak linux,stdout-path = "/plb/opb/serial@ef600300"; 358d60ff953SValentine Barshak bootargs = "console=ttyS0,115200"; 359d60ff953SValentine Barshak }; 360d60ff953SValentine Barshak}; 361