1393adcacSWolfgang Grandegger/* 2393adcacSWolfgang Grandegger * Device Tree Source for the Socrates board (MPC8544). 3393adcacSWolfgang Grandegger * 4393adcacSWolfgang Grandegger * Copyright (c) 2008 Emcraft Systems. 5393adcacSWolfgang Grandegger * Sergei Poselenov, <sposelenov@emcraft.com> 6393adcacSWolfgang Grandegger * 7393adcacSWolfgang Grandegger * This program is free software; you can redistribute it and/or modify it 8393adcacSWolfgang Grandegger * under the terms of the GNU General Public License as published by the 9393adcacSWolfgang Grandegger * Free Software Foundation; either version 2 of the License, or (at your 10393adcacSWolfgang Grandegger * option) any later version. 11393adcacSWolfgang Grandegger */ 12393adcacSWolfgang Grandegger 13393adcacSWolfgang Grandegger/dts-v1/; 14393adcacSWolfgang Grandegger 15393adcacSWolfgang Grandegger/ { 16393adcacSWolfgang Grandegger model = "abb,socrates"; 17393adcacSWolfgang Grandegger compatible = "abb,socrates"; 18393adcacSWolfgang Grandegger #address-cells = <1>; 19393adcacSWolfgang Grandegger #size-cells = <1>; 20393adcacSWolfgang Grandegger 21393adcacSWolfgang Grandegger aliases { 22393adcacSWolfgang Grandegger ethernet0 = &enet0; 23393adcacSWolfgang Grandegger ethernet1 = &enet1; 24393adcacSWolfgang Grandegger serial0 = &serial0; 25393adcacSWolfgang Grandegger serial1 = &serial1; 26393adcacSWolfgang Grandegger pci0 = &pci0; 27393adcacSWolfgang Grandegger }; 28393adcacSWolfgang Grandegger 29393adcacSWolfgang Grandegger cpus { 30393adcacSWolfgang Grandegger #address-cells = <1>; 31393adcacSWolfgang Grandegger #size-cells = <0>; 32393adcacSWolfgang Grandegger 33393adcacSWolfgang Grandegger PowerPC,8544@0 { 34393adcacSWolfgang Grandegger device_type = "cpu"; 35393adcacSWolfgang Grandegger reg = <0>; 36393adcacSWolfgang Grandegger d-cache-line-size = <32>; 37393adcacSWolfgang Grandegger i-cache-line-size = <32>; 38393adcacSWolfgang Grandegger d-cache-size = <0x8000>; // L1, 32K 39393adcacSWolfgang Grandegger i-cache-size = <0x8000>; // L1, 32K 40393adcacSWolfgang Grandegger timebase-frequency = <0>; 41393adcacSWolfgang Grandegger bus-frequency = <0>; 42393adcacSWolfgang Grandegger clock-frequency = <0>; 43393adcacSWolfgang Grandegger next-level-cache = <&L2>; 44393adcacSWolfgang Grandegger }; 45393adcacSWolfgang Grandegger }; 46393adcacSWolfgang Grandegger 47393adcacSWolfgang Grandegger memory { 48393adcacSWolfgang Grandegger device_type = "memory"; 49393adcacSWolfgang Grandegger reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50393adcacSWolfgang Grandegger }; 51393adcacSWolfgang Grandegger 52393adcacSWolfgang Grandegger soc8544@e0000000 { 53393adcacSWolfgang Grandegger #address-cells = <1>; 54393adcacSWolfgang Grandegger #size-cells = <1>; 55212f8c6dSWolfgang Grandegger device_type = "soc"; 56393adcacSWolfgang Grandegger 57393adcacSWolfgang Grandegger ranges = <0x00000000 0xe0000000 0x00100000>; 58393adcacSWolfgang Grandegger bus-frequency = <0>; // Filled in by U-Boot 59393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-immr", "simple-bus"; 60393adcacSWolfgang Grandegger 61e1a22897SKumar Gala ecm-law@0 { 62e1a22897SKumar Gala compatible = "fsl,ecm-law"; 63e1a22897SKumar Gala reg = <0x0 0x1000>; 64e1a22897SKumar Gala fsl,num-laws = <10>; 65e1a22897SKumar Gala }; 66e1a22897SKumar Gala 67e1a22897SKumar Gala ecm@1000 { 68e1a22897SKumar Gala compatible = "fsl,mpc8544-ecm", "fsl,ecm"; 69e1a22897SKumar Gala reg = <0x1000 0x1000>; 70e1a22897SKumar Gala interrupts = <17 2>; 71e1a22897SKumar Gala interrupt-parent = <&mpic>; 72e1a22897SKumar Gala }; 73e1a22897SKumar Gala 74393adcacSWolfgang Grandegger memory-controller@2000 { 75393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-memory-controller"; 76393adcacSWolfgang Grandegger reg = <0x2000 0x1000>; 77393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 78393adcacSWolfgang Grandegger interrupts = <18 2>; 79393adcacSWolfgang Grandegger }; 80393adcacSWolfgang Grandegger 81393adcacSWolfgang Grandegger L2: l2-cache-controller@20000 { 82393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-l2-cache-controller"; 83393adcacSWolfgang Grandegger reg = <0x20000 0x1000>; 84393adcacSWolfgang Grandegger cache-line-size = <32>; 85393adcacSWolfgang Grandegger cache-size = <0x40000>; // L2, 256K 86393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 87393adcacSWolfgang Grandegger interrupts = <16 2>; 88393adcacSWolfgang Grandegger }; 89393adcacSWolfgang Grandegger 90393adcacSWolfgang Grandegger i2c@3000 { 91393adcacSWolfgang Grandegger #address-cells = <1>; 92393adcacSWolfgang Grandegger #size-cells = <0>; 93393adcacSWolfgang Grandegger cell-index = <0>; 94c724d67dSWolfgang Grandegger compatible = "fsl,mpc8544-i2c", "fsl-i2c"; 95393adcacSWolfgang Grandegger reg = <0x3000 0x100>; 96393adcacSWolfgang Grandegger interrupts = <43 2>; 97393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 98c724d67dSWolfgang Grandegger fsl,preserve-clocking; 99393adcacSWolfgang Grandegger 100393adcacSWolfgang Grandegger dtt@28 { 101393adcacSWolfgang Grandegger compatible = "winbond,w83782d"; 102393adcacSWolfgang Grandegger reg = <0x28>; 103393adcacSWolfgang Grandegger }; 104393adcacSWolfgang Grandegger rtc@32 { 105393adcacSWolfgang Grandegger compatible = "epson,rx8025"; 106393adcacSWolfgang Grandegger reg = <0x32>; 107393adcacSWolfgang Grandegger interrupts = <7 1>; 108393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 109393adcacSWolfgang Grandegger }; 110393adcacSWolfgang Grandegger dtt@4c { 111393adcacSWolfgang Grandegger compatible = "dallas,ds75"; 112393adcacSWolfgang Grandegger reg = <0x4c>; 113393adcacSWolfgang Grandegger }; 114393adcacSWolfgang Grandegger ts@4a { 115393adcacSWolfgang Grandegger compatible = "ti,tsc2003"; 116393adcacSWolfgang Grandegger reg = <0x4a>; 117393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 118393adcacSWolfgang Grandegger interrupts = <8 1>; 119393adcacSWolfgang Grandegger }; 120393adcacSWolfgang Grandegger }; 121393adcacSWolfgang Grandegger 122393adcacSWolfgang Grandegger i2c@3100 { 123393adcacSWolfgang Grandegger #address-cells = <1>; 124393adcacSWolfgang Grandegger #size-cells = <0>; 125393adcacSWolfgang Grandegger cell-index = <1>; 126c724d67dSWolfgang Grandegger compatible = "fsl,mpc8544-i2c", "fsl-i2c"; 127393adcacSWolfgang Grandegger reg = <0x3100 0x100>; 128393adcacSWolfgang Grandegger interrupts = <43 2>; 129393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 130c724d67dSWolfgang Grandegger fsl,preserve-clocking; 131393adcacSWolfgang Grandegger }; 132393adcacSWolfgang Grandegger 133393adcacSWolfgang Grandegger enet0: ethernet@24000 { 134393adcacSWolfgang Grandegger #address-cells = <1>; 135393adcacSWolfgang Grandegger #size-cells = <1>; 136393adcacSWolfgang Grandegger cell-index = <0>; 137393adcacSWolfgang Grandegger device_type = "network"; 138393adcacSWolfgang Grandegger model = "eTSEC"; 139393adcacSWolfgang Grandegger compatible = "gianfar"; 140393adcacSWolfgang Grandegger reg = <0x24000 0x1000>; 141393adcacSWolfgang Grandegger ranges = <0x0 0x24000 0x1000>; 142393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 143393adcacSWolfgang Grandegger interrupts = <29 2 30 2 34 2>; 144393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 145393adcacSWolfgang Grandegger phy-handle = <&phy0>; 146393adcacSWolfgang Grandegger tbi-handle = <&tbi0>; 147393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 148393adcacSWolfgang Grandegger 149393adcacSWolfgang Grandegger mdio@520 { 150393adcacSWolfgang Grandegger #address-cells = <1>; 151393adcacSWolfgang Grandegger #size-cells = <0>; 152393adcacSWolfgang Grandegger compatible = "fsl,gianfar-mdio"; 153393adcacSWolfgang Grandegger reg = <0x520 0x20>; 154393adcacSWolfgang Grandegger 155393adcacSWolfgang Grandegger phy0: ethernet-phy@0 { 156393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 157393adcacSWolfgang Grandegger interrupts = <0 1>; 158393adcacSWolfgang Grandegger reg = <0>; 159393adcacSWolfgang Grandegger }; 160393adcacSWolfgang Grandegger phy1: ethernet-phy@1 { 161393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 162393adcacSWolfgang Grandegger interrupts = <0 1>; 163393adcacSWolfgang Grandegger reg = <1>; 164393adcacSWolfgang Grandegger }; 165393adcacSWolfgang Grandegger tbi0: tbi-phy@11 { 166393adcacSWolfgang Grandegger reg = <0x11>; 167393adcacSWolfgang Grandegger }; 168393adcacSWolfgang Grandegger }; 169393adcacSWolfgang Grandegger }; 170393adcacSWolfgang Grandegger 171393adcacSWolfgang Grandegger enet1: ethernet@26000 { 172393adcacSWolfgang Grandegger #address-cells = <1>; 173393adcacSWolfgang Grandegger #size-cells = <1>; 174393adcacSWolfgang Grandegger cell-index = <1>; 175393adcacSWolfgang Grandegger device_type = "network"; 176393adcacSWolfgang Grandegger model = "eTSEC"; 177393adcacSWolfgang Grandegger compatible = "gianfar"; 178393adcacSWolfgang Grandegger reg = <0x26000 0x1000>; 179393adcacSWolfgang Grandegger ranges = <0x0 0x26000 0x1000>; 180393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 181393adcacSWolfgang Grandegger interrupts = <31 2 32 2 33 2>; 182393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 183393adcacSWolfgang Grandegger phy-handle = <&phy1>; 184393adcacSWolfgang Grandegger tbi-handle = <&tbi1>; 185393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 186393adcacSWolfgang Grandegger 187393adcacSWolfgang Grandegger mdio@520 { 188393adcacSWolfgang Grandegger #address-cells = <1>; 189393adcacSWolfgang Grandegger #size-cells = <0>; 190393adcacSWolfgang Grandegger compatible = "fsl,gianfar-tbi"; 191393adcacSWolfgang Grandegger reg = <0x520 0x20>; 192393adcacSWolfgang Grandegger 193393adcacSWolfgang Grandegger tbi1: tbi-phy@11 { 194393adcacSWolfgang Grandegger reg = <0x11>; 195393adcacSWolfgang Grandegger }; 196393adcacSWolfgang Grandegger }; 197393adcacSWolfgang Grandegger }; 198393adcacSWolfgang Grandegger 199393adcacSWolfgang Grandegger serial0: serial@4500 { 200393adcacSWolfgang Grandegger cell-index = <0>; 201393adcacSWolfgang Grandegger device_type = "serial"; 202393adcacSWolfgang Grandegger compatible = "ns16550"; 203393adcacSWolfgang Grandegger reg = <0x4500 0x100>; 204393adcacSWolfgang Grandegger clock-frequency = <0>; 205393adcacSWolfgang Grandegger interrupts = <42 2>; 206393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 207393adcacSWolfgang Grandegger }; 208393adcacSWolfgang Grandegger 209393adcacSWolfgang Grandegger serial1: serial@4600 { 210393adcacSWolfgang Grandegger cell-index = <1>; 211393adcacSWolfgang Grandegger device_type = "serial"; 212393adcacSWolfgang Grandegger compatible = "ns16550"; 213393adcacSWolfgang Grandegger reg = <0x4600 0x100>; 214393adcacSWolfgang Grandegger clock-frequency = <0>; 215393adcacSWolfgang Grandegger interrupts = <42 2>; 216393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 217393adcacSWolfgang Grandegger }; 218393adcacSWolfgang Grandegger 219393adcacSWolfgang Grandegger global-utilities@e0000 { //global utilities block 220393adcacSWolfgang Grandegger compatible = "fsl,mpc8548-guts"; 221393adcacSWolfgang Grandegger reg = <0xe0000 0x1000>; 222393adcacSWolfgang Grandegger fsl,has-rstcr; 223393adcacSWolfgang Grandegger }; 224393adcacSWolfgang Grandegger 225393adcacSWolfgang Grandegger mpic: pic@40000 { 226393adcacSWolfgang Grandegger interrupt-controller; 227393adcacSWolfgang Grandegger #address-cells = <0>; 228393adcacSWolfgang Grandegger #interrupt-cells = <2>; 229393adcacSWolfgang Grandegger reg = <0x40000 0x40000>; 230393adcacSWolfgang Grandegger compatible = "chrp,open-pic"; 231393adcacSWolfgang Grandegger device_type = "open-pic"; 232393adcacSWolfgang Grandegger }; 233393adcacSWolfgang Grandegger }; 234393adcacSWolfgang Grandegger 235393adcacSWolfgang Grandegger 236393adcacSWolfgang Grandegger localbus { 237393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-localbus", 238393adcacSWolfgang Grandegger "fsl,pq3-localbus", 239393adcacSWolfgang Grandegger "simple-bus"; 240393adcacSWolfgang Grandegger #address-cells = <2>; 241393adcacSWolfgang Grandegger #size-cells = <1>; 242393adcacSWolfgang Grandegger reg = <0xe0005000 0x40>; 243c0f58950SDmitry Eremin-Solenikov interrupt-parent = <&mpic>; 244c0f58950SDmitry Eremin-Solenikov interrupts = <19 2>; 245393adcacSWolfgang Grandegger 246393adcacSWolfgang Grandegger ranges = <0 0 0xfc000000 0x04000000 247393adcacSWolfgang Grandegger 2 0 0xc8000000 0x04000000 248393adcacSWolfgang Grandegger 3 0 0xc0000000 0x00100000 249393adcacSWolfgang Grandegger >; /* Overwritten by U-Boot */ 250393adcacSWolfgang Grandegger 251393adcacSWolfgang Grandegger nor_flash@0,0 { 252393adcacSWolfgang Grandegger compatible = "amd,s29gl256n", "cfi-flash"; 253393adcacSWolfgang Grandegger bank-width = <2>; 254393adcacSWolfgang Grandegger reg = <0x0 0x000000 0x4000000>; 255393adcacSWolfgang Grandegger #address-cells = <1>; 256393adcacSWolfgang Grandegger #size-cells = <1>; 257393adcacSWolfgang Grandegger partition@0 { 258393adcacSWolfgang Grandegger label = "kernel"; 259393adcacSWolfgang Grandegger reg = <0x0 0x1e0000>; 260393adcacSWolfgang Grandegger read-only; 261393adcacSWolfgang Grandegger }; 262393adcacSWolfgang Grandegger partition@1e0000 { 263393adcacSWolfgang Grandegger label = "dtb"; 264393adcacSWolfgang Grandegger reg = <0x1e0000 0x20000>; 265393adcacSWolfgang Grandegger }; 266393adcacSWolfgang Grandegger partition@200000 { 267393adcacSWolfgang Grandegger label = "root"; 268393adcacSWolfgang Grandegger reg = <0x200000 0x200000>; 269393adcacSWolfgang Grandegger }; 270393adcacSWolfgang Grandegger partition@400000 { 271393adcacSWolfgang Grandegger label = "user"; 272393adcacSWolfgang Grandegger reg = <0x400000 0x3b80000>; 273393adcacSWolfgang Grandegger }; 274393adcacSWolfgang Grandegger partition@3f80000 { 275393adcacSWolfgang Grandegger label = "env"; 276393adcacSWolfgang Grandegger reg = <0x3f80000 0x40000>; 277393adcacSWolfgang Grandegger read-only; 278393adcacSWolfgang Grandegger }; 279393adcacSWolfgang Grandegger partition@3fc0000 { 280393adcacSWolfgang Grandegger label = "u-boot"; 281393adcacSWolfgang Grandegger reg = <0x3fc0000 0x40000>; 282393adcacSWolfgang Grandegger read-only; 283393adcacSWolfgang Grandegger }; 284393adcacSWolfgang Grandegger }; 285393adcacSWolfgang Grandegger 286393adcacSWolfgang Grandegger display@2,0 { 287393adcacSWolfgang Grandegger compatible = "fujitsu,lime"; 288393adcacSWolfgang Grandegger reg = <2 0x0 0x4000000>; 289393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 290393adcacSWolfgang Grandegger interrupts = <6 1>; 291393adcacSWolfgang Grandegger }; 292393adcacSWolfgang Grandegger 293393adcacSWolfgang Grandegger fpga_pic: fpga-pic@3,10 { 294393adcacSWolfgang Grandegger compatible = "abb,socrates-fpga-pic"; 295393adcacSWolfgang Grandegger reg = <3 0x10 0x10>; 296393adcacSWolfgang Grandegger interrupt-controller; 297393adcacSWolfgang Grandegger /* IRQs 2, 10, 11, active low, level-sensitive */ 298393adcacSWolfgang Grandegger interrupts = <2 1 10 1 11 1>; 299393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 300393adcacSWolfgang Grandegger #interrupt-cells = <3>; 301393adcacSWolfgang Grandegger }; 302393adcacSWolfgang Grandegger 303393adcacSWolfgang Grandegger spi@3,60 { 304393adcacSWolfgang Grandegger compatible = "abb,socrates-spi"; 305393adcacSWolfgang Grandegger reg = <3 0x60 0x10>; 306393adcacSWolfgang Grandegger interrupts = <8 4 0>; // number, type, routing 307393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 308393adcacSWolfgang Grandegger }; 309393adcacSWolfgang Grandegger 310393adcacSWolfgang Grandegger nand@3,70 { 311393adcacSWolfgang Grandegger compatible = "abb,socrates-nand"; 312393adcacSWolfgang Grandegger reg = <3 0x70 0x04>; 313393adcacSWolfgang Grandegger bank-width = <1>; 314393adcacSWolfgang Grandegger #address-cells = <1>; 315393adcacSWolfgang Grandegger #size-cells = <1>; 316393adcacSWolfgang Grandegger data@0 { 317393adcacSWolfgang Grandegger label = "data"; 318393adcacSWolfgang Grandegger reg = <0x0 0x40000000>; 319393adcacSWolfgang Grandegger }; 320393adcacSWolfgang Grandegger }; 321393adcacSWolfgang Grandegger 322393adcacSWolfgang Grandegger can@3,100 { 323393adcacSWolfgang Grandegger compatible = "philips,sja1000"; 324393adcacSWolfgang Grandegger reg = <3 0x100 0x80>; 325393adcacSWolfgang Grandegger interrupts = <2 8 1>; // number, type, routing 326393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 327393adcacSWolfgang Grandegger }; 328393adcacSWolfgang Grandegger }; 329393adcacSWolfgang Grandegger 330393adcacSWolfgang Grandegger pci0: pci@e0008000 { 331393adcacSWolfgang Grandegger #interrupt-cells = <1>; 332393adcacSWolfgang Grandegger #size-cells = <2>; 333393adcacSWolfgang Grandegger #address-cells = <3>; 334393adcacSWolfgang Grandegger compatible = "fsl,mpc8540-pci"; 335393adcacSWolfgang Grandegger device_type = "pci"; 336393adcacSWolfgang Grandegger reg = <0xe0008000 0x1000>; 337393adcacSWolfgang Grandegger clock-frequency = <66666666>; 338393adcacSWolfgang Grandegger 339393adcacSWolfgang Grandegger interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 340393adcacSWolfgang Grandegger interrupt-map = < 341393adcacSWolfgang Grandegger /* IDSEL 0x11 */ 342393adcacSWolfgang Grandegger 0x8800 0x0 0x0 1 &mpic 5 1 343393adcacSWolfgang Grandegger /* IDSEL 0x12 */ 344393adcacSWolfgang Grandegger 0x9000 0x0 0x0 1 &mpic 4 1>; 345393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 346393adcacSWolfgang Grandegger interrupts = <24 2>; 347393adcacSWolfgang Grandegger bus-range = <0x0 0x0>; 348393adcacSWolfgang Grandegger ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 349393adcacSWolfgang Grandegger 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x01000000>; 350393adcacSWolfgang Grandegger }; 351393adcacSWolfgang Grandegger 352393adcacSWolfgang Grandegger}; 353