blob: 2bb671a778db3d055711f5d337c8b8e14ab8e263 [file] [log] [blame]
Florian Fainelli49122142013-01-09 20:56:07 +01001/*
2 * Device Tree file for Marvell Armada 370 Reference Design board
3 * (RD-88F6710-A1)
4 *
5 * Copied from arch/arm/boot/dts/armada-370-db.dts
6 *
7 * Copyright (C) 2013 Florian Fainelli <florian@openwrt.org>
8 *
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without any
11 * warranty of any kind, whether express or implied.
Thomas Petazzoni32c741d2014-09-17 15:45:39 +020012 *
13 * Note: this Device Tree assumes that the bootloader has remapped the
14 * internal registers to 0xf1000000 (instead of the default
15 * 0xd0000000). The 0xf1000000 is the default used by the recent,
16 * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
17 * boards were delivered with an older version of the bootloader that
18 * left internal registers mapped at 0xd0000000. If you are in this
19 * situation, you should either update your bootloader (preferred
20 * solution) or the below Device Tree should be adjusted.
Florian Fainelli49122142013-01-09 20:56:07 +010021 */
22
23/dts-v1/;
Thomas Petazzoni5c0169d2014-02-11 18:07:13 +010024#include <dt-bindings/input/input.h>
Thomas Petazzoni29e74f82014-02-11 18:07:12 +010025#include <dt-bindings/gpio/gpio.h>
Ezequiel Garcia38149882013-07-26 10:17:56 -030026#include "armada-370.dtsi"
Florian Fainelli49122142013-01-09 20:56:07 +010027
28/ {
29 model = "Marvell Armada 370 Reference Design";
30 compatible = "marvell,a370-rd", "marvell,armada370", "marvell,armada-370-xp";
31
32 chosen {
33 bootargs = "console=ttyS0,115200 earlyprintk";
34 };
35
36 memory {
37 device_type = "memory";
38 reg = <0x00000000 0x20000000>; /* 512 MB */
39 };
40
41 soc {
Thomas Petazzoni32c741d2014-09-17 15:45:39 +020042 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
Ezequiel Garcia0cd37542013-07-26 10:17:58 -030043 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
Ezequiel Garcia5e12a612013-07-26 10:17:57 -030044
Ezequiel Garcia0af83302013-08-08 18:03:09 -030045 pcie-controller {
46 status = "okay";
47
48 /* Internal mini-PCIe connector */
49 pcie@1,0 {
50 /* Port 0, Lane 0 */
51 status = "okay";
52 };
53
54 /* Internal mini-PCIe connector */
55 pcie@2,0 {
56 /* Port 1, Lane 0 */
57 status = "okay";
58 };
59 };
60
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020061 internal-regs {
Thomas Petazzonie8db78d2014-09-11 11:56:56 +020062 pinctrl {
63 fan_pins: fan-pins {
64 marvell,pins = "mpp8";
65 marvell,function = "gpio";
66 };
Thomas Petazzoni5b1e9e82014-09-11 11:56:57 +020067
68 led_pins: led-pins {
69 marvell,pins = "mpp32";
70 marvell,function = "gpio";
71 };
Thomas Petazzonie8db78d2014-09-11 11:56:56 +020072 };
73
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020074 serial@12000 {
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020075 status = "okay";
76 };
77 sata@a0000 {
78 nr-ports = <2>;
79 status = "okay";
Florian Fainelli49122142013-01-09 20:56:07 +010080 };
81
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020082 mdio {
Ezequiel Garcia9dfb5c42014-08-11 09:14:41 -030083 pinctrl-0 = <&mdio_pins>;
84 pinctrl-names = "default";
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020085 phy0: ethernet-phy@0 {
86 reg = <0>;
87 };
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020088 };
89
90 ethernet@70000 {
91 status = "okay";
92 phy = <&phy0>;
93 phy-mode = "sgmii";
94 };
95 ethernet@74000 {
Ezequiel Garcia9dfb5c42014-08-11 09:14:41 -030096 pinctrl-0 = <&ge1_rgmii_pins>;
97 pinctrl-names = "default";
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020098 status = "okay";
Gregory CLEMENT467f54b2013-04-12 16:29:09 +020099 phy-mode = "rgmii-id";
Andrew Lunn9ef90cb2014-11-05 20:02:00 +0100100 fixed-link {
101 speed = <1000>;
102 full-duplex;
103 };
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200104 };
105
106 mvsdio@d4000 {
107 pinctrl-0 = <&sdio_pins1>;
108 pinctrl-names = "default";
109 status = "okay";
110 /* No CD or WP GPIOs */
Simon Baatzd87b5fb2013-05-13 23:18:58 +0200111 broken-cd;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200112 };
113
114 usb@50000 {
115 status = "okay";
116 };
117
118 usb@51000 {
119 status = "okay";
120 };
121
122 gpio-keys {
123 compatible = "gpio-keys";
124 #address-cells = <1>;
125 #size-cells = <0>;
126 button@1 {
127 label = "Software Button";
Thomas Petazzoni5c0169d2014-02-11 18:07:13 +0100128 linux,code = <KEY_POWER>;
Thomas Petazzoni29e74f82014-02-11 18:07:12 +0100129 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200130 };
Florian Fainelli49122142013-01-09 20:56:07 +0100131 };
Ezequiel Garcia69e18e22013-12-11 19:28:39 -0300132
Thomas Petazzonie8db78d2014-09-11 11:56:56 +0200133 gpio-fan {
134 compatible = "gpio-fan";
135 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
136 gpio-fan,speed-map = <0 0 3000 1>;
137 pinctrl-0 = <&fan_pins>;
138 pinctrl-names = "default";
139 };
140
Thomas Petazzoni5b1e9e82014-09-11 11:56:57 +0200141 gpio_leds {
142 compatible = "gpio-leds";
143 pinctrl-names = "default";
144 pinctrl-0 = <&led_pins>;
145
146 sw_led {
147 label = "370rd:green:sw";
148 gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
149 default-state = "keep";
150 };
151 };
152
Ezequiel Garcia69e18e22013-12-11 19:28:39 -0300153 nand@d0000 {
154 status = "okay";
155 num-cs = <1>;
156 marvell,nand-keep-config;
157 marvell,nand-enable-arbiter;
158 nand-on-flash-bbt;
159
160 partition@0 {
161 label = "U-Boot";
162 reg = <0 0x800000>;
163 };
164 partition@800000 {
165 label = "Linux";
166 reg = <0x800000 0x800000>;
167 };
168 partition@1000000 {
169 label = "Filesystem";
170 reg = <0x1000000 0x3f000000>;
171 };
172 };
Florian Fainelli49122142013-01-09 20:56:07 +0100173 };
Florian Fainelli49122142013-01-09 20:56:07 +0100174 };
Andrew Lunn9ef90cb2014-11-05 20:02:00 +0100175
176 dsa@0 {
177 compatible = "marvell,dsa";
178 #address-cells = <2>;
179 #size-cells = <0>;
180
181 dsa,ethernet = <&eth1>;
182 dsa,mii-bus = <&mdio>;
183
184 switch@0 {
185 #address-cells = <1>;
186 #size-cells = <0>;
187 reg = <0x10 0>; /* MDIO address 16, switch 0 in tree */
188
189 port@0 {
190 reg = <0>;
191 label = "lan0";
192 };
193
194 port@1 {
195 reg = <1>;
196 label = "lan1";
197 };
198
199 port@2 {
200 reg = <2>;
201 label = "lan2";
202 };
203
204 port@3 {
205 reg = <3>;
206 label = "lan3";
207 };
208
209 port@5 {
210 reg = <5>;
211 label = "cpu";
212 };
213 };
214 };
Gregory CLEMENT467f54b2013-04-12 16:29:09 +0200215 };