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