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 1520238aa54SMarian Balakowicz spi@f00 { 15324ce6bc4SGrant Likely compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; 1540238aa54SMarian Balakowicz reg = <f00 20>; 1550238aa54SMarian Balakowicz interrupts = <2 d 0 2 e 0>; 1560238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1570238aa54SMarian Balakowicz }; 1580238aa54SMarian Balakowicz 1590238aa54SMarian Balakowicz usb@1000 { 16024ce6bc4SGrant Likely compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; 1610238aa54SMarian Balakowicz reg = <1000 ff>; 1620238aa54SMarian Balakowicz interrupts = <2 6 0>; 1630238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1640238aa54SMarian Balakowicz }; 1650238aa54SMarian Balakowicz 1660238aa54SMarian Balakowicz dma-controller@1200 { 16724ce6bc4SGrant Likely compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; 1680238aa54SMarian Balakowicz reg = <1200 80>; 1690238aa54SMarian Balakowicz interrupts = <3 0 0 3 1 0 3 2 0 3 3 0 1700238aa54SMarian Balakowicz 3 4 0 3 5 0 3 6 0 3 7 0 1710238aa54SMarian Balakowicz 3 8 0 3 9 0 3 a 0 3 b 0 1720238aa54SMarian Balakowicz 3 c 0 3 d 0 3 e 0 3 f 0>; 1730238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1740238aa54SMarian Balakowicz }; 1750238aa54SMarian Balakowicz 1760238aa54SMarian Balakowicz xlb@1f00 { 17724ce6bc4SGrant Likely compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; 1780238aa54SMarian Balakowicz reg = <1f00 100>; 1790238aa54SMarian Balakowicz }; 1800238aa54SMarian Balakowicz 1810238aa54SMarian Balakowicz serial@2000 { // PSC1 1820238aa54SMarian Balakowicz device_type = "serial"; 18324ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 1840238aa54SMarian Balakowicz port-number = <0>; // Logical port assignment 1850238aa54SMarian Balakowicz reg = <2000 100>; 1860238aa54SMarian Balakowicz interrupts = <2 1 0>; 1870238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1880238aa54SMarian Balakowicz }; 1890238aa54SMarian Balakowicz 1900238aa54SMarian Balakowicz // PSC2 in spi master mode 1910238aa54SMarian Balakowicz spi@2200 { // PSC2 19224ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-spi","fsl,mpc5200-psc-spi"; 1930238aa54SMarian Balakowicz cell-index = <1>; 1940238aa54SMarian Balakowicz reg = <2200 100>; 1950238aa54SMarian Balakowicz interrupts = <2 2 0>; 1960238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 1970238aa54SMarian Balakowicz }; 1980238aa54SMarian Balakowicz 1990238aa54SMarian Balakowicz // PSC5 in uart mode 2000238aa54SMarian Balakowicz serial@2800 { // PSC5 2010238aa54SMarian Balakowicz device_type = "serial"; 20224ce6bc4SGrant Likely compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 2030238aa54SMarian Balakowicz port-number = <4>; // Logical port assignment 2040238aa54SMarian Balakowicz reg = <2800 100>; 2050238aa54SMarian Balakowicz interrupts = <2 c 0>; 2060238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2070238aa54SMarian Balakowicz }; 2080238aa54SMarian Balakowicz 2090238aa54SMarian Balakowicz ethernet@3000 { 2100238aa54SMarian Balakowicz device_type = "network"; 21124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; 2120238aa54SMarian Balakowicz reg = <3000 800>; 21324ce6bc4SGrant Likely local-mac-address = [ 00 00 00 00 00 00 ]; 2140238aa54SMarian Balakowicz interrupts = <2 5 0>; 2150238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2160238aa54SMarian Balakowicz }; 2170238aa54SMarian Balakowicz 2180238aa54SMarian Balakowicz ata@3a00 { 21924ce6bc4SGrant Likely compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; 2200238aa54SMarian Balakowicz reg = <3a00 100>; 2210238aa54SMarian Balakowicz interrupts = <2 7 0>; 2220238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2230238aa54SMarian Balakowicz }; 2240238aa54SMarian Balakowicz 2250238aa54SMarian Balakowicz i2c@3d40 { 22624ce6bc4SGrant Likely compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 2270238aa54SMarian Balakowicz reg = <3d40 40>; 2280238aa54SMarian Balakowicz interrupts = <2 10 0>; 2290238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2300238aa54SMarian Balakowicz fsl5200-clocking; 2310238aa54SMarian Balakowicz }; 2320238aa54SMarian Balakowicz 2330238aa54SMarian Balakowicz sram@8000 { 23424ce6bc4SGrant Likely compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; 2350238aa54SMarian Balakowicz reg = <8000 4000>; 2360238aa54SMarian Balakowicz }; 2370238aa54SMarian Balakowicz }; 2380238aa54SMarian Balakowicz 2390238aa54SMarian Balakowicz lpb { 2400238aa54SMarian Balakowicz compatible = "fsl,lpb"; 2410238aa54SMarian Balakowicz #address-cells = <2>; 2420238aa54SMarian Balakowicz #size-cells = <1>; 2430238aa54SMarian Balakowicz ranges = <1 0 50000000 00010000 2440238aa54SMarian Balakowicz 2 0 50010000 00010000 2450238aa54SMarian Balakowicz 3 0 50020000 00010000>; 2460238aa54SMarian Balakowicz 2470238aa54SMarian Balakowicz // 8-bit DualPort SRAM on LocalPlus Bus CS1 2480238aa54SMarian Balakowicz kollmorgen@1,0 { 2490238aa54SMarian Balakowicz compatible = "promess,motionpro-kollmorgen"; 2500238aa54SMarian Balakowicz reg = <1 0 10000>; 2510238aa54SMarian Balakowicz interrupts = <1 1 0>; 2520238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2530238aa54SMarian Balakowicz }; 2540238aa54SMarian Balakowicz 2550238aa54SMarian Balakowicz // 8-bit board CPLD on LocalPlus Bus CS2 2560238aa54SMarian Balakowicz cpld@2,0 { 2570238aa54SMarian Balakowicz compatible = "promess,motionpro-cpld"; 2580238aa54SMarian Balakowicz reg = <2 0 10000>; 2590238aa54SMarian Balakowicz }; 2600238aa54SMarian Balakowicz 2610238aa54SMarian Balakowicz // 8-bit custom Anybus Module on LocalPlus Bus CS3 2620238aa54SMarian Balakowicz anybus@3,0 { 2630238aa54SMarian Balakowicz compatible = "promess,motionpro-anybus"; 2640238aa54SMarian Balakowicz reg = <3 0 10000>; 2650238aa54SMarian Balakowicz }; 2660238aa54SMarian Balakowicz pro_module_general@3,0 { 2670238aa54SMarian Balakowicz compatible = "promess,pro_module_general"; 2680238aa54SMarian Balakowicz reg = <3 0 3>; 2690238aa54SMarian Balakowicz }; 2700238aa54SMarian Balakowicz pro_module_dio@3,800 { 2710238aa54SMarian Balakowicz compatible = "promess,pro_module_dio"; 2720238aa54SMarian Balakowicz reg = <3 800 2>; 2730238aa54SMarian Balakowicz }; 2740238aa54SMarian Balakowicz }; 2750238aa54SMarian Balakowicz 2760238aa54SMarian Balakowicz pci@f0000d00 { 2770238aa54SMarian Balakowicz #interrupt-cells = <1>; 2780238aa54SMarian Balakowicz #size-cells = <2>; 2790238aa54SMarian Balakowicz #address-cells = <3>; 2800238aa54SMarian Balakowicz device_type = "pci"; 28124ce6bc4SGrant Likely compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; 2820238aa54SMarian Balakowicz reg = <f0000d00 100>; 2830238aa54SMarian Balakowicz interrupt-map-mask = <f800 0 0 7>; 2840238aa54SMarian Balakowicz interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot 2850238aa54SMarian Balakowicz c000 0 0 2 &mpc5200_pic 1 1 3 2860238aa54SMarian Balakowicz c000 0 0 3 &mpc5200_pic 1 2 3 2870238aa54SMarian Balakowicz c000 0 0 4 &mpc5200_pic 1 3 3 2880238aa54SMarian Balakowicz 2890238aa54SMarian Balakowicz c800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot 2900238aa54SMarian Balakowicz c800 0 0 2 &mpc5200_pic 1 2 3 2910238aa54SMarian Balakowicz c800 0 0 3 &mpc5200_pic 1 3 3 2920238aa54SMarian Balakowicz c800 0 0 4 &mpc5200_pic 0 0 3>; 2930238aa54SMarian Balakowicz clock-frequency = <0>; // From boot loader 2940238aa54SMarian Balakowicz interrupts = <2 8 0 2 9 0 2 a 0>; 2950238aa54SMarian Balakowicz interrupt-parent = <&mpc5200_pic>; 2960238aa54SMarian Balakowicz bus-range = <0 0>; 2970238aa54SMarian Balakowicz ranges = <42000000 0 80000000 80000000 0 20000000 2980238aa54SMarian Balakowicz 02000000 0 a0000000 a0000000 0 10000000 2990238aa54SMarian Balakowicz 01000000 0 00000000 b0000000 0 01000000>; 3000238aa54SMarian Balakowicz }; 3010238aa54SMarian Balakowicz}; 302