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