-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: mvebu: add Device Tree description of the Armada 380/385 SoCs
The Armada 380 and 385 SoCs are new SoCs from Marvell, based on a Cortex-A9 cores (single core for 380, dual core for 385) and a number of hardware blocks that are common with earlier SoCs from the mvebu family. The provided Device Tree describes the following parts of the SoC: * CPU * Device Bus * Clocks * Interrupt controllers: GIC and MPIC * GPIO controllers * I2C buses * L2 cache * MBus controller * Pinctrl * Serial * SPI buses * System controller (for reboot) * Timer * XOR engines * PCIe controllers * Network interfaces Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
- Loading branch information
1 parent
44e255a
commit 0d3d96a
Showing
3 changed files
with
611 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,117 @@ | ||
/* | ||
* Device Tree Include file for Marvell Armada 380 SoC. | ||
* | ||
* Copyright (C) 2014 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* 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. | ||
*/ | ||
|
||
/include/ "armada-38x.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada 380 family SoC"; | ||
compatible = "marvell,armada380", "marvell,armada38x"; | ||
|
||
cpus { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cpu@0 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a9"; | ||
reg = <0>; | ||
}; | ||
}; | ||
|
||
soc { | ||
internal-regs { | ||
pinctrl { | ||
compatible = "marvell,mv88f6810-pinctrl"; | ||
reg = <0x18000 0x20>; | ||
}; | ||
}; | ||
|
||
pcie-controller { | ||
compatible = "marvell,armada-370-pcie"; | ||
status = "disabled"; | ||
device_type = "pci"; | ||
|
||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
|
||
msi-parent = <&mpic>; | ||
bus-range = <0x00 0xff>; | ||
|
||
ranges = | ||
<0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 | ||
0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 | ||
0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 | ||
0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 | ||
0x82000000 0x1 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */ | ||
0x81000000 0x1 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO */ | ||
0x82000000 0x2 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */ | ||
0x81000000 0x2 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO */ | ||
0x82000000 0x3 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */ | ||
0x81000000 0x3 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO */>; | ||
|
||
/* x1 port */ | ||
pcie@1,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; | ||
reg = <0x0800 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 | ||
0x81000000 0 0 0x81000000 0x1 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 29 0x4>; | ||
marvell,pcie-port = <0>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 8>; | ||
status = "disabled"; | ||
}; | ||
|
||
/* x1 port */ | ||
pcie@2,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; | ||
reg = <0x1000 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 | ||
0x81000000 0 0 0x81000000 0x2 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 33 0x4>; | ||
marvell,pcie-port = <1>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 5>; | ||
status = "disabled"; | ||
}; | ||
|
||
/* x1 port */ | ||
pcie@3,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; | ||
reg = <0x1000 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 | ||
0x81000000 0 0 0x81000000 0x3 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 70 0x4>; | ||
marvell,pcie-port = <2>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 6>; | ||
status = "disabled"; | ||
}; | ||
}; | ||
}; | ||
}; |
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,149 @@ | ||
/* | ||
* Device Tree Include file for Marvell Armada 385 SoC. | ||
* | ||
* Copyright (C) 2014 Marvell | ||
* | ||
* Lior Amsalem <alior@marvell.com> | ||
* Gregory CLEMENT <gregory.clement@free-electrons.com> | ||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
* | ||
* 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. | ||
*/ | ||
|
||
#include "armada-38x.dtsi" | ||
|
||
/ { | ||
model = "Marvell Armada 385 family SoC"; | ||
compatible = "marvell,armada385", "marvell,armada38x"; | ||
|
||
cpus { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cpu@0 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a9"; | ||
reg = <0>; | ||
}; | ||
cpu@1 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a9"; | ||
reg = <1>; | ||
}; | ||
}; | ||
|
||
soc { | ||
internal-regs { | ||
pinctrl { | ||
compatible = "marvell,mv88f6820-pinctrl"; | ||
reg = <0x18000 0x20>; | ||
}; | ||
}; | ||
|
||
pcie-controller { | ||
compatible = "marvell,armada-370-pcie"; | ||
status = "disabled"; | ||
device_type = "pci"; | ||
|
||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
|
||
msi-parent = <&mpic>; | ||
bus-range = <0x00 0xff>; | ||
|
||
ranges = | ||
<0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 | ||
0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 | ||
0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 | ||
0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 | ||
0x82000000 0x1 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */ | ||
0x81000000 0x1 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO */ | ||
0x82000000 0x2 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */ | ||
0x81000000 0x2 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO */ | ||
0x82000000 0x3 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */ | ||
0x81000000 0x3 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO */ | ||
0x82000000 0x4 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 3 MEM */ | ||
0x81000000 0x4 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 3 IO */>; | ||
|
||
/* | ||
* This port can be either x4 or x1. When | ||
* configured in x4 by the bootloader, then | ||
* pcie@4,0 is not available. | ||
*/ | ||
pcie@1,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; | ||
reg = <0x0800 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 | ||
0x81000000 0 0 0x81000000 0x1 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 29 0x4>; | ||
marvell,pcie-port = <0>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 8>; | ||
status = "disabled"; | ||
}; | ||
|
||
/* x1 port */ | ||
pcie@2,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; | ||
reg = <0x1000 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 | ||
0x81000000 0 0 0x81000000 0x2 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 33 0x4>; | ||
marvell,pcie-port = <1>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 5>; | ||
status = "disabled"; | ||
}; | ||
|
||
/* x1 port */ | ||
pcie@3,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; | ||
reg = <0x1000 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0 | ||
0x81000000 0 0 0x81000000 0x3 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 70 0x4>; | ||
marvell,pcie-port = <2>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 6>; | ||
status = "disabled"; | ||
}; | ||
|
||
/* | ||
* x1 port only available when pcie@1,0 is | ||
* configured as a x1 port | ||
*/ | ||
pcie@4,0 { | ||
device_type = "pci"; | ||
assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; | ||
reg = <0x1000 0 0 0 0>; | ||
#address-cells = <3>; | ||
#size-cells = <2>; | ||
#interrupt-cells = <1>; | ||
ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0 | ||
0x81000000 0 0 0x81000000 0x4 0 1 0>; | ||
interrupt-map-mask = <0 0 0 0>; | ||
interrupt-map = <0 0 0 0 &gic 0 71 0x4>; | ||
marvell,pcie-port = <3>; | ||
marvell,pcie-lane = <0>; | ||
clocks = <&gateclk 7>; | ||
status = "disabled"; | ||
}; | ||
}; | ||
}; | ||
}; |
Oops, something went wrong.