-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
powerpc/amigaone: Generic device tree for all AmigaOne boards
This device tree does not provide the correct CPU name, as various CPU models and revisions are used in AmigaOnes. Also the PCI root node does not contain a interrupt mapping property, as all boards have different interrupt routing. However the kernel can do a 1:1 mapping of all PCI interrupts, as only i8259 legacy interrupts are used. Signed-off-by: Gerhard Pircher <gerhard_pircher@gmx.net> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
- Loading branch information
Gerhard Pircher
authored and
Benjamin Herrenschmidt
committed
Feb 11, 2009
1 parent
54b318a
commit 50408b7
Showing
1 changed file
with
173 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
/* | ||
* AmigaOne Device Tree Source | ||
* | ||
* Copyright 2008 Gerhard Pircher (gerhard_pircher@gmx.net) | ||
* | ||
* 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. | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
/ { | ||
model = "AmigaOne"; | ||
compatible = "eyetech,amigaone"; | ||
coherency-off; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
cpus { | ||
#cpus = <1>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
cpu@0 { | ||
device_type = "cpu"; | ||
reg = <0>; | ||
d-cache-line-size = <32>; // 32 bytes | ||
i-cache-line-size = <32>; // 32 bytes | ||
d-cache-size = <32768>; // L1, 32K | ||
i-cache-size = <32768>; // L1, 32K | ||
timebase-frequency = <0>; // 33.3 MHz, from U-boot | ||
clock-frequency = <0>; // From U-boot | ||
bus-frequency = <0>; // From U-boot | ||
}; | ||
}; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0 0>; // From U-boot | ||
}; | ||
|
||
pci@80000000 { | ||
device_type = "pci"; | ||
compatible = "mai-logic,articia-s"; | ||
bus-frequency = <33333333>; | ||
bus-range = <0 0xff>; | ||
ranges = <0x01000000 0 0x00000000 0xfe000000 0 0x00c00000 // PCI I/O | ||
0x02000000 0 0x80000000 0x80000000 0 0x7d000000 // PCI memory | ||
0x02000000 0 0x00000000 0xfd000000 0 0x01000000>; // PCI alias memory (ISA) | ||
// Configuration address and data register. | ||
reg = <0xfec00cf8 4 | ||
0xfee00cfc 4>; | ||
8259-interrupt-acknowledge = <0xfef00000>; | ||
// Do not define a interrupt-parent here, if there is no | ||
// interrupt-map property. | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
|
||
isa@7 { | ||
device_type = "isa"; | ||
compatible = "pciclass,0601"; | ||
vendor-id = <0x00001106>; | ||
device-id = <0x00000686>; | ||
revision-id = <0x00000010>; | ||
class-code = <0x00060100>; | ||
subsystem-id = <0>; | ||
subsystem-vendor-id = <0>; | ||
devsel-speed = <0x00000001>; | ||
min-grant = <0>; | ||
max-latency = <0>; | ||
/* First 64k for I/O at 0x0 on PCI mapped to 0x0 on ISA. */ | ||
ranges = <0x00000001 0 0x01000000 0 0x00000000 0x00010000>; | ||
interrupt-parent = <&i8259>; | ||
#interrupt-cells = <2>; | ||
#address-cells = <2>; | ||
#size-cells = <1>; | ||
|
||
dma-controller@0 { | ||
compatible = "pnpPNP,200"; | ||
reg = <1 0x00000000 0x00000020 | ||
1 0x00000080 0x00000010 | ||
1 0x000000c0 0x00000020>; | ||
}; | ||
|
||
i8259: interrupt-controller@20 { | ||
device_type = "interrupt-controller"; | ||
compatible = "pnpPNP,000"; | ||
interrupt-controller; | ||
reg = <1 0x00000020 0x00000002 | ||
1 0x000000a0 0x00000002 | ||
1 0x000004d0 0x00000002>; | ||
reserved-interrupts = <2>; | ||
#interrupt-cells = <2>; | ||
}; | ||
|
||
timer@40 { | ||
// Also adds pcspkr to platform devices. | ||
compatible = "pnpPNP,100"; | ||
reg = <1 0x00000040 0x00000020>; | ||
}; | ||
|
||
8042@60 { | ||
device_type = "8042"; | ||
reg = <1 0x00000060 0x00000001 | ||
1 0x00000064 0x00000001>; | ||
interrupts = <1 3 12 3>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
keyboard@0 { | ||
compatible = "pnpPNP,303"; | ||
reg = <0>; | ||
}; | ||
|
||
mouse@1 { | ||
compatible = "pnpPNP,f03"; | ||
reg = <1>; | ||
}; | ||
}; | ||
|
||
rtc@70 { | ||
compatible = "pnpPNP,b00"; | ||
reg = <1 0x00000070 0x00000002>; | ||
interrupts = <8 3>; | ||
}; | ||
|
||
serial@3f8 { | ||
device_type = "serial"; | ||
compatible = "pnpPNP,501","pnpPNP,500"; | ||
reg = <1 0x000003f8 0x00000008>; | ||
interrupts = <4 3>; | ||
clock-frequency = <1843200>; | ||
current-speed = <115200>; | ||
}; | ||
|
||
serial@2f8 { | ||
device_type = "serial"; | ||
compatible = "pnpPNP,501","pnpPNP,500"; | ||
reg = <1 0x000002f8 0x00000008>; | ||
interrupts = <3 3>; | ||
clock-frequency = <1843200>; | ||
current-speed = <115200>; | ||
}; | ||
|
||
parallel@378 { | ||
device_type = "parallel"; | ||
// No ECP support for now, otherwise add "pnpPNP,401". | ||
compatible = "pnpPNP,400"; | ||
reg = <1 0x00000378 0x00000003 | ||
1 0x00000778 0x00000003>; | ||
}; | ||
|
||
fdc@3f0 { | ||
device_type = "fdc"; | ||
compatible = "pnpPNP,700"; | ||
reg = <1 0x000003f0 0x00000008>; | ||
interrupts = <6 3>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
disk@0 { | ||
reg = <0>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
chosen { | ||
linux,stdout-path = "/pci@80000000/isa@7/serial@3f8"; | ||
}; | ||
}; |