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 ranges; 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 243 PCI0: pci@ec000000 { 244 device_type = "pci"; 245 #interrupt-cells = <1>; 246 #size-cells = <2>; 247 #address-cells = <3>; 248 compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 249 primary; 250 reg = <0 eec00000 8 /* Config space access */ 251 0 eed00000 4 /* IACK */ 252 0 eed00000 4 /* Special cycle */ 253 0 ef400000 40>; /* Internal registers */ 254 255 /* Outbound ranges, one memory and one IO, 256 * later cannot be changed. Chip supports a second 257 * IO range but we don't use it for now 258 */ 259 ranges = <02000000 0 a0000000 0 a0000000 0 20000000 260 01000000 0 00000000 0 e8000000 0 00010000>; 261 262 /* Inbound 2GB range starting at 0 */ 263 dma-ranges = <42000000 0 0 0 0 0 80000000>; 264 265 /* Bamboo has all 4 IRQ pins tied together per slot */ 266 interrupt-map-mask = <f800 0 0 0>; 267 interrupt-map = < 268 /* IDSEL 1 */ 269 0800 0 0 0 &UIC0 1c 8 270 271 /* IDSEL 2 */ 272 1000 0 0 0 &UIC0 1b 8 273 274 /* IDSEL 3 */ 275 1800 0 0 0 &UIC0 1a 8 276 277 /* IDSEL 4 */ 278 2000 0 0 0 &UIC0 19 8 279 >; 280 }; 281 }; 282 283 chosen { 284 linux,stdout-path = "/plb/opb/serial@ef600300"; 285 }; 286}; 287