10238aa54SMarian Balakowicz/* 20238aa54SMarian Balakowicz * Motion-PRO board Device Tree Source 30238aa54SMarian Balakowicz * 40238aa54SMarian Balakowicz * Copyright (C) 2007 Semihalf 50238aa54SMarian Balakowicz * Marian Balakowicz <m8@semihalf.com> 60238aa54SMarian Balakowicz * 70238aa54SMarian Balakowicz * This program is free software; you can redistribute it and/or modify it 80238aa54SMarian Balakowicz * under the terms of the GNU General Public License as published by the 90238aa54SMarian Balakowicz * Free Software Foundation; either version 2 of the License, or (at your 100238aa54SMarian Balakowicz * option) any later version. 110238aa54SMarian Balakowicz */ 120238aa54SMarian Balakowicz 130238aa54SMarian Balakowicz/ { 140238aa54SMarian Balakowicz model = "promess,motionpro"; 150238aa54SMarian Balakowicz compatible = "promess,motionpro"; 160238aa54SMarian Balakowicz #address-cells = <1>; 170238aa54SMarian Balakowicz #size-cells = <1>; 180238aa54SMarian Balakowicz 190238aa54SMarian Balakowicz cpus { 200238aa54SMarian Balakowicz #address-cells = <1>; 210238aa54SMarian Balakowicz #size-cells = <0>; 220238aa54SMarian Balakowicz 230238aa54SMarian Balakowicz PowerPC,5200@0 { 240238aa54SMarian Balakowicz device_type = "cpu"; 250238aa54SMarian Balakowicz reg = <0>; 260238aa54SMarian Balakowicz d-cache-line-size = <20>; 270238aa54SMarian Balakowicz i-cache-line-size = <20>; 280238aa54SMarian Balakowicz d-cache-size = <4000>; // L1, 16K 290238aa54SMarian Balakowicz i-cache-size = <4000>; // L1, 16K 300238aa54SMarian Balakowicz timebase-frequency = <0>; // from bootloader 310238aa54SMarian Balakowicz bus-frequency = <0>; // from bootloader 320238aa54SMarian Balakowicz clock-frequency = <0>; // from bootloader 330238aa54SMarian Balakowicz }; 340238aa54SMarian Balakowicz }; 350238aa54SMarian Balakowicz 360238aa54SMarian Balakowicz memory { 370238aa54SMarian Balakowicz device_type = "memory"; 380238aa54SMarian Balakowicz reg = <00000000 04000000>; // 64MB 390238aa54SMarian Balakowicz }; 400238aa54SMarian Balakowicz 410238aa54SMarian Balakowicz soc5200@f0000000 { 4258a5be39SPaul Gortmaker #address-cells = <1>; 4358a5be39SPaul Gortmaker #size-cells = <1>; 4424ce6bc4SGrant Likely compatible = "fsl,mpc5200b-immr"; 450238aa54SMarian Balakowicz ranges = <0 f0000000 0000c000>; 460238aa54SMarian Balakowicz reg = <f0000000 00000100>; 470238aa54SMarian Balakowicz bus-frequency = <0>; // from bootloader 480238aa54SMarian Balakowicz system-frequency = <0>; // from bootloader 490238aa54SMarian Balakowicz 500238aa54SMarian Balakowicz cdm@200 { 5124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; 520238aa54SMarian Balakowicz reg = <200 38>; 530238aa54SMarian Balakowicz }; 540238aa54SMarian Balakowicz 5524ce6bc4SGrant Likely mpc5200_pic: interrupt-controller@500 { 560238aa54SMarian Balakowicz // 5200 interrupts are encoded into two levels; 570238aa54SMarian Balakowicz interrupt-controller; 580238aa54SMarian Balakowicz #interrupt-cells = <3>; 5924ce6bc4SGrant Likely compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; 600238aa54SMarian Balakowicz reg = <500 80>; 610238aa54SMarian Balakowicz }; 620238aa54SMarian Balakowicz 6324ce6bc4SGrant Likely timer@600 { // General Purpose Timer 640238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 650238aa54SMarian Balakowicz reg = <600 10>; 660238aa54SMarian Balakowicz interrupts = <1 9 0>; 670238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 680238aa54SMarian Balakowicz fsl,has-wdt; 690238aa54SMarian Balakowicz }; 700238aa54SMarian Balakowicz 7124ce6bc4SGrant Likely timer@610 { // General Purpose Timer 720238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 730238aa54SMarian Balakowicz reg = <610 10>; 740238aa54SMarian Balakowicz interrupts = <1 a 0>; 750238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 760238aa54SMarian Balakowicz }; 770238aa54SMarian Balakowicz 7824ce6bc4SGrant Likely timer@620 { // General Purpose Timer 790238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 800238aa54SMarian Balakowicz reg = <620 10>; 810238aa54SMarian Balakowicz interrupts = <1 b 0>; 820238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 830238aa54SMarian Balakowicz }; 840238aa54SMarian Balakowicz 8524ce6bc4SGrant Likely timer@630 { // General Purpose Timer 860238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 870238aa54SMarian Balakowicz reg = <630 10>; 880238aa54SMarian Balakowicz interrupts = <1 c 0>; 890238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 900238aa54SMarian Balakowicz }; 910238aa54SMarian Balakowicz 9224ce6bc4SGrant Likely timer@640 { // General Purpose Timer 930238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 940238aa54SMarian Balakowicz reg = <640 10>; 950238aa54SMarian Balakowicz interrupts = <1 d 0>; 960238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 970238aa54SMarian Balakowicz }; 980238aa54SMarian Balakowicz 9924ce6bc4SGrant Likely timer@650 { // General Purpose Timer 1000238aa54SMarian Balakowicz compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 1010238aa54SMarian Balakowicz reg = <650 10>; 1020238aa54SMarian Balakowicz interrupts = <1 e 0>; 1030238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1040238aa54SMarian Balakowicz }; 1050238aa54SMarian Balakowicz 1060238aa54SMarian Balakowicz motionpro-led@660 { // Motion-PRO status LED 1070238aa54SMarian Balakowicz compatible = "promess,motionpro-led"; 1080238aa54SMarian Balakowicz label = "motionpro-statusled"; 1090238aa54SMarian Balakowicz reg = <660 10>; 1100238aa54SMarian Balakowicz interrupts = <1 f 0>; 1110238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1120238aa54SMarian Balakowicz blink-delay = <64>; // 100 msec 1130238aa54SMarian Balakowicz }; 1140238aa54SMarian Balakowicz 1150238aa54SMarian Balakowicz motionpro-led@670 { // Motion-PRO ready LED 1160238aa54SMarian Balakowicz compatible = "promess,motionpro-led"; 1170238aa54SMarian Balakowicz label = "motionpro-readyled"; 1180238aa54SMarian Balakowicz reg = <670 10>; 1190238aa54SMarian Balakowicz interrupts = <1 10 0>; 1200238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1210238aa54SMarian Balakowicz }; 1220238aa54SMarian Balakowicz 1230238aa54SMarian Balakowicz rtc@800 { // Real time clock 12424ce6bc4SGrant Likely compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; 1250238aa54SMarian Balakowicz reg = <800 100>; 1260238aa54SMarian Balakowicz interrupts = <1 5 0 1 6 0>; 1270238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1280238aa54SMarian Balakowicz }; 1290238aa54SMarian Balakowicz 1300238aa54SMarian Balakowicz mscan@980 { 13124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; 1320238aa54SMarian Balakowicz interrupts = <2 12 0>; 1330238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1340238aa54SMarian Balakowicz reg = <980 80>; 1350238aa54SMarian Balakowicz }; 1360238aa54SMarian Balakowicz 1370238aa54SMarian Balakowicz gpio@b00 { 13824ce6bc4SGrant Likely compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; 1390238aa54SMarian Balakowicz reg = <b00 40>; 1400238aa54SMarian Balakowicz interrupts = <1 7 0>; 1410238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1420238aa54SMarian Balakowicz }; 1430238aa54SMarian Balakowicz 14424ce6bc4SGrant Likely gpio@c00 { 14524ce6bc4SGrant Likely compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; 1460238aa54SMarian Balakowicz reg = <c00 40>; 1470238aa54SMarian Balakowicz interrupts = <1 8 0 0 3 0>; 1480238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1490238aa54SMarian Balakowicz }; 1500238aa54SMarian Balakowicz 1510238aa54SMarian Balakowicz spi@f00 { 15224ce6bc4SGrant Likely compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; 1530238aa54SMarian Balakowicz reg = <f00 20>; 1540238aa54SMarian Balakowicz interrupts = <2 d 0 2 e 0>; 1550238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1560238aa54SMarian Balakowicz }; 1570238aa54SMarian Balakowicz 1580238aa54SMarian Balakowicz usb@1000 { 15924ce6bc4SGrant Likely compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; 1600238aa54SMarian Balakowicz reg = <1000 ff>; 1610238aa54SMarian Balakowicz interrupts = <2 6 0>; 1620238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1630238aa54SMarian Balakowicz }; 1640238aa54SMarian Balakowicz 1650238aa54SMarian Balakowicz dma-controller@1200 { 16624ce6bc4SGrant Likely compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; 1670238aa54SMarian Balakowicz reg = <1200 80>; 1680238aa54SMarian Balakowicz interrupts = <3 0 0 3 1 0 3 2 0 3 3 0 1690238aa54SMarian Balakowicz 3 4 0 3 5 0 3 6 0 3 7 0 1700238aa54SMarian Balakowicz 3 8 0 3 9 0 3 a 0 3 b 0 1710238aa54SMarian Balakowicz 3 c 0 3 d 0 3 e 0 3 f 0>; 1720238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1730238aa54SMarian Balakowicz }; 1740238aa54SMarian Balakowicz 1750238aa54SMarian Balakowicz xlb@1f00 { 17624ce6bc4SGrant Likely compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; 1770238aa54SMarian Balakowicz reg = <1f00 100>; 1780238aa54SMarian Balakowicz }; 1790238aa54SMarian Balakowicz 1800238aa54SMarian Balakowicz serial@2000 { // PSC1 1810238aa54SMarian Balakowicz device_type = "serial"; 18224ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 1830238aa54SMarian Balakowicz port-number = <0>; // Logical port assignment 1840238aa54SMarian Balakowicz reg = <2000 100>; 1850238aa54SMarian Balakowicz interrupts = <2 1 0>; 1860238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1870238aa54SMarian Balakowicz }; 1880238aa54SMarian Balakowicz 1890238aa54SMarian Balakowicz // PSC2 in spi master mode 1900238aa54SMarian Balakowicz spi@2200 { // PSC2 19124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi"; 1920238aa54SMarian Balakowicz cell-index = <1>; 1930238aa54SMarian Balakowicz reg = <2200 100>; 1940238aa54SMarian Balakowicz interrupts = <2 2 0>; 1950238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1960238aa54SMarian Balakowicz }; 1970238aa54SMarian Balakowicz 1980238aa54SMarian Balakowicz // PSC5 in uart mode 1990238aa54SMarian Balakowicz serial@2800 { // PSC5 2000238aa54SMarian Balakowicz device_type = "serial"; 20124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 2020238aa54SMarian Balakowicz port-number = <4>; // Logical port assignment 2030238aa54SMarian Balakowicz reg = <2800 100>; 2040238aa54SMarian Balakowicz interrupts = <2 c 0>; 2050238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2060238aa54SMarian Balakowicz }; 2070238aa54SMarian Balakowicz 2080238aa54SMarian Balakowicz ethernet@3000 { 2090238aa54SMarian Balakowicz device_type = "network"; 21024ce6bc4SGrant Likely compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; 211115e1adcSBartlomiej Sieka reg = <3000 400>; 21224ce6bc4SGrant Likely local-mac-address = [ 00 00 00 00 00 00 ]; 2130238aa54SMarian Balakowicz interrupts = <2 5 0>; 2140238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 215115e1adcSBartlomiej Sieka phy-handle = <&phy0>; 216115e1adcSBartlomiej Sieka }; 217115e1adcSBartlomiej Sieka 218115e1adcSBartlomiej Sieka mdio@3000 { 219115e1adcSBartlomiej Sieka #address-cells = <1>; 220115e1adcSBartlomiej Sieka #size-cells = <0>; 221115e1adcSBartlomiej Sieka compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; 222115e1adcSBartlomiej Sieka reg = <3000 400>; // fec range, since we need to setup fec interrupts 223115e1adcSBartlomiej Sieka interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. 224115e1adcSBartlomiej Sieka interrupt-parent = <&mpc5200_pic>; 225115e1adcSBartlomiej Sieka 226115e1adcSBartlomiej Sieka phy0: ethernet-phy@2 { 227115e1adcSBartlomiej Sieka device_type = "ethernet-phy"; 228115e1adcSBartlomiej Sieka reg = <2>; 229115e1adcSBartlomiej Sieka }; 2300238aa54SMarian Balakowicz }; 2310238aa54SMarian Balakowicz 2320238aa54SMarian Balakowicz ata@3a00 { 23324ce6bc4SGrant Likely compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; 2340238aa54SMarian Balakowicz reg = <3a00 100>; 2350238aa54SMarian Balakowicz interrupts = <2 7 0>; 2360238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2370238aa54SMarian Balakowicz }; 2380238aa54SMarian Balakowicz 2390238aa54SMarian Balakowicz i2c@3d40 { 240115e1adcSBartlomiej Sieka #address-cells = <1>; 241115e1adcSBartlomiej Sieka #size-cells = <0>; 24224ce6bc4SGrant Likely compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 2430238aa54SMarian Balakowicz reg = <3d40 40>; 2440238aa54SMarian Balakowicz interrupts = <2 10 0>; 2450238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2460238aa54SMarian Balakowicz fsl5200-clocking; 247115e1adcSBartlomiej Sieka 248115e1adcSBartlomiej Sieka rtc@68 { 249115e1adcSBartlomiej Sieka device_type = "rtc"; 250115e1adcSBartlomiej Sieka compatible = "dallas,ds1339"; 251115e1adcSBartlomiej Sieka reg = <68>; 252115e1adcSBartlomiej Sieka }; 2530238aa54SMarian Balakowicz }; 2540238aa54SMarian Balakowicz 2550238aa54SMarian Balakowicz sram@8000 { 25624ce6bc4SGrant Likely compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; 2570238aa54SMarian Balakowicz reg = <8000 4000>; 2580238aa54SMarian Balakowicz }; 2590238aa54SMarian Balakowicz }; 2600238aa54SMarian Balakowicz 2610238aa54SMarian Balakowicz lpb { 2620238aa54SMarian Balakowicz compatible = "fsl,lpb"; 2630238aa54SMarian Balakowicz #address-cells = <2>; 2640238aa54SMarian Balakowicz #size-cells = <1>; 265115e1adcSBartlomiej Sieka ranges = <0 0 ff000000 01000000 266115e1adcSBartlomiej Sieka 1 0 50000000 00010000 2670238aa54SMarian Balakowicz 2 0 50010000 00010000 2680238aa54SMarian Balakowicz 3 0 50020000 00010000>; 2690238aa54SMarian Balakowicz 2700238aa54SMarian Balakowicz // 8-bit DualPort SRAM on LocalPlus Bus CS1 2710238aa54SMarian Balakowicz kollmorgen@1,0 { 2720238aa54SMarian Balakowicz compatible = "promess,motionpro-kollmorgen"; 2730238aa54SMarian Balakowicz reg = <1 0 10000>; 2740238aa54SMarian Balakowicz interrupts = <1 1 0>; 2750238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2760238aa54SMarian Balakowicz }; 2770238aa54SMarian Balakowicz 2780238aa54SMarian Balakowicz // 8-bit board CPLD on LocalPlus Bus CS2 2790238aa54SMarian Balakowicz cpld@2,0 { 2800238aa54SMarian Balakowicz compatible = "promess,motionpro-cpld"; 2810238aa54SMarian Balakowicz reg = <2 0 10000>; 2820238aa54SMarian Balakowicz }; 2830238aa54SMarian Balakowicz 2840238aa54SMarian Balakowicz // 8-bit custom Anybus Module on LocalPlus Bus CS3 2850238aa54SMarian Balakowicz anybus@3,0 { 2860238aa54SMarian Balakowicz compatible = "promess,motionpro-anybus"; 2870238aa54SMarian Balakowicz reg = <3 0 10000>; 2880238aa54SMarian Balakowicz }; 2890238aa54SMarian Balakowicz pro_module_general@3,0 { 2900238aa54SMarian Balakowicz compatible = "promess,pro_module_general"; 2910238aa54SMarian Balakowicz reg = <3 0 3>; 2920238aa54SMarian Balakowicz }; 2930238aa54SMarian Balakowicz pro_module_dio@3,800 { 2940238aa54SMarian Balakowicz compatible = "promess,pro_module_dio"; 2950238aa54SMarian Balakowicz reg = <3 800 2>; 2960238aa54SMarian Balakowicz }; 297115e1adcSBartlomiej Sieka 298115e1adcSBartlomiej Sieka // 16-bit flash device at LocalPlus Bus CS0 299115e1adcSBartlomiej Sieka flash@0,0 { 300115e1adcSBartlomiej Sieka compatible = "cfi-flash"; 301115e1adcSBartlomiej Sieka reg = <0 0 01000000>; 302115e1adcSBartlomiej Sieka bank-width = <2>; 303115e1adcSBartlomiej Sieka device-width = <2>; 304115e1adcSBartlomiej Sieka #size-cells = <1>; 305115e1adcSBartlomiej Sieka #address-cells = <1>; 3060238aa54SMarian Balakowicz }; 3070238aa54SMarian Balakowicz }; 3080238aa54SMarian Balakowicz}; 309