1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2724ba675SRob Herring/*
3724ba675SRob Herring * Device Tree file for D-Link DNS-327L
4724ba675SRob Herring *
5724ba675SRob Herring * Copyright (C) 2015, Andrew Andrianov <andrew@ncrmnt.org>
6724ba675SRob Herring */
7724ba675SRob Herring
8724ba675SRob Herring/* Remaining unsolved:
9724ba675SRob Herring * There's still some unknown device on i2c address 0x13
10724ba675SRob Herring */
11724ba675SRob Herring
12724ba675SRob Herring/dts-v1/;
13724ba675SRob Herring
14724ba675SRob Herring#include <dt-bindings/input/input.h>
15724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
16724ba675SRob Herring#include "armada-370.dtsi"
17724ba675SRob Herring
18724ba675SRob Herring/ {
19724ba675SRob Herring	model = "D-Link DNS-327L";
20724ba675SRob Herring	compatible = "dlink,dns327l",
21724ba675SRob Herring		"marvell,armada370",
22724ba675SRob Herring		"marvell,armada-370-xp";
23724ba675SRob Herring
24724ba675SRob Herring	chosen {
25724ba675SRob Herring		stdout-path = &uart0;
26724ba675SRob Herring	};
27724ba675SRob Herring
28724ba675SRob Herring	memory@0 {
29724ba675SRob Herring		device_type = "memory";
30724ba675SRob Herring		reg = <0x00000000 0x20000000>; /* 512 MiB */
31724ba675SRob Herring	};
32724ba675SRob Herring
33724ba675SRob Herring	soc {
34724ba675SRob Herring		ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
35724ba675SRob Herring			MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
36724ba675SRob Herring			MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
37724ba675SRob Herring
38724ba675SRob Herring		internal-regs {
39724ba675SRob Herring			sata@a0000 {
40724ba675SRob Herring				nr-ports = <2>;
41724ba675SRob Herring				status = "okay";
42724ba675SRob Herring			};
43724ba675SRob Herring
44724ba675SRob Herring			usb@50000 {
45724ba675SRob Herring				status = "okay";
46724ba675SRob Herring			};
47724ba675SRob Herring		};
48724ba675SRob Herring	};
49724ba675SRob Herring
50724ba675SRob Herring	gpio-keys {
51724ba675SRob Herring		compatible = "gpio-keys";
52724ba675SRob Herring		pinctrl-0 = <
53724ba675SRob Herring			&backup_button_pin
54724ba675SRob Herring			&power_button_pin
55724ba675SRob Herring			&reset_button_pin>;
56724ba675SRob Herring		pinctrl-names = "default";
57724ba675SRob Herring
58724ba675SRob Herring		power-button {
59724ba675SRob Herring			label = "Power Button";
60724ba675SRob Herring			linux,code = <KEY_POWER>;
61724ba675SRob Herring			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
62724ba675SRob Herring		};
63724ba675SRob Herring
64724ba675SRob Herring		backup-button {
65724ba675SRob Herring			label = "Backup Button";
66724ba675SRob Herring			linux,code = <KEY_COPY>;
67724ba675SRob Herring			gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
68724ba675SRob Herring		};
69724ba675SRob Herring
70724ba675SRob Herring		reset-button {
71724ba675SRob Herring			label = "Reset Button";
72724ba675SRob Herring			linux,code = <KEY_RESTART>;
73724ba675SRob Herring			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
74724ba675SRob Herring		};
75724ba675SRob Herring	};
76724ba675SRob Herring
77724ba675SRob Herring	gpio-leds {
78724ba675SRob Herring		compatible = "gpio-leds";
79724ba675SRob Herring		pinctrl-0 = <
80724ba675SRob Herring			&sata_l_amber_pin
81724ba675SRob Herring			&sata_r_amber_pin
82724ba675SRob Herring			&backup_led_pin
83724ba675SRob Herring			/* Ensure these are managed by hardware */
84724ba675SRob Herring			&sata_l_white_pin
85724ba675SRob Herring			&sata_r_white_pin>;
86724ba675SRob Herring
87724ba675SRob Herring		pinctrl-names = "default";
88724ba675SRob Herring
89724ba675SRob Herring		led-sata-r-amber {
90724ba675SRob Herring			label = "dns327l:amber:sata-r";
91724ba675SRob Herring			gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
92724ba675SRob Herring			default-state = "keep";
93724ba675SRob Herring		};
94724ba675SRob Herring
95724ba675SRob Herring		led-sata-l-amber {
96724ba675SRob Herring			label = "dns327l:amber:sata-l";
97724ba675SRob Herring			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
98724ba675SRob Herring			default-state = "keep";
99724ba675SRob Herring		};
100724ba675SRob Herring
101724ba675SRob Herring		led-backup {
102724ba675SRob Herring			label = "dns327l:white:usb";
103724ba675SRob Herring			gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
104724ba675SRob Herring			default-state = "keep";
105724ba675SRob Herring		};
106724ba675SRob Herring	};
107724ba675SRob Herring
108*afa6b4f3SKrzysztof Kozlowski	usb_power: regulator-1 {
109724ba675SRob Herring		compatible = "regulator-fixed";
110724ba675SRob Herring		pinctrl-0 = <&xhci_pwr_pin>;
111724ba675SRob Herring		pinctrl-names = "default";
112724ba675SRob Herring		regulator-name = "USB3.0 Port Power";
113724ba675SRob Herring		regulator-min-microvolt = <5000000>;
114724ba675SRob Herring		regulator-max-microvolt = <5000000>;
115724ba675SRob Herring		enable-active-high;
116724ba675SRob Herring		regulator-boot-on;
117724ba675SRob Herring		regulator-always-on;
118724ba675SRob Herring		gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
119724ba675SRob Herring	};
120724ba675SRob Herring
121*afa6b4f3SKrzysztof Kozlowski	sata_r_power: regulator-2 {
122724ba675SRob Herring		compatible = "regulator-fixed";
123724ba675SRob Herring		pinctrl-0 = <&sata_r_pwr_pin>;
124724ba675SRob Herring		pinctrl-names = "default";
125724ba675SRob Herring		regulator-name = "SATA-R Power";
126724ba675SRob Herring		regulator-min-microvolt = <5000000>;
127724ba675SRob Herring		regulator-max-microvolt = <5000000>;
128724ba675SRob Herring		startup-delay-us = <2000000>;
129724ba675SRob Herring		enable-active-high;
130724ba675SRob Herring		regulator-always-on;
131724ba675SRob Herring		regulator-boot-on;
132724ba675SRob Herring		gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>;
133724ba675SRob Herring	};
134724ba675SRob Herring
135*afa6b4f3SKrzysztof Kozlowski	sata_l_power: regulator-3 {
136724ba675SRob Herring		compatible = "regulator-fixed";
137724ba675SRob Herring		pinctrl-0 = <&sata_l_pwr_pin>;
138724ba675SRob Herring		pinctrl-names = "default";
139724ba675SRob Herring		regulator-name = "SATA-L Power";
140724ba675SRob Herring		regulator-min-microvolt = <5000000>;
141724ba675SRob Herring		regulator-max-microvolt = <5000000>;
142724ba675SRob Herring		startup-delay-us = <4000000>;
143724ba675SRob Herring		enable-active-high;
144724ba675SRob Herring		regulator-always-on;
145724ba675SRob Herring		regulator-boot-on;
146724ba675SRob Herring		gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
147724ba675SRob Herring	};
148724ba675SRob Herring};
149724ba675SRob Herring
150724ba675SRob Herring&pciec {
151724ba675SRob Herring	status = "okay";
152724ba675SRob Herring
153724ba675SRob Herring	pcie@1,0 {
154724ba675SRob Herring		/* Port 0, Lane 0 */
155724ba675SRob Herring		status = "okay";
156724ba675SRob Herring	};
157724ba675SRob Herring
158724ba675SRob Herring	pcie@2,0 {
159724ba675SRob Herring		/* Port 1, Lane 0 */
160724ba675SRob Herring		status = "okay";
161724ba675SRob Herring	};
162724ba675SRob Herring};
163724ba675SRob Herring
164724ba675SRob Herring&pinctrl {
165724ba675SRob Herring	sata_l_white_pin: sata-l-white-pin {
166724ba675SRob Herring		marvell,pins = "mpp57";
167724ba675SRob Herring		marvell,function = "sata0";
168724ba675SRob Herring	};
169724ba675SRob Herring
170724ba675SRob Herring	sata_r_white_pin: sata-r-white-pin {
171724ba675SRob Herring		marvell,pins = "mpp55";
172724ba675SRob Herring		marvell,function = "sata1";
173724ba675SRob Herring	};
174724ba675SRob Herring
175724ba675SRob Herring	sata_r_amber_pin: sata-r-amber-pin {
176724ba675SRob Herring		marvell,pins = "mpp52";
177724ba675SRob Herring		marvell,function = "gpio";
178724ba675SRob Herring	};
179724ba675SRob Herring
180724ba675SRob Herring	sata_l_amber_pin: sata-l-amber-pin {
181724ba675SRob Herring		marvell,pins = "mpp53";
182724ba675SRob Herring		marvell,function = "gpio";
183724ba675SRob Herring	};
184724ba675SRob Herring
185724ba675SRob Herring	backup_led_pin: backup-led-pin {
186724ba675SRob Herring		marvell,pins = "mpp61";
187724ba675SRob Herring		marvell,function = "gpo";
188724ba675SRob Herring	};
189724ba675SRob Herring
190724ba675SRob Herring	xhci_pwr_pin: xhci-pwr-pin {
191724ba675SRob Herring		marvell,pins = "mpp13";
192724ba675SRob Herring		marvell,function = "gpio";
193724ba675SRob Herring	};
194724ba675SRob Herring
195724ba675SRob Herring	sata_r_pwr_pin: sata-r-pwr-pin {
196724ba675SRob Herring		marvell,pins = "mpp54";
197724ba675SRob Herring		marvell,function = "gpio";
198724ba675SRob Herring	};
199724ba675SRob Herring
200724ba675SRob Herring	sata_l_pwr_pin: sata-l-pwr-pin {
201724ba675SRob Herring		marvell,pins = "mpp56";
202724ba675SRob Herring		marvell,function = "gpio";
203724ba675SRob Herring	};
204724ba675SRob Herring
205724ba675SRob Herring	uart1_pins: uart1-pins {
206724ba675SRob Herring		marvell,pins = "mpp60", "mpp61";
207724ba675SRob Herring		marvell,function = "uart1";
208724ba675SRob Herring	};
209724ba675SRob Herring
210724ba675SRob Herring	power_button_pin: power-button-pin {
211724ba675SRob Herring		marvell,pins = "mpp65";
212724ba675SRob Herring		marvell,function = "gpio";
213724ba675SRob Herring	};
214724ba675SRob Herring
215724ba675SRob Herring	backup_button_pin: backup-button-pin {
216724ba675SRob Herring		marvell,pins = "mpp63";
217724ba675SRob Herring		marvell,function = "gpio";
218724ba675SRob Herring	};
219724ba675SRob Herring
220724ba675SRob Herring	reset_button_pin: reset-button-pin {
221724ba675SRob Herring		marvell,pins = "mpp64";
222724ba675SRob Herring		marvell,function = "gpio";
223724ba675SRob Herring	};
224724ba675SRob Herring};
225724ba675SRob Herring
226724ba675SRob Herring/* Serial console */
227724ba675SRob Herring&uart0 {
228724ba675SRob Herring	status = "okay";
229724ba675SRob Herring};
230724ba675SRob Herring
231724ba675SRob Herring/* Connected to Weltrend MCU */
232724ba675SRob Herring&uart1 {
233724ba675SRob Herring	pinctrl-0 = <&uart1_pins>;
234724ba675SRob Herring	pinctrl-names = "default";
235724ba675SRob Herring	status = "okay";
236724ba675SRob Herring};
237724ba675SRob Herring
238724ba675SRob Herring&mdio {
239724ba675SRob Herring	phy0: ethernet-phy@0 { /* Marvell 88E1318 */
240724ba675SRob Herring		reg = <0>;
241724ba675SRob Herring		marvell,reg-init = <0x2 0x19 0x0 0x0077>,
242724ba675SRob Herring				   <0x2 0x18 0x0 0x5747>;
243724ba675SRob Herring	};
244724ba675SRob Herring};
245724ba675SRob Herring
246724ba675SRob Herring&eth1 {
247724ba675SRob Herring	phy = <&phy0>;
248724ba675SRob Herring	phy-mode = "rgmii-id";
249724ba675SRob Herring	status = "okay";
250724ba675SRob Herring};
251724ba675SRob Herring
252724ba675SRob Herring&i2c0 {
253724ba675SRob Herring	compatible = "marvell,mv64xxx-i2c";
254724ba675SRob Herring	clock-frequency = <100000>;
255724ba675SRob Herring	status = "okay";
256724ba675SRob Herring};
257724ba675SRob Herring
258724ba675SRob Herring&nand_controller {
259724ba675SRob Herring	status = "okay";
260724ba675SRob Herring
261724ba675SRob Herring	nand@0 {
262724ba675SRob Herring		reg = <0>;
263724ba675SRob Herring		label = "pxa3xx_nand-0";
264724ba675SRob Herring		nand-rb = <0>;
265724ba675SRob Herring		marvell,nand-keep-config;
266724ba675SRob Herring		nand-on-flash-bbt;
267724ba675SRob Herring		nand-ecc-strength = <4>;
268724ba675SRob Herring		nand-ecc-step-size = <512>;
269724ba675SRob Herring
270724ba675SRob Herring		partitions {
271724ba675SRob Herring			compatible = "fixed-partitions";
272724ba675SRob Herring			#address-cells = <1>;
273724ba675SRob Herring			#size-cells = <1>;
274724ba675SRob Herring
275724ba675SRob Herring			partition@0 {
276724ba675SRob Herring				label = "u-boot";
277724ba675SRob Herring				/* 1.0 MiB */
278724ba675SRob Herring				reg = <0x0000000 0x100000>;
279724ba675SRob Herring				read-only;
280724ba675SRob Herring			};
281724ba675SRob Herring
282724ba675SRob Herring			partition@100000 {
283724ba675SRob Herring				label = "u-boot-env";
284724ba675SRob Herring				/* 128 KiB */
285724ba675SRob Herring				reg = <0x100000 0x20000>;
286724ba675SRob Herring				read-only;
287724ba675SRob Herring			};
288724ba675SRob Herring
289724ba675SRob Herring			partition@120000 {
290724ba675SRob Herring				label = "uImage";
291724ba675SRob Herring				/* 7 MiB */
292724ba675SRob Herring				reg = <0x120000 0x700000>;
293724ba675SRob Herring			};
294724ba675SRob Herring
295724ba675SRob Herring			partition@820000 {
296724ba675SRob Herring				label = "ubifs";
297724ba675SRob Herring				/* ~ 84 MiB */
298724ba675SRob Herring				reg = <0x820000 0x54e0000>;
299724ba675SRob Herring			};
300724ba675SRob Herring
301724ba675SRob Herring			/* Hardcoded into stock bootloader */
302724ba675SRob Herring			partition@5d00000 {
303724ba675SRob Herring				label = "failsafe-uImage";
304724ba675SRob Herring				/* 5 MiB */
305724ba675SRob Herring				reg = <0x5d00000 0x500000>;
306724ba675SRob Herring			};
307724ba675SRob Herring
308724ba675SRob Herring			partition@6200000 {
309724ba675SRob Herring				label = "failsafe-fs";
310724ba675SRob Herring				/* 29 MiB */
311724ba675SRob Herring				reg = <0x6200000 0x1d00000>;
312724ba675SRob Herring			};
313724ba675SRob Herring
314724ba675SRob Herring			partition@7f00000 {
315724ba675SRob Herring				label = "bbt";
316724ba675SRob Herring				/* 1 MiB for BBT */
317724ba675SRob Herring				reg = <0x7f00000 0x100000>;
318724ba675SRob Herring			};
319724ba675SRob Herring		};
320724ba675SRob Herring	};
321724ba675SRob Herring};
322