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 1413c0c6cb5SValentine Barshak USB0: ehci@e0000300 { 1423c0c6cb5SValentine Barshak compatible = "ibm,usb-ehci-440epx", "usb-ehci"; 1433c0c6cb5SValentine Barshak interrupt-parent = <&UIC0>; 1443c0c6cb5SValentine Barshak interrupts = <1a 4>; 1453c0c6cb5SValentine Barshak reg = <0 e0000300 90 0 e0000390 70>; 1463c0c6cb5SValentine Barshak big-endian; 1473c0c6cb5SValentine Barshak }; 1483c0c6cb5SValentine 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 compatible = "ibm,iic-440epx", "ibm,iic"; 248d60ff953SValentine Barshak reg = <ef600700 14>; 249d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 250d60ff953SValentine Barshak interrupts = <2 4>; 251d60ff953SValentine Barshak }; 252d60ff953SValentine Barshak 253d60ff953SValentine Barshak IIC1: i2c@ef600800 { 254d60ff953SValentine Barshak compatible = "ibm,iic-440epx", "ibm,iic"; 255d60ff953SValentine Barshak reg = <ef600800 14>; 256d60ff953SValentine Barshak interrupt-parent = <&UIC0>; 257d60ff953SValentine Barshak interrupts = <7 4>; 258d60ff953SValentine Barshak }; 259d60ff953SValentine Barshak 260d60ff953SValentine Barshak ZMII0: emac-zmii@ef600d00 { 261d60ff953SValentine Barshak compatible = "ibm,zmii-440epx", "ibm,zmii"; 262d60ff953SValentine Barshak reg = <ef600d00 c>; 263d60ff953SValentine Barshak }; 264d60ff953SValentine Barshak 2651f69dcfdSValentine Barshak RGMII0: emac-rgmii@ef601000 { 2661f69dcfdSValentine Barshak compatible = "ibm,rgmii-440epx", "ibm,rgmii"; 2671f69dcfdSValentine Barshak reg = <ef601000 8>; 2681f57877aSBenjamin Herrenschmidt has-mdio; 2691f69dcfdSValentine Barshak }; 2701f69dcfdSValentine Barshak 271d60ff953SValentine Barshak EMAC0: ethernet@ef600e00 { 272d60ff953SValentine Barshak device_type = "network"; 273d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 274d60ff953SValentine Barshak interrupt-parent = <&EMAC0>; 275d60ff953SValentine Barshak interrupts = <0 1>; 276d60ff953SValentine Barshak #interrupt-cells = <1>; 277d60ff953SValentine Barshak #address-cells = <0>; 278d60ff953SValentine Barshak #size-cells = <0>; 279d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 18 4 280d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1d 4>; 281d60ff953SValentine Barshak reg = <ef600e00 70>; 282d60ff953SValentine Barshak local-mac-address = [000000000000]; 283d60ff953SValentine Barshak mal-device = <&MAL0>; 284bd0076ccSValentine Barshak mal-tx-channel = <0>; 285d60ff953SValentine Barshak mal-rx-channel = <0>; 286d60ff953SValentine Barshak cell-index = <0>; 2879d7030beSStefan Roese max-frame-size = <2328>; 288d60ff953SValentine Barshak rx-fifo-size = <1000>; 289d60ff953SValentine Barshak tx-fifo-size = <800>; 2901f69dcfdSValentine Barshak phy-mode = "rgmii"; 291d60ff953SValentine Barshak phy-map = <00000000>; 292d60ff953SValentine Barshak zmii-device = <&ZMII0>; 293d60ff953SValentine Barshak zmii-channel = <0>; 2941f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 2951f69dcfdSValentine Barshak rgmii-channel = <0>; 296bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 297bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 298d60ff953SValentine Barshak }; 299d60ff953SValentine Barshak 300d60ff953SValentine Barshak EMAC1: ethernet@ef600f00 { 301d60ff953SValentine Barshak device_type = "network"; 302d60ff953SValentine Barshak compatible = "ibm,emac-440epx", "ibm,emac4"; 303d60ff953SValentine Barshak interrupt-parent = <&EMAC1>; 304d60ff953SValentine Barshak interrupts = <0 1>; 305d60ff953SValentine Barshak #interrupt-cells = <1>; 306d60ff953SValentine Barshak #address-cells = <0>; 307d60ff953SValentine Barshak #size-cells = <0>; 308d60ff953SValentine Barshak interrupt-map = </*Status*/ 0 &UIC0 19 4 309d60ff953SValentine Barshak /*Wake*/ 1 &UIC1 1f 4>; 310d60ff953SValentine Barshak reg = <ef600f00 70>; 311d60ff953SValentine Barshak local-mac-address = [000000000000]; 312d60ff953SValentine Barshak mal-device = <&MAL0>; 313bd0076ccSValentine Barshak mal-tx-channel = <1>; 314d60ff953SValentine Barshak mal-rx-channel = <1>; 315d60ff953SValentine Barshak cell-index = <1>; 3169d7030beSStefan Roese max-frame-size = <2328>; 317d60ff953SValentine Barshak rx-fifo-size = <1000>; 318d60ff953SValentine Barshak tx-fifo-size = <800>; 3191f69dcfdSValentine Barshak phy-mode = "rgmii"; 320d60ff953SValentine Barshak phy-map = <00000000>; 321d60ff953SValentine Barshak zmii-device = <&ZMII0>; 322d60ff953SValentine Barshak zmii-channel = <1>; 3231f69dcfdSValentine Barshak rgmii-device = <&RGMII0>; 3241f69dcfdSValentine Barshak rgmii-channel = <1>; 325bff713b5SBenjamin Herrenschmidt has-inverted-stacr-oc; 326bff713b5SBenjamin Herrenschmidt has-new-stacr-staopc; 327d60ff953SValentine Barshak }; 328d60ff953SValentine Barshak }; 3292a13448aSValentine Barshak 3302a13448aSValentine Barshak PCI0: pci@1ec000000 { 3312a13448aSValentine Barshak device_type = "pci"; 3322a13448aSValentine Barshak #interrupt-cells = <1>; 3332a13448aSValentine Barshak #size-cells = <2>; 3342a13448aSValentine Barshak #address-cells = <3>; 3352a13448aSValentine Barshak compatible = "ibm,plb440epx-pci", "ibm,plb-pci"; 3362a13448aSValentine Barshak primary; 3372a13448aSValentine Barshak reg = <1 eec00000 8 /* Config space access */ 3382a13448aSValentine Barshak 1 eed00000 4 /* IACK */ 3392a13448aSValentine Barshak 1 eed00000 4 /* Special cycle */ 3402a13448aSValentine Barshak 1 ef400000 40>; /* Internal registers */ 3412a13448aSValentine Barshak 3422a13448aSValentine Barshak /* Outbound ranges, one memory and one IO, 3432a13448aSValentine Barshak * later cannot be changed. Chip supports a second 3442a13448aSValentine Barshak * IO range but we don't use it for now 345*78be7647SChristian Ehrhardt * From the 440EPx user manual: 346*78be7647SChristian Ehrhardt * PCI 1 Memory 1 8000 0000 1 BFFF FFFF 1GB 347*78be7647SChristian Ehrhardt * I/O 1 E800 0000 1 E800 FFFF 64KB 348*78be7647SChristian Ehrhardt * I/O 1 E880 0000 1 EBFF FFFF 56MB 3492a13448aSValentine Barshak */ 350*78be7647SChristian Ehrhardt ranges = <02000000 0 80000000 1 80000000 0 40000000 351*78be7647SChristian Ehrhardt 01000000 0 00000000 1 e8000000 0 00010000 352*78be7647SChristian Ehrhardt 01000000 0 00000000 1 e8800000 0 03800000>; 3532a13448aSValentine Barshak 3542a13448aSValentine Barshak /* Inbound 2GB range starting at 0 */ 3552a13448aSValentine Barshak dma-ranges = <42000000 0 0 0 0 0 80000000>; 3562a13448aSValentine Barshak 3572a13448aSValentine Barshak /* All PCI interrupts are routed to IRQ 67 */ 3582a13448aSValentine Barshak interrupt-map-mask = <0000 0 0 0>; 3592a13448aSValentine Barshak interrupt-map = < 0000 0 0 0 &UIC2 3 8 >; 3602a13448aSValentine Barshak }; 361d60ff953SValentine Barshak }; 362d60ff953SValentine Barshak 363d60ff953SValentine Barshak chosen { 364d60ff953SValentine Barshak linux,stdout-path = "/plb/opb/serial@ef600300"; 365d60ff953SValentine Barshak bootargs = "console=ttyS0,115200"; 366d60ff953SValentine Barshak }; 367d60ff953SValentine Barshak}; 368