1*c66ec88fSEmmanuel Vadot/* 2*c66ec88fSEmmanuel Vadot * Device Tree Source for AMCC Bamboo 3*c66ec88fSEmmanuel Vadot * 4*c66ec88fSEmmanuel Vadot * Copyright (c) 2006, 2007 IBM Corp. 5*c66ec88fSEmmanuel Vadot * Josh Boyer <jwboyer@linux.vnet.ibm.com> 6*c66ec88fSEmmanuel Vadot * 7*c66ec88fSEmmanuel Vadot * FIXME: Draft only! 8*c66ec88fSEmmanuel Vadot * 9*c66ec88fSEmmanuel Vadot * This file is licensed under the terms of the GNU General Public 10*c66ec88fSEmmanuel Vadot * License version 2. This program is licensed "as is" without 11*c66ec88fSEmmanuel Vadot * any warranty of any kind, whether express or implied. 12*c66ec88fSEmmanuel Vadot */ 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel Vadot/dts-v1/; 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel Vadot/ { 17*c66ec88fSEmmanuel Vadot #address-cells = <2>; 18*c66ec88fSEmmanuel Vadot #size-cells = <1>; 19*c66ec88fSEmmanuel Vadot model = "amcc,bamboo"; 20*c66ec88fSEmmanuel Vadot compatible = "amcc,bamboo"; 21*c66ec88fSEmmanuel Vadot dcr-parent = <&{/cpus/cpu@0}>; 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel Vadot aliases { 24*c66ec88fSEmmanuel Vadot ethernet0 = &EMAC0; 25*c66ec88fSEmmanuel Vadot ethernet1 = &EMAC1; 26*c66ec88fSEmmanuel Vadot serial0 = &UART0; 27*c66ec88fSEmmanuel Vadot serial1 = &UART1; 28*c66ec88fSEmmanuel Vadot serial2 = &UART2; 29*c66ec88fSEmmanuel Vadot serial3 = &UART3; 30*c66ec88fSEmmanuel Vadot }; 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot cpus { 33*c66ec88fSEmmanuel Vadot #address-cells = <1>; 34*c66ec88fSEmmanuel Vadot #size-cells = <0>; 35*c66ec88fSEmmanuel Vadot 36*c66ec88fSEmmanuel Vadot cpu@0 { 37*c66ec88fSEmmanuel Vadot device_type = "cpu"; 38*c66ec88fSEmmanuel Vadot model = "PowerPC,440EP"; 39*c66ec88fSEmmanuel Vadot reg = <0x00000000>; 40*c66ec88fSEmmanuel Vadot clock-frequency = <0>; /* Filled in by zImage */ 41*c66ec88fSEmmanuel Vadot timebase-frequency = <0>; /* Filled in by zImage */ 42*c66ec88fSEmmanuel Vadot i-cache-line-size = <32>; 43*c66ec88fSEmmanuel Vadot d-cache-line-size = <32>; 44*c66ec88fSEmmanuel Vadot i-cache-size = <32768>; 45*c66ec88fSEmmanuel Vadot d-cache-size = <32768>; 46*c66ec88fSEmmanuel Vadot dcr-controller; 47*c66ec88fSEmmanuel Vadot dcr-access-method = "native"; 48*c66ec88fSEmmanuel Vadot }; 49*c66ec88fSEmmanuel Vadot }; 50*c66ec88fSEmmanuel Vadot 51*c66ec88fSEmmanuel Vadot memory { 52*c66ec88fSEmmanuel Vadot device_type = "memory"; 53*c66ec88fSEmmanuel Vadot reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */ 54*c66ec88fSEmmanuel Vadot }; 55*c66ec88fSEmmanuel Vadot 56*c66ec88fSEmmanuel Vadot UIC0: interrupt-controller0 { 57*c66ec88fSEmmanuel Vadot compatible = "ibm,uic-440ep","ibm,uic"; 58*c66ec88fSEmmanuel Vadot interrupt-controller; 59*c66ec88fSEmmanuel Vadot cell-index = <0>; 60*c66ec88fSEmmanuel Vadot dcr-reg = <0x0c0 0x009>; 61*c66ec88fSEmmanuel Vadot #address-cells = <0>; 62*c66ec88fSEmmanuel Vadot #size-cells = <0>; 63*c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 64*c66ec88fSEmmanuel Vadot }; 65*c66ec88fSEmmanuel Vadot 66*c66ec88fSEmmanuel Vadot UIC1: interrupt-controller1 { 67*c66ec88fSEmmanuel Vadot compatible = "ibm,uic-440ep","ibm,uic"; 68*c66ec88fSEmmanuel Vadot interrupt-controller; 69*c66ec88fSEmmanuel Vadot cell-index = <1>; 70*c66ec88fSEmmanuel Vadot dcr-reg = <0x0d0 0x009>; 71*c66ec88fSEmmanuel Vadot #address-cells = <0>; 72*c66ec88fSEmmanuel Vadot #size-cells = <0>; 73*c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 74*c66ec88fSEmmanuel Vadot interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */ 75*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 76*c66ec88fSEmmanuel Vadot }; 77*c66ec88fSEmmanuel Vadot 78*c66ec88fSEmmanuel Vadot SDR0: sdr { 79*c66ec88fSEmmanuel Vadot compatible = "ibm,sdr-440ep"; 80*c66ec88fSEmmanuel Vadot dcr-reg = <0x00e 0x002>; 81*c66ec88fSEmmanuel Vadot }; 82*c66ec88fSEmmanuel Vadot 83*c66ec88fSEmmanuel Vadot CPR0: cpr { 84*c66ec88fSEmmanuel Vadot compatible = "ibm,cpr-440ep"; 85*c66ec88fSEmmanuel Vadot dcr-reg = <0x00c 0x002>; 86*c66ec88fSEmmanuel Vadot }; 87*c66ec88fSEmmanuel Vadot 88*c66ec88fSEmmanuel Vadot plb { 89*c66ec88fSEmmanuel Vadot compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4"; 90*c66ec88fSEmmanuel Vadot #address-cells = <2>; 91*c66ec88fSEmmanuel Vadot #size-cells = <1>; 92*c66ec88fSEmmanuel Vadot ranges; 93*c66ec88fSEmmanuel Vadot clock-frequency = <0>; /* Filled in by zImage */ 94*c66ec88fSEmmanuel Vadot 95*c66ec88fSEmmanuel Vadot SDRAM0: sdram { 96*c66ec88fSEmmanuel Vadot compatible = "ibm,sdram-440ep", "ibm,sdram-405gp"; 97*c66ec88fSEmmanuel Vadot dcr-reg = <0x010 0x002>; 98*c66ec88fSEmmanuel Vadot }; 99*c66ec88fSEmmanuel Vadot 100*c66ec88fSEmmanuel Vadot DMA0: dma { 101*c66ec88fSEmmanuel Vadot compatible = "ibm,dma-440ep", "ibm,dma-440gp"; 102*c66ec88fSEmmanuel Vadot dcr-reg = <0x100 0x027>; 103*c66ec88fSEmmanuel Vadot }; 104*c66ec88fSEmmanuel Vadot 105*c66ec88fSEmmanuel Vadot MAL0: mcmal { 106*c66ec88fSEmmanuel Vadot compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal"; 107*c66ec88fSEmmanuel Vadot dcr-reg = <0x180 0x062>; 108*c66ec88fSEmmanuel Vadot num-tx-chans = <4>; 109*c66ec88fSEmmanuel Vadot num-rx-chans = <2>; 110*c66ec88fSEmmanuel Vadot interrupt-parent = <&MAL0>; 111*c66ec88fSEmmanuel Vadot interrupts = <0x0 0x1 0x2 0x3 0x4>; 112*c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 113*c66ec88fSEmmanuel Vadot #address-cells = <0>; 114*c66ec88fSEmmanuel Vadot #size-cells = <0>; 115*c66ec88fSEmmanuel Vadot interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4 116*c66ec88fSEmmanuel Vadot /*RXEOB*/ 0x1 &UIC0 0xb 0x4 117*c66ec88fSEmmanuel Vadot /*SERR*/ 0x2 &UIC1 0x0 0x4 118*c66ec88fSEmmanuel Vadot /*TXDE*/ 0x3 &UIC1 0x1 0x4 119*c66ec88fSEmmanuel Vadot /*RXDE*/ 0x4 &UIC1 0x2 0x4>; 120*c66ec88fSEmmanuel Vadot }; 121*c66ec88fSEmmanuel Vadot 122*c66ec88fSEmmanuel Vadot POB0: opb { 123*c66ec88fSEmmanuel Vadot compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb"; 124*c66ec88fSEmmanuel Vadot #address-cells = <1>; 125*c66ec88fSEmmanuel Vadot #size-cells = <1>; 126*c66ec88fSEmmanuel Vadot /* Bamboo is oddball in the 44x world and doesn't use the ERPN 127*c66ec88fSEmmanuel Vadot * bits. 128*c66ec88fSEmmanuel Vadot */ 129*c66ec88fSEmmanuel Vadot ranges = <0x00000000 0x00000000 0x00000000 0x80000000 130*c66ec88fSEmmanuel Vadot 0x80000000 0x00000000 0x80000000 0x80000000>; 131*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC1>; 132*c66ec88fSEmmanuel Vadot interrupts = <0x7 0x4>; 133*c66ec88fSEmmanuel Vadot clock-frequency = <0>; /* Filled in by zImage */ 134*c66ec88fSEmmanuel Vadot 135*c66ec88fSEmmanuel Vadot EBC0: ebc { 136*c66ec88fSEmmanuel Vadot compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc"; 137*c66ec88fSEmmanuel Vadot dcr-reg = <0x012 0x002>; 138*c66ec88fSEmmanuel Vadot #address-cells = <2>; 139*c66ec88fSEmmanuel Vadot #size-cells = <1>; 140*c66ec88fSEmmanuel Vadot clock-frequency = <0>; /* Filled in by zImage */ 141*c66ec88fSEmmanuel Vadot interrupts = <0x5 0x1>; 142*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC1>; 143*c66ec88fSEmmanuel Vadot }; 144*c66ec88fSEmmanuel Vadot 145*c66ec88fSEmmanuel Vadot UART0: serial@ef600300 { 146*c66ec88fSEmmanuel Vadot device_type = "serial"; 147*c66ec88fSEmmanuel Vadot compatible = "ns16550"; 148*c66ec88fSEmmanuel Vadot reg = <0xef600300 0x00000008>; 149*c66ec88fSEmmanuel Vadot virtual-reg = <0xef600300>; 150*c66ec88fSEmmanuel Vadot clock-frequency = <0>; /* Filled in by zImage */ 151*c66ec88fSEmmanuel Vadot current-speed = <115200>; 152*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 153*c66ec88fSEmmanuel Vadot interrupts = <0x0 0x4>; 154*c66ec88fSEmmanuel Vadot }; 155*c66ec88fSEmmanuel Vadot 156*c66ec88fSEmmanuel Vadot UART1: serial@ef600400 { 157*c66ec88fSEmmanuel Vadot device_type = "serial"; 158*c66ec88fSEmmanuel Vadot compatible = "ns16550"; 159*c66ec88fSEmmanuel Vadot reg = <0xef600400 0x00000008>; 160*c66ec88fSEmmanuel Vadot virtual-reg = <0xef600400>; 161*c66ec88fSEmmanuel Vadot clock-frequency = <0>; 162*c66ec88fSEmmanuel Vadot current-speed = <0>; 163*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 164*c66ec88fSEmmanuel Vadot interrupts = <0x1 0x4>; 165*c66ec88fSEmmanuel Vadot }; 166*c66ec88fSEmmanuel Vadot 167*c66ec88fSEmmanuel Vadot UART2: serial@ef600500 { 168*c66ec88fSEmmanuel Vadot device_type = "serial"; 169*c66ec88fSEmmanuel Vadot compatible = "ns16550"; 170*c66ec88fSEmmanuel Vadot reg = <0xef600500 0x00000008>; 171*c66ec88fSEmmanuel Vadot virtual-reg = <0xef600500>; 172*c66ec88fSEmmanuel Vadot clock-frequency = <0>; 173*c66ec88fSEmmanuel Vadot current-speed = <0>; 174*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 175*c66ec88fSEmmanuel Vadot interrupts = <0x3 0x4>; 176*c66ec88fSEmmanuel Vadot }; 177*c66ec88fSEmmanuel Vadot 178*c66ec88fSEmmanuel Vadot UART3: serial@ef600600 { 179*c66ec88fSEmmanuel Vadot device_type = "serial"; 180*c66ec88fSEmmanuel Vadot compatible = "ns16550"; 181*c66ec88fSEmmanuel Vadot reg = <0xef600600 0x00000008>; 182*c66ec88fSEmmanuel Vadot virtual-reg = <0xef600600>; 183*c66ec88fSEmmanuel Vadot clock-frequency = <0>; 184*c66ec88fSEmmanuel Vadot current-speed = <0>; 185*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 186*c66ec88fSEmmanuel Vadot interrupts = <0x4 0x4>; 187*c66ec88fSEmmanuel Vadot }; 188*c66ec88fSEmmanuel Vadot 189*c66ec88fSEmmanuel Vadot IIC0: i2c@ef600700 { 190*c66ec88fSEmmanuel Vadot compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 191*c66ec88fSEmmanuel Vadot reg = <0xef600700 0x00000014>; 192*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 193*c66ec88fSEmmanuel Vadot interrupts = <0x2 0x4>; 194*c66ec88fSEmmanuel Vadot }; 195*c66ec88fSEmmanuel Vadot 196*c66ec88fSEmmanuel Vadot IIC1: i2c@ef600800 { 197*c66ec88fSEmmanuel Vadot compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 198*c66ec88fSEmmanuel Vadot reg = <0xef600800 0x00000014>; 199*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC0>; 200*c66ec88fSEmmanuel Vadot interrupts = <0x7 0x4>; 201*c66ec88fSEmmanuel Vadot }; 202*c66ec88fSEmmanuel Vadot 203*c66ec88fSEmmanuel Vadot ZMII0: emac-zmii@ef600d00 { 204*c66ec88fSEmmanuel Vadot compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 205*c66ec88fSEmmanuel Vadot reg = <0xef600d00 0x0000000c>; 206*c66ec88fSEmmanuel Vadot }; 207*c66ec88fSEmmanuel Vadot 208*c66ec88fSEmmanuel Vadot EMAC0: ethernet@ef600e00 { 209*c66ec88fSEmmanuel Vadot device_type = "network"; 210*c66ec88fSEmmanuel Vadot compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 211*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC1>; 212*c66ec88fSEmmanuel Vadot interrupts = <0x1c 0x4 0x1d 0x4>; 213*c66ec88fSEmmanuel Vadot reg = <0xef600e00 0x00000070>; 214*c66ec88fSEmmanuel Vadot local-mac-address = [000000000000]; 215*c66ec88fSEmmanuel Vadot mal-device = <&MAL0>; 216*c66ec88fSEmmanuel Vadot mal-tx-channel = <0 1>; 217*c66ec88fSEmmanuel Vadot mal-rx-channel = <0>; 218*c66ec88fSEmmanuel Vadot cell-index = <0>; 219*c66ec88fSEmmanuel Vadot max-frame-size = <1500>; 220*c66ec88fSEmmanuel Vadot rx-fifo-size = <4096>; 221*c66ec88fSEmmanuel Vadot tx-fifo-size = <2048>; 222*c66ec88fSEmmanuel Vadot phy-mode = "rmii"; 223*c66ec88fSEmmanuel Vadot phy-map = <0x00000000>; 224*c66ec88fSEmmanuel Vadot zmii-device = <&ZMII0>; 225*c66ec88fSEmmanuel Vadot zmii-channel = <0>; 226*c66ec88fSEmmanuel Vadot }; 227*c66ec88fSEmmanuel Vadot 228*c66ec88fSEmmanuel Vadot EMAC1: ethernet@ef600f00 { 229*c66ec88fSEmmanuel Vadot device_type = "network"; 230*c66ec88fSEmmanuel Vadot compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 231*c66ec88fSEmmanuel Vadot interrupt-parent = <&UIC1>; 232*c66ec88fSEmmanuel Vadot interrupts = <0x1e 0x4 0x1f 0x4>; 233*c66ec88fSEmmanuel Vadot reg = <0xef600f00 0x00000070>; 234*c66ec88fSEmmanuel Vadot local-mac-address = [000000000000]; 235*c66ec88fSEmmanuel Vadot mal-device = <&MAL0>; 236*c66ec88fSEmmanuel Vadot mal-tx-channel = <2 3>; 237*c66ec88fSEmmanuel Vadot mal-rx-channel = <1>; 238*c66ec88fSEmmanuel Vadot cell-index = <1>; 239*c66ec88fSEmmanuel Vadot max-frame-size = <1500>; 240*c66ec88fSEmmanuel Vadot rx-fifo-size = <4096>; 241*c66ec88fSEmmanuel Vadot tx-fifo-size = <2048>; 242*c66ec88fSEmmanuel Vadot phy-mode = "rmii"; 243*c66ec88fSEmmanuel Vadot phy-map = <0x00000000>; 244*c66ec88fSEmmanuel Vadot zmii-device = <&ZMII0>; 245*c66ec88fSEmmanuel Vadot zmii-channel = <1>; 246*c66ec88fSEmmanuel Vadot }; 247*c66ec88fSEmmanuel Vadot 248*c66ec88fSEmmanuel Vadot usb@ef601000 { 249*c66ec88fSEmmanuel Vadot compatible = "ohci-be"; 250*c66ec88fSEmmanuel Vadot reg = <0xef601000 0x00000080>; 251*c66ec88fSEmmanuel Vadot interrupts = <0x8 0x1 0x9 0x1>; 252*c66ec88fSEmmanuel Vadot interrupt-parent = < &UIC1 >; 253*c66ec88fSEmmanuel Vadot }; 254*c66ec88fSEmmanuel Vadot }; 255*c66ec88fSEmmanuel Vadot 256*c66ec88fSEmmanuel Vadot PCI0: pci@ec000000 { 257*c66ec88fSEmmanuel Vadot device_type = "pci"; 258*c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 259*c66ec88fSEmmanuel Vadot #size-cells = <2>; 260*c66ec88fSEmmanuel Vadot #address-cells = <3>; 261*c66ec88fSEmmanuel Vadot compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 262*c66ec88fSEmmanuel Vadot primary; 263*c66ec88fSEmmanuel Vadot reg = <0x00000000 0xeec00000 0x00000008 /* Config space access */ 264*c66ec88fSEmmanuel Vadot 0x00000000 0xeed00000 0x00000004 /* IACK */ 265*c66ec88fSEmmanuel Vadot 0x00000000 0xeed00000 0x00000004 /* Special cycle */ 266*c66ec88fSEmmanuel Vadot 0x00000000 0xef400000 0x00000040>; /* Internal registers */ 267*c66ec88fSEmmanuel Vadot 268*c66ec88fSEmmanuel Vadot /* Outbound ranges, one memory and one IO, 269*c66ec88fSEmmanuel Vadot * later cannot be changed. Chip supports a second 270*c66ec88fSEmmanuel Vadot * IO range but we don't use it for now 271*c66ec88fSEmmanuel Vadot * The chip also supports a larger memory range but 272*c66ec88fSEmmanuel Vadot * it's not naturally aligned, so our code will break 273*c66ec88fSEmmanuel Vadot */ 274*c66ec88fSEmmanuel Vadot ranges = <0x02000000 0x00000000 0xa0000000 0x00000000 0xa0000000 0x00000000 0x20000000 275*c66ec88fSEmmanuel Vadot 0x02000000 0x00000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00100000 276*c66ec88fSEmmanuel Vadot 0x01000000 0x00000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>; 277*c66ec88fSEmmanuel Vadot 278*c66ec88fSEmmanuel Vadot /* Inbound 2GB range starting at 0 */ 279*c66ec88fSEmmanuel Vadot dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>; 280*c66ec88fSEmmanuel Vadot 281*c66ec88fSEmmanuel Vadot /* Bamboo has all 4 IRQ pins tied together per slot */ 282*c66ec88fSEmmanuel Vadot interrupt-map-mask = <0xf800 0x0 0x0 0x0>; 283*c66ec88fSEmmanuel Vadot interrupt-map = < 284*c66ec88fSEmmanuel Vadot /* IDSEL 1 */ 285*c66ec88fSEmmanuel Vadot 0x800 0x0 0x0 0x0 &UIC0 0x1c 0x8 286*c66ec88fSEmmanuel Vadot 287*c66ec88fSEmmanuel Vadot /* IDSEL 2 */ 288*c66ec88fSEmmanuel Vadot 0x1000 0x0 0x0 0x0 &UIC0 0x1b 0x8 289*c66ec88fSEmmanuel Vadot 290*c66ec88fSEmmanuel Vadot /* IDSEL 3 */ 291*c66ec88fSEmmanuel Vadot 0x1800 0x0 0x0 0x0 &UIC0 0x1a 0x8 292*c66ec88fSEmmanuel Vadot 293*c66ec88fSEmmanuel Vadot /* IDSEL 4 */ 294*c66ec88fSEmmanuel Vadot 0x2000 0x0 0x0 0x0 &UIC0 0x19 0x8 295*c66ec88fSEmmanuel Vadot >; 296*c66ec88fSEmmanuel Vadot }; 297*c66ec88fSEmmanuel Vadot }; 298*c66ec88fSEmmanuel Vadot 299*c66ec88fSEmmanuel Vadot chosen { 300*c66ec88fSEmmanuel Vadot stdout-path = "/plb/opb/serial@ef600300"; 301*c66ec88fSEmmanuel Vadot }; 302*c66ec88fSEmmanuel Vadot}; 303