1142b58eeSJosh Boyer/* 2142b58eeSJosh Boyer * Device Tree Source for AMCC Bamboo 3142b58eeSJosh Boyer * 4142b58eeSJosh Boyer * Copyright (c) 2006, 2007 IBM Corp. 5142b58eeSJosh Boyer * Josh Boyer <jwboyer@linux.vnet.ibm.com> 6142b58eeSJosh Boyer * 7142b58eeSJosh Boyer * FIXME: Draft only! 8142b58eeSJosh Boyer * 9142b58eeSJosh Boyer * This file is licensed under the terms of the GNU General Public 10142b58eeSJosh Boyer * License version 2. This program is licensed "as is" without 11142b58eeSJosh Boyer * any warranty of any kind, whether express or implied. 12142b58eeSJosh Boyer */ 13142b58eeSJosh Boyer 14142b58eeSJosh Boyer/ { 15142b58eeSJosh Boyer #address-cells = <2>; 16142b58eeSJosh Boyer #size-cells = <1>; 17142b58eeSJosh Boyer model = "amcc,bamboo"; 18142b58eeSJosh Boyer compatible = "amcc,bamboo"; 1972fda114SJosh Boyer dcr-parent = <&/cpus/cpu@0>; 20142b58eeSJosh Boyer 218aaed98cSStefan Roese aliases { 228aaed98cSStefan Roese ethernet0 = &EMAC0; 238aaed98cSStefan Roese ethernet1 = &EMAC1; 248aaed98cSStefan Roese serial0 = &UART0; 258aaed98cSStefan Roese serial1 = &UART1; 268aaed98cSStefan Roese serial2 = &UART2; 278aaed98cSStefan Roese serial3 = &UART3; 288aaed98cSStefan Roese }; 298aaed98cSStefan Roese 30142b58eeSJosh Boyer cpus { 31142b58eeSJosh Boyer #address-cells = <1>; 32142b58eeSJosh Boyer #size-cells = <0>; 33142b58eeSJosh Boyer 3472fda114SJosh Boyer cpu@0 { 35142b58eeSJosh Boyer device_type = "cpu"; 3672fda114SJosh Boyer model = "PowerPC,440EP"; 37142b58eeSJosh Boyer reg = <0>; 38142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 39142b58eeSJosh Boyer timebase-frequency = <0>; /* Filled in by zImage */ 40142b58eeSJosh Boyer i-cache-line-size = <20>; 41142b58eeSJosh Boyer d-cache-line-size = <20>; 42142b58eeSJosh Boyer i-cache-size = <8000>; 43142b58eeSJosh Boyer d-cache-size = <8000>; 44142b58eeSJosh Boyer dcr-controller; 45142b58eeSJosh Boyer dcr-access-method = "native"; 46142b58eeSJosh Boyer }; 47142b58eeSJosh Boyer }; 48142b58eeSJosh Boyer 49142b58eeSJosh Boyer memory { 50142b58eeSJosh Boyer device_type = "memory"; 51142b58eeSJosh Boyer reg = <0 0 0>; /* Filled in by zImage */ 52142b58eeSJosh Boyer }; 53142b58eeSJosh Boyer 54142b58eeSJosh Boyer UIC0: interrupt-controller0 { 55142b58eeSJosh Boyer compatible = "ibm,uic-440ep","ibm,uic"; 56142b58eeSJosh Boyer interrupt-controller; 57142b58eeSJosh Boyer cell-index = <0>; 58142b58eeSJosh Boyer dcr-reg = <0c0 009>; 59142b58eeSJosh Boyer #address-cells = <0>; 60142b58eeSJosh Boyer #size-cells = <0>; 61142b58eeSJosh Boyer #interrupt-cells = <2>; 62142b58eeSJosh Boyer }; 63142b58eeSJosh Boyer 64142b58eeSJosh Boyer UIC1: interrupt-controller1 { 65142b58eeSJosh Boyer compatible = "ibm,uic-440ep","ibm,uic"; 66142b58eeSJosh Boyer interrupt-controller; 67142b58eeSJosh Boyer cell-index = <1>; 68142b58eeSJosh Boyer dcr-reg = <0d0 009>; 69142b58eeSJosh Boyer #address-cells = <0>; 70142b58eeSJosh Boyer #size-cells = <0>; 71142b58eeSJosh Boyer #interrupt-cells = <2>; 72142b58eeSJosh Boyer interrupts = <1e 4 1f 4>; /* cascade */ 73142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 74142b58eeSJosh Boyer }; 75142b58eeSJosh Boyer 76142b58eeSJosh Boyer SDR0: sdr { 77142b58eeSJosh Boyer compatible = "ibm,sdr-440ep"; 78142b58eeSJosh Boyer dcr-reg = <00e 002>; 79142b58eeSJosh Boyer }; 80142b58eeSJosh Boyer 81142b58eeSJosh Boyer CPR0: cpr { 82142b58eeSJosh Boyer compatible = "ibm,cpr-440ep"; 83142b58eeSJosh Boyer dcr-reg = <00c 002>; 84142b58eeSJosh Boyer }; 85142b58eeSJosh Boyer 86142b58eeSJosh Boyer plb { 87142b58eeSJosh Boyer compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4"; 88142b58eeSJosh Boyer #address-cells = <2>; 89142b58eeSJosh Boyer #size-cells = <1>; 90142b58eeSJosh Boyer ranges; 91142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 92142b58eeSJosh Boyer 93142b58eeSJosh Boyer SDRAM0: sdram { 94142b58eeSJosh Boyer compatible = "ibm,sdram-440ep", "ibm,sdram-405gp"; 95142b58eeSJosh Boyer dcr-reg = <010 2>; 96142b58eeSJosh Boyer }; 97142b58eeSJosh Boyer 98142b58eeSJosh Boyer DMA0: dma { 99142b58eeSJosh Boyer compatible = "ibm,dma-440ep", "ibm,dma-440gp"; 100142b58eeSJosh Boyer dcr-reg = <100 027>; 101142b58eeSJosh Boyer }; 102142b58eeSJosh Boyer 103142b58eeSJosh Boyer MAL0: mcmal { 104142b58eeSJosh Boyer compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal"; 105142b58eeSJosh Boyer dcr-reg = <180 62>; 106142b58eeSJosh Boyer num-tx-chans = <4>; 107e52f5677SValentine Barshak num-rx-chans = <2>; 108142b58eeSJosh Boyer interrupt-parent = <&MAL0>; 109142b58eeSJosh Boyer interrupts = <0 1 2 3 4>; 110142b58eeSJosh Boyer #interrupt-cells = <1>; 11173925376SJosh Boyer #address-cells = <0>; 11273925376SJosh Boyer #size-cells = <0>; 113142b58eeSJosh Boyer interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 114142b58eeSJosh Boyer /*RXEOB*/ 1 &UIC0 b 4 115142b58eeSJosh Boyer /*SERR*/ 2 &UIC1 0 4 116142b58eeSJosh Boyer /*TXDE*/ 3 &UIC1 1 4 11773925376SJosh Boyer /*RXDE*/ 4 &UIC1 2 4>; 118142b58eeSJosh Boyer }; 119142b58eeSJosh Boyer 120142b58eeSJosh Boyer POB0: opb { 121142b58eeSJosh Boyer compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb"; 122142b58eeSJosh Boyer #address-cells = <1>; 123142b58eeSJosh Boyer #size-cells = <1>; 124142b58eeSJosh Boyer /* Bamboo is oddball in the 44x world and doesn't use the ERPN 125142b58eeSJosh Boyer * bits. 126142b58eeSJosh Boyer */ 127142b58eeSJosh Boyer ranges = <00000000 0 00000000 80000000 128142b58eeSJosh Boyer 80000000 0 80000000 80000000>; 129142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 130142b58eeSJosh Boyer interrupts = <7 4>; 131142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 132142b58eeSJosh Boyer 133142b58eeSJosh Boyer EBC0: ebc { 134142b58eeSJosh Boyer compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc"; 135142b58eeSJosh Boyer dcr-reg = <012 2>; 136142b58eeSJosh Boyer #address-cells = <2>; 137142b58eeSJosh Boyer #size-cells = <1>; 138142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 139142b58eeSJosh Boyer interrupts = <5 1>; 140142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 141142b58eeSJosh Boyer }; 142142b58eeSJosh Boyer 143142b58eeSJosh Boyer UART0: serial@ef600300 { 144142b58eeSJosh Boyer device_type = "serial"; 145142b58eeSJosh Boyer compatible = "ns16550"; 146142b58eeSJosh Boyer reg = <ef600300 8>; 147142b58eeSJosh Boyer virtual-reg = <ef600300>; 148142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 149142b58eeSJosh Boyer current-speed = <1c200>; 150142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 151142b58eeSJosh Boyer interrupts = <0 4>; 152142b58eeSJosh Boyer }; 153142b58eeSJosh Boyer 154142b58eeSJosh Boyer UART1: serial@ef600400 { 155142b58eeSJosh Boyer device_type = "serial"; 156142b58eeSJosh Boyer compatible = "ns16550"; 157142b58eeSJosh Boyer reg = <ef600400 8>; 158142b58eeSJosh Boyer virtual-reg = <ef600400>; 159142b58eeSJosh Boyer clock-frequency = <0>; 160142b58eeSJosh Boyer current-speed = <0>; 161142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 162142b58eeSJosh Boyer interrupts = <1 4>; 163142b58eeSJosh Boyer }; 164142b58eeSJosh Boyer 165142b58eeSJosh Boyer UART2: serial@ef600500 { 166142b58eeSJosh Boyer device_type = "serial"; 167142b58eeSJosh Boyer compatible = "ns16550"; 168142b58eeSJosh Boyer reg = <ef600500 8>; 169142b58eeSJosh Boyer virtual-reg = <ef600500>; 170142b58eeSJosh Boyer clock-frequency = <0>; 171142b58eeSJosh Boyer current-speed = <0>; 172142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 173142b58eeSJosh Boyer interrupts = <3 4>; 174142b58eeSJosh Boyer }; 175142b58eeSJosh Boyer 176142b58eeSJosh Boyer UART3: serial@ef600600 { 177142b58eeSJosh Boyer device_type = "serial"; 178142b58eeSJosh Boyer compatible = "ns16550"; 179142b58eeSJosh Boyer reg = <ef600600 8>; 180142b58eeSJosh Boyer virtual-reg = <ef600600>; 181142b58eeSJosh Boyer clock-frequency = <0>; 182142b58eeSJosh Boyer current-speed = <0>; 183142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 184142b58eeSJosh Boyer interrupts = <4 4>; 185142b58eeSJosh Boyer }; 186142b58eeSJosh Boyer 187142b58eeSJosh Boyer IIC0: i2c@ef600700 { 188142b58eeSJosh Boyer device_type = "i2c"; 189142b58eeSJosh Boyer compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 190142b58eeSJosh Boyer reg = <ef600700 14>; 191142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 192142b58eeSJosh Boyer interrupts = <2 4>; 193142b58eeSJosh Boyer }; 194142b58eeSJosh Boyer 195142b58eeSJosh Boyer IIC1: i2c@ef600800 { 196142b58eeSJosh Boyer device_type = "i2c"; 197142b58eeSJosh Boyer compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 198142b58eeSJosh Boyer reg = <ef600800 14>; 199142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 200142b58eeSJosh Boyer interrupts = <7 4>; 201142b58eeSJosh Boyer }; 202142b58eeSJosh Boyer 203142b58eeSJosh Boyer ZMII0: emac-zmii@ef600d00 { 204142b58eeSJosh Boyer device_type = "zmii-interface"; 205142b58eeSJosh Boyer compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 206142b58eeSJosh Boyer reg = <ef600d00 c>; 207142b58eeSJosh Boyer }; 208142b58eeSJosh Boyer 209142b58eeSJosh Boyer EMAC0: ethernet@ef600e00 { 21073925376SJosh Boyer linux,network-index = <0>; 211142b58eeSJosh Boyer device_type = "network"; 212142b58eeSJosh Boyer compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 213142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 214142b58eeSJosh Boyer interrupts = <1c 4 1d 4>; 215142b58eeSJosh Boyer reg = <ef600e00 70>; 216142b58eeSJosh Boyer local-mac-address = [000000000000]; 217142b58eeSJosh Boyer mal-device = <&MAL0>; 218142b58eeSJosh Boyer mal-tx-channel = <0 1>; 219142b58eeSJosh Boyer mal-rx-channel = <0>; 220142b58eeSJosh Boyer cell-index = <0>; 221142b58eeSJosh Boyer max-frame-size = <5dc>; 222142b58eeSJosh Boyer rx-fifo-size = <1000>; 223142b58eeSJosh Boyer tx-fifo-size = <800>; 224142b58eeSJosh Boyer phy-mode = "rmii"; 22573925376SJosh Boyer phy-map = <00000000>; 226142b58eeSJosh Boyer zmii-device = <&ZMII0>; 227142b58eeSJosh Boyer zmii-channel = <0>; 228142b58eeSJosh Boyer }; 229142b58eeSJosh Boyer 230142b58eeSJosh Boyer EMAC1: ethernet@ef600f00 { 23173925376SJosh Boyer linux,network-index = <1>; 232142b58eeSJosh Boyer device_type = "network"; 233142b58eeSJosh Boyer compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 234142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 235142b58eeSJosh Boyer interrupts = <1e 4 1f 4>; 236142b58eeSJosh Boyer reg = <ef600f00 70>; 237142b58eeSJosh Boyer local-mac-address = [000000000000]; 238142b58eeSJosh Boyer mal-device = <&MAL0>; 239142b58eeSJosh Boyer mal-tx-channel = <2 3>; 240142b58eeSJosh Boyer mal-rx-channel = <1>; 241142b58eeSJosh Boyer cell-index = <1>; 242142b58eeSJosh Boyer max-frame-size = <5dc>; 243142b58eeSJosh Boyer rx-fifo-size = <1000>; 244142b58eeSJosh Boyer tx-fifo-size = <800>; 245142b58eeSJosh Boyer phy-mode = "rmii"; 24673925376SJosh Boyer phy-map = <00000000>; 247142b58eeSJosh Boyer zmii-device = <&ZMII0>; 248142b58eeSJosh Boyer zmii-channel = <1>; 249142b58eeSJosh Boyer }; 250007b6aa8SBenjamin Herrenschmidt 251007b6aa8SBenjamin Herrenschmidt usb@ef601000 { 252007b6aa8SBenjamin Herrenschmidt compatible = "ohci-be"; 253007b6aa8SBenjamin Herrenschmidt reg = <ef601000 80>; 254007b6aa8SBenjamin Herrenschmidt interrupts = <8 1 9 1>; 255007b6aa8SBenjamin Herrenschmidt interrupt-parent = < &UIC1 >; 256007b6aa8SBenjamin Herrenschmidt }; 257142b58eeSJosh Boyer }; 258c3fc2de0SBenjamin Herrenschmidt 259c3fc2de0SBenjamin Herrenschmidt PCI0: pci@ec000000 { 260c3fc2de0SBenjamin Herrenschmidt device_type = "pci"; 261c3fc2de0SBenjamin Herrenschmidt #interrupt-cells = <1>; 262c3fc2de0SBenjamin Herrenschmidt #size-cells = <2>; 263c3fc2de0SBenjamin Herrenschmidt #address-cells = <3>; 264c3fc2de0SBenjamin Herrenschmidt compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 265c3fc2de0SBenjamin Herrenschmidt primary; 266c3fc2de0SBenjamin Herrenschmidt reg = <0 eec00000 8 /* Config space access */ 267c3fc2de0SBenjamin Herrenschmidt 0 eed00000 4 /* IACK */ 268c3fc2de0SBenjamin Herrenschmidt 0 eed00000 4 /* Special cycle */ 269c3fc2de0SBenjamin Herrenschmidt 0 ef400000 40>; /* Internal registers */ 270c3fc2de0SBenjamin Herrenschmidt 271c3fc2de0SBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 272c3fc2de0SBenjamin Herrenschmidt * later cannot be changed. Chip supports a second 273c3fc2de0SBenjamin Herrenschmidt * IO range but we don't use it for now 274c3fc2de0SBenjamin Herrenschmidt */ 275c3fc2de0SBenjamin Herrenschmidt ranges = <02000000 0 a0000000 0 a0000000 0 20000000 276c3fc2de0SBenjamin Herrenschmidt 01000000 0 00000000 0 e8000000 0 00010000>; 277c3fc2de0SBenjamin Herrenschmidt 278c3fc2de0SBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 279c3fc2de0SBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 280c3fc2de0SBenjamin Herrenschmidt 281c3fc2de0SBenjamin Herrenschmidt /* Bamboo has all 4 IRQ pins tied together per slot */ 282c3fc2de0SBenjamin Herrenschmidt interrupt-map-mask = <f800 0 0 0>; 283c3fc2de0SBenjamin Herrenschmidt interrupt-map = < 284c3fc2de0SBenjamin Herrenschmidt /* IDSEL 1 */ 285c3fc2de0SBenjamin Herrenschmidt 0800 0 0 0 &UIC0 1c 8 286c3fc2de0SBenjamin Herrenschmidt 287c3fc2de0SBenjamin Herrenschmidt /* IDSEL 2 */ 288c3fc2de0SBenjamin Herrenschmidt 1000 0 0 0 &UIC0 1b 8 289c3fc2de0SBenjamin Herrenschmidt 290c3fc2de0SBenjamin Herrenschmidt /* IDSEL 3 */ 291c3fc2de0SBenjamin Herrenschmidt 1800 0 0 0 &UIC0 1a 8 292c3fc2de0SBenjamin Herrenschmidt 293c3fc2de0SBenjamin Herrenschmidt /* IDSEL 4 */ 294c3fc2de0SBenjamin Herrenschmidt 2000 0 0 0 &UIC0 19 8 295c3fc2de0SBenjamin Herrenschmidt >; 296c3fc2de0SBenjamin Herrenschmidt }; 297142b58eeSJosh Boyer }; 298142b58eeSJosh Boyer 299142b58eeSJosh Boyer chosen { 300142b58eeSJosh Boyer linux,stdout-path = "/plb/opb/serial@ef600300"; 301142b58eeSJosh Boyer }; 302142b58eeSJosh Boyer}; 303