1/* 2 * Device Tree Source for AMCC Bamboo 3 * 4 * Copyright (c) 2006, 2007 IBM Corp. 5 * Josh Boyer <jwboyer@linux.vnet.ibm.com> 6 * 7 * FIXME: Draft only! 8 * 9 * This file is licensed under the terms of the GNU General Public 10 * License version 2. This program is licensed "as is" without 11 * any warranty of any kind, whether express or implied. 12 */ 13 14/ { 15 #address-cells = <2>; 16 #size-cells = <1>; 17 model = "amcc,bamboo"; 18 compatible = "amcc,bamboo"; 19 dcr-parent = <&/cpus/PowerPC,440EP@0>; 20 21 cpus { 22 #address-cells = <1>; 23 #size-cells = <0>; 24 25 PowerPC,440EP@0 { 26 device_type = "cpu"; 27 reg = <0>; 28 clock-frequency = <0>; /* Filled in by zImage */ 29 timebase-frequency = <0>; /* Filled in by zImage */ 30 i-cache-line-size = <20>; 31 d-cache-line-size = <20>; 32 i-cache-size = <8000>; 33 d-cache-size = <8000>; 34 dcr-controller; 35 dcr-access-method = "native"; 36 }; 37 }; 38 39 memory { 40 device_type = "memory"; 41 reg = <0 0 0>; /* Filled in by zImage */ 42 }; 43 44 UIC0: interrupt-controller0 { 45 compatible = "ibm,uic-440ep","ibm,uic"; 46 interrupt-controller; 47 cell-index = <0>; 48 dcr-reg = <0c0 009>; 49 #address-cells = <0>; 50 #size-cells = <0>; 51 #interrupt-cells = <2>; 52 }; 53 54 UIC1: interrupt-controller1 { 55 compatible = "ibm,uic-440ep","ibm,uic"; 56 interrupt-controller; 57 cell-index = <1>; 58 dcr-reg = <0d0 009>; 59 #address-cells = <0>; 60 #size-cells = <0>; 61 #interrupt-cells = <2>; 62 interrupts = <1e 4 1f 4>; /* cascade */ 63 interrupt-parent = <&UIC0>; 64 }; 65 66 SDR0: sdr { 67 compatible = "ibm,sdr-440ep"; 68 dcr-reg = <00e 002>; 69 }; 70 71 CPR0: cpr { 72 compatible = "ibm,cpr-440ep"; 73 dcr-reg = <00c 002>; 74 }; 75 76 plb { 77 compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4"; 78 #address-cells = <2>; 79 #size-cells = <1>; 80 ranges; 81 clock-frequency = <0>; /* Filled in by zImage */ 82 83 SDRAM0: sdram { 84 compatible = "ibm,sdram-440ep", "ibm,sdram-405gp"; 85 dcr-reg = <010 2>; 86 }; 87 88 DMA0: dma { 89 compatible = "ibm,dma-440ep", "ibm,dma-440gp"; 90 dcr-reg = <100 027>; 91 }; 92 93 MAL0: mcmal { 94 compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal"; 95 dcr-reg = <180 62>; 96 num-tx-chans = <4>; 97 num-rx-chans = <2>; 98 interrupt-parent = <&MAL0>; 99 interrupts = <0 1 2 3 4>; 100 #interrupt-cells = <1>; 101 #address-cells = <0>; 102 #size-cells = <0>; 103 interrupt-map = </*TXEOB*/ 0 &UIC0 a 4 104 /*RXEOB*/ 1 &UIC0 b 4 105 /*SERR*/ 2 &UIC1 0 4 106 /*TXDE*/ 3 &UIC1 1 4 107 /*RXDE*/ 4 &UIC1 2 4>; 108 }; 109 110 POB0: opb { 111 compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb"; 112 #address-cells = <1>; 113 #size-cells = <1>; 114 /* Bamboo is oddball in the 44x world and doesn't use the ERPN 115 * bits. 116 */ 117 ranges = <00000000 0 00000000 80000000 118 80000000 0 80000000 80000000>; 119 interrupt-parent = <&UIC1>; 120 interrupts = <7 4>; 121 clock-frequency = <0>; /* Filled in by zImage */ 122 123 EBC0: ebc { 124 compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc"; 125 dcr-reg = <012 2>; 126 #address-cells = <2>; 127 #size-cells = <1>; 128 clock-frequency = <0>; /* Filled in by zImage */ 129 interrupts = <5 1>; 130 interrupt-parent = <&UIC1>; 131 }; 132 133 UART0: serial@ef600300 { 134 device_type = "serial"; 135 compatible = "ns16550"; 136 reg = <ef600300 8>; 137 virtual-reg = <ef600300>; 138 clock-frequency = <0>; /* Filled in by zImage */ 139 current-speed = <1c200>; 140 interrupt-parent = <&UIC0>; 141 interrupts = <0 4>; 142 }; 143 144 UART1: serial@ef600400 { 145 device_type = "serial"; 146 compatible = "ns16550"; 147 reg = <ef600400 8>; 148 virtual-reg = <ef600400>; 149 clock-frequency = <0>; 150 current-speed = <0>; 151 interrupt-parent = <&UIC0>; 152 interrupts = <1 4>; 153 }; 154 155 UART2: serial@ef600500 { 156 device_type = "serial"; 157 compatible = "ns16550"; 158 reg = <ef600500 8>; 159 virtual-reg = <ef600500>; 160 clock-frequency = <0>; 161 current-speed = <0>; 162 interrupt-parent = <&UIC0>; 163 interrupts = <3 4>; 164 }; 165 166 UART3: serial@ef600600 { 167 device_type = "serial"; 168 compatible = "ns16550"; 169 reg = <ef600600 8>; 170 virtual-reg = <ef600600>; 171 clock-frequency = <0>; 172 current-speed = <0>; 173 interrupt-parent = <&UIC0>; 174 interrupts = <4 4>; 175 }; 176 177 IIC0: i2c@ef600700 { 178 device_type = "i2c"; 179 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 180 reg = <ef600700 14>; 181 interrupt-parent = <&UIC0>; 182 interrupts = <2 4>; 183 }; 184 185 IIC1: i2c@ef600800 { 186 device_type = "i2c"; 187 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 188 reg = <ef600800 14>; 189 interrupt-parent = <&UIC0>; 190 interrupts = <7 4>; 191 }; 192 193 ZMII0: emac-zmii@ef600d00 { 194 device_type = "zmii-interface"; 195 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 196 reg = <ef600d00 c>; 197 }; 198 199 EMAC0: ethernet@ef600e00 { 200 linux,network-index = <0>; 201 device_type = "network"; 202 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 203 interrupt-parent = <&UIC1>; 204 interrupts = <1c 4 1d 4>; 205 reg = <ef600e00 70>; 206 local-mac-address = [000000000000]; 207 mal-device = <&MAL0>; 208 mal-tx-channel = <0 1>; 209 mal-rx-channel = <0>; 210 cell-index = <0>; 211 max-frame-size = <5dc>; 212 rx-fifo-size = <1000>; 213 tx-fifo-size = <800>; 214 phy-mode = "rmii"; 215 phy-map = <00000000>; 216 zmii-device = <&ZMII0>; 217 zmii-channel = <0>; 218 }; 219 220 EMAC1: ethernet@ef600f00 { 221 linux,network-index = <1>; 222 device_type = "network"; 223 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 224 interrupt-parent = <&UIC1>; 225 interrupts = <1e 4 1f 4>; 226 reg = <ef600f00 70>; 227 local-mac-address = [000000000000]; 228 mal-device = <&MAL0>; 229 mal-tx-channel = <2 3>; 230 mal-rx-channel = <1>; 231 cell-index = <1>; 232 max-frame-size = <5dc>; 233 rx-fifo-size = <1000>; 234 tx-fifo-size = <800>; 235 phy-mode = "rmii"; 236 phy-map = <00000000>; 237 zmii-device = <&ZMII0>; 238 zmii-channel = <1>; 239 }; 240 241 usb@ef601000 { 242 compatible = "ohci-be"; 243 reg = <ef601000 80>; 244 interrupts = <8 1 9 1>; 245 interrupt-parent = < &UIC1 >; 246 }; 247 }; 248 249 PCI0: pci@ec000000 { 250 device_type = "pci"; 251 #interrupt-cells = <1>; 252 #size-cells = <2>; 253 #address-cells = <3>; 254 compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 255 primary; 256 reg = <0 eec00000 8 /* Config space access */ 257 0 eed00000 4 /* IACK */ 258 0 eed00000 4 /* Special cycle */ 259 0 ef400000 40>; /* Internal registers */ 260 261 /* Outbound ranges, one memory and one IO, 262 * later cannot be changed. Chip supports a second 263 * IO range but we don't use it for now 264 */ 265 ranges = <02000000 0 a0000000 0 a0000000 0 20000000 266 01000000 0 00000000 0 e8000000 0 00010000>; 267 268 /* Inbound 2GB range starting at 0 */ 269 dma-ranges = <42000000 0 0 0 0 0 80000000>; 270 271 /* Bamboo has all 4 IRQ pins tied together per slot */ 272 interrupt-map-mask = <f800 0 0 0>; 273 interrupt-map = < 274 /* IDSEL 1 */ 275 0800 0 0 0 &UIC0 1c 8 276 277 /* IDSEL 2 */ 278 1000 0 0 0 &UIC0 1b 8 279 280 /* IDSEL 3 */ 281 1800 0 0 0 &UIC0 1a 8 282 283 /* IDSEL 4 */ 284 2000 0 0 0 &UIC0 19 8 285 >; 286 }; 287 }; 288 289 chosen { 290 linux,stdout-path = "/plb/opb/serial@ef600300"; 291 }; 292}; 293