Sylvain,
Here's my second draft of a device tree for the lite5200b. Enjoy
Note: The interrupt mappings are not correct. I assumed 2 bits for L1
and 8 for L2. Nicolas' code uses 2 and 6.
g.
/*
* Lite5200b board Device Tree Source
*
* Copyright 2006 Secret Lab Technologies Ltd.
* Grant Likely <[EMAIL PROTECTED]>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
/ {
model = "Lite5200b";
compatible = "mpc5200";
#address-cells = <1>;
#size-cells = <1>;
cpus {
#cpus = <1>;
#address-cells = <1>;
#size-cells = <0>;
PowerPC,[EMAIL PROTECTED] {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <20>;
i-cache-line-size = <20>;
d-cache-size = <4000>; // L1, 16K
i-cache-size = <4000>; // L1, 16K
timebase-frequency = <0>; // from bootloader
bus-frequency = <0>; // from bootloader
clock-frequency = <0>; // from bootloader
32-bit;
};
};
memory {
device_type = "memory";
reg = <00000000 10000000>; // 256MB
};
[EMAIL PROTECTED] {
#interrupt-cells = <2>;
device_type = "soc";
ranges = <0 f0000000 f0010000>;
reg = <f0000000 00010000>;
bus-frequency = <0>; // from bootloader
[EMAIL PROTECTED] {
// 5200 interrupts are encoded into two levels;
// Level 1 is 2 bits; [CRIT=0,MAIN=1,PERF=2,SDMA=3]
// Level 2 is 5 bits
// The levels are encoded into a single cell:
// in binary: xxxx xx11 xxx2 2222
linux,phandle = <500>;
interrupt-controller;
device_type = "interrupt_controller";
compatible = "mpc52xx-pic";
reg = <500 80>;
built-in;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <600 10>;
interrupts = <109 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <610 10>;
interrupts = <10a 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <620 10>;
interrupts = <10b 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <630 10>;
interrupts = <10c 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <640 10>;
interrupts = <10d 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <650 10>;
interrupts = <10e 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <660 10>;
interrupts = <10f 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // General Purpose Timer
compatible = "mpc5200-gpt";
device_type = "gpt";
reg = <670 10>;
interrupts = <110 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // Real time clock
compatible = "mpc5200-rtc";
device_type = "rtc";
reg = <800 100>;
interrupts = <105 2 106 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "mscan";
compatible = "mpc5200-mscan";
interrupts = <211 2>;
interrupt-parent = <500>;
reg = <900 80>;
};
[EMAIL PROTECTED] {
device_type = "mscan";
compatible = "mpc5200-mscan";
interrupts = <212 2>;
interrupt-parent = <500>;
reg = <980 80>;
};
[EMAIL PROTECTED] {
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
device_type = "pci";
compatible = "mpc5200-pci";
// I actually know very little about setting up PCI,
// so anything here would just be pulled out of my
// butt. Instead I'll leave these placeholders until
// I figure out what it should be
//
// interrupt-map-mask = <>;
// interrupt-map = <>;
// bus-range = <>;
// ranges = <>;
//
clock-frequency = <3f940aa>;
interrupts = <208 2 209 2 20a 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "spi";
compatible = "mpc5200-spi";
reg = <f00 20>;
interrupts = <20d 2 20e 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] { // PSC1
device_type = "serial";
compatible = "mpc5200-psc";
reg = <2000 100>;
interrupts = <201 2>;
interrupt-parent = <500>;
};
// PSC2 in spi mode example
[EMAIL PROTECTED] { // PSC2
device_type = "spi";
compatible = "mpc5200-psc";
reg = <2200 100>;
interrupts = <202 2>;
interrupt-parent = <500>;
};
// PSC3 in CODEC mode example
[EMAIL PROTECTED] { // PSC3
device_type = "i2s";
compatible = "mpc5200-psc";
reg = <2400 100>;
interrupts = <203 2>;
interrupt-parent = <500>;
};
// PSC4 unconfigured
//[EMAIL PROTECTED] { // PSC4
// device_type = "serial";
// compatible = "mpc5200-psc";
// reg = <2600 100>;
// interrupts = <20b 2>;
// interrupt-parent = <500>;
//};
// PSC5 unconfigured
//[EMAIL PROTECTED] { // PSC5
// device_type = "serial";
// compatible = "mpc5200-psc";
// reg = <2800 100>;
// interrupts = <20c 2>;
// interrupt-parent = <500>;
//};
// PSC6 in AC97 mode example
[EMAIL PROTECTED] { // PSC6
device_type = "ac97";
compatible = "mpc5200-psc";
reg = <2c00 100>;
interrupts = <204 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "network";
compatible = "mpc5200-fec";
reg = <3000 800>;
mac-address = [ 02 03 04 05 06 07 ]; // Bad!
interrupts = <205 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "ata";
compatible = "mpc5200-ata";
reg = <3a00 100>;
interrupts = <207 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "i2c";
compatible = "mpc5200-i2c";
reg = <3d00 40>;
interrupts = <20f 2>;
interrupt-parent = <500>;
};
[EMAIL PROTECTED] {
device_type = "i2c";
compatible = "mpc5200-i2c";
reg = <3d40 40>;
interrupts = <210 2>;
interrupt-parent = <500>;
};
};
};
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
[EMAIL PROTECTED]
(403) 399-0195
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded