From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: In-Reply-To: <20070510200859.GL19756@mag.az.mvista.com> References: <20070510200237.GA19756@mag.az.mvista.com> <20070510200859.GL19756@mag.az.mvista.com> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <61B56432-0804-4AF6-8243-17E760E56DD8@kernel.crashing.org> From: Kumar Gala Subject: Re: [PATCH 11/13] powerpc: Add DTS file for the Motorola PrPMC2800 platform Date: Thu, 10 May 2007 16:44:04 -0500 To: Mark A. Greer Cc: linuxppc-dev , Paul Mackerras List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On May 10, 2007, at 3:08 PM, Mark A. Greer wrote: > > Add the device tree source file for the prpmc2800 line of processor > PMCs. > Several of the property values are updated by the bootwrapper but sane > defaults have been chosen in case the bootwrapper can't determine the > exact processor board variant. The defaults should allow the kernel > to boot despite having non-optimal device tree property values. > > Signed-off-by: Mark A. Greer > --- > arch/powerpc/boot/dts/prpmc2800.dts | 316 ++++++++++++++++++++++++++ > 1 file changed, 316 insertions(+) > > Index: powerpc/arch/powerpc/boot/dts/prpmc2800.dts > =================================================================== > --- /dev/null > +++ powerpc/arch/powerpc/boot/dts/prpmc2800.dts > @@ -0,0 +1,316 @@ > +/* Device Tree Source for Motorola PrPMC2800 > + * > + * Author: Mark A. Greer > + * > + * 2007 (c) MontaVista, Software, Inc. This file is licensed under > + * the terms of the GNU General Public License version 2. This > program > + * is licensed "as is" without any warranty of any kind, whether > express > + * or implied. > + * > + * Property values that are labeled as "Default" will be updated > by bootwrapper > + * if it can determine the exact PrPMC type. > + * > + * To build: > + * dtc -I dts -O asm -o prpmc2800.S -b 0 prpmc2800.dts > + * dtc -I dts -O dtb -o prpmc2800.dtb -b 0 prpmc2800.dts > + */ > + > +/ { > + #address-cells = <1>; > + #size-cells = <1>; > + model = "PrPMC280/PrPMC2800"; /* Default */ > + compatible = "PrPMC2800"; > + coherency-off; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + PowerPC,7447 { > + device_type = "cpu"; > + reg = <0>; > + clock-frequency = <2bb0b140>; /* Default (733 MHz) */ > + bus-frequency = <7f28155>; /* 133.333333 MHz */ > + timebase-frequency = <1fca055>; /* 33.333333 MHz */ > + /* Following required by dtc but not used */ that's no reason not to have them set correctly. > + i-cache-line-size = <0>; > + d-cache-line-size = <0>; > + i-cache-size = <0>; > + d-cache-size = <0>; > + }; > + }; > + > + memory { > + device_type = "memory"; > + reg = <00000000 20000000>; /* Default (512MB) */ > + }; > + > + mv64x60@f1000000 { /* Marvell Discovery */ > + #address-cells = <1>; > + #size-cells = <1>; > + #interrupt-cells = <1>; > + model = "mv64360"; /* Default */ > + compatible = "mv64x60"; > + clock-frequency = <7f28155>; /* 133.333333 MHz */ > + reg = ; > + virtual-reg = ; > + ranges = <88000000 88000000 01000000 /* PCI 0 I/O Space */ > + 80000000 80000000 08000000 /* PCI 0 MEM Space */ > + a0000000 a0000000 04000000 /* User FLASH */ > + 00000000 f1000000 00010000 /* Bridge's regs */ > + f2000000 f2000000 00040000>; /* Integrated SRAM */ > + > + flash@a0000000 { > + device_type = "rom"; > + compatible = "direct-mapped"; > + reg = ; /* Default (64MB) */ > + probe-type = "CFI"; > + bank-width = <4>; > + partitions = <00000000 00100000 /* RO */ > + 00100000 00040001 /* RW */ > + 00140000 00400000 /* RO */ > + 00540000 039c0000 /* RO */ > + 03f00000 00100000>; /* RO */ > + partition-names = "FW Image A\0FW Config Data\0Kernel Image > \0Filesystem\0FW Image B"; > + }; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + device_type = "mdio"; > + compatible = "mv64x60-mdio"; > + ethernet-phy@1 { > + device_type = "ethernet-phy"; > + compatible = "bcm5421"; > + interrupts = <4c>; /* GPP 12 */ > + interrupt-parent = <&/mv64x60/pic>; > + reg = <1>; > + }; > + ethernet-phy@3 { > + device_type = "ethernet-phy"; > + compatible = "bcm5421"; > + interrupts = <4c>; /* GPP 12 */ > + interrupt-parent = <&/mv64x60/pic>; > + reg = <3>; > + }; > + }; > + > + ethernet@2000 { > + reg = <2000 2000>; > + eth0 { > + device_type = "network"; > + compatible = "mv64x60-eth"; should these compatible's be "marvell,mv64x60-eth"? and similar for the rest of the compatible props? > + block-index = <0>; > + interrupts = <20>; > + interrupt-parent = <&/mv64x60/pic>; > + phy = <&/mv64x60/mdio/ethernet-phy@1>; > + local-mac-address = [ 00 00 00 00 00 00 ]; > + }; > + eth1 { > + device_type = "network"; > + compatible = "mv64x60-eth"; > + block-index = <1>; > + interrupts = <21>; > + interrupt-parent = <&/mv64x60/pic>; > + phy = <&/mv64x60/mdio/ethernet-phy@3>; > + local-mac-address = [ 00 00 00 00 00 00 ]; > + }; > + }; > + > + sdma@4000 { > + device_type = "dma"; > + compatible = "mv64x60-sdma"; > + reg = <4000 c18>; > + virtual-reg = ; > + interrupt-base = <0>; > + interrupts = <24>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + sdma@6000 { > + device_type = "dma"; > + compatible = "mv64x60-sdma"; > + reg = <6000 c18>; > + virtual-reg = ; > + interrupt-base = <0>; > + interrupts = <26>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + brg@b200 { > + compatible = "mv64x60-brg"; > + reg = ; > + clock-src = <8>; > + clock-frequency = <7ed6b40>; > + current-speed = <2580>; > + bcr = <0>; > + }; > + > + brg@b208 { > + compatible = "mv64x60-brg"; > + reg = ; > + clock-src = <8>; > + clock-frequency = <7ed6b40>; > + current-speed = <2580>; > + bcr = <0>; > + }; > + > + cunit@f200 { > + reg = ; > + }; > + > + mpscrouting@b400 { > + reg = ; > + }; > + > + mpscintr@b800 { > + reg = ; > + virtual-reg = ; > + }; > + > + mpsc@8000 { > + device_type = "serial"; > + compatible = "mpsc"; > + reg = <8000 38>; > + virtual-reg = ; > + sdma = <&/mv64x60/sdma@4000>; > + brg = <&/mv64x60/brg@b200>; > + cunit = <&/mv64x60/cunit@f200>; > + mpscrouting = <&/mv64x60/mpscrouting@b400>; > + mpscintr = <&/mv64x60/mpscintr@b800>; > + block-index = <0>; > + max_idle = <28>; > + chr_1 = <0>; > + chr_2 = <0>; > + chr_10 = <3>; > + mpcr = <0>; > + interrupts = <28>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + mpsc@9000 { > + device_type = "serial"; > + compatible = "mpsc"; > + reg = <9000 38>; > + virtual-reg = ; > + sdma = <&/mv64x60/sdma@6000>; > + brg = <&/mv64x60/brg@b208>; > + cunit = <&/mv64x60/cunit@f200>; > + mpscrouting = <&/mv64x60/mpscrouting@b400>; > + mpscintr = <&/mv64x60/mpscintr@b800>; > + block-index = <1>; > + max_idle = <28>; > + chr_1 = <0>; > + chr_2 = <0>; > + chr_10 = <3>; > + mpcr = <0>; > + interrupts = <2a>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + i2c@c000 { > + device_type = "i2c"; > + compatible = "mv64x60-i2c"; > + reg = ; > + virtual-reg = ; > + freq_m = <8>; > + freq_n = <3>; > + timeout = <3e8>; /* 1000 = 1 second */ > + retries = <1>; > + interrupts = <25>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + pic { > + #interrupt-cells = <1>; > + #address-cells = <0>; > + compatible = "mv64x60-pic"; > + reg = <0000 88>; > + interrupt-controller; > + }; > + > + mpp@f000 { > + compatible = "mv64x60-mpp"; > + reg = ; > + }; > + > + gpp@f100 { > + compatible = "mv64x60-gpp"; > + reg = ; > + }; > + > + pci@80000000 { > + #address-cells = <3>; > + #size-cells = <2>; > + #interrupt-cells = <1>; > + device_type = "pci"; > + compatible = "mv64x60-pci"; > + reg = <0cf8 8>; > + ranges = <01000000 0 0 88000000 0 01000000 > + 02000000 0 80000000 80000000 0 08000000>; > + bus-range = <0 ff>; > + clock-frequency = <3EF1480>; > + interrupt-pci-iack = <0c34>; > + interrupt-parent = <&/mv64x60/pic>; > + interrupt-map-mask = ; > + interrupt-map = < > + /* IDSEL 0x0a */ > + 5000 0 0 1 &/mv64x60/pic 50 > + 5000 0 0 2 &/mv64x60/pic 51 > + 5000 0 0 3 &/mv64x60/pic 5b > + 5000 0 0 4 &/mv64x60/pic 5d > + > + /* IDSEL 0x0b */ > + 5800 0 0 1 &/mv64x60/pic 5b > + 5800 0 0 2 &/mv64x60/pic 5d > + 5800 0 0 3 &/mv64x60/pic 50 > + 5800 0 0 4 &/mv64x60/pic 51 > + > + /* IDSEL 0x0c */ > + 6000 0 0 1 &/mv64x60/pic 5b > + 6000 0 0 2 &/mv64x60/pic 5d > + 6000 0 0 3 &/mv64x60/pic 50 > + 6000 0 0 4 &/mv64x60/pic 51 > + > + /* IDSEL 0x0d */ > + 6800 0 0 1 &/mv64x60/pic 5d > + 6800 0 0 2 &/mv64x60/pic 50 > + 6800 0 0 3 &/mv64x60/pic 51 > + 6800 0 0 4 &/mv64x60/pic 5b > + >; > + }; > + > + cpu-error@0070 { > + compatible = "mv64x60-cpu-error"; > + reg = <0070 10 0128 28>; > + interrupts = <03>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + sram-ctrl@0380 { > + compatible = "mv64x60-sram-ctrl"; > + reg = <0380 80>; > + interrupts = <0d>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + pci-error@1d40 { > + compatible = "mv64x60-pci-error"; > + reg = <1d40 40 0c28 4>; > + interrupts = <0c>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + > + mem-ctrl@1400 { > + compatible = "mv64x60-mem-ctrl"; > + reg = <1400 60>; > + interrupts = <11>; > + interrupt-parent = <&/mv64x60/pic>; > + }; > + }; > + > + chosen { > + bootargs = "ip=on console=ttyMM0"; > + linux,stdout-path = "/mv64x60/mpsc@8000"; > + }; > +}; > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-dev