0001 /*
0002 * Device Tree Source for AMCC Yosemite
0003 *
0004 * Copyright 2008 IBM Corp.
0005 * Josh Boyer <jwboyer@linux.vnet.ibm.com>
0006 *
0007 * This file is licensed under the terms of the GNU General Public
0008 * License version 2. This program is licensed "as is" without
0009 * any warranty of any kind, whether express or implied.
0010 */
0011
0012 /dts-v1/;
0013
0014 / {
0015 #address-cells = <2>;
0016 #size-cells = <1>;
0017 model = "amcc,yosemite";
0018 compatible = "amcc,yosemite";
0019 dcr-parent = <&{/cpus/cpu@0}>;
0020
0021 aliases {
0022 ethernet0 = &EMAC0;
0023 ethernet1 = &EMAC1;
0024 serial0 = &UART0;
0025 serial1 = &UART1;
0026 serial2 = &UART2;
0027 serial3 = &UART3;
0028 };
0029
0030 cpus {
0031 #address-cells = <1>;
0032 #size-cells = <0>;
0033
0034 cpu@0 {
0035 device_type = "cpu";
0036 model = "PowerPC,440EP";
0037 reg = <0x00000000>;
0038 clock-frequency = <0>; /* Filled in by zImage */
0039 timebase-frequency = <0>; /* Filled in by zImage */
0040 i-cache-line-size = <32>;
0041 d-cache-line-size = <32>;
0042 i-cache-size = <32768>;
0043 d-cache-size = <32768>;
0044 dcr-controller;
0045 dcr-access-method = "native";
0046 };
0047 };
0048
0049 memory {
0050 device_type = "memory";
0051 reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
0052 };
0053
0054 UIC0: interrupt-controller0 {
0055 compatible = "ibm,uic-440ep","ibm,uic";
0056 interrupt-controller;
0057 cell-index = <0>;
0058 dcr-reg = <0x0c0 0x009>;
0059 #address-cells = <0>;
0060 #size-cells = <0>;
0061 #interrupt-cells = <2>;
0062 };
0063
0064 UIC1: interrupt-controller1 {
0065 compatible = "ibm,uic-440ep","ibm,uic";
0066 interrupt-controller;
0067 cell-index = <1>;
0068 dcr-reg = <0x0d0 0x009>;
0069 #address-cells = <0>;
0070 #size-cells = <0>;
0071 #interrupt-cells = <2>;
0072 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
0073 interrupt-parent = <&UIC0>;
0074 };
0075
0076 SDR0: sdr {
0077 compatible = "ibm,sdr-440ep";
0078 dcr-reg = <0x00e 0x002>;
0079 };
0080
0081 CPR0: cpr {
0082 compatible = "ibm,cpr-440ep";
0083 dcr-reg = <0x00c 0x002>;
0084 };
0085
0086 plb {
0087 compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
0088 #address-cells = <2>;
0089 #size-cells = <1>;
0090 ranges;
0091 clock-frequency = <0>; /* Filled in by zImage */
0092
0093 SDRAM0: sdram {
0094 compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
0095 dcr-reg = <0x010 0x002>;
0096 };
0097
0098 DMA0: dma {
0099 compatible = "ibm,dma-440ep", "ibm,dma-440gp";
0100 dcr-reg = <0x100 0x027>;
0101 };
0102
0103 MAL0: mcmal {
0104 compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
0105 dcr-reg = <0x180 0x062>;
0106 num-tx-chans = <4>;
0107 num-rx-chans = <2>;
0108 interrupt-parent = <&MAL0>;
0109 interrupts = <0x0 0x1 0x2 0x3 0x4>;
0110 #interrupt-cells = <1>;
0111 #address-cells = <0>;
0112 #size-cells = <0>;
0113 interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
0114 /*RXEOB*/ 0x1 &UIC0 0xb 0x4
0115 /*SERR*/ 0x2 &UIC1 0x0 0x4
0116 /*TXDE*/ 0x3 &UIC1 0x1 0x4
0117 /*RXDE*/ 0x4 &UIC1 0x2 0x4>;
0118 };
0119
0120 POB0: opb {
0121 compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
0122 #address-cells = <1>;
0123 #size-cells = <1>;
0124 /* Bamboo is oddball in the 44x world and doesn't use the ERPN
0125 * bits.
0126 */
0127 ranges = <0x00000000 0x00000000 0x00000000 0x80000000
0128 0x80000000 0x00000000 0x80000000 0x80000000>;
0129 interrupt-parent = <&UIC1>;
0130 interrupts = <0x7 0x4>;
0131 clock-frequency = <0>; /* Filled in by zImage */
0132
0133 EBC0: ebc {
0134 compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
0135 dcr-reg = <0x012 0x002>;
0136 #address-cells = <2>;
0137 #size-cells = <1>;
0138 clock-frequency = <0>; /* Filled in by zImage */
0139 interrupts = <0x5 0x1>;
0140 interrupt-parent = <&UIC1>;
0141
0142 nor_flash@0,0 {
0143 compatible = "amd,s29gl256n", "cfi-flash";
0144 bank-width = <2>;
0145 reg = <0x00000000 0x00000000 0x04000000>;
0146 #address-cells = <1>;
0147 #size-cells = <1>;
0148 partition@0 {
0149 label = "kernel";
0150 reg = <0x00000000 0x001e0000>;
0151 };
0152 partition@1e0000 {
0153 label = "dtb";
0154 reg = <0x001e0000 0x00020000>;
0155 };
0156 partition@200000 {
0157 label = "ramdisk";
0158 reg = <0x00200000 0x01400000>;
0159 };
0160 partition@1600000 {
0161 label = "jffs2";
0162 reg = <0x01600000 0x00400000>;
0163 };
0164 partition@1a00000 {
0165 label = "user";
0166 reg = <0x01a00000 0x02540000>;
0167 };
0168 partition@3f40000 {
0169 label = "env";
0170 reg = <0x03f40000 0x00040000>;
0171 };
0172 partition@3f80000 {
0173 label = "u-boot";
0174 reg = <0x03f80000 0x00080000>;
0175 };
0176 };
0177 };
0178
0179 UART0: serial@ef600300 {
0180 device_type = "serial";
0181 compatible = "ns16550";
0182 reg = <0xef600300 0x00000008>;
0183 virtual-reg = <0xef600300>;
0184 clock-frequency = <0>; /* Filled in by zImage */
0185 current-speed = <115200>;
0186 interrupt-parent = <&UIC0>;
0187 interrupts = <0x0 0x4>;
0188 };
0189
0190 UART1: serial@ef600400 {
0191 device_type = "serial";
0192 compatible = "ns16550";
0193 reg = <0xef600400 0x00000008>;
0194 virtual-reg = <0xef600400>;
0195 clock-frequency = <0>;
0196 current-speed = <0>;
0197 interrupt-parent = <&UIC0>;
0198 interrupts = <0x1 0x4>;
0199 };
0200
0201 UART2: serial@ef600500 {
0202 device_type = "serial";
0203 compatible = "ns16550";
0204 reg = <0xef600500 0x00000008>;
0205 virtual-reg = <0xef600500>;
0206 clock-frequency = <0>;
0207 current-speed = <0>;
0208 interrupt-parent = <&UIC0>;
0209 interrupts = <0x3 0x4>;
0210 status = "disabled";
0211 };
0212
0213 UART3: serial@ef600600 {
0214 device_type = "serial";
0215 compatible = "ns16550";
0216 reg = <0xef600600 0x00000008>;
0217 virtual-reg = <0xef600600>;
0218 clock-frequency = <0>;
0219 current-speed = <0>;
0220 interrupt-parent = <&UIC0>;
0221 interrupts = <0x4 0x4>;
0222 status = "disabled";
0223 };
0224
0225 IIC0: i2c@ef600700 {
0226 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
0227 reg = <0xef600700 0x00000014>;
0228 interrupt-parent = <&UIC0>;
0229 interrupts = <0x2 0x4>;
0230 };
0231
0232 IIC1: i2c@ef600800 {
0233 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
0234 reg = <0xef600800 0x00000014>;
0235 interrupt-parent = <&UIC0>;
0236 interrupts = <0x7 0x4>;
0237 };
0238
0239 spi@ef600900 {
0240 compatible = "amcc,spi-440ep";
0241 reg = <0xef600900 0x00000006>;
0242 interrupts = <0x8 0x4>;
0243 interrupt-parent = <&UIC0>;
0244 };
0245
0246 ZMII0: emac-zmii@ef600d00 {
0247 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
0248 reg = <0xef600d00 0x0000000c>;
0249 };
0250
0251 EMAC0: ethernet@ef600e00 {
0252 device_type = "network";
0253 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
0254 interrupt-parent = <&UIC1>;
0255 interrupts = <0x1c 0x4 0x1d 0x4>;
0256 reg = <0xef600e00 0x00000070>;
0257 local-mac-address = [000000000000];
0258 mal-device = <&MAL0>;
0259 mal-tx-channel = <0 1>;
0260 mal-rx-channel = <0>;
0261 cell-index = <0>;
0262 max-frame-size = <1500>;
0263 rx-fifo-size = <4096>;
0264 tx-fifo-size = <2048>;
0265 phy-mode = "rmii";
0266 phy-map = <0x00000000>;
0267 zmii-device = <&ZMII0>;
0268 zmii-channel = <0>;
0269 };
0270
0271 EMAC1: ethernet@ef600f00 {
0272 device_type = "network";
0273 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
0274 interrupt-parent = <&UIC1>;
0275 interrupts = <0x1e 0x4 0x1f 0x4>;
0276 reg = <0xef600f00 0x00000070>;
0277 local-mac-address = [000000000000];
0278 mal-device = <&MAL0>;
0279 mal-tx-channel = <2 3>;
0280 mal-rx-channel = <1>;
0281 cell-index = <1>;
0282 max-frame-size = <1500>;
0283 rx-fifo-size = <4096>;
0284 tx-fifo-size = <2048>;
0285 phy-mode = "rmii";
0286 phy-map = <0x00000000>;
0287 zmii-device = <&ZMII0>;
0288 zmii-channel = <1>;
0289 };
0290
0291 usb@ef601000 {
0292 compatible = "ohci-be";
0293 reg = <0xef601000 0x00000080>;
0294 interrupts = <0x8 0x4 0x9 0x4>;
0295 interrupt-parent = < &UIC1 >;
0296 };
0297 };
0298
0299 PCI0: pci@ec000000 {
0300 device_type = "pci";
0301 #interrupt-cells = <1>;
0302 #size-cells = <2>;
0303 #address-cells = <3>;
0304 compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
0305 primary;
0306 reg = <0x00000000 0xeec00000 0x00000008 /* Config space access */
0307 0x00000000 0xeed00000 0x00000004 /* IACK */
0308 0x00000000 0xeed00000 0x00000004 /* Special cycle */
0309 0x00000000 0xef400000 0x00000040>; /* Internal registers */
0310
0311 /* Outbound ranges, one memory and one IO,
0312 * later cannot be changed. Chip supports a second
0313 * IO range but we don't use it for now
0314 */
0315 ranges = <0x02000000 0x00000000 0xa0000000 0x00000000 0xa0000000 0x00000000 0x20000000
0316 0x01000000 0x00000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>;
0317
0318 /* Inbound 2GB range starting at 0 */
0319 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
0320
0321 interrupt-map-mask = <0xf800 0x0 0x0 0x0>;
0322 interrupt-map = <
0323 /* IDSEL 12 */
0324 0x6000 0x0 0x0 0x0 &UIC0 0x19 0x8
0325 >;
0326 };
0327 };
0328
0329 chosen {
0330 stdout-path = "/plb/opb/serial@ef600300";
0331 };
0332 };