blob: 6dae1bc59baf007b9293c5bc32edad3f8e388c32 [file] [log] [blame]
Thomas Petazzonif3b42b72012-09-13 17:41:48 +02001/*
2 * Device Tree Include file for Marvell Armada XP family SoC
3 *
4 * Copyright (C) 2012 Marvell
5 *
6 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 *
12 * Contains definitions specific to the Armada XP MV78260 SoC that are not
13 * common to all Armada XP SoCs.
14 */
15
16/include/ "armada-xp.dtsi"
17
18/ {
19 model = "Marvell Armada XP MV78260 SoC";
20 compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
21
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020022 aliases {
23 gpio0 = &gpio0;
24 gpio1 = &gpio1;
25 gpio2 = &gpio2;
26 };
27
Gregory CLEMENT9d202782012-11-17 15:22:24 +010028 cpus {
Thomas Petazzoni1b2529d2013-04-12 16:29:06 +020029 #address-cells = <1>;
30 #size-cells = <0>;
Gregory CLEMENT9d202782012-11-17 15:22:24 +010031
Thomas Petazzoni1b2529d2013-04-12 16:29:06 +020032 cpu@0 {
33 device_type = "cpu";
34 compatible = "marvell,sheeva-v7";
35 reg = <0>;
36 clocks = <&cpuclk 0>;
37 };
Gregory CLEMENT9d202782012-11-17 15:22:24 +010038
Thomas Petazzoni1b2529d2013-04-12 16:29:06 +020039 cpu@1 {
40 device_type = "cpu";
41 compatible = "marvell,sheeva-v7";
42 reg = <1>;
43 clocks = <&cpuclk 1>;
44 };
Gregory CLEMENT9d202782012-11-17 15:22:24 +010045 };
46
Thomas Petazzonif3b42b72012-09-13 17:41:48 +020047 soc {
48 pinctrl {
49 compatible = "marvell,mv78260-pinctrl";
50 reg = <0xd0018000 0x38>;
Thomas Petazzoni6d36e8e2012-12-21 15:49:06 +010051
52 sdio_pins: sdio-pins {
53 marvell,pins = "mpp30", "mpp31", "mpp32",
54 "mpp33", "mpp34", "mpp35";
55 marvell,function = "sd0";
56 };
Thomas Petazzonif3b42b72012-09-13 17:41:48 +020057 };
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020058
59 gpio0: gpio@d0018100 {
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010060 compatible = "marvell,orion-gpio";
61 reg = <0xd0018100 0x40>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020062 ngpios = <32>;
63 gpio-controller;
64 #gpio-cells = <2>;
65 interrupt-controller;
66 #interrupts-cells = <2>;
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010067 interrupts = <82>, <83>, <84>, <85>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020068 };
69
70 gpio1: gpio@d0018140 {
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010071 compatible = "marvell,orion-gpio";
72 reg = <0xd0018140 0x40>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020073 ngpios = <32>;
74 gpio-controller;
75 #gpio-cells = <2>;
76 interrupt-controller;
77 #interrupts-cells = <2>;
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010078 interrupts = <87>, <88>, <89>, <90>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020079 };
80
81 gpio2: gpio@d0018180 {
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010082 compatible = "marvell,orion-gpio";
83 reg = <0xd0018180 0x40>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020084 ngpios = <3>;
85 gpio-controller;
86 #gpio-cells = <2>;
87 interrupt-controller;
88 #interrupts-cells = <2>;
Thomas Petazzoni5f79c652013-01-07 17:26:58 +010089 interrupts = <91>;
Thomas Petazzoni397d59f2012-09-19 22:53:01 +020090 };
Thomas Petazzoni77916512013-01-06 11:10:41 +010091
92 ethernet@d0034000 {
93 compatible = "marvell,armada-370-neta";
94 reg = <0xd0034000 0x2500>;
95 interrupts = <14>;
96 clocks = <&gateclk 1>;
97 status = "disabled";
98 };
Thomas Petazzoni9d8f44f2013-04-09 23:06:34 +020099
100 /*
101 * MV78260 has 3 PCIe units Gen2.0: Two units can be
102 * configured as x4 or quad x1 lanes. One unit is
103 * x4/x1.
104 */
105 pcie-controller {
106 compatible = "marvell,armada-xp-pcie";
107 status = "disabled";
108 device_type = "pci";
109
110 #address-cells = <3>;
111 #size-cells = <2>;
112
113 bus-range = <0x00 0xff>;
114
115 ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */
116 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */
117 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */
118 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */
119 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */
120 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */
121 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */
122 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */
123 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */
124
125 pcie@1,0 {
126 device_type = "pci";
127 assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>;
128 reg = <0x0800 0 0 0 0>;
129 #address-cells = <3>;
130 #size-cells = <2>;
131 #interrupt-cells = <1>;
132 ranges;
133 interrupt-map-mask = <0 0 0 0>;
134 interrupt-map = <0 0 0 0 &mpic 58>;
135 marvell,pcie-port = <0>;
136 marvell,pcie-lane = <0>;
137 clocks = <&gateclk 5>;
138 status = "disabled";
139 };
140
141 pcie@2,0 {
142 device_type = "pci";
143 assigned-addresses = <0x82000800 0 0xd0044000 0 0x2000>;
144 reg = <0x1000 0 0 0 0>;
145 #address-cells = <3>;
146 #size-cells = <2>;
147 #interrupt-cells = <1>;
148 ranges;
149 interrupt-map-mask = <0 0 0 0>;
150 interrupt-map = <0 0 0 0 &mpic 59>;
151 marvell,pcie-port = <0>;
152 marvell,pcie-lane = <1>;
153 clocks = <&gateclk 6>;
154 status = "disabled";
155 };
156
157 pcie@3,0 {
158 device_type = "pci";
159 assigned-addresses = <0x82000800 0 0xd0048000 0 0x2000>;
160 reg = <0x1800 0 0 0 0>;
161 #address-cells = <3>;
162 #size-cells = <2>;
163 #interrupt-cells = <1>;
164 ranges;
165 interrupt-map-mask = <0 0 0 0>;
166 interrupt-map = <0 0 0 0 &mpic 60>;
167 marvell,pcie-port = <0>;
168 marvell,pcie-lane = <2>;
169 clocks = <&gateclk 7>;
170 status = "disabled";
171 };
172
173 pcie@4,0 {
174 device_type = "pci";
175 assigned-addresses = <0x82000800 0 0xd004c000 0 0x2000>;
176 reg = <0x2000 0 0 0 0>;
177 #address-cells = <3>;
178 #size-cells = <2>;
179 #interrupt-cells = <1>;
180 ranges;
181 interrupt-map-mask = <0 0 0 0>;
182 interrupt-map = <0 0 0 0 &mpic 61>;
183 marvell,pcie-port = <0>;
184 marvell,pcie-lane = <3>;
185 clocks = <&gateclk 8>;
186 status = "disabled";
187 };
188
189 pcie@9,0 {
190 device_type = "pci";
191 assigned-addresses = <0x82000800 0 0xd0042000 0 0x2000>;
192 reg = <0x4800 0 0 0 0>;
193 #address-cells = <3>;
194 #size-cells = <2>;
195 #interrupt-cells = <1>;
196 ranges;
197 interrupt-map-mask = <0 0 0 0>;
198 interrupt-map = <0 0 0 0 &mpic 99>;
199 marvell,pcie-port = <2>;
200 marvell,pcie-lane = <0>;
201 clocks = <&gateclk 26>;
202 status = "disabled";
203 };
204
205 pcie@10,0 {
206 device_type = "pci";
207 assigned-addresses = <0x82000800 0 0xd0082000 0 0x2000>;
208 reg = <0x5000 0 0 0 0>;
209 #address-cells = <3>;
210 #size-cells = <2>;
211 #interrupt-cells = <1>;
212 ranges;
213 interrupt-map-mask = <0 0 0 0>;
214 interrupt-map = <0 0 0 0 &mpic 103>;
215 marvell,pcie-port = <3>;
216 marvell,pcie-lane = <0>;
217 clocks = <&gateclk 27>;
218 status = "disabled";
219 };
220 };
Thomas Petazzonif3b42b72012-09-13 17:41:48 +0200221 };
222};