1*393adcacSWolfgang Grandegger/* 2*393adcacSWolfgang Grandegger * Device Tree Source for the Socrates board (MPC8544). 3*393adcacSWolfgang Grandegger * 4*393adcacSWolfgang Grandegger * Copyright (c) 2008 Emcraft Systems. 5*393adcacSWolfgang Grandegger * Sergei Poselenov, <sposelenov@emcraft.com> 6*393adcacSWolfgang Grandegger * 7*393adcacSWolfgang Grandegger * This program is free software; you can redistribute it and/or modify it 8*393adcacSWolfgang Grandegger * under the terms of the GNU General Public License as published by the 9*393adcacSWolfgang Grandegger * Free Software Foundation; either version 2 of the License, or (at your 10*393adcacSWolfgang Grandegger * option) any later version. 11*393adcacSWolfgang Grandegger */ 12*393adcacSWolfgang Grandegger 13*393adcacSWolfgang Grandegger/dts-v1/; 14*393adcacSWolfgang Grandegger 15*393adcacSWolfgang Grandegger/ { 16*393adcacSWolfgang Grandegger model = "abb,socrates"; 17*393adcacSWolfgang Grandegger compatible = "abb,socrates"; 18*393adcacSWolfgang Grandegger #address-cells = <1>; 19*393adcacSWolfgang Grandegger #size-cells = <1>; 20*393adcacSWolfgang Grandegger 21*393adcacSWolfgang Grandegger aliases { 22*393adcacSWolfgang Grandegger ethernet0 = &enet0; 23*393adcacSWolfgang Grandegger ethernet1 = &enet1; 24*393adcacSWolfgang Grandegger serial0 = &serial0; 25*393adcacSWolfgang Grandegger serial1 = &serial1; 26*393adcacSWolfgang Grandegger pci0 = &pci0; 27*393adcacSWolfgang Grandegger }; 28*393adcacSWolfgang Grandegger 29*393adcacSWolfgang Grandegger cpus { 30*393adcacSWolfgang Grandegger #address-cells = <1>; 31*393adcacSWolfgang Grandegger #size-cells = <0>; 32*393adcacSWolfgang Grandegger 33*393adcacSWolfgang Grandegger PowerPC,8544@0 { 34*393adcacSWolfgang Grandegger device_type = "cpu"; 35*393adcacSWolfgang Grandegger reg = <0>; 36*393adcacSWolfgang Grandegger d-cache-line-size = <32>; 37*393adcacSWolfgang Grandegger i-cache-line-size = <32>; 38*393adcacSWolfgang Grandegger d-cache-size = <0x8000>; // L1, 32K 39*393adcacSWolfgang Grandegger i-cache-size = <0x8000>; // L1, 32K 40*393adcacSWolfgang Grandegger timebase-frequency = <0>; 41*393adcacSWolfgang Grandegger bus-frequency = <0>; 42*393adcacSWolfgang Grandegger clock-frequency = <0>; 43*393adcacSWolfgang Grandegger next-level-cache = <&L2>; 44*393adcacSWolfgang Grandegger }; 45*393adcacSWolfgang Grandegger }; 46*393adcacSWolfgang Grandegger 47*393adcacSWolfgang Grandegger memory { 48*393adcacSWolfgang Grandegger device_type = "memory"; 49*393adcacSWolfgang Grandegger reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50*393adcacSWolfgang Grandegger }; 51*393adcacSWolfgang Grandegger 52*393adcacSWolfgang Grandegger soc8544@e0000000 { 53*393adcacSWolfgang Grandegger #address-cells = <1>; 54*393adcacSWolfgang Grandegger #size-cells = <1>; 55*393adcacSWolfgang Grandegger 56*393adcacSWolfgang Grandegger ranges = <0x00000000 0xe0000000 0x00100000>; 57*393adcacSWolfgang Grandegger reg = <0xe0000000 0x00001000>; // CCSRBAR 1M 58*393adcacSWolfgang Grandegger bus-frequency = <0>; // Filled in by U-Boot 59*393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-immr", "simple-bus"; 60*393adcacSWolfgang Grandegger 61*393adcacSWolfgang Grandegger memory-controller@2000 { 62*393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-memory-controller"; 63*393adcacSWolfgang Grandegger reg = <0x2000 0x1000>; 64*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 65*393adcacSWolfgang Grandegger interrupts = <18 2>; 66*393adcacSWolfgang Grandegger }; 67*393adcacSWolfgang Grandegger 68*393adcacSWolfgang Grandegger L2: l2-cache-controller@20000 { 69*393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-l2-cache-controller"; 70*393adcacSWolfgang Grandegger reg = <0x20000 0x1000>; 71*393adcacSWolfgang Grandegger cache-line-size = <32>; 72*393adcacSWolfgang Grandegger cache-size = <0x40000>; // L2, 256K 73*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 74*393adcacSWolfgang Grandegger interrupts = <16 2>; 75*393adcacSWolfgang Grandegger }; 76*393adcacSWolfgang Grandegger 77*393adcacSWolfgang Grandegger i2c@3000 { 78*393adcacSWolfgang Grandegger #address-cells = <1>; 79*393adcacSWolfgang Grandegger #size-cells = <0>; 80*393adcacSWolfgang Grandegger cell-index = <0>; 81*393adcacSWolfgang Grandegger compatible = "fsl-i2c"; 82*393adcacSWolfgang Grandegger reg = <0x3000 0x100>; 83*393adcacSWolfgang Grandegger interrupts = <43 2>; 84*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 85*393adcacSWolfgang Grandegger dfsrr; 86*393adcacSWolfgang Grandegger 87*393adcacSWolfgang Grandegger dtt@28 { 88*393adcacSWolfgang Grandegger compatible = "winbond,w83782d"; 89*393adcacSWolfgang Grandegger reg = <0x28>; 90*393adcacSWolfgang Grandegger }; 91*393adcacSWolfgang Grandegger rtc@32 { 92*393adcacSWolfgang Grandegger compatible = "epson,rx8025"; 93*393adcacSWolfgang Grandegger reg = <0x32>; 94*393adcacSWolfgang Grandegger interrupts = <7 1>; 95*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 96*393adcacSWolfgang Grandegger }; 97*393adcacSWolfgang Grandegger dtt@4c { 98*393adcacSWolfgang Grandegger compatible = "dallas,ds75"; 99*393adcacSWolfgang Grandegger reg = <0x4c>; 100*393adcacSWolfgang Grandegger }; 101*393adcacSWolfgang Grandegger ts@4a { 102*393adcacSWolfgang Grandegger compatible = "ti,tsc2003"; 103*393adcacSWolfgang Grandegger reg = <0x4a>; 104*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 105*393adcacSWolfgang Grandegger interrupts = <8 1>; 106*393adcacSWolfgang Grandegger }; 107*393adcacSWolfgang Grandegger }; 108*393adcacSWolfgang Grandegger 109*393adcacSWolfgang Grandegger i2c@3100 { 110*393adcacSWolfgang Grandegger #address-cells = <1>; 111*393adcacSWolfgang Grandegger #size-cells = <0>; 112*393adcacSWolfgang Grandegger cell-index = <1>; 113*393adcacSWolfgang Grandegger compatible = "fsl-i2c"; 114*393adcacSWolfgang Grandegger reg = <0x3100 0x100>; 115*393adcacSWolfgang Grandegger interrupts = <43 2>; 116*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 117*393adcacSWolfgang Grandegger dfsrr; 118*393adcacSWolfgang Grandegger }; 119*393adcacSWolfgang Grandegger 120*393adcacSWolfgang Grandegger enet0: ethernet@24000 { 121*393adcacSWolfgang Grandegger #address-cells = <1>; 122*393adcacSWolfgang Grandegger #size-cells = <1>; 123*393adcacSWolfgang Grandegger cell-index = <0>; 124*393adcacSWolfgang Grandegger device_type = "network"; 125*393adcacSWolfgang Grandegger model = "eTSEC"; 126*393adcacSWolfgang Grandegger compatible = "gianfar"; 127*393adcacSWolfgang Grandegger reg = <0x24000 0x1000>; 128*393adcacSWolfgang Grandegger ranges = <0x0 0x24000 0x1000>; 129*393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 130*393adcacSWolfgang Grandegger interrupts = <29 2 30 2 34 2>; 131*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 132*393adcacSWolfgang Grandegger phy-handle = <&phy0>; 133*393adcacSWolfgang Grandegger tbi-handle = <&tbi0>; 134*393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 135*393adcacSWolfgang Grandegger 136*393adcacSWolfgang Grandegger mdio@520 { 137*393adcacSWolfgang Grandegger #address-cells = <1>; 138*393adcacSWolfgang Grandegger #size-cells = <0>; 139*393adcacSWolfgang Grandegger compatible = "fsl,gianfar-mdio"; 140*393adcacSWolfgang Grandegger reg = <0x520 0x20>; 141*393adcacSWolfgang Grandegger 142*393adcacSWolfgang Grandegger phy0: ethernet-phy@0 { 143*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 144*393adcacSWolfgang Grandegger interrupts = <0 1>; 145*393adcacSWolfgang Grandegger reg = <0>; 146*393adcacSWolfgang Grandegger }; 147*393adcacSWolfgang Grandegger phy1: ethernet-phy@1 { 148*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 149*393adcacSWolfgang Grandegger interrupts = <0 1>; 150*393adcacSWolfgang Grandegger reg = <1>; 151*393adcacSWolfgang Grandegger }; 152*393adcacSWolfgang Grandegger tbi0: tbi-phy@11 { 153*393adcacSWolfgang Grandegger reg = <0x11>; 154*393adcacSWolfgang Grandegger }; 155*393adcacSWolfgang Grandegger }; 156*393adcacSWolfgang Grandegger }; 157*393adcacSWolfgang Grandegger 158*393adcacSWolfgang Grandegger enet1: ethernet@26000 { 159*393adcacSWolfgang Grandegger #address-cells = <1>; 160*393adcacSWolfgang Grandegger #size-cells = <1>; 161*393adcacSWolfgang Grandegger cell-index = <1>; 162*393adcacSWolfgang Grandegger device_type = "network"; 163*393adcacSWolfgang Grandegger model = "eTSEC"; 164*393adcacSWolfgang Grandegger compatible = "gianfar"; 165*393adcacSWolfgang Grandegger reg = <0x26000 0x1000>; 166*393adcacSWolfgang Grandegger ranges = <0x0 0x26000 0x1000>; 167*393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 168*393adcacSWolfgang Grandegger interrupts = <31 2 32 2 33 2>; 169*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 170*393adcacSWolfgang Grandegger phy-handle = <&phy1>; 171*393adcacSWolfgang Grandegger tbi-handle = <&tbi1>; 172*393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 173*393adcacSWolfgang Grandegger 174*393adcacSWolfgang Grandegger mdio@520 { 175*393adcacSWolfgang Grandegger #address-cells = <1>; 176*393adcacSWolfgang Grandegger #size-cells = <0>; 177*393adcacSWolfgang Grandegger compatible = "fsl,gianfar-tbi"; 178*393adcacSWolfgang Grandegger reg = <0x520 0x20>; 179*393adcacSWolfgang Grandegger 180*393adcacSWolfgang Grandegger tbi1: tbi-phy@11 { 181*393adcacSWolfgang Grandegger reg = <0x11>; 182*393adcacSWolfgang Grandegger }; 183*393adcacSWolfgang Grandegger }; 184*393adcacSWolfgang Grandegger }; 185*393adcacSWolfgang Grandegger 186*393adcacSWolfgang Grandegger serial0: serial@4500 { 187*393adcacSWolfgang Grandegger cell-index = <0>; 188*393adcacSWolfgang Grandegger device_type = "serial"; 189*393adcacSWolfgang Grandegger compatible = "ns16550"; 190*393adcacSWolfgang Grandegger reg = <0x4500 0x100>; 191*393adcacSWolfgang Grandegger clock-frequency = <0>; 192*393adcacSWolfgang Grandegger interrupts = <42 2>; 193*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 194*393adcacSWolfgang Grandegger }; 195*393adcacSWolfgang Grandegger 196*393adcacSWolfgang Grandegger serial1: serial@4600 { 197*393adcacSWolfgang Grandegger cell-index = <1>; 198*393adcacSWolfgang Grandegger device_type = "serial"; 199*393adcacSWolfgang Grandegger compatible = "ns16550"; 200*393adcacSWolfgang Grandegger reg = <0x4600 0x100>; 201*393adcacSWolfgang Grandegger clock-frequency = <0>; 202*393adcacSWolfgang Grandegger interrupts = <42 2>; 203*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 204*393adcacSWolfgang Grandegger }; 205*393adcacSWolfgang Grandegger 206*393adcacSWolfgang Grandegger global-utilities@e0000 { //global utilities block 207*393adcacSWolfgang Grandegger compatible = "fsl,mpc8548-guts"; 208*393adcacSWolfgang Grandegger reg = <0xe0000 0x1000>; 209*393adcacSWolfgang Grandegger fsl,has-rstcr; 210*393adcacSWolfgang Grandegger }; 211*393adcacSWolfgang Grandegger 212*393adcacSWolfgang Grandegger mpic: pic@40000 { 213*393adcacSWolfgang Grandegger interrupt-controller; 214*393adcacSWolfgang Grandegger #address-cells = <0>; 215*393adcacSWolfgang Grandegger #interrupt-cells = <2>; 216*393adcacSWolfgang Grandegger reg = <0x40000 0x40000>; 217*393adcacSWolfgang Grandegger compatible = "chrp,open-pic"; 218*393adcacSWolfgang Grandegger device_type = "open-pic"; 219*393adcacSWolfgang Grandegger }; 220*393adcacSWolfgang Grandegger }; 221*393adcacSWolfgang Grandegger 222*393adcacSWolfgang Grandegger 223*393adcacSWolfgang Grandegger localbus { 224*393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-localbus", 225*393adcacSWolfgang Grandegger "fsl,pq3-localbus", 226*393adcacSWolfgang Grandegger "simple-bus"; 227*393adcacSWolfgang Grandegger #address-cells = <2>; 228*393adcacSWolfgang Grandegger #size-cells = <1>; 229*393adcacSWolfgang Grandegger reg = <0xe0005000 0x40>; 230*393adcacSWolfgang Grandegger 231*393adcacSWolfgang Grandegger ranges = <0 0 0xfc000000 0x04000000 232*393adcacSWolfgang Grandegger 2 0 0xc8000000 0x04000000 233*393adcacSWolfgang Grandegger 3 0 0xc0000000 0x00100000 234*393adcacSWolfgang Grandegger >; /* Overwritten by U-Boot */ 235*393adcacSWolfgang Grandegger 236*393adcacSWolfgang Grandegger nor_flash@0,0 { 237*393adcacSWolfgang Grandegger compatible = "amd,s29gl256n", "cfi-flash"; 238*393adcacSWolfgang Grandegger bank-width = <2>; 239*393adcacSWolfgang Grandegger reg = <0x0 0x000000 0x4000000>; 240*393adcacSWolfgang Grandegger #address-cells = <1>; 241*393adcacSWolfgang Grandegger #size-cells = <1>; 242*393adcacSWolfgang Grandegger partition@0 { 243*393adcacSWolfgang Grandegger label = "kernel"; 244*393adcacSWolfgang Grandegger reg = <0x0 0x1e0000>; 245*393adcacSWolfgang Grandegger read-only; 246*393adcacSWolfgang Grandegger }; 247*393adcacSWolfgang Grandegger partition@1e0000 { 248*393adcacSWolfgang Grandegger label = "dtb"; 249*393adcacSWolfgang Grandegger reg = <0x1e0000 0x20000>; 250*393adcacSWolfgang Grandegger }; 251*393adcacSWolfgang Grandegger partition@200000 { 252*393adcacSWolfgang Grandegger label = "root"; 253*393adcacSWolfgang Grandegger reg = <0x200000 0x200000>; 254*393adcacSWolfgang Grandegger }; 255*393adcacSWolfgang Grandegger partition@400000 { 256*393adcacSWolfgang Grandegger label = "user"; 257*393adcacSWolfgang Grandegger reg = <0x400000 0x3b80000>; 258*393adcacSWolfgang Grandegger }; 259*393adcacSWolfgang Grandegger partition@3f80000 { 260*393adcacSWolfgang Grandegger label = "env"; 261*393adcacSWolfgang Grandegger reg = <0x3f80000 0x40000>; 262*393adcacSWolfgang Grandegger read-only; 263*393adcacSWolfgang Grandegger }; 264*393adcacSWolfgang Grandegger partition@3fc0000 { 265*393adcacSWolfgang Grandegger label = "u-boot"; 266*393adcacSWolfgang Grandegger reg = <0x3fc0000 0x40000>; 267*393adcacSWolfgang Grandegger read-only; 268*393adcacSWolfgang Grandegger }; 269*393adcacSWolfgang Grandegger }; 270*393adcacSWolfgang Grandegger 271*393adcacSWolfgang Grandegger display@2,0 { 272*393adcacSWolfgang Grandegger compatible = "fujitsu,lime"; 273*393adcacSWolfgang Grandegger reg = <2 0x0 0x4000000>; 274*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 275*393adcacSWolfgang Grandegger interrupts = <6 1>; 276*393adcacSWolfgang Grandegger }; 277*393adcacSWolfgang Grandegger 278*393adcacSWolfgang Grandegger fpga_pic: fpga-pic@3,10 { 279*393adcacSWolfgang Grandegger compatible = "abb,socrates-fpga-pic"; 280*393adcacSWolfgang Grandegger reg = <3 0x10 0x10>; 281*393adcacSWolfgang Grandegger interrupt-controller; 282*393adcacSWolfgang Grandegger /* IRQs 2, 10, 11, active low, level-sensitive */ 283*393adcacSWolfgang Grandegger interrupts = <2 1 10 1 11 1>; 284*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 285*393adcacSWolfgang Grandegger #interrupt-cells = <3>; 286*393adcacSWolfgang Grandegger }; 287*393adcacSWolfgang Grandegger 288*393adcacSWolfgang Grandegger spi@3,60 { 289*393adcacSWolfgang Grandegger compatible = "abb,socrates-spi"; 290*393adcacSWolfgang Grandegger reg = <3 0x60 0x10>; 291*393adcacSWolfgang Grandegger interrupts = <8 4 0>; // number, type, routing 292*393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 293*393adcacSWolfgang Grandegger }; 294*393adcacSWolfgang Grandegger 295*393adcacSWolfgang Grandegger nand@3,70 { 296*393adcacSWolfgang Grandegger compatible = "abb,socrates-nand"; 297*393adcacSWolfgang Grandegger reg = <3 0x70 0x04>; 298*393adcacSWolfgang Grandegger bank-width = <1>; 299*393adcacSWolfgang Grandegger #address-cells = <1>; 300*393adcacSWolfgang Grandegger #size-cells = <1>; 301*393adcacSWolfgang Grandegger data@0 { 302*393adcacSWolfgang Grandegger label = "data"; 303*393adcacSWolfgang Grandegger reg = <0x0 0x40000000>; 304*393adcacSWolfgang Grandegger }; 305*393adcacSWolfgang Grandegger }; 306*393adcacSWolfgang Grandegger 307*393adcacSWolfgang Grandegger can@3,100 { 308*393adcacSWolfgang Grandegger compatible = "philips,sja1000"; 309*393adcacSWolfgang Grandegger reg = <3 0x100 0x80>; 310*393adcacSWolfgang Grandegger interrupts = <2 8 1>; // number, type, routing 311*393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 312*393adcacSWolfgang Grandegger }; 313*393adcacSWolfgang Grandegger }; 314*393adcacSWolfgang Grandegger 315*393adcacSWolfgang Grandegger pci0: pci@e0008000 { 316*393adcacSWolfgang Grandegger cell-index = <0>; 317*393adcacSWolfgang Grandegger #interrupt-cells = <1>; 318*393adcacSWolfgang Grandegger #size-cells = <2>; 319*393adcacSWolfgang Grandegger #address-cells = <3>; 320*393adcacSWolfgang Grandegger compatible = "fsl,mpc8540-pci"; 321*393adcacSWolfgang Grandegger device_type = "pci"; 322*393adcacSWolfgang Grandegger reg = <0xe0008000 0x1000>; 323*393adcacSWolfgang Grandegger clock-frequency = <66666666>; 324*393adcacSWolfgang Grandegger 325*393adcacSWolfgang Grandegger interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 326*393adcacSWolfgang Grandegger interrupt-map = < 327*393adcacSWolfgang Grandegger /* IDSEL 0x11 */ 328*393adcacSWolfgang Grandegger 0x8800 0x0 0x0 1 &mpic 5 1 329*393adcacSWolfgang Grandegger /* IDSEL 0x12 */ 330*393adcacSWolfgang Grandegger 0x9000 0x0 0x0 1 &mpic 4 1>; 331*393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 332*393adcacSWolfgang Grandegger interrupts = <24 2>; 333*393adcacSWolfgang Grandegger bus-range = <0x0 0x0>; 334*393adcacSWolfgang Grandegger ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 335*393adcacSWolfgang Grandegger 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x01000000>; 336*393adcacSWolfgang Grandegger }; 337*393adcacSWolfgang Grandegger 338*393adcacSWolfgang Grandegger}; 339