1/* 2 * MPC8610 HPCD Device Tree Source 3 * 4 * Copyright 2007-2008 Freescale Semiconductor Inc. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License Version 2 as published 8 * by the Free Software Foundation. 9 */ 10 11/dts-v1/; 12 13/ { 14 model = "MPC8610HPCD"; 15 compatible = "fsl,MPC8610HPCD"; 16 #address-cells = <1>; 17 #size-cells = <1>; 18 19 aliases { 20 serial0 = &serial0; 21 serial1 = &serial1; 22 pci0 = &pci0; 23 pci1 = &pci1; 24 pci2 = &pci2; 25 }; 26 27 cpus { 28 #address-cells = <1>; 29 #size-cells = <0>; 30 31 PowerPC,8610@0 { 32 device_type = "cpu"; 33 reg = <0>; 34 d-cache-line-size = <32>; 35 i-cache-line-size = <32>; 36 d-cache-size = <32768>; // L1 37 i-cache-size = <32768>; // L1 38 sleep = <&pmc 0x00008000 0 // core 39 &pmc 0x00004000 0>; // timebase 40 timebase-frequency = <0>; // From uboot 41 bus-frequency = <0>; // From uboot 42 clock-frequency = <0>; // From uboot 43 }; 44 }; 45 46 memory { 47 device_type = "memory"; 48 reg = <0x00000000 0x20000000>; // 512M at 0x0 49 }; 50 51 localbus@e0005000 { 52 #address-cells = <2>; 53 #size-cells = <1>; 54 compatible = "fsl,mpc8610-elbc", "fsl,elbc", "simple-bus"; 55 reg = <0xe0005000 0x1000>; 56 interrupts = <19 2>; 57 interrupt-parent = <&mpic>; 58 ranges = <0 0 0xf8000000 0x08000000 59 1 0 0xf0000000 0x08000000 60 2 0 0xe8400000 0x00008000 61 4 0 0xe8440000 0x00008000 62 5 0 0xe8480000 0x00008000 63 6 0 0xe84c0000 0x00008000 64 3 0 0xe8000000 0x00000020>; 65 sleep = <&pmc 0x08000000 0>; 66 67 flash@0,0 { 68 compatible = "cfi-flash"; 69 reg = <0 0 0x8000000>; 70 bank-width = <2>; 71 device-width = <1>; 72 }; 73 74 flash@1,0 { 75 compatible = "cfi-flash"; 76 reg = <1 0 0x8000000>; 77 bank-width = <2>; 78 device-width = <1>; 79 }; 80 81 flash@2,0 { 82 compatible = "fsl,mpc8610-fcm-nand", 83 "fsl,elbc-fcm-nand"; 84 reg = <2 0 0x8000>; 85 }; 86 87 flash@4,0 { 88 compatible = "fsl,mpc8610-fcm-nand", 89 "fsl,elbc-fcm-nand"; 90 reg = <4 0 0x8000>; 91 }; 92 93 flash@5,0 { 94 compatible = "fsl,mpc8610-fcm-nand", 95 "fsl,elbc-fcm-nand"; 96 reg = <5 0 0x8000>; 97 }; 98 99 flash@6,0 { 100 compatible = "fsl,mpc8610-fcm-nand", 101 "fsl,elbc-fcm-nand"; 102 reg = <6 0 0x8000>; 103 }; 104 105 board-control@3,0 { 106 #address-cells = <1>; 107 #size-cells = <1>; 108 compatible = "fsl,fpga-pixis"; 109 reg = <3 0 0x20>; 110 ranges = <0 3 0 0x20>; 111 interrupt-parent = <&mpic>; 112 interrupts = <8 8>; 113 114 sdcsr_pio: gpio-controller@a { 115 #gpio-cells = <2>; 116 compatible = "fsl,fpga-pixis-gpio-bank"; 117 reg = <0xa 1>; 118 gpio-controller; 119 }; 120 }; 121 }; 122 123 soc@e0000000 { 124 #address-cells = <1>; 125 #size-cells = <1>; 126 #interrupt-cells = <2>; 127 device_type = "soc"; 128 compatible = "fsl,mpc8610-immr", "simple-bus"; 129 ranges = <0x0 0xe0000000 0x00100000>; 130 bus-frequency = <0>; 131 132 mcm-law@0 { 133 compatible = "fsl,mcm-law"; 134 reg = <0x0 0x1000>; 135 fsl,num-laws = <10>; 136 }; 137 138 mcm@1000 { 139 compatible = "fsl,mpc8610-mcm", "fsl,mcm"; 140 reg = <0x1000 0x1000>; 141 interrupts = <17 2>; 142 interrupt-parent = <&mpic>; 143 }; 144 145 i2c@3000 { 146 #address-cells = <1>; 147 #size-cells = <0>; 148 cell-index = <0>; 149 compatible = "fsl-i2c"; 150 reg = <0x3000 0x100>; 151 interrupts = <43 2>; 152 interrupt-parent = <&mpic>; 153 dfsrr; 154 155 cs4270:codec@4f { 156 compatible = "cirrus,cs4270"; 157 reg = <0x4f>; 158 /* MCLK source is a stand-alone oscillator */ 159 clock-frequency = <12288000>; 160 }; 161 }; 162 163 i2c@3100 { 164 #address-cells = <1>; 165 #size-cells = <0>; 166 cell-index = <1>; 167 compatible = "fsl-i2c"; 168 reg = <0x3100 0x100>; 169 interrupts = <43 2>; 170 interrupt-parent = <&mpic>; 171 sleep = <&pmc 0x00000004 0>; 172 dfsrr; 173 }; 174 175 serial0: serial@4500 { 176 cell-index = <0>; 177 device_type = "serial"; 178 compatible = "ns16550"; 179 reg = <0x4500 0x100>; 180 clock-frequency = <0>; 181 interrupts = <42 2>; 182 interrupt-parent = <&mpic>; 183 sleep = <&pmc 0x00000002 0>; 184 }; 185 186 serial1: serial@4600 { 187 cell-index = <1>; 188 device_type = "serial"; 189 compatible = "ns16550"; 190 reg = <0x4600 0x100>; 191 clock-frequency = <0>; 192 interrupts = <42 2>; 193 interrupt-parent = <&mpic>; 194 sleep = <&pmc 0x00000008 0>; 195 }; 196 197 spi@7000 { 198 #address-cells = <1>; 199 #size-cells = <0>; 200 compatible = "fsl,mpc8610-spi", "fsl,spi"; 201 reg = <0x7000 0x40>; 202 cell-index = <0>; 203 interrupts = <59 2>; 204 interrupt-parent = <&mpic>; 205 mode = "cpu"; 206 gpios = <&sdcsr_pio 7 0>; 207 sleep = <&pmc 0x00000800 0>; 208 209 mmc-slot@0 { 210 compatible = "fsl,mpc8610hpcd-mmc-slot", 211 "mmc-spi-slot"; 212 reg = <0>; 213 gpios = <&sdcsr_pio 0 1 /* nCD */ 214 &sdcsr_pio 1 0>; /* WP */ 215 voltage-ranges = <3300 3300>; 216 spi-max-frequency = <50000000>; 217 }; 218 }; 219 220 display@2c000 { 221 compatible = "fsl,diu"; 222 reg = <0x2c000 100>; 223 interrupts = <72 2>; 224 interrupt-parent = <&mpic>; 225 sleep = <&pmc 0x04000000 0>; 226 }; 227 228 mpic: interrupt-controller@40000 { 229 interrupt-controller; 230 #address-cells = <0>; 231 #interrupt-cells = <2>; 232 reg = <0x40000 0x40000>; 233 compatible = "chrp,open-pic"; 234 device_type = "open-pic"; 235 }; 236 237 msi@41600 { 238 compatible = "fsl,mpc8610-msi", "fsl,mpic-msi"; 239 reg = <0x41600 0x80>; 240 msi-available-ranges = <0 0x100>; 241 interrupts = < 242 0xe0 0 243 0xe1 0 244 0xe2 0 245 0xe3 0 246 0xe4 0 247 0xe5 0 248 0xe6 0 249 0xe7 0>; 250 interrupt-parent = <&mpic>; 251 }; 252 253 global-utilities@e0000 { 254 #address-cells = <1>; 255 #size-cells = <1>; 256 compatible = "fsl,mpc8610-guts"; 257 reg = <0xe0000 0x1000>; 258 ranges = <0 0xe0000 0x1000>; 259 fsl,has-rstcr; 260 261 pmc: power@70 { 262 compatible = "fsl,mpc8610-pmc", 263 "fsl,mpc8641d-pmc"; 264 reg = <0x70 0x20>; 265 }; 266 }; 267 268 wdt@e4000 { 269 compatible = "fsl,mpc8610-wdt"; 270 reg = <0xe4000 0x100>; 271 }; 272 273 ssi@16000 { 274 compatible = "fsl,mpc8610-ssi"; 275 cell-index = <0>; 276 reg = <0x16000 0x100>; 277 interrupt-parent = <&mpic>; 278 interrupts = <62 2>; 279 fsl,mode = "i2s-slave"; 280 codec-handle = <&cs4270>; 281 fsl,playback-dma = <&dma00>; 282 fsl,capture-dma = <&dma01>; 283 fsl,fifo-depth = <8>; 284 sleep = <&pmc 0 0x08000000>; 285 }; 286 287 ssi@16100 { 288 compatible = "fsl,mpc8610-ssi"; 289 status = "disabled"; 290 cell-index = <1>; 291 reg = <0x16100 0x100>; 292 interrupt-parent = <&mpic>; 293 interrupts = <63 2>; 294 fsl,fifo-depth = <8>; 295 sleep = <&pmc 0 0x04000000>; 296 }; 297 298 dma@21300 { 299 #address-cells = <1>; 300 #size-cells = <1>; 301 compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma"; 302 cell-index = <0>; 303 reg = <0x21300 0x4>; /* DMA general status register */ 304 ranges = <0x0 0x21100 0x200>; 305 sleep = <&pmc 0x00000400 0>; 306 307 dma00: dma-channel@0 { 308 compatible = "fsl,mpc8610-dma-channel", 309 "fsl,ssi-dma-channel"; 310 cell-index = <0>; 311 reg = <0x0 0x80>; 312 interrupt-parent = <&mpic>; 313 interrupts = <20 2>; 314 }; 315 dma01: dma-channel@1 { 316 compatible = "fsl,mpc8610-dma-channel", 317 "fsl,ssi-dma-channel"; 318 cell-index = <1>; 319 reg = <0x80 0x80>; 320 interrupt-parent = <&mpic>; 321 interrupts = <21 2>; 322 }; 323 dma-channel@2 { 324 compatible = "fsl,mpc8610-dma-channel", 325 "fsl,eloplus-dma-channel"; 326 cell-index = <2>; 327 reg = <0x100 0x80>; 328 interrupt-parent = <&mpic>; 329 interrupts = <22 2>; 330 }; 331 dma-channel@3 { 332 compatible = "fsl,mpc8610-dma-channel", 333 "fsl,eloplus-dma-channel"; 334 cell-index = <3>; 335 reg = <0x180 0x80>; 336 interrupt-parent = <&mpic>; 337 interrupts = <23 2>; 338 }; 339 }; 340 341 dma@c300 { 342 #address-cells = <1>; 343 #size-cells = <1>; 344 compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma"; 345 cell-index = <1>; 346 reg = <0xc300 0x4>; /* DMA general status register */ 347 ranges = <0x0 0xc100 0x200>; 348 sleep = <&pmc 0x00000200 0>; 349 350 dma-channel@0 { 351 compatible = "fsl,mpc8610-dma-channel", 352 "fsl,eloplus-dma-channel"; 353 cell-index = <0>; 354 reg = <0x0 0x80>; 355 interrupt-parent = <&mpic>; 356 interrupts = <76 2>; 357 }; 358 dma-channel@1 { 359 compatible = "fsl,mpc8610-dma-channel", 360 "fsl,eloplus-dma-channel"; 361 cell-index = <1>; 362 reg = <0x80 0x80>; 363 interrupt-parent = <&mpic>; 364 interrupts = <77 2>; 365 }; 366 dma-channel@2 { 367 compatible = "fsl,mpc8610-dma-channel", 368 "fsl,eloplus-dma-channel"; 369 cell-index = <2>; 370 reg = <0x100 0x80>; 371 interrupt-parent = <&mpic>; 372 interrupts = <78 2>; 373 }; 374 dma-channel@3 { 375 compatible = "fsl,mpc8610-dma-channel", 376 "fsl,eloplus-dma-channel"; 377 cell-index = <3>; 378 reg = <0x180 0x80>; 379 interrupt-parent = <&mpic>; 380 interrupts = <79 2>; 381 }; 382 }; 383 384 }; 385 386 pci0: pci@e0008000 { 387 compatible = "fsl,mpc8610-pci"; 388 device_type = "pci"; 389 #interrupt-cells = <1>; 390 #size-cells = <2>; 391 #address-cells = <3>; 392 reg = <0xe0008000 0x1000>; 393 bus-range = <0 0>; 394 ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000 395 0x01000000 0x0 0x00000000 0xe1000000 0x0 0x00100000>; 396 sleep = <&pmc 0x80000000 0>; 397 clock-frequency = <33333333>; 398 interrupt-parent = <&mpic>; 399 interrupts = <24 2>; 400 interrupt-map-mask = <0xf800 0 0 7>; 401 interrupt-map = < 402 /* IDSEL 0x11 */ 403 0x8800 0 0 1 &mpic 4 1 404 0x8800 0 0 2 &mpic 5 1 405 0x8800 0 0 3 &mpic 6 1 406 0x8800 0 0 4 &mpic 7 1 407 408 /* IDSEL 0x12 */ 409 0x9000 0 0 1 &mpic 5 1 410 0x9000 0 0 2 &mpic 6 1 411 0x9000 0 0 3 &mpic 7 1 412 0x9000 0 0 4 &mpic 4 1 413 >; 414 }; 415 416 pci1: pcie@e000a000 { 417 compatible = "fsl,mpc8641-pcie"; 418 device_type = "pci"; 419 #interrupt-cells = <1>; 420 #size-cells = <2>; 421 #address-cells = <3>; 422 reg = <0xe000a000 0x1000>; 423 bus-range = <1 3>; 424 ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 425 0x01000000 0x0 0x00000000 0xe3000000 0x0 0x00100000>; 426 sleep = <&pmc 0x40000000 0>; 427 clock-frequency = <33333333>; 428 interrupt-parent = <&mpic>; 429 interrupts = <26 2>; 430 interrupt-map-mask = <0xf800 0 0 7>; 431 432 interrupt-map = < 433 /* IDSEL 0x1b */ 434 0xd800 0 0 1 &mpic 2 1 435 436 /* IDSEL 0x1c*/ 437 0xe000 0 0 1 &mpic 1 1 438 0xe000 0 0 2 &mpic 1 1 439 0xe000 0 0 3 &mpic 1 1 440 0xe000 0 0 4 &mpic 1 1 441 442 /* IDSEL 0x1f */ 443 0xf800 0 0 1 &mpic 3 2 444 0xf800 0 0 2 &mpic 0 1 445 >; 446 447 pcie@0 { 448 reg = <0 0 0 0 0>; 449 #size-cells = <2>; 450 #address-cells = <3>; 451 device_type = "pci"; 452 ranges = <0x02000000 0x0 0xa0000000 453 0x02000000 0x0 0xa0000000 454 0x0 0x10000000 455 0x01000000 0x0 0x00000000 456 0x01000000 0x0 0x00000000 457 0x0 0x00100000>; 458 uli1575@0 { 459 reg = <0 0 0 0 0>; 460 #size-cells = <2>; 461 #address-cells = <3>; 462 ranges = <0x02000000 0x0 0xa0000000 463 0x02000000 0x0 0xa0000000 464 0x0 0x10000000 465 0x01000000 0x0 0x00000000 466 0x01000000 0x0 0x00000000 467 0x0 0x00100000>; 468 469 isa@1e { 470 device_type = "isa"; 471 #size-cells = <1>; 472 #address-cells = <2>; 473 reg = <0xf000 0 0 0 0>; 474 ranges = <1 0 0x01000000 0 0 475 0x00001000>; 476 477 rtc@70 { 478 compatible = "pnpPNP,b00"; 479 reg = <1 0x70 2>; 480 }; 481 }; 482 }; 483 }; 484 }; 485 486 pci2: pcie@e0009000 { 487 #address-cells = <3>; 488 #size-cells = <2>; 489 #interrupt-cells = <1>; 490 device_type = "pci"; 491 compatible = "fsl,mpc8641-pcie"; 492 reg = <0xe0009000 0x00001000>; 493 ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000 494 0x01000000 0 0x00000000 0xe2000000 0 0x00100000>; 495 bus-range = <0 255>; 496 interrupt-map-mask = <0xf800 0 0 7>; 497 interrupt-map = <0x0000 0 0 1 &mpic 4 1 498 0x0000 0 0 2 &mpic 5 1 499 0x0000 0 0 3 &mpic 6 1 500 0x0000 0 0 4 &mpic 7 1>; 501 interrupt-parent = <&mpic>; 502 interrupts = <25 2>; 503 sleep = <&pmc 0x20000000 0>; 504 clock-frequency = <33333333>; 505 }; 506}; 507