• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Device Tree include file for Armada 385 based Linksys boards
3 *
4 * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org>
5 *
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 *  a) This file is licensed under the terms of the GNU General Public
13 *     License version 2.  This program is licensed "as is" without
14 *     any warranty of any kind, whether express or implied.
15 *
16 * Or, alternatively,
17 *
18 *  b) Permission is hereby granted, free of charge, to any person
19 *     obtaining a copy of this software and associated documentation
20 *     files (the "Software"), to deal in the Software without
21 *     restriction, including without limitation the rights to use,
22 *     copy, modify, merge, publish, distribute, sublicense, and/or
23 *     sell copies of the Software, and to permit persons to whom the
24 *     Software is furnished to do so, subject to the following
25 *     conditions:
26 *
27 *     The above copyright notice and this permission notice shall be
28 *     included in all copies or substantial portions of the Software.
29 *
30 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
32 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
33 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
34 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
35 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
36 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
37 *     OTHER DEALINGS IN THE SOFTWARE.
38 */
39
40#include <dt-bindings/gpio/gpio.h>
41#include <dt-bindings/input/input.h>
42#include "armada-385.dtsi"
43
44/ {
45	model = "Linksys boards based on Armada 385";
46	compatible = "linksys,armada385", "marvell,armada385",
47		     "marvell,armada380";
48
49	chosen {
50		stdout-path = "serial0:115200n8";
51	};
52
53	memory {
54		device_type = "memory";
55		reg = <0x00000000 0x20000000>; /* 512 MiB */
56	};
57
58	soc {
59		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
60			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
61			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
62			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
63			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
64	};
65
66	usb3_1_phy: usb3_1-phy {
67		compatible = "usb-nop-xceiv";
68		vcc-supply = <&usb3_1_vbus>;
69	};
70
71	usb3_1_vbus: usb3_1-vbus {
72		compatible = "regulator-fixed";
73		pinctrl-names = "default";
74		pinctrl-0 = <&usb3_1_vbus_pins>;
75		regulator-name = "usb3_1-vbus";
76		regulator-min-microvolt = <5000000>;
77		regulator-max-microvolt = <5000000>;
78		enable-active-high;
79		gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
80	};
81
82	gpio_keys: gpio-keys {
83		compatible = "gpio-keys";
84		pinctrl-0 = <&gpio_keys_pins>;
85		pinctrl-names = "default";
86
87		wps {
88			label = "WPS";
89			linux,code = <KEY_WPS_BUTTON>;
90			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
91		};
92
93		reset {
94			label = "Factory Reset Button";
95			linux,code = <KEY_RESTART>;
96			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
97		};
98	};
99
100	gpio_leds: gpio-leds {
101		compatible = "gpio-leds";
102		pinctrl-0 = <&gpio_leds_pins>;
103		pinctrl-names = "default";
104
105		power {
106			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
107			default-state = "on";
108		};
109
110		sata {
111			gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
112			default-state = "off";
113			linux,default-trigger = "disk-activity";
114		};
115	};
116};
117
118&ahci0 {
119	status = "okay";
120};
121
122&bm {
123	status = "okay";
124};
125
126&bm_bppi {
127	status = "okay";
128};
129
130&eth0 {
131	status = "okay";
132	phy-mode = "rgmii-id";
133	buffer-manager = <&bm>;
134	bm,pool-long = <0>;
135	bm,pool-short = <1>;
136	fixed-link {
137		speed = <1000>;
138		full-duplex;
139	};
140};
141
142&eth2 {
143	status = "okay";
144	phy-mode = "sgmii";
145	buffer-manager = <&bm>;
146	bm,pool-long = <2>;
147	bm,pool-short = <3>;
148	fixed-link {
149		speed = <1000>;
150		full-duplex;
151	};
152};
153
154&i2c0 {
155	pinctrl-names = "default";
156	pinctrl-0 = <&i2c0_pins>;
157	status = "okay";
158
159	tmp421@4c {
160		compatible = "ti,tmp421";
161		reg = <0x4c>;
162	};
163
164	expander0: pca9635@68 {
165		#address-cells = <1>;
166		#size-cells = <0>;
167		compatible = "nxp,pca9635";
168		reg = <0x68>;
169	};
170};
171
172&nand {
173	/* 128MiB or 256MiB */
174	status = "okay";
175	num-cs = <1>;
176	marvell,nand-keep-config;
177	marvell,nand-enable-arbiter;
178	nand-on-flash-bbt;
179};
180
181&mdio {
182	status = "okay";
183
184	switch@0 {
185		compatible = "marvell,mv88e6085";
186		#address-cells = <1>;
187		#size-cells = <0>;
188		reg = <0>;
189
190		ports {
191			#address-cells = <1>;
192			#size-cells = <0>;
193
194			port@0 {
195				reg = <0>;
196				label = "lan4";
197			};
198
199			port@1 {
200				reg = <1>;
201				label = "lan3";
202			};
203
204			port@2 {
205				reg = <2>;
206				label = "lan2";
207			};
208
209			port@3 {
210				reg = <3>;
211				label = "lan1";
212			};
213
214			port@4 {
215				reg = <4>;
216				label = "wan";
217			};
218
219			port@5 {
220				reg = <5>;
221				label = "cpu";
222				ethernet = <&eth2>;
223
224				fixed-link {
225					speed = <1000>;
226					full-duplex;
227				};
228			};
229		};
230	};
231};
232
233&pciec {
234	status = "okay";
235};
236
237&pcie1 {
238	/* Marvell 88W8864, 5GHz-only */
239	status = "okay";
240};
241
242&pcie2 {
243	/* Marvell 88W8864, 2GHz-only */
244	status = "okay";
245};
246
247&pinctrl {
248	gpio_keys_pins: gpio-keys-pins {
249		/* mpp24: wps, mpp29: reset */
250		marvell,pins = "mpp24", "mpp29";
251		marvell,function = "gpio";
252	};
253
254	gpio_leds_pins: gpio-leds-pins {
255		/* mpp54: sata, mpp55: power */
256		marvell,pins = "mpp54", "mpp55";
257		marvell,function = "gpio";
258	};
259
260	usb3_1_vbus_pins: usb3_1-vbus-pins {
261		marvell,pins = "mpp50";
262		marvell,function = "gpio";
263	};
264};
265
266&spi0 {
267	status = "disabled";
268};
269
270&uart0 {
271	/* J10: VCC, NC, RX, NC, TX, GND  */
272	status = "okay";
273};
274
275&usb0 {
276	/* USB part of the eSATA/USB 2.0 port */
277	status = "okay";
278};
279
280&usb3_1 {
281	status = "okay";
282	usb-phy = <&usb3_1_phy>;
283};
284