2012-06-13 19:01:28 +02:00
/*
* Device Tree Include file for Marvell Armada 370 family SoC
*
* Copyright (C) 2012 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.
*
* Contains definitions specific to the Armada 370 SoC that are not
* common to all Armada SoCs.
*/
/include/ "armada-370-xp.dtsi"
2013-04-12 16:29:10 +02:00
/include/ "skeleton.dtsi"
2012-06-13 19:01:28 +02:00
/ {
model = "Marvell Armada 370 family SoC";
compatible = "marvell,armada370", "marvell,armada-370-xp";
2012-09-19 22:53:01 +02:00
aliases {
gpio0 = &gpio0;
gpio1 = &gpio1;
gpio2 = &gpio2;
};
2012-06-13 19:01:28 +02:00
soc {
2013-05-16 17:55:16 +02:00
ranges = <0 0xd0000000 0x0100000 /* internal registers */
0xe0000000 0xe0000000 0x8100000 /* PCIe */>;
2013-04-12 16:29:09 +02:00
internal-regs {
system-controller@18200 {
2012-06-13 19:01:28 +02:00
compatible = "marvell,armada-370-xp-system-controller";
2013-04-12 16:29:08 +02:00
reg = <0x18200 0x100>;
2012-12-21 15:49:05 +01:00
};
2013-04-12 16:29:09 +02:00
L2: l2-cache {
compatible = "marvell,aurora-outer-cache";
reg = <0xd0008000 0x1000>;
cache-id-part = <0x100>;
wt-override;
2012-12-21 15:49:05 +01:00
};
2013-03-26 16:32:31 -07:00
2013-04-09 23:26:18 +02:00
interrupt-controller@20000 {
2013-04-12 16:29:09 +02:00
reg = <0x20a00 0x1d0>, <0x21870 0x58>;
2013-03-26 16:32:31 -07:00
};
2012-09-19 22:53:01 +02:00
2013-04-12 16:29:09 +02:00
pinctrl {
compatible = "marvell,mv88f6710-pinctrl";
reg = <0x18000 0x38>;
sdio_pins1: sdio-pins1 {
marvell,pins = "mpp9", "mpp11", "mpp12",
"mpp13", "mpp14", "mpp15";
marvell,function = "sd0";
};
sdio_pins2: sdio-pins2 {
marvell,pins = "mpp47", "mpp48", "mpp49",
"mpp50", "mpp51", "mpp52";
marvell,function = "sd0";
};
sdio_pins3: sdio-pins3 {
marvell,pins = "mpp48", "mpp49", "mpp50",
"mpp51", "mpp52", "mpp53";
marvell,function = "sd0";
};
2012-11-20 16:03:12 +01:00
};
2013-04-12 16:29:09 +02:00
gpio0: gpio@18100 {
compatible = "marvell,orion-gpio";
reg = <0x18100 0x40>;
ngpios = <32>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupts-cells = <2>;
interrupts = <82>, <83>, <84>, <85>;
2012-11-20 16:03:12 +01:00
};
2013-01-23 12:26:30 -03:00
2013-04-12 16:29:09 +02:00
gpio1: gpio@18140 {
compatible = "marvell,orion-gpio";
reg = <0x18140 0x40>;
ngpios = <32>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupts-cells = <2>;
interrupts = <87>, <88>, <89>, <90>;
};
2013-01-23 12:26:30 -03:00
2013-04-12 16:29:09 +02:00
gpio2: gpio@18180 {
compatible = "marvell,orion-gpio";
reg = <0x18180 0x40>;
ngpios = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupts-cells = <2>;
interrupts = <91>;
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
coreclk: mvebu-sar@18230 {
compatible = "marvell,armada-370-core-clock";
reg = <0x18230 0x08>;
#clock-cells = <1>;
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
gateclk: clock-gating-control@18220 {
compatible = "marvell,armada-370-gating-clock";
reg = <0x18220 0x4>;
clocks = <&coreclk 0>;
#clock-cells = <1>;
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
xor@60800 {
compatible = "marvell,orion-xor";
reg = <0x60800 0x100
0x60A00 0x100>;
status = "okay";
xor00 {
interrupts = <51>;
dmacap,memcpy;
dmacap,xor;
};
xor01 {
interrupts = <52>;
dmacap,memcpy;
dmacap,xor;
dmacap,memset;
};
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
xor@60900 {
compatible = "marvell,orion-xor";
reg = <0x60900 0x100
0x60b00 0x100>;
status = "okay";
xor10 {
interrupts = <94>;
dmacap,memcpy;
dmacap,xor;
};
xor11 {
interrupts = <95>;
dmacap,memcpy;
dmacap,xor;
dmacap,memset;
};
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
usb@50000 {
clocks = <&coreclk 0>;
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
usb@51000 {
clocks = <&coreclk 0>;
};
2013-04-09 23:06:33 +02:00
2013-04-12 16:29:09 +02:00
thermal@18300 {
compatible = "marvell,armada370-thermal";
reg = <0x18300 0x4
0x18304 0x4>;
status = "okay";
2013-04-09 23:06:33 +02:00
};
2013-04-12 16:29:09 +02:00
pcie-controller {
compatible = "marvell,armada-370-pcie";
status = "disabled";
2013-04-09 23:06:33 +02:00
device_type = "pci";
2013-04-12 16:29:09 +02:00
2013-04-09 23:06:33 +02:00
#address-cells = <3>;
#size-cells = <2>;
2013-04-12 16:29:09 +02:00
bus-range = <0x00 0xff>;
reg = <0x40000 0x2000>, <0x80000 0x2000>;
reg-names = "pcie0.0", "pcie1.0";
ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000 /* Port 0.0 registers */
0x82000000 0 0x80000 0x80000 0 0x00002000 /* Port 1.0 registers */
0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */
0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */
pcie@1,0 {
device_type = "pci";
assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
reg = <0x0800 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
ranges;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &mpic 58>;
marvell,pcie-port = <0>;
marvell,pcie-lane = <0>;
clocks = <&gateclk 5>;
status = "disabled";
};
pcie@2,0 {
device_type = "pci";
assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
reg = <0x1000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;
ranges;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &mpic 62>;
marvell,pcie-port = <1>;
marvell,pcie-lane = <0>;
clocks = <&gateclk 9>;
status = "disabled";
};
2013-04-09 23:06:33 +02:00
};
};
2012-06-13 19:01:28 +02:00
};
};