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