blob: a2a6451524dc6a58ffe283ea9c1a80a1373d68bb [file] [log] [blame]
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +02001/*
2 * Device Tree Include file for Marvell Armada XP family SoC
3 *
4 * Copyright (C) 2012 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 * Ben Dooks <ben.dooks@codethink.co.uk>
10 *
11 * This file is licensed under the terms of the GNU General Public
12 * License version 2. This program is licensed "as is" without any
13 * warranty of any kind, whether express or implied.
14 *
Thomas Petazzoni10b683c2012-08-02 17:13:47 +020015 * Contains definitions specific to the Armada XP SoC that are not
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020016 * common to all Armada SoCs.
17 */
18
Ezequiel Garcia38149882013-07-26 10:17:56 -030019#include "armada-370-xp.dtsi"
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020020
21/ {
22 model = "Marvell Armada XP family SoC";
23 compatible = "marvell,armadaxp", "marvell,armada-370-xp";
24
Willy Tarreaube5a9382013-06-03 18:47:36 +020025 aliases {
26 eth2 = &eth2;
27 };
28
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020029 soc {
Ezequiel Garcia5e12a612013-07-26 10:17:57 -030030 compatible = "marvell,armadaxp-mbus", "simple-bus";
31
Ezequiel Garcia0cd37542013-07-26 10:17:58 -030032 bootrom {
33 compatible = "marvell,bootrom";
34 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
35 };
36
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020037 internal-regs {
38 L2: l2-cache {
39 compatible = "marvell,aurora-system-cache";
40 reg = <0x08000 0x1000>;
41 cache-id-part = <0x100>;
Gregory CLEMENTa9ce1af2014-10-06 11:37:56 +020042 cache-unified;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020043 wt-override;
44 };
Thomas Petazzonib18ea4d2013-04-12 16:29:07 +020045
Arnaud Ebalard547c6532014-11-22 00:46:39 +010046 spi0: spi@10600 {
47 pinctrl-0 = <&spi0_pins>;
48 pinctrl-names = "default";
49 };
50
Jason Coopera095b1c2013-12-12 13:59:17 +000051 i2c0: i2c@11000 {
52 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
53 reg = <0x11000 0x100>;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020054 };
Thomas Petazzonib18ea4d2013-04-12 16:29:07 +020055
Jason Coopera095b1c2013-12-12 13:59:17 +000056 i2c1: i2c@11100 {
57 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
58 reg = <0x11100 0x100>;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020059 };
Thomas Petazzonib18ea4d2013-04-12 16:29:07 +020060
Arnaud Ebalard181d9b22014-11-22 00:45:35 +010061 uart2: serial@12200 {
Gregory CLEMENTb24212f2012-12-04 18:04:59 +010062 compatible = "snps,dw-apb-uart";
Arnaud Ebalardd352f412014-11-22 00:46:28 +010063 pinctrl-0 = <&uart2_pins>;
64 pinctrl-names = "default";
Gregory CLEMENT82a68262013-04-12 16:29:08 +020065 reg = <0x12200 0x100>;
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020066 reg-shift = <2>;
67 interrupts = <43>;
Heikki Krogeruse3661542013-03-06 11:23:33 +010068 reg-io-width = <1>;
Thomas Petazzoni64939dc2014-04-18 09:41:46 +020069 clocks = <&coreclk 0>;
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020070 status = "disabled";
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020071 };
Arnaud Ebalard181d9b22014-11-22 00:45:35 +010072
73 uart3: serial@12300 {
Gregory CLEMENTb24212f2012-12-04 18:04:59 +010074 compatible = "snps,dw-apb-uart";
Arnaud Ebalardd352f412014-11-22 00:46:28 +010075 pinctrl-0 = <&uart3_pins>;
76 pinctrl-names = "default";
Gregory CLEMENT82a68262013-04-12 16:29:08 +020077 reg = <0x12300 0x100>;
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020078 reg-shift = <2>;
79 interrupts = <44>;
Heikki Krogeruse3661542013-03-06 11:23:33 +010080 reg-io-width = <1>;
Thomas Petazzoni64939dc2014-04-18 09:41:46 +020081 clocks = <&coreclk 0>;
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020082 status = "disabled";
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020083 };
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +020084
Jason Coopera095b1c2013-12-12 13:59:17 +000085 system-controller@18200 {
86 compatible = "marvell,armada-370-xp-system-controller";
87 reg = <0x18200 0x500>;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020088 };
Gregory CLEMENT9d202782012-11-17 15:22:24 +010089
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020090 gateclk: clock-gating-control@18220 {
91 compatible = "marvell,armada-xp-gating-clock";
92 reg = <0x18220 0x4>;
93 clocks = <&coreclk 0>;
94 #clock-cells = <1>;
95 };
Gregory CLEMENT9d202782012-11-17 15:22:24 +010096
Jason Coopera095b1c2013-12-12 13:59:17 +000097 coreclk: mvebu-sar@18230 {
98 compatible = "marvell,armada-xp-core-clock";
99 reg = <0x18230 0x08>;
100 #clock-cells = <1>;
101 };
102
103 thermal@182b0 {
104 compatible = "marvell,armadaxp-thermal";
105 reg = <0x182b0 0x4
106 0x184d0 0x4>;
107 status = "okay";
108 };
109
110 cpuclk: clock-complex@18700 {
111 #clock-cells = <1>;
112 compatible = "marvell,armada-xp-cpu-clock";
Thomas Petazzoni38436072014-07-09 17:45:12 +0200113 reg = <0x18700 0xA0>, <0x1c054 0x10>;
Jason Coopera095b1c2013-12-12 13:59:17 +0000114 clocks = <&coreclk 1>;
115 };
116
117 interrupt-controller@20000 {
118 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
119 };
120
121 timer@20300 {
122 compatible = "marvell,armada-xp-timer";
123 clocks = <&coreclk 2>, <&refclk>;
124 clock-names = "nbclk", "fixed";
125 };
126
Ezequiel Garcia05afeeb2014-02-10 20:00:32 -0300127 watchdog@20300 {
128 compatible = "marvell,armada-xp-wdt";
129 clocks = <&coreclk 2>, <&refclk>;
130 clock-names = "nbclk", "fixed";
131 };
132
Gregory CLEMENTb6249d42014-04-14 15:50:32 +0200133 cpurst@20800 {
134 compatible = "marvell,armada-370-cpu-reset";
135 reg = <0x20800 0x20>;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200136 };
Thomas Petazzoni323c1012012-09-04 15:06:43 +0200137
Willy Tarreaube5a9382013-06-03 18:47:36 +0200138 eth2: ethernet@30000 {
Thomas Petazzoni323c1012012-09-04 15:06:43 +0200139 compatible = "marvell,armada-370-neta";
Thomas Petazzonicf8088c2013-05-21 12:33:27 +0200140 reg = <0x30000 0x4000>;
Thomas Petazzoni323c1012012-09-04 15:06:43 +0200141 interrupts = <12>;
Thomas Petazzoni4aa935a2012-11-19 14:18:09 +0100142 clocks = <&gateclk 2>;
Thomas Petazzoni323c1012012-09-04 15:06:43 +0200143 status = "disabled";
Thomas Petazzonia1d53da2012-11-20 16:03:19 +0100144 };
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200145
Jason Coopera095b1c2013-12-12 13:59:17 +0000146 usb@50000 {
147 clocks = <&gateclk 18>;
148 };
149
150 usb@51000 {
151 clocks = <&gateclk 19>;
152 };
153
154 usb@52000 {
155 compatible = "marvell,orion-ehci";
156 reg = <0x52000 0x500>;
157 interrupts = <47>;
158 clocks = <&gateclk 20>;
159 status = "disabled";
160 };
161
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200162 xor@60900 {
163 compatible = "marvell,orion-xor";
164 reg = <0x60900 0x100
165 0x60b00 0x100>;
166 clocks = <&gateclk 22>;
167 status = "okay";
168
169 xor10 {
170 interrupts = <51>;
171 dmacap,memcpy;
172 dmacap,xor;
173 };
174 xor11 {
175 interrupts = <52>;
176 dmacap,memcpy;
177 dmacap,xor;
178 dmacap,memset;
179 };
Thomas Petazzonia1d53da2012-11-20 16:03:19 +0100180 };
Thomas Petazzonia1d53da2012-11-20 16:03:19 +0100181
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200182 xor@f0900 {
183 compatible = "marvell,orion-xor";
184 reg = <0xF0900 0x100
185 0xF0B00 0x100>;
186 clocks = <&gateclk 28>;
187 status = "okay";
Thomas Petazzonia1d53da2012-11-20 16:03:19 +0100188
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200189 xor00 {
190 interrupts = <94>;
191 dmacap,memcpy;
192 dmacap,xor;
193 };
194 xor01 {
195 interrupts = <95>;
196 dmacap,memcpy;
197 dmacap,xor;
198 dmacap,memset;
199 };
Thomas Petazzonia1d53da2012-11-20 16:03:19 +0100200 };
Ezequiel Garcia693a56e2013-03-26 07:16:26 -0300201 };
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +0200202 };
Ezequiel Garciac1bbd432013-08-20 12:45:50 -0300203
204 clocks {
205 /* 25 MHz reference crystal */
206 refclk: oscillator {
207 compatible = "fixed-clock";
208 #clock-cells = <0>;
209 clock-frequency = <25000000>;
210 };
211 };
Thomas Petazzoni9ae6f742012-06-13 19:01:28 +0200212};
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100213
214&pinctrl {
Arnaud Ebalard70ee4e92014-11-22 17:23:30 +0100215 ge0_gmii_pins: ge0-gmii-pins {
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100216 marvell,pins =
217 "mpp0", "mpp1", "mpp2", "mpp3",
218 "mpp4", "mpp5", "mpp6", "mpp7",
219 "mpp8", "mpp9", "mpp10", "mpp11",
220 "mpp12", "mpp13", "mpp14", "mpp15",
221 "mpp16", "mpp17", "mpp18", "mpp19",
222 "mpp20", "mpp21", "mpp22", "mpp23";
223 marvell,function = "ge0";
224 };
225
Arnaud Ebalard70ee4e92014-11-22 17:23:30 +0100226 ge0_rgmii_pins: ge0-rgmii-pins {
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100227 marvell,pins =
228 "mpp0", "mpp1", "mpp2", "mpp3",
229 "mpp4", "mpp5", "mpp6", "mpp7",
230 "mpp8", "mpp9", "mpp10", "mpp11";
231 marvell,function = "ge0";
232 };
233
Arnaud Ebalard70ee4e92014-11-22 17:23:30 +0100234 ge1_rgmii_pins: ge1-rgmii-pins {
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100235 marvell,pins =
236 "mpp12", "mpp13", "mpp14", "mpp15",
237 "mpp16", "mpp17", "mpp18", "mpp19",
238 "mpp20", "mpp21", "mpp22", "mpp23";
239 marvell,function = "ge1";
240 };
241
242 sdio_pins: sdio-pins {
243 marvell,pins = "mpp30", "mpp31", "mpp32",
244 "mpp33", "mpp34", "mpp35";
245 marvell,function = "sd0";
246 };
Arnaud Ebalardd352f412014-11-22 00:46:28 +0100247
Arnaud Ebalard547c6532014-11-22 00:46:39 +0100248 spi0_pins: spi0-pins {
249 marvell,pins = "mpp36", "mpp37",
250 "mpp38", "mpp39";
251 marvell,function = "spi";
252 };
253
Arnaud Ebalardd352f412014-11-22 00:46:28 +0100254 uart2_pins: uart2-pins {
255 marvell,pins = "mpp42", "mpp43";
256 marvell,function = "uart2";
257 };
258
259 uart3_pins: uart3-pins {
260 marvell,pins = "mpp44", "mpp45";
261 marvell,function = "uart3";
262 };
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100263};