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"; 19*72fda114SJosh Boyer dcr-parent = <&/cpus/cpu@0>; 20142b58eeSJosh Boyer 21142b58eeSJosh Boyer cpus { 22142b58eeSJosh Boyer #address-cells = <1>; 23142b58eeSJosh Boyer #size-cells = <0>; 24142b58eeSJosh Boyer 25*72fda114SJosh Boyer cpu@0 { 26142b58eeSJosh Boyer device_type = "cpu"; 27*72fda114SJosh Boyer model = "PowerPC,440EP"; 28142b58eeSJosh Boyer reg = <0>; 29142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 30142b58eeSJosh Boyer timebase-frequency = <0>; /* Filled in by zImage */ 31142b58eeSJosh Boyer i-cache-line-size = <20>; 32142b58eeSJosh Boyer d-cache-line-size = <20>; 33142b58eeSJosh Boyer i-cache-size = <8000>; 34142b58eeSJosh Boyer d-cache-size = <8000>; 35142b58eeSJosh Boyer dcr-controller; 36142b58eeSJosh Boyer dcr-access-method = "native"; 37142b58eeSJosh Boyer }; 38142b58eeSJosh Boyer }; 39142b58eeSJosh Boyer 40142b58eeSJosh Boyer memory { 41142b58eeSJosh Boyer device_type = "memory"; 42142b58eeSJosh Boyer reg = <0 0 0>; /* Filled in by zImage */ 43142b58eeSJosh Boyer }; 44142b58eeSJosh Boyer 45142b58eeSJosh Boyer UIC0: interrupt-controller0 { 46142b58eeSJosh Boyer compatible = "ibm,uic-440ep","ibm,uic"; 47142b58eeSJosh Boyer interrupt-controller; 48142b58eeSJosh Boyer cell-index = <0>; 49142b58eeSJosh Boyer dcr-reg = <0c0 009>; 50142b58eeSJosh Boyer #address-cells = <0>; 51142b58eeSJosh Boyer #size-cells = <0>; 52142b58eeSJosh Boyer #interrupt-cells = <2>; 53142b58eeSJosh Boyer }; 54142b58eeSJosh Boyer 55142b58eeSJosh Boyer UIC1: interrupt-controller1 { 56142b58eeSJosh Boyer compatible = "ibm,uic-440ep","ibm,uic"; 57142b58eeSJosh Boyer interrupt-controller; 58142b58eeSJosh Boyer cell-index = <1>; 59142b58eeSJosh Boyer dcr-reg = <0d0 009>; 60142b58eeSJosh Boyer #address-cells = <0>; 61142b58eeSJosh Boyer #size-cells = <0>; 62142b58eeSJosh Boyer #interrupt-cells = <2>; 63142b58eeSJosh Boyer interrupts = <1e 4 1f 4>; /* cascade */ 64142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 65142b58eeSJosh Boyer }; 66142b58eeSJosh Boyer 67142b58eeSJosh Boyer SDR0: sdr { 68142b58eeSJosh Boyer compatible = "ibm,sdr-440ep"; 69142b58eeSJosh Boyer dcr-reg = <00e 002>; 70142b58eeSJosh Boyer }; 71142b58eeSJosh Boyer 72142b58eeSJosh Boyer CPR0: cpr { 73142b58eeSJosh Boyer compatible = "ibm,cpr-440ep"; 74142b58eeSJosh Boyer dcr-reg = <00c 002>; 75142b58eeSJosh Boyer }; 76142b58eeSJosh Boyer 77142b58eeSJosh Boyer plb { 78142b58eeSJosh Boyer compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4"; 79142b58eeSJosh Boyer #address-cells = <2>; 80142b58eeSJosh Boyer #size-cells = <1>; 81142b58eeSJosh Boyer ranges; 82142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 83142b58eeSJosh Boyer 84142b58eeSJosh Boyer SDRAM0: sdram { 85142b58eeSJosh Boyer compatible = "ibm,sdram-440ep", "ibm,sdram-405gp"; 86142b58eeSJosh Boyer dcr-reg = <010 2>; 87142b58eeSJosh Boyer }; 88142b58eeSJosh Boyer 89142b58eeSJosh Boyer DMA0: dma { 90142b58eeSJosh Boyer compatible = "ibm,dma-440ep", "ibm,dma-440gp"; 91142b58eeSJosh Boyer dcr-reg = <100 027>; 92142b58eeSJosh Boyer }; 93142b58eeSJosh Boyer 94142b58eeSJosh Boyer MAL0: mcmal { 95142b58eeSJosh Boyer compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal"; 96142b58eeSJosh Boyer dcr-reg = <180 62>; 97142b58eeSJosh Boyer num-tx-chans = <4>; 98e52f5677SValentine Barshak num-rx-chans = <2>; 99142b58eeSJosh Boyer interrupt-parent = <&MAL0>; 100142b58eeSJosh Boyer interrupts = <0 1 2 3 4>; 101142b58eeSJosh Boyer #interrupt-cells = <1>; 10273925376SJosh Boyer #address-cells = <0>; 10373925376SJosh Boyer #size-cells = <0>; 104142b58eeSJosh Boyer interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 105142b58eeSJosh Boyer /*RXEOB*/ 1 &UIC0 b 4 106142b58eeSJosh Boyer /*SERR*/ 2 &UIC1 0 4 107142b58eeSJosh Boyer /*TXDE*/ 3 &UIC1 1 4 10873925376SJosh Boyer /*RXDE*/ 4 &UIC1 2 4>; 109142b58eeSJosh Boyer }; 110142b58eeSJosh Boyer 111142b58eeSJosh Boyer POB0: opb { 112142b58eeSJosh Boyer compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb"; 113142b58eeSJosh Boyer #address-cells = <1>; 114142b58eeSJosh Boyer #size-cells = <1>; 115142b58eeSJosh Boyer /* Bamboo is oddball in the 44x world and doesn't use the ERPN 116142b58eeSJosh Boyer * bits. 117142b58eeSJosh Boyer */ 118142b58eeSJosh Boyer ranges = <00000000 0 00000000 80000000 119142b58eeSJosh Boyer 80000000 0 80000000 80000000>; 120142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 121142b58eeSJosh Boyer interrupts = <7 4>; 122142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 123142b58eeSJosh Boyer 124142b58eeSJosh Boyer EBC0: ebc { 125142b58eeSJosh Boyer compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc"; 126142b58eeSJosh Boyer dcr-reg = <012 2>; 127142b58eeSJosh Boyer #address-cells = <2>; 128142b58eeSJosh Boyer #size-cells = <1>; 129142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 130142b58eeSJosh Boyer interrupts = <5 1>; 131142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 132142b58eeSJosh Boyer }; 133142b58eeSJosh Boyer 134142b58eeSJosh Boyer UART0: serial@ef600300 { 135142b58eeSJosh Boyer device_type = "serial"; 136142b58eeSJosh Boyer compatible = "ns16550"; 137142b58eeSJosh Boyer reg = <ef600300 8>; 138142b58eeSJosh Boyer virtual-reg = <ef600300>; 139142b58eeSJosh Boyer clock-frequency = <0>; /* Filled in by zImage */ 140142b58eeSJosh Boyer current-speed = <1c200>; 141142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 142142b58eeSJosh Boyer interrupts = <0 4>; 143142b58eeSJosh Boyer }; 144142b58eeSJosh Boyer 145142b58eeSJosh Boyer UART1: serial@ef600400 { 146142b58eeSJosh Boyer device_type = "serial"; 147142b58eeSJosh Boyer compatible = "ns16550"; 148142b58eeSJosh Boyer reg = <ef600400 8>; 149142b58eeSJosh Boyer virtual-reg = <ef600400>; 150142b58eeSJosh Boyer clock-frequency = <0>; 151142b58eeSJosh Boyer current-speed = <0>; 152142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 153142b58eeSJosh Boyer interrupts = <1 4>; 154142b58eeSJosh Boyer }; 155142b58eeSJosh Boyer 156142b58eeSJosh Boyer UART2: serial@ef600500 { 157142b58eeSJosh Boyer device_type = "serial"; 158142b58eeSJosh Boyer compatible = "ns16550"; 159142b58eeSJosh Boyer reg = <ef600500 8>; 160142b58eeSJosh Boyer virtual-reg = <ef600500>; 161142b58eeSJosh Boyer clock-frequency = <0>; 162142b58eeSJosh Boyer current-speed = <0>; 163142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 164142b58eeSJosh Boyer interrupts = <3 4>; 165142b58eeSJosh Boyer }; 166142b58eeSJosh Boyer 167142b58eeSJosh Boyer UART3: serial@ef600600 { 168142b58eeSJosh Boyer device_type = "serial"; 169142b58eeSJosh Boyer compatible = "ns16550"; 170142b58eeSJosh Boyer reg = <ef600600 8>; 171142b58eeSJosh Boyer virtual-reg = <ef600600>; 172142b58eeSJosh Boyer clock-frequency = <0>; 173142b58eeSJosh Boyer current-speed = <0>; 174142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 175142b58eeSJosh Boyer interrupts = <4 4>; 176142b58eeSJosh Boyer }; 177142b58eeSJosh Boyer 178142b58eeSJosh Boyer IIC0: i2c@ef600700 { 179142b58eeSJosh Boyer device_type = "i2c"; 180142b58eeSJosh Boyer compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 181142b58eeSJosh Boyer reg = <ef600700 14>; 182142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 183142b58eeSJosh Boyer interrupts = <2 4>; 184142b58eeSJosh Boyer }; 185142b58eeSJosh Boyer 186142b58eeSJosh Boyer IIC1: i2c@ef600800 { 187142b58eeSJosh Boyer device_type = "i2c"; 188142b58eeSJosh Boyer compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 189142b58eeSJosh Boyer reg = <ef600800 14>; 190142b58eeSJosh Boyer interrupt-parent = <&UIC0>; 191142b58eeSJosh Boyer interrupts = <7 4>; 192142b58eeSJosh Boyer }; 193142b58eeSJosh Boyer 194142b58eeSJosh Boyer ZMII0: emac-zmii@ef600d00 { 195142b58eeSJosh Boyer device_type = "zmii-interface"; 196142b58eeSJosh Boyer compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 197142b58eeSJosh Boyer reg = <ef600d00 c>; 198142b58eeSJosh Boyer }; 199142b58eeSJosh Boyer 200142b58eeSJosh Boyer EMAC0: ethernet@ef600e00 { 20173925376SJosh Boyer linux,network-index = <0>; 202142b58eeSJosh Boyer device_type = "network"; 203142b58eeSJosh Boyer compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 204142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 205142b58eeSJosh Boyer interrupts = <1c 4 1d 4>; 206142b58eeSJosh Boyer reg = <ef600e00 70>; 207142b58eeSJosh Boyer local-mac-address = [000000000000]; 208142b58eeSJosh Boyer mal-device = <&MAL0>; 209142b58eeSJosh Boyer mal-tx-channel = <0 1>; 210142b58eeSJosh Boyer mal-rx-channel = <0>; 211142b58eeSJosh Boyer cell-index = <0>; 212142b58eeSJosh Boyer max-frame-size = <5dc>; 213142b58eeSJosh Boyer rx-fifo-size = <1000>; 214142b58eeSJosh Boyer tx-fifo-size = <800>; 215142b58eeSJosh Boyer phy-mode = "rmii"; 21673925376SJosh Boyer phy-map = <00000000>; 217142b58eeSJosh Boyer zmii-device = <&ZMII0>; 218142b58eeSJosh Boyer zmii-channel = <0>; 219142b58eeSJosh Boyer }; 220142b58eeSJosh Boyer 221142b58eeSJosh Boyer EMAC1: ethernet@ef600f00 { 22273925376SJosh Boyer linux,network-index = <1>; 223142b58eeSJosh Boyer device_type = "network"; 224142b58eeSJosh Boyer compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 225142b58eeSJosh Boyer interrupt-parent = <&UIC1>; 226142b58eeSJosh Boyer interrupts = <1e 4 1f 4>; 227142b58eeSJosh Boyer reg = <ef600f00 70>; 228142b58eeSJosh Boyer local-mac-address = [000000000000]; 229142b58eeSJosh Boyer mal-device = <&MAL0>; 230142b58eeSJosh Boyer mal-tx-channel = <2 3>; 231142b58eeSJosh Boyer mal-rx-channel = <1>; 232142b58eeSJosh Boyer cell-index = <1>; 233142b58eeSJosh Boyer max-frame-size = <5dc>; 234142b58eeSJosh Boyer rx-fifo-size = <1000>; 235142b58eeSJosh Boyer tx-fifo-size = <800>; 236142b58eeSJosh Boyer phy-mode = "rmii"; 23773925376SJosh Boyer phy-map = <00000000>; 238142b58eeSJosh Boyer zmii-device = <&ZMII0>; 239142b58eeSJosh Boyer zmii-channel = <1>; 240142b58eeSJosh Boyer }; 241007b6aa8SBenjamin Herrenschmidt 242007b6aa8SBenjamin Herrenschmidt usb@ef601000 { 243007b6aa8SBenjamin Herrenschmidt compatible = "ohci-be"; 244007b6aa8SBenjamin Herrenschmidt reg = <ef601000 80>; 245007b6aa8SBenjamin Herrenschmidt interrupts = <8 1 9 1>; 246007b6aa8SBenjamin Herrenschmidt interrupt-parent = < &UIC1 >; 247007b6aa8SBenjamin Herrenschmidt }; 248142b58eeSJosh Boyer }; 249c3fc2de0SBenjamin Herrenschmidt 250c3fc2de0SBenjamin Herrenschmidt PCI0: pci@ec000000 { 251c3fc2de0SBenjamin Herrenschmidt device_type = "pci"; 252c3fc2de0SBenjamin Herrenschmidt #interrupt-cells = <1>; 253c3fc2de0SBenjamin Herrenschmidt #size-cells = <2>; 254c3fc2de0SBenjamin Herrenschmidt #address-cells = <3>; 255c3fc2de0SBenjamin Herrenschmidt compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 256c3fc2de0SBenjamin Herrenschmidt primary; 257c3fc2de0SBenjamin Herrenschmidt reg = <0 eec00000 8 /* Config space access */ 258c3fc2de0SBenjamin Herrenschmidt 0 eed00000 4 /* IACK */ 259c3fc2de0SBenjamin Herrenschmidt 0 eed00000 4 /* Special cycle */ 260c3fc2de0SBenjamin Herrenschmidt 0 ef400000 40>; /* Internal registers */ 261c3fc2de0SBenjamin Herrenschmidt 262c3fc2de0SBenjamin Herrenschmidt /* Outbound ranges, one memory and one IO, 263c3fc2de0SBenjamin Herrenschmidt * later cannot be changed. Chip supports a second 264c3fc2de0SBenjamin Herrenschmidt * IO range but we don't use it for now 265c3fc2de0SBenjamin Herrenschmidt */ 266c3fc2de0SBenjamin Herrenschmidt ranges = <02000000 0 a0000000 0 a0000000 0 20000000 267c3fc2de0SBenjamin Herrenschmidt 01000000 0 00000000 0 e8000000 0 00010000>; 268c3fc2de0SBenjamin Herrenschmidt 269c3fc2de0SBenjamin Herrenschmidt /* Inbound 2GB range starting at 0 */ 270c3fc2de0SBenjamin Herrenschmidt dma-ranges = <42000000 0 0 0 0 0 80000000>; 271c3fc2de0SBenjamin Herrenschmidt 272c3fc2de0SBenjamin Herrenschmidt /* Bamboo has all 4 IRQ pins tied together per slot */ 273c3fc2de0SBenjamin Herrenschmidt interrupt-map-mask = <f800 0 0 0>; 274c3fc2de0SBenjamin Herrenschmidt interrupt-map = < 275c3fc2de0SBenjamin Herrenschmidt /* IDSEL 1 */ 276c3fc2de0SBenjamin Herrenschmidt 0800 0 0 0 &UIC0 1c 8 277c3fc2de0SBenjamin Herrenschmidt 278c3fc2de0SBenjamin Herrenschmidt /* IDSEL 2 */ 279c3fc2de0SBenjamin Herrenschmidt 1000 0 0 0 &UIC0 1b 8 280c3fc2de0SBenjamin Herrenschmidt 281c3fc2de0SBenjamin Herrenschmidt /* IDSEL 3 */ 282c3fc2de0SBenjamin Herrenschmidt 1800 0 0 0 &UIC0 1a 8 283c3fc2de0SBenjamin Herrenschmidt 284c3fc2de0SBenjamin Herrenschmidt /* IDSEL 4 */ 285c3fc2de0SBenjamin Herrenschmidt 2000 0 0 0 &UIC0 19 8 286c3fc2de0SBenjamin Herrenschmidt >; 287c3fc2de0SBenjamin Herrenschmidt }; 288142b58eeSJosh Boyer }; 289142b58eeSJosh Boyer 290142b58eeSJosh Boyer chosen { 291142b58eeSJosh Boyer linux,stdout-path = "/plb/opb/serial@ef600300"; 292142b58eeSJosh Boyer }; 293142b58eeSJosh Boyer}; 294