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 reg = <0xe0000000 0x00001000>; // CCSRBAR 1M 59393adcacSWolfgang Grandegger bus-frequency = <0>; // Filled in by U-Boot 60393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-immr", "simple-bus"; 61393adcacSWolfgang Grandegger 62e1a22897SKumar Gala ecm-law@0 { 63e1a22897SKumar Gala compatible = "fsl,ecm-law"; 64e1a22897SKumar Gala reg = <0x0 0x1000>; 65e1a22897SKumar Gala fsl,num-laws = <10>; 66e1a22897SKumar Gala }; 67e1a22897SKumar Gala 68e1a22897SKumar Gala ecm@1000 { 69e1a22897SKumar Gala compatible = "fsl,mpc8544-ecm", "fsl,ecm"; 70e1a22897SKumar Gala reg = <0x1000 0x1000>; 71e1a22897SKumar Gala interrupts = <17 2>; 72e1a22897SKumar Gala interrupt-parent = <&mpic>; 73e1a22897SKumar Gala }; 74e1a22897SKumar Gala 75393adcacSWolfgang Grandegger memory-controller@2000 { 76393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-memory-controller"; 77393adcacSWolfgang Grandegger reg = <0x2000 0x1000>; 78393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 79393adcacSWolfgang Grandegger interrupts = <18 2>; 80393adcacSWolfgang Grandegger }; 81393adcacSWolfgang Grandegger 82393adcacSWolfgang Grandegger L2: l2-cache-controller@20000 { 83393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-l2-cache-controller"; 84393adcacSWolfgang Grandegger reg = <0x20000 0x1000>; 85393adcacSWolfgang Grandegger cache-line-size = <32>; 86393adcacSWolfgang Grandegger cache-size = <0x40000>; // L2, 256K 87393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 88393adcacSWolfgang Grandegger interrupts = <16 2>; 89393adcacSWolfgang Grandegger }; 90393adcacSWolfgang Grandegger 91393adcacSWolfgang Grandegger i2c@3000 { 92393adcacSWolfgang Grandegger #address-cells = <1>; 93393adcacSWolfgang Grandegger #size-cells = <0>; 94393adcacSWolfgang Grandegger cell-index = <0>; 95c724d67dSWolfgang Grandegger compatible = "fsl,mpc8544-i2c", "fsl-i2c"; 96393adcacSWolfgang Grandegger reg = <0x3000 0x100>; 97393adcacSWolfgang Grandegger interrupts = <43 2>; 98393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 99c724d67dSWolfgang Grandegger fsl,preserve-clocking; 100393adcacSWolfgang Grandegger 101393adcacSWolfgang Grandegger dtt@28 { 102393adcacSWolfgang Grandegger compatible = "winbond,w83782d"; 103393adcacSWolfgang Grandegger reg = <0x28>; 104393adcacSWolfgang Grandegger }; 105393adcacSWolfgang Grandegger rtc@32 { 106393adcacSWolfgang Grandegger compatible = "epson,rx8025"; 107393adcacSWolfgang Grandegger reg = <0x32>; 108393adcacSWolfgang Grandegger interrupts = <7 1>; 109393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 110393adcacSWolfgang Grandegger }; 111393adcacSWolfgang Grandegger dtt@4c { 112393adcacSWolfgang Grandegger compatible = "dallas,ds75"; 113393adcacSWolfgang Grandegger reg = <0x4c>; 114393adcacSWolfgang Grandegger }; 115393adcacSWolfgang Grandegger ts@4a { 116393adcacSWolfgang Grandegger compatible = "ti,tsc2003"; 117393adcacSWolfgang Grandegger reg = <0x4a>; 118393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 119393adcacSWolfgang Grandegger interrupts = <8 1>; 120393adcacSWolfgang Grandegger }; 121393adcacSWolfgang Grandegger }; 122393adcacSWolfgang Grandegger 123393adcacSWolfgang Grandegger i2c@3100 { 124393adcacSWolfgang Grandegger #address-cells = <1>; 125393adcacSWolfgang Grandegger #size-cells = <0>; 126393adcacSWolfgang Grandegger cell-index = <1>; 127c724d67dSWolfgang Grandegger compatible = "fsl,mpc8544-i2c", "fsl-i2c"; 128393adcacSWolfgang Grandegger reg = <0x3100 0x100>; 129393adcacSWolfgang Grandegger interrupts = <43 2>; 130393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 131c724d67dSWolfgang Grandegger fsl,preserve-clocking; 132393adcacSWolfgang Grandegger }; 133393adcacSWolfgang Grandegger 134393adcacSWolfgang Grandegger enet0: ethernet@24000 { 135393adcacSWolfgang Grandegger #address-cells = <1>; 136393adcacSWolfgang Grandegger #size-cells = <1>; 137393adcacSWolfgang Grandegger cell-index = <0>; 138393adcacSWolfgang Grandegger device_type = "network"; 139393adcacSWolfgang Grandegger model = "eTSEC"; 140393adcacSWolfgang Grandegger compatible = "gianfar"; 141393adcacSWolfgang Grandegger reg = <0x24000 0x1000>; 142393adcacSWolfgang Grandegger ranges = <0x0 0x24000 0x1000>; 143393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 144393adcacSWolfgang Grandegger interrupts = <29 2 30 2 34 2>; 145393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 146393adcacSWolfgang Grandegger phy-handle = <&phy0>; 147393adcacSWolfgang Grandegger tbi-handle = <&tbi0>; 148393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 149393adcacSWolfgang Grandegger 150393adcacSWolfgang Grandegger mdio@520 { 151393adcacSWolfgang Grandegger #address-cells = <1>; 152393adcacSWolfgang Grandegger #size-cells = <0>; 153393adcacSWolfgang Grandegger compatible = "fsl,gianfar-mdio"; 154393adcacSWolfgang Grandegger reg = <0x520 0x20>; 155393adcacSWolfgang Grandegger 156393adcacSWolfgang Grandegger phy0: ethernet-phy@0 { 157393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 158393adcacSWolfgang Grandegger interrupts = <0 1>; 159393adcacSWolfgang Grandegger reg = <0>; 160393adcacSWolfgang Grandegger }; 161393adcacSWolfgang Grandegger phy1: ethernet-phy@1 { 162393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 163393adcacSWolfgang Grandegger interrupts = <0 1>; 164393adcacSWolfgang Grandegger reg = <1>; 165393adcacSWolfgang Grandegger }; 166393adcacSWolfgang Grandegger tbi0: tbi-phy@11 { 167393adcacSWolfgang Grandegger reg = <0x11>; 168393adcacSWolfgang Grandegger }; 169393adcacSWolfgang Grandegger }; 170393adcacSWolfgang Grandegger }; 171393adcacSWolfgang Grandegger 172393adcacSWolfgang Grandegger enet1: ethernet@26000 { 173393adcacSWolfgang Grandegger #address-cells = <1>; 174393adcacSWolfgang Grandegger #size-cells = <1>; 175393adcacSWolfgang Grandegger cell-index = <1>; 176393adcacSWolfgang Grandegger device_type = "network"; 177393adcacSWolfgang Grandegger model = "eTSEC"; 178393adcacSWolfgang Grandegger compatible = "gianfar"; 179393adcacSWolfgang Grandegger reg = <0x26000 0x1000>; 180393adcacSWolfgang Grandegger ranges = <0x0 0x26000 0x1000>; 181393adcacSWolfgang Grandegger local-mac-address = [ 00 00 00 00 00 00 ]; 182393adcacSWolfgang Grandegger interrupts = <31 2 32 2 33 2>; 183393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 184393adcacSWolfgang Grandegger phy-handle = <&phy1>; 185393adcacSWolfgang Grandegger tbi-handle = <&tbi1>; 186393adcacSWolfgang Grandegger phy-connection-type = "rgmii-id"; 187393adcacSWolfgang Grandegger 188393adcacSWolfgang Grandegger mdio@520 { 189393adcacSWolfgang Grandegger #address-cells = <1>; 190393adcacSWolfgang Grandegger #size-cells = <0>; 191393adcacSWolfgang Grandegger compatible = "fsl,gianfar-tbi"; 192393adcacSWolfgang Grandegger reg = <0x520 0x20>; 193393adcacSWolfgang Grandegger 194393adcacSWolfgang Grandegger tbi1: tbi-phy@11 { 195393adcacSWolfgang Grandegger reg = <0x11>; 196393adcacSWolfgang Grandegger }; 197393adcacSWolfgang Grandegger }; 198393adcacSWolfgang Grandegger }; 199393adcacSWolfgang Grandegger 200393adcacSWolfgang Grandegger serial0: serial@4500 { 201393adcacSWolfgang Grandegger cell-index = <0>; 202393adcacSWolfgang Grandegger device_type = "serial"; 203393adcacSWolfgang Grandegger compatible = "ns16550"; 204393adcacSWolfgang Grandegger reg = <0x4500 0x100>; 205393adcacSWolfgang Grandegger clock-frequency = <0>; 206393adcacSWolfgang Grandegger interrupts = <42 2>; 207393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 208393adcacSWolfgang Grandegger }; 209393adcacSWolfgang Grandegger 210393adcacSWolfgang Grandegger serial1: serial@4600 { 211393adcacSWolfgang Grandegger cell-index = <1>; 212393adcacSWolfgang Grandegger device_type = "serial"; 213393adcacSWolfgang Grandegger compatible = "ns16550"; 214393adcacSWolfgang Grandegger reg = <0x4600 0x100>; 215393adcacSWolfgang Grandegger clock-frequency = <0>; 216393adcacSWolfgang Grandegger interrupts = <42 2>; 217393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 218393adcacSWolfgang Grandegger }; 219393adcacSWolfgang Grandegger 220393adcacSWolfgang Grandegger global-utilities@e0000 { //global utilities block 221393adcacSWolfgang Grandegger compatible = "fsl,mpc8548-guts"; 222393adcacSWolfgang Grandegger reg = <0xe0000 0x1000>; 223393adcacSWolfgang Grandegger fsl,has-rstcr; 224393adcacSWolfgang Grandegger }; 225393adcacSWolfgang Grandegger 226393adcacSWolfgang Grandegger mpic: pic@40000 { 227393adcacSWolfgang Grandegger interrupt-controller; 228393adcacSWolfgang Grandegger #address-cells = <0>; 229393adcacSWolfgang Grandegger #interrupt-cells = <2>; 230393adcacSWolfgang Grandegger reg = <0x40000 0x40000>; 231393adcacSWolfgang Grandegger compatible = "chrp,open-pic"; 232393adcacSWolfgang Grandegger device_type = "open-pic"; 233393adcacSWolfgang Grandegger }; 234393adcacSWolfgang Grandegger }; 235393adcacSWolfgang Grandegger 236393adcacSWolfgang Grandegger 237393adcacSWolfgang Grandegger localbus { 238393adcacSWolfgang Grandegger compatible = "fsl,mpc8544-localbus", 239393adcacSWolfgang Grandegger "fsl,pq3-localbus", 240393adcacSWolfgang Grandegger "simple-bus"; 241393adcacSWolfgang Grandegger #address-cells = <2>; 242393adcacSWolfgang Grandegger #size-cells = <1>; 243393adcacSWolfgang Grandegger reg = <0xe0005000 0x40>; 244393adcacSWolfgang Grandegger 245393adcacSWolfgang Grandegger ranges = <0 0 0xfc000000 0x04000000 246393adcacSWolfgang Grandegger 2 0 0xc8000000 0x04000000 247393adcacSWolfgang Grandegger 3 0 0xc0000000 0x00100000 248393adcacSWolfgang Grandegger >; /* Overwritten by U-Boot */ 249393adcacSWolfgang Grandegger 250393adcacSWolfgang Grandegger nor_flash@0,0 { 251393adcacSWolfgang Grandegger compatible = "amd,s29gl256n", "cfi-flash"; 252393adcacSWolfgang Grandegger bank-width = <2>; 253393adcacSWolfgang Grandegger reg = <0x0 0x000000 0x4000000>; 254393adcacSWolfgang Grandegger #address-cells = <1>; 255393adcacSWolfgang Grandegger #size-cells = <1>; 256393adcacSWolfgang Grandegger partition@0 { 257393adcacSWolfgang Grandegger label = "kernel"; 258393adcacSWolfgang Grandegger reg = <0x0 0x1e0000>; 259393adcacSWolfgang Grandegger read-only; 260393adcacSWolfgang Grandegger }; 261393adcacSWolfgang Grandegger partition@1e0000 { 262393adcacSWolfgang Grandegger label = "dtb"; 263393adcacSWolfgang Grandegger reg = <0x1e0000 0x20000>; 264393adcacSWolfgang Grandegger }; 265393adcacSWolfgang Grandegger partition@200000 { 266393adcacSWolfgang Grandegger label = "root"; 267393adcacSWolfgang Grandegger reg = <0x200000 0x200000>; 268393adcacSWolfgang Grandegger }; 269393adcacSWolfgang Grandegger partition@400000 { 270393adcacSWolfgang Grandegger label = "user"; 271393adcacSWolfgang Grandegger reg = <0x400000 0x3b80000>; 272393adcacSWolfgang Grandegger }; 273393adcacSWolfgang Grandegger partition@3f80000 { 274393adcacSWolfgang Grandegger label = "env"; 275393adcacSWolfgang Grandegger reg = <0x3f80000 0x40000>; 276393adcacSWolfgang Grandegger read-only; 277393adcacSWolfgang Grandegger }; 278393adcacSWolfgang Grandegger partition@3fc0000 { 279393adcacSWolfgang Grandegger label = "u-boot"; 280393adcacSWolfgang Grandegger reg = <0x3fc0000 0x40000>; 281393adcacSWolfgang Grandegger read-only; 282393adcacSWolfgang Grandegger }; 283393adcacSWolfgang Grandegger }; 284393adcacSWolfgang Grandegger 285393adcacSWolfgang Grandegger display@2,0 { 286393adcacSWolfgang Grandegger compatible = "fujitsu,lime"; 287393adcacSWolfgang Grandegger reg = <2 0x0 0x4000000>; 288393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 289393adcacSWolfgang Grandegger interrupts = <6 1>; 290393adcacSWolfgang Grandegger }; 291393adcacSWolfgang Grandegger 292393adcacSWolfgang Grandegger fpga_pic: fpga-pic@3,10 { 293393adcacSWolfgang Grandegger compatible = "abb,socrates-fpga-pic"; 294393adcacSWolfgang Grandegger reg = <3 0x10 0x10>; 295393adcacSWolfgang Grandegger interrupt-controller; 296393adcacSWolfgang Grandegger /* IRQs 2, 10, 11, active low, level-sensitive */ 297393adcacSWolfgang Grandegger interrupts = <2 1 10 1 11 1>; 298393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 299393adcacSWolfgang Grandegger #interrupt-cells = <3>; 300393adcacSWolfgang Grandegger }; 301393adcacSWolfgang Grandegger 302393adcacSWolfgang Grandegger spi@3,60 { 303393adcacSWolfgang Grandegger compatible = "abb,socrates-spi"; 304393adcacSWolfgang Grandegger reg = <3 0x60 0x10>; 305393adcacSWolfgang Grandegger interrupts = <8 4 0>; // number, type, routing 306393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 307393adcacSWolfgang Grandegger }; 308393adcacSWolfgang Grandegger 309393adcacSWolfgang Grandegger nand@3,70 { 310393adcacSWolfgang Grandegger compatible = "abb,socrates-nand"; 311393adcacSWolfgang Grandegger reg = <3 0x70 0x04>; 312393adcacSWolfgang Grandegger bank-width = <1>; 313393adcacSWolfgang Grandegger #address-cells = <1>; 314393adcacSWolfgang Grandegger #size-cells = <1>; 315393adcacSWolfgang Grandegger data@0 { 316393adcacSWolfgang Grandegger label = "data"; 317393adcacSWolfgang Grandegger reg = <0x0 0x40000000>; 318393adcacSWolfgang Grandegger }; 319393adcacSWolfgang Grandegger }; 320393adcacSWolfgang Grandegger 321393adcacSWolfgang Grandegger can@3,100 { 322393adcacSWolfgang Grandegger compatible = "philips,sja1000"; 323393adcacSWolfgang Grandegger reg = <3 0x100 0x80>; 324393adcacSWolfgang Grandegger interrupts = <2 8 1>; // number, type, routing 325393adcacSWolfgang Grandegger interrupt-parent = <&fpga_pic>; 326393adcacSWolfgang Grandegger }; 327393adcacSWolfgang Grandegger }; 328393adcacSWolfgang Grandegger 329393adcacSWolfgang Grandegger pci0: pci@e0008000 { 330393adcacSWolfgang Grandegger #interrupt-cells = <1>; 331393adcacSWolfgang Grandegger #size-cells = <2>; 332393adcacSWolfgang Grandegger #address-cells = <3>; 333393adcacSWolfgang Grandegger compatible = "fsl,mpc8540-pci"; 334393adcacSWolfgang Grandegger device_type = "pci"; 335393adcacSWolfgang Grandegger reg = <0xe0008000 0x1000>; 336393adcacSWolfgang Grandegger clock-frequency = <66666666>; 337393adcacSWolfgang Grandegger 338393adcacSWolfgang Grandegger interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 339393adcacSWolfgang Grandegger interrupt-map = < 340393adcacSWolfgang Grandegger /* IDSEL 0x11 */ 341393adcacSWolfgang Grandegger 0x8800 0x0 0x0 1 &mpic 5 1 342393adcacSWolfgang Grandegger /* IDSEL 0x12 */ 343393adcacSWolfgang Grandegger 0x9000 0x0 0x0 1 &mpic 4 1>; 344393adcacSWolfgang Grandegger interrupt-parent = <&mpic>; 345393adcacSWolfgang Grandegger interrupts = <24 2>; 346393adcacSWolfgang Grandegger bus-range = <0x0 0x0>; 347393adcacSWolfgang Grandegger ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000 348393adcacSWolfgang Grandegger 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x01000000>; 349393adcacSWolfgang Grandegger }; 350393adcacSWolfgang Grandegger 351393adcacSWolfgang Grandegger}; 352