blob: a54a252ddb4cc80725b87c93c4b6da73df1ee4f9 [file] [log] [blame]
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +01001/*
2 * Device Tree Include file for Marvell Armada 385 SoC.
3 *
4 * Copyright (C) 2014 Marvell
5 *
6 * Lior Amsalem <alior@marvell.com>
7 * Gregory CLEMENT <gregory.clement@free-electrons.com>
8 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9 *
10 * This file is licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without any
12 * warranty of any kind, whether express or implied.
13 */
14
15#include "armada-38x.dtsi"
16
17/ {
18 model = "Marvell Armada 385 family SoC";
Gregory CLEMENT8dbdb8e2014-06-23 16:16:51 +020019 compatible = "marvell,armada385", "marvell,armada380";
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +010020
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
Thomas Petazzoni19b06d72014-04-14 15:54:08 +020024 enable-method = "marvell,armada-380-smp";
25
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +010026 cpu@0 {
27 device_type = "cpu";
28 compatible = "arm,cortex-a9";
29 reg = <0>;
30 };
31 cpu@1 {
32 device_type = "cpu";
33 compatible = "arm,cortex-a9";
34 reg = <1>;
35 };
36 };
37
38 soc {
39 internal-regs {
Maxime Ripard4a254322015-01-08 18:38:05 +010040 pinctrl@18000 {
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +010041 compatible = "marvell,mv88f6820-pinctrl";
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +010042 };
43 };
44
45 pcie-controller {
46 compatible = "marvell,armada-370-pcie";
47 status = "disabled";
48 device_type = "pci";
49
50 #address-cells = <3>;
51 #size-cells = <2>;
52
53 msi-parent = <&mpic>;
54 bus-range = <0x00 0xff>;
55
56 ranges =
57 <0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000
58 0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
59 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000
60 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000
61 0x82000000 0x1 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 0 MEM */
62 0x81000000 0x1 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 0 IO */
63 0x82000000 0x2 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 1 MEM */
64 0x81000000 0x2 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 1 IO */
65 0x82000000 0x3 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 2 MEM */
66 0x81000000 0x3 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 2 IO */
67 0x82000000 0x4 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 3 MEM */
68 0x81000000 0x4 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 3 IO */>;
69
70 /*
71 * This port can be either x4 or x1. When
72 * configured in x4 by the bootloader, then
73 * pcie@4,0 is not available.
74 */
75 pcie@1,0 {
76 device_type = "pci";
77 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
78 reg = <0x0800 0 0 0 0>;
79 #address-cells = <3>;
80 #size-cells = <2>;
81 #interrupt-cells = <1>;
82 ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
83 0x81000000 0 0 0x81000000 0x1 0 1 0>;
84 interrupt-map-mask = <0 0 0 0>;
Thomas Petazzonid11548e2014-02-20 12:11:31 +010085 interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +010086 marvell,pcie-port = <0>;
87 marvell,pcie-lane = <0>;
88 clocks = <&gateclk 8>;
89 status = "disabled";
90 };
91
92 /* x1 port */
93 pcie@2,0 {
94 device_type = "pci";
95 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
96 reg = <0x1000 0 0 0 0>;
97 #address-cells = <3>;
98 #size-cells = <2>;
99 #interrupt-cells = <1>;
100 ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
101 0x81000000 0 0 0x81000000 0x2 0 1 0>;
102 interrupt-map-mask = <0 0 0 0>;
Thomas Petazzonid11548e2014-02-20 12:11:31 +0100103 interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +0100104 marvell,pcie-port = <1>;
105 marvell,pcie-lane = <0>;
106 clocks = <&gateclk 5>;
107 status = "disabled";
108 };
109
110 /* x1 port */
111 pcie@3,0 {
112 device_type = "pci";
113 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
Thomas Petazzonic2a3dd92014-05-20 16:43:28 +0200114 reg = <0x1800 0 0 0 0>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +0100115 #address-cells = <3>;
116 #size-cells = <2>;
117 #interrupt-cells = <1>;
118 ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
119 0x81000000 0 0 0x81000000 0x3 0 1 0>;
120 interrupt-map-mask = <0 0 0 0>;
Thomas Petazzonid11548e2014-02-20 12:11:31 +0100121 interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +0100122 marvell,pcie-port = <2>;
123 marvell,pcie-lane = <0>;
124 clocks = <&gateclk 6>;
125 status = "disabled";
126 };
127
128 /*
129 * x1 port only available when pcie@1,0 is
130 * configured as a x1 port
131 */
132 pcie@4,0 {
133 device_type = "pci";
134 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
Thomas Petazzonic2a3dd92014-05-20 16:43:28 +0200135 reg = <0x2000 0 0 0 0>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +0100136 #address-cells = <3>;
137 #size-cells = <2>;
138 #interrupt-cells = <1>;
139 ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
140 0x81000000 0 0 0x81000000 0x4 0 1 0>;
141 interrupt-map-mask = <0 0 0 0>;
Thomas Petazzonid11548e2014-02-20 12:11:31 +0100142 interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
Thomas Petazzoni0d3d96a2014-02-17 15:23:28 +0100143 marvell,pcie-port = <3>;
144 marvell,pcie-lane = <0>;
145 clocks = <&gateclk 7>;
146 status = "disabled";
147 };
148 };
149 };
150};