0001 /*
0002 * Device Tree Source for PlatHome OpenBlockS 600 (405EX)
0003 *
0004 * Copyright 2011 Ben Herrenschmidt, IBM Corp.
0005 *
0006 * Based on Kilauea by:
0007 *
0008 * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de>
0009 *
0010 * This file is licensed under the terms of the GNU General Public
0011 * License version 2. This program is licensed "as is" without
0012 * any warranty of any kind, whether express or implied.
0013 */
0014
0015 /dts-v1/;
0016
0017 / {
0018 #address-cells = <1>;
0019 #size-cells = <1>;
0020 model = "PlatHome,OpenBlockS 600";
0021 compatible = "plathome,obs600";
0022 dcr-parent = <&{/cpus/cpu@0}>;
0023
0024 aliases {
0025 ethernet0 = &EMAC0;
0026 ethernet1 = &EMAC1;
0027 serial0 = &UART0;
0028 serial1 = &UART1;
0029 };
0030
0031 cpus {
0032 #address-cells = <1>;
0033 #size-cells = <0>;
0034
0035 cpu@0 {
0036 device_type = "cpu";
0037 model = "PowerPC,405EX";
0038 reg = <0x00000000>;
0039 clock-frequency = <0>; /* Filled in by U-Boot */
0040 timebase-frequency = <0>; /* Filled in by U-Boot */
0041 i-cache-line-size = <32>;
0042 d-cache-line-size = <32>;
0043 i-cache-size = <16384>; /* 16 kB */
0044 d-cache-size = <16384>; /* 16 kB */
0045 dcr-controller;
0046 dcr-access-method = "native";
0047 };
0048 };
0049
0050 memory {
0051 device_type = "memory";
0052 reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */
0053 };
0054
0055 UIC0: interrupt-controller {
0056 compatible = "ibm,uic-405ex", "ibm,uic";
0057 interrupt-controller;
0058 cell-index = <0>;
0059 dcr-reg = <0x0c0 0x009>;
0060 #address-cells = <0>;
0061 #size-cells = <0>;
0062 #interrupt-cells = <2>;
0063 };
0064
0065 UIC1: interrupt-controller1 {
0066 compatible = "ibm,uic-405ex","ibm,uic";
0067 interrupt-controller;
0068 cell-index = <1>;
0069 dcr-reg = <0x0d0 0x009>;
0070 #address-cells = <0>;
0071 #size-cells = <0>;
0072 #interrupt-cells = <2>;
0073 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
0074 interrupt-parent = <&UIC0>;
0075 };
0076
0077 UIC2: interrupt-controller2 {
0078 compatible = "ibm,uic-405ex","ibm,uic";
0079 interrupt-controller;
0080 cell-index = <2>;
0081 dcr-reg = <0x0e0 0x009>;
0082 #address-cells = <0>;
0083 #size-cells = <0>;
0084 #interrupt-cells = <2>;
0085 interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
0086 interrupt-parent = <&UIC0>;
0087 };
0088
0089 CPM0: cpm {
0090 compatible = "ibm,cpm";
0091 dcr-access-method = "native";
0092 dcr-reg = <0x0b0 0x003>;
0093 unused-units = <0x00000000>;
0094 idle-doze = <0x02000000>;
0095 standby = <0xe3e74800>;
0096 };
0097
0098 plb {
0099 compatible = "ibm,plb-405ex", "ibm,plb4";
0100 #address-cells = <1>;
0101 #size-cells = <1>;
0102 ranges;
0103 clock-frequency = <0>; /* Filled in by U-Boot */
0104
0105 SDRAM0: memory-controller {
0106 compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
0107 dcr-reg = <0x010 0x002>;
0108 interrupt-parent = <&UIC2>;
0109 interrupts = <0x5 0x4 /* ECC DED Error */
0110 0x6 0x4>; /* ECC SEC Error */
0111 };
0112
0113 CRYPTO: crypto@ef700000 {
0114 compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto";
0115 reg = <0xef700000 0x80400>;
0116 interrupt-parent = <&UIC0>;
0117 interrupts = <0x17 0x2>;
0118 };
0119
0120 MAL0: mcmal {
0121 compatible = "ibm,mcmal-405ex", "ibm,mcmal2";
0122 dcr-reg = <0x180 0x062>;
0123 num-tx-chans = <2>;
0124 num-rx-chans = <2>;
0125 interrupt-parent = <&MAL0>;
0126 interrupts = <0x0 0x1 0x2 0x3 0x4>;
0127 #interrupt-cells = <1>;
0128 #address-cells = <0>;
0129 #size-cells = <0>;
0130 interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
0131 /*RXEOB*/ 0x1 &UIC0 0xb 0x4
0132 /*SERR*/ 0x2 &UIC1 0x0 0x4
0133 /*TXDE*/ 0x3 &UIC1 0x1 0x4
0134 /*RXDE*/ 0x4 &UIC1 0x2 0x4>;
0135 interrupt-map-mask = <0xffffffff>;
0136 };
0137
0138 POB0: opb {
0139 compatible = "ibm,opb-405ex", "ibm,opb";
0140 #address-cells = <1>;
0141 #size-cells = <1>;
0142 ranges = <0x80000000 0x80000000 0x10000000
0143 0xef600000 0xef600000 0x00a00000
0144 0xf0000000 0xf0000000 0x10000000>;
0145 dcr-reg = <0x0a0 0x005>;
0146 clock-frequency = <0>; /* Filled in by U-Boot */
0147
0148 EBC0: ebc {
0149 compatible = "ibm,ebc-405ex", "ibm,ebc";
0150 dcr-reg = <0x012 0x002>;
0151 #address-cells = <2>;
0152 #size-cells = <1>;
0153 clock-frequency = <0>; /* Filled in by U-Boot */
0154 /* ranges property is supplied by U-Boot */
0155 interrupts = <0x5 0x1>;
0156 interrupt-parent = <&UIC1>;
0157
0158 nor_flash@0,0 {
0159 compatible = "amd,s29gl512n", "cfi-flash";
0160 bank-width = <2>;
0161 reg = <0x00000000 0x00000000 0x08000000>;
0162 #address-cells = <1>;
0163 #size-cells = <1>;
0164 partition@0 {
0165 label = "kernel + initrd";
0166 reg = <0x00000000 0x03de0000>;
0167 };
0168 partition@3de0000 {
0169 label = "user config area";
0170 reg = <0x03de0000 0x00080000>;
0171 };
0172 partition@3e60000 {
0173 label = "user program area";
0174 reg = <0x03e60000 0x04000000>;
0175 };
0176 partition@7e60000 {
0177 label = "flat device tree";
0178 reg = <0x07e60000 0x00080000>;
0179 };
0180 partition@7ee0000 {
0181 label = "test program";
0182 reg = <0x07ee0000 0x00080000>;
0183 };
0184 partition@7f60000 {
0185 label = "u-boot env";
0186 reg = <0x07f60000 0x00040000>;
0187 };
0188 partition@7fa0000 {
0189 label = "u-boot";
0190 reg = <0x07fa0000 0x00060000>;
0191 };
0192 };
0193 };
0194
0195 UART0: serial@ef600200 {
0196 device_type = "serial";
0197 compatible = "ns16550";
0198 reg = <0xef600200 0x00000008>;
0199 virtual-reg = <0xef600200>;
0200 clock-frequency = <0>; /* Filled in by U-Boot */
0201 current-speed = <0>;
0202 interrupt-parent = <&UIC0>;
0203 interrupts = <0x1a 0x4>;
0204 };
0205
0206 UART1: serial@ef600300 {
0207 device_type = "serial";
0208 compatible = "ns16550";
0209 reg = <0xef600300 0x00000008>;
0210 virtual-reg = <0xef600300>;
0211 clock-frequency = <0>; /* Filled in by U-Boot */
0212 current-speed = <0>;
0213 interrupt-parent = <&UIC0>;
0214 interrupts = <0x1 0x4>;
0215 };
0216
0217 IIC0: i2c@ef600400 {
0218 compatible = "ibm,iic-405ex", "ibm,iic";
0219 reg = <0xef600400 0x00000014>;
0220 interrupt-parent = <&UIC0>;
0221 interrupts = <0x2 0x4>;
0222 #address-cells = <1>;
0223 #size-cells = <0>;
0224
0225 rtc@68 {
0226 compatible = "dallas,ds1340";
0227 reg = <0x68>;
0228 };
0229 };
0230
0231 IIC1: i2c@ef600500 {
0232 compatible = "ibm,iic-405ex", "ibm,iic";
0233 reg = <0xef600500 0x00000014>;
0234 interrupt-parent = <&UIC0>;
0235 interrupts = <0x7 0x4>;
0236 };
0237
0238 RGMII0: emac-rgmii@ef600b00 {
0239 compatible = "ibm,rgmii-405ex", "ibm,rgmii";
0240 reg = <0xef600b00 0x00000104>;
0241 has-mdio;
0242 };
0243
0244 EMAC0: ethernet@ef600900 {
0245 linux,network-index = <0x0>;
0246 device_type = "network";
0247 compatible = "ibm,emac-405ex", "ibm,emac4sync";
0248 interrupt-parent = <&EMAC0>;
0249 interrupts = <0x0 0x1>;
0250 #interrupt-cells = <1>;
0251 #address-cells = <0>;
0252 #size-cells = <0>;
0253 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
0254 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
0255 reg = <0xef600900 0x000000c4>;
0256 local-mac-address = [000000000000]; /* Filled in by U-Boot */
0257 mal-device = <&MAL0>;
0258 mal-tx-channel = <0>;
0259 mal-rx-channel = <0>;
0260 cell-index = <0>;
0261 max-frame-size = <9000>;
0262 rx-fifo-size = <4096>;
0263 tx-fifo-size = <2048>;
0264 rx-fifo-size-gige = <16384>;
0265 tx-fifo-size-gige = <16384>;
0266 phy-mode = "rgmii";
0267 phy-map = <0x00000000>;
0268 rgmii-device = <&RGMII0>;
0269 rgmii-channel = <0>;
0270 has-inverted-stacr-oc;
0271 has-new-stacr-staopc;
0272 };
0273
0274 EMAC1: ethernet@ef600a00 {
0275 linux,network-index = <0x1>;
0276 device_type = "network";
0277 compatible = "ibm,emac-405ex", "ibm,emac4sync";
0278 interrupt-parent = <&EMAC1>;
0279 interrupts = <0x0 0x1>;
0280 #interrupt-cells = <1>;
0281 #address-cells = <0>;
0282 #size-cells = <0>;
0283 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
0284 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
0285 reg = <0xef600a00 0x000000c4>;
0286 local-mac-address = [000000000000]; /* Filled in by U-Boot */
0287 mal-device = <&MAL0>;
0288 mal-tx-channel = <1>;
0289 mal-rx-channel = <1>;
0290 cell-index = <1>;
0291 max-frame-size = <9000>;
0292 rx-fifo-size = <4096>;
0293 tx-fifo-size = <2048>;
0294 rx-fifo-size-gige = <16384>;
0295 tx-fifo-size-gige = <16384>;
0296 phy-mode = "rgmii";
0297 phy-map = <0x00000000>;
0298 rgmii-device = <&RGMII0>;
0299 rgmii-channel = <1>;
0300 has-inverted-stacr-oc;
0301 has-new-stacr-staopc;
0302 };
0303
0304 GPIO: gpio@ef600800 {
0305 device_type = "gpio";
0306 compatible = "ibm,gpio-405ex", "ibm,ppc4xx-gpio";
0307 reg = <0xef600800 0x50>;
0308 };
0309 };
0310 };
0311 chosen {
0312 stdout-path = "/plb/opb/serial@ef600200";
0313 };
0314 };