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 141*3c0c6cb5SValentine Barshak USB0: ehci@e0000300 { 142*3c0c6cb5SValentine Barshak compatible = "ibm,usb-ehci-440epx", "usb-ehci"; 143*3c0c6cb5SValentine Barshak interrupt-parent = <&UIC0>; 144*3c0c6cb5SValentine Barshak interrupts = <1a 4>; 145*3c0c6cb5SValentine Barshak reg = <0 e0000300 90 0 e0000390 70>; 146*3c0c6cb5SValentine Barshak big-endian; 147*3c0c6cb5SValentine Barshak }; 148*3c0c6cb5SValentine Barshak 149d60ff953SValentine Barshak POB0: opb { 150d60ff953SValentine Barshak compatible = "ibm,opb-440epx", "ibm,opb"; 151d60ff953SValentine Barshak #address-cells = <1>; 152d60ff953SValentine Barshak #size-cells = <1>; 153d60ff953SValentine Barshak ranges = <00000000 1 00000000 80000000 154d60ff953SValentine Barshak 80000000 1 80000000 80000000>; 155d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 156d60ff953SValentine Barshak interrupts = <7 4>; 157d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 158d60ff953SValentine Barshak 159d60ff953SValentine Barshak EBC0: ebc { 160d60ff953SValentine Barshak compatible = "ibm,ebc-440epx", "ibm,ebc"; 161d60ff953SValentine Barshak dcr-reg = <012 2>; 162d60ff953SValentine Barshak #address-cells = <2>; 163d60ff953SValentine Barshak #size-cells = <1>; 164d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 165d60ff953SValentine Barshak interrupts = <5 1>; 166d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 167d60ff953SValentine Barshak 168d60ff953SValentine Barshak nor_flash@0,0 { 169504ca43eSJosh Boyer compatible = "amd,s29gl256n", "cfi-flash"; 170d60ff953SValentine Barshak bank-width = <2>; 171d60ff953SValentine Barshak reg = <0 000000 4000000>; 172504ca43eSJosh Boyer #address-cells = <1>; 173504ca43eSJosh Boyer #size-cells = <1>; 174504ca43eSJosh Boyer partition@0 { 175504ca43eSJosh Boyer label = "Kernel"; 176504ca43eSJosh Boyer reg = <0 180000>; 177504ca43eSJosh Boyer }; 178504ca43eSJosh Boyer partition@180000 { 179504ca43eSJosh Boyer label = "ramdisk"; 180504ca43eSJosh Boyer reg = <180000 200000>; 181504ca43eSJosh Boyer }; 182504ca43eSJosh Boyer partition@380000 { 183504ca43eSJosh Boyer label = "file system"; 184504ca43eSJosh Boyer reg = <380000 3aa0000>; 185504ca43eSJosh Boyer }; 186504ca43eSJosh Boyer partition@3e20000 { 187504ca43eSJosh Boyer label = "kozio"; 188504ca43eSJosh Boyer reg = <3e20000 140000>; 189504ca43eSJosh Boyer }; 190504ca43eSJosh Boyer partition@3f60000 { 191504ca43eSJosh Boyer label = "env"; 192504ca43eSJosh Boyer reg = <3f60000 40000>; 193504ca43eSJosh Boyer }; 194504ca43eSJosh Boyer partition@3fa0000 { 195504ca43eSJosh Boyer label = "u-boot"; 196504ca43eSJosh Boyer reg = <3fa0000 60000>; 197504ca43eSJosh Boyer }; 198d60ff953SValentine Barshak }; 199d60ff953SValentine Barshak 200d60ff953SValentine Barshak }; 201d60ff953SValentine Barshak 202d60ff953SValentine Barshak UART0: serial@ef600300 { 203d60ff953SValentine Barshak device_type = "serial"; 204d60ff953SValentine Barshak compatible = "ns16550"; 205d60ff953SValentine Barshak reg = <ef600300 8>; 206d60ff953SValentine Barshak virtual-reg = <ef600300>; 207d60ff953SValentine Barshak clock-frequency = <0>; /* Filled in by zImage */ 208d60ff953SValentine Barshak current-speed = <1c200>; 209d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 210d60ff953SValentine Barshak interrupts = <0 4>; 211d60ff953SValentine Barshak }; 212d60ff953SValentine Barshak 213d60ff953SValentine Barshak UART1: serial@ef600400 { 214d60ff953SValentine Barshak device_type = "serial"; 215d60ff953SValentine Barshak compatible = "ns16550"; 216d60ff953SValentine Barshak reg = <ef600400 8>; 217d60ff953SValentine Barshak virtual-reg = <ef600400>; 218d60ff953SValentine Barshak clock-frequency = <0>; 219d60ff953SValentine Barshak current-speed = <0>; 220d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 221d60ff953SValentine Barshak interrupts = <1 4>; 222d60ff953SValentine Barshak }; 223d60ff953SValentine Barshak 224d60ff953SValentine Barshak UART2: serial@ef600500 { 225d60ff953SValentine Barshak device_type = "serial"; 226d60ff953SValentine Barshak compatible = "ns16550"; 227d60ff953SValentine Barshak reg = <ef600500 8>; 228d60ff953SValentine Barshak virtual-reg = <ef600500>; 229d60ff953SValentine Barshak clock-frequency = <0>; 230d60ff953SValentine Barshak current-speed = <0>; 231d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 232d60ff953SValentine Barshak interrupts = <3 4>; 233d60ff953SValentine Barshak }; 234d60ff953SValentine Barshak 235d60ff953SValentine Barshak UART3: serial@ef600600 { 236d60ff953SValentine Barshak device_type = "serial"; 237d60ff953SValentine Barshak compatible = "ns16550"; 238d60ff953SValentine Barshak reg = <ef600600 8>; 239d60ff953SValentine Barshak virtual-reg = <ef600600>; 240d60ff953SValentine Barshak clock-frequency = <0>; 241d60ff953SValentine Barshak current-speed = <0>; 242d60ff953SValentine Barshak interrupt-parent = <&UIC1>; 243d60ff953SValentine Barshak interrupts = <4 4>; 244d60ff953SValentine Barshak }; 245d60ff953SValentine Barshak 246d60ff953SValentine Barshak IIC0: i2c@ef600700 { 247d60ff953SValentine Barshak device_type = "i2c"; 248d60ff953SValentine Barshak compatible = "ibm,iic-440epx", "ibm,iic"; 249d60ff953SValentine Barshak reg = <ef600700 14>; 250d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 251d60ff953SValentine Barshak interrupts = <2 4>; 252d60ff953SValentine Barshak }; 253d60ff953SValentine Barshak 254d60ff953SValentine Barshak IIC1: i2c@ef600800 { 255d60ff953SValentine Barshak device_type = "i2c"; 256d60ff953SValentine Barshak compatible = "ibm,iic-440epx", "ibm,iic"; 257d60ff953SValentine Barshak reg = <ef600800 14>; 258d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 259d60ff953SValentine Barshak interrupts = <7 4>; 260d60ff953SValentine Barshak }; 261d60ff953SValentine Barshak 262d60ff953SValentine Barshak ZMII0: emac-zmii@ef600d00 { 263d60ff953SValentine Barshak device_type = "zmii-interface"; 264d60ff953SValentine Barshak compatible = "ibm,zmii-440epx", "ibm,zmii"; 265d60ff953SValentine Barshak reg = <ef600d00 c>; 266d60ff953SValentine Barshak }; 267d60ff953SValentine Barshak 2681f69dcfdSValentine Barshak RGMII0: emac-rgmii@ef601000 { 2691f69dcfdSValentine Barshak device_type = "rgmii-interface"; 2701f69dcfdSValentine Barshak compatible = "ibm,rgmii-440epx", "ibm,rgmii"; 2711f69dcfdSValentine Barshak reg = <ef601000 8>; 2721f57877aSBenjamin Herrenschmidt has-mdio; 2731f69dcfdSValentine Barshak }; 2741f69dcfdSValentine Barshak 275d60ff953SValentine Barshak EMAC0: ethernet@ef600e00 { 276d60ff953SValentine Barshak linux,network-index = <0>; 277d60ff953SValentine Barshak device_type = "network"; 278d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 279d60ff953SValentine Barshak interrupt-parent = <&EMAC0>; 280d60ff953SValentine Barshak interrupts = <0 1>; 281d60ff953SValentine Barshak #interrupt-cells = <1>; 282d60ff953SValentine Barshak #address-cells = <0>; 283d60ff953SValentine Barshak #size-cells = <0>; 284d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 18 4 285d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1d 4>; 286d60ff953SValentine Barshak reg = <ef600e00 70>; 287d60ff953SValentine Barshak local-mac-address = [000000000000]; 288d60ff953SValentine Barshak mal-device = <&MAL0>; 289bd0076ccSValentine Barshak mal-tx-channel = <0>; 290d60ff953SValentine Barshak mal-rx-channel = <0>; 291d60ff953SValentine Barshak cell-index = <0>; 292d60ff953SValentine Barshak max-frame-size = <5dc>; 293d60ff953SValentine Barshak rx-fifo-size = <1000>; 294d60ff953SValentine Barshak tx-fifo-size = <800>; 2951f69dcfdSValentine Barshak phy-mode = "rgmii"; 296d60ff953SValentine Barshak phy-map = <00000000>; 297d60ff953SValentine Barshak zmii-device = <&ZMII0>; 298d60ff953SValentine Barshak zmii-channel = <0>; 2991f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 3001f69dcfdSValentine Barshak rgmii-channel = <0>; 301bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 302bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 303d60ff953SValentine Barshak }; 304d60ff953SValentine Barshak 305d60ff953SValentine Barshak EMAC1: ethernet@ef600f00 { 306d60ff953SValentine Barshak linux,network-index = <1>; 307d60ff953SValentine Barshak device_type = "network"; 308d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 309d60ff953SValentine Barshak interrupt-parent = <&EMAC1>; 310d60ff953SValentine Barshak interrupts = <0 1>; 311d60ff953SValentine Barshak #interrupt-cells = <1>; 312d60ff953SValentine Barshak #address-cells = <0>; 313d60ff953SValentine Barshak #size-cells = <0>; 314d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 19 4 315d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1f 4>; 316d60ff953SValentine Barshak reg = <ef600f00 70>; 317d60ff953SValentine Barshak local-mac-address = [000000000000]; 318d60ff953SValentine Barshak mal-device = <&MAL0>; 319bd0076ccSValentine Barshak mal-tx-channel = <1>; 320d60ff953SValentine Barshak mal-rx-channel = <1>; 321d60ff953SValentine Barshak cell-index = <1>; 322d60ff953SValentine Barshak max-frame-size = <5dc>; 323d60ff953SValentine Barshak rx-fifo-size = <1000>; 324d60ff953SValentine Barshak tx-fifo-size = <800>; 3251f69dcfdSValentine Barshak phy-mode = "rgmii"; 326d60ff953SValentine Barshak phy-map = <00000000>; 327d60ff953SValentine Barshak zmii-device = <&ZMII0>; 328d60ff953SValentine Barshak zmii-channel = <1>; 3291f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 3301f69dcfdSValentine Barshak rgmii-channel = <1>; 331bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 332bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 333d60ff953SValentine Barshak }; 334d60ff953SValentine Barshak }; 3352a13448aSValentine Barshak 3362a13448aSValentine Barshak PCI0: pci@1ec000000 { 3372a13448aSValentine Barshak device_type = "pci"; 3382a13448aSValentine Barshak #interrupt-cells = <1>; 3392a13448aSValentine Barshak #size-cells = <2>; 3402a13448aSValentine Barshak #address-cells = <3>; 3412a13448aSValentine Barshak compatible = "ibm,plb440epx-pci", "ibm,plb-pci"; 3422a13448aSValentine Barshak primary; 3432a13448aSValentine Barshak reg = <1 eec00000 8 /* Config space access */ 3442a13448aSValentine Barshak 1 eed00000 4 /* IACK */ 3452a13448aSValentine Barshak 1 eed00000 4 /* Special cycle */ 3462a13448aSValentine Barshak 1 ef400000 40>; /* Internal registers */ 3472a13448aSValentine Barshak 3482a13448aSValentine Barshak /* Outbound ranges, one memory and one IO, 3492a13448aSValentine Barshak * later cannot be changed. Chip supports a second 3502a13448aSValentine Barshak * IO range but we don't use it for now 3512a13448aSValentine Barshak */ 3522a13448aSValentine Barshak ranges = <02000000 0 80000000 1 80000000 0 10000000 3532a13448aSValentine Barshak 01000000 0 00000000 1 e8000000 0 00100000>; 3542a13448aSValentine Barshak 3552a13448aSValentine Barshak /* Inbound 2GB range starting at 0 */ 3562a13448aSValentine Barshak dma-ranges = <42000000 0 0 0 0 0 80000000>; 3572a13448aSValentine Barshak 3582a13448aSValentine Barshak /* All PCI interrupts are routed to IRQ 67 */ 3592a13448aSValentine Barshak interrupt-map-mask = <0000 0 0 0>; 3602a13448aSValentine Barshak interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 3612a13448aSValentine Barshak }; 362d60ff953SValentine Barshak }; 363d60ff953SValentine Barshak 364d60ff953SValentine Barshak chosen { 365d60ff953SValentine Barshak linux,stdout-path = "/plb/opb/serial@ef600300"; 366d60ff953SValentine Barshak bootargs = "console=ttyS0,115200"; 367d60ff953SValentine Barshak }; 368d60ff953SValentine Barshak}; 369