xref: /freebsd-src/sys/contrib/device-tree/src/arm/marvell/armada-xp-netgear-rn2120.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Device Tree file for NETGEAR ReadyNAS 2120
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
6*f126890aSEmmanuel Vadot */
7*f126890aSEmmanuel Vadot
8*f126890aSEmmanuel Vadot/dts-v1/;
9*f126890aSEmmanuel Vadot
10*f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
11*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
12*f126890aSEmmanuel Vadot#include "armada-xp-mv78230.dtsi"
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot/ {
15*f126890aSEmmanuel Vadot	model = "NETGEAR ReadyNAS 2120";
16*f126890aSEmmanuel Vadot	compatible = "netgear,readynas-2120", "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp";
17*f126890aSEmmanuel Vadot
18*f126890aSEmmanuel Vadot	chosen {
19*f126890aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
20*f126890aSEmmanuel Vadot	};
21*f126890aSEmmanuel Vadot
22*f126890aSEmmanuel Vadot	memory@0 {
23*f126890aSEmmanuel Vadot		device_type = "memory";
24*f126890aSEmmanuel Vadot		reg = <0 0x00000000 0 0x80000000>; /* 2GB */
25*f126890aSEmmanuel Vadot	};
26*f126890aSEmmanuel Vadot
27*f126890aSEmmanuel Vadot	soc {
28*f126890aSEmmanuel Vadot		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
29*f126890aSEmmanuel Vadot			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
30*f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
31*f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
32*f126890aSEmmanuel Vadot
33*f126890aSEmmanuel Vadot		internal-regs {
34*f126890aSEmmanuel Vadot
35*f126890aSEmmanuel Vadot			/* RTC is provided by Intersil ISL12057 I2C RTC chip */
36*f126890aSEmmanuel Vadot			rtc@10300 {
37*f126890aSEmmanuel Vadot				status = "disabled";
38*f126890aSEmmanuel Vadot			};
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot			i2c@11000 {
41*f126890aSEmmanuel Vadot				clock-frequency = <400000>;
42*f126890aSEmmanuel Vadot				status = "okay";
43*f126890aSEmmanuel Vadot
44*f126890aSEmmanuel Vadot				/* Controller for rear fan #1 of 3 (Protechnic
45*f126890aSEmmanuel Vadot				 * MGT4012XB-O20, 8000RPM) near eSATA port */
46*f126890aSEmmanuel Vadot				g762_fan1: g762@3e {
47*f126890aSEmmanuel Vadot					compatible = "gmt,g762";
48*f126890aSEmmanuel Vadot					reg = <0x3e>;
49*f126890aSEmmanuel Vadot					clocks = <&g762_clk>; /* input clock */
50*f126890aSEmmanuel Vadot					fan_gear_mode = <0>;
51*f126890aSEmmanuel Vadot					fan_startv = <1>;
52*f126890aSEmmanuel Vadot					pwm_polarity = <0>;
53*f126890aSEmmanuel Vadot				};
54*f126890aSEmmanuel Vadot
55*f126890aSEmmanuel Vadot				/*  Controller for rear (center) fan #2 of 3 */
56*f126890aSEmmanuel Vadot				g762_fan2: g762@48 {
57*f126890aSEmmanuel Vadot					compatible = "gmt,g762";
58*f126890aSEmmanuel Vadot					reg = <0x48>;
59*f126890aSEmmanuel Vadot					clocks = <&g762_clk>; /* input clock */
60*f126890aSEmmanuel Vadot					fan_gear_mode = <0>;
61*f126890aSEmmanuel Vadot					fan_startv = <1>;
62*f126890aSEmmanuel Vadot					pwm_polarity = <0>;
63*f126890aSEmmanuel Vadot				};
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot				/*  Controller for rear fan #3 of 3 */
66*f126890aSEmmanuel Vadot				g762_fan3: g762@49 {
67*f126890aSEmmanuel Vadot					compatible = "gmt,g762";
68*f126890aSEmmanuel Vadot					reg = <0x49>;
69*f126890aSEmmanuel Vadot					clocks = <&g762_clk>; /* input clock */
70*f126890aSEmmanuel Vadot					fan_gear_mode = <0>;
71*f126890aSEmmanuel Vadot					fan_startv = <1>;
72*f126890aSEmmanuel Vadot					pwm_polarity = <0>;
73*f126890aSEmmanuel Vadot				};
74*f126890aSEmmanuel Vadot
75*f126890aSEmmanuel Vadot				/* Temperature sensor */
76*f126890aSEmmanuel Vadot				g751: g751@4c {
77*f126890aSEmmanuel Vadot					compatible = "gmt,g751";
78*f126890aSEmmanuel Vadot					reg = <0x4c>;
79*f126890aSEmmanuel Vadot				};
80*f126890aSEmmanuel Vadot
81*f126890aSEmmanuel Vadot				isl12057: rtc@68 {
82*f126890aSEmmanuel Vadot					compatible = "isil,isl12057";
83*f126890aSEmmanuel Vadot					reg = <0x68>;
84*f126890aSEmmanuel Vadot					wakeup-source;
85*f126890aSEmmanuel Vadot				};
86*f126890aSEmmanuel Vadot			};
87*f126890aSEmmanuel Vadot
88*f126890aSEmmanuel Vadot			serial@12000 {
89*f126890aSEmmanuel Vadot				status = "okay";
90*f126890aSEmmanuel Vadot			};
91*f126890aSEmmanuel Vadot
92*f126890aSEmmanuel Vadot			/* Front USB 2.0 port */
93*f126890aSEmmanuel Vadot			usb@50000 {
94*f126890aSEmmanuel Vadot				status = "okay";
95*f126890aSEmmanuel Vadot			};
96*f126890aSEmmanuel Vadot
97*f126890aSEmmanuel Vadot			ethernet@70000 {
98*f126890aSEmmanuel Vadot				pinctrl-0 = <&ge0_rgmii_pins>;
99*f126890aSEmmanuel Vadot				pinctrl-names = "default";
100*f126890aSEmmanuel Vadot
101*f126890aSEmmanuel Vadot				status = "okay";
102*f126890aSEmmanuel Vadot				phy = <&phy0>;
103*f126890aSEmmanuel Vadot				phy-mode = "rgmii-id";
104*f126890aSEmmanuel Vadot			};
105*f126890aSEmmanuel Vadot
106*f126890aSEmmanuel Vadot			ethernet@74000 {
107*f126890aSEmmanuel Vadot				pinctrl-0 = <&ge1_rgmii_pins>;
108*f126890aSEmmanuel Vadot				pinctrl-names = "default";
109*f126890aSEmmanuel Vadot
110*f126890aSEmmanuel Vadot				status = "okay";
111*f126890aSEmmanuel Vadot				phy = <&phy1>;
112*f126890aSEmmanuel Vadot				phy-mode = "rgmii-id";
113*f126890aSEmmanuel Vadot			};
114*f126890aSEmmanuel Vadot
115*f126890aSEmmanuel Vadot			/* Two rear eSATA ports */
116*f126890aSEmmanuel Vadot			sata@a0000 {
117*f126890aSEmmanuel Vadot				nr-ports = <2>;
118*f126890aSEmmanuel Vadot				status = "okay";
119*f126890aSEmmanuel Vadot			};
120*f126890aSEmmanuel Vadot		};
121*f126890aSEmmanuel Vadot	};
122*f126890aSEmmanuel Vadot
123*f126890aSEmmanuel Vadot	clocks {
124*f126890aSEmmanuel Vadot		g762_clk: g762-oscillator {
125*f126890aSEmmanuel Vadot			compatible = "fixed-clock";
126*f126890aSEmmanuel Vadot			#clock-cells = <0>;
127*f126890aSEmmanuel Vadot			clock-frequency = <32768>;
128*f126890aSEmmanuel Vadot		};
129*f126890aSEmmanuel Vadot	};
130*f126890aSEmmanuel Vadot
131*f126890aSEmmanuel Vadot	gpio-leds {
132*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
133*f126890aSEmmanuel Vadot		pinctrl-0 = <&sata1_led_pin &sata2_led_pin &err_led_pin
134*f126890aSEmmanuel Vadot			     &sata3_led_pin &sata4_led_pin>;
135*f126890aSEmmanuel Vadot		pinctrl-names = "default";
136*f126890aSEmmanuel Vadot
137*f126890aSEmmanuel Vadot		red-sata1-led {
138*f126890aSEmmanuel Vadot			label = "rn2120:red:sata1";
139*f126890aSEmmanuel Vadot			gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
140*f126890aSEmmanuel Vadot			default-state = "off";
141*f126890aSEmmanuel Vadot		};
142*f126890aSEmmanuel Vadot
143*f126890aSEmmanuel Vadot		red-sata2-led {
144*f126890aSEmmanuel Vadot			label = "rn2120:red:sata2";
145*f126890aSEmmanuel Vadot			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
146*f126890aSEmmanuel Vadot			default-state = "off";
147*f126890aSEmmanuel Vadot		};
148*f126890aSEmmanuel Vadot
149*f126890aSEmmanuel Vadot		red-sata3-led {
150*f126890aSEmmanuel Vadot			label = "rn2120:red:sata3";
151*f126890aSEmmanuel Vadot			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
152*f126890aSEmmanuel Vadot			default-state = "off";
153*f126890aSEmmanuel Vadot		};
154*f126890aSEmmanuel Vadot
155*f126890aSEmmanuel Vadot		red-sata4-led {
156*f126890aSEmmanuel Vadot			label = "rn2120:red:sata4";
157*f126890aSEmmanuel Vadot			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
158*f126890aSEmmanuel Vadot			default-state = "off";
159*f126890aSEmmanuel Vadot		};
160*f126890aSEmmanuel Vadot
161*f126890aSEmmanuel Vadot		red-err-led {
162*f126890aSEmmanuel Vadot			label = "rn2120:red:err";
163*f126890aSEmmanuel Vadot			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
164*f126890aSEmmanuel Vadot			default-state = "off";
165*f126890aSEmmanuel Vadot		};
166*f126890aSEmmanuel Vadot	};
167*f126890aSEmmanuel Vadot
168*f126890aSEmmanuel Vadot	gpio-keys {
169*f126890aSEmmanuel Vadot		compatible = "gpio-keys";
170*f126890aSEmmanuel Vadot		pinctrl-0 = <&power_button_pin &reset_button_pin>;
171*f126890aSEmmanuel Vadot		pinctrl-names = "default";
172*f126890aSEmmanuel Vadot
173*f126890aSEmmanuel Vadot		power-button {
174*f126890aSEmmanuel Vadot			label = "Power Button";
175*f126890aSEmmanuel Vadot			linux,code = <KEY_POWER>;
176*f126890aSEmmanuel Vadot			gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
177*f126890aSEmmanuel Vadot		};
178*f126890aSEmmanuel Vadot
179*f126890aSEmmanuel Vadot		reset-button {
180*f126890aSEmmanuel Vadot			label = "Reset Button";
181*f126890aSEmmanuel Vadot			linux,code = <KEY_RESTART>;
182*f126890aSEmmanuel Vadot			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
183*f126890aSEmmanuel Vadot		};
184*f126890aSEmmanuel Vadot	};
185*f126890aSEmmanuel Vadot
186*f126890aSEmmanuel Vadot	gpio-poweroff {
187*f126890aSEmmanuel Vadot		compatible = "gpio-poweroff";
188*f126890aSEmmanuel Vadot		pinctrl-0 = <&poweroff>;
189*f126890aSEmmanuel Vadot		pinctrl-names = "default";
190*f126890aSEmmanuel Vadot		gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
191*f126890aSEmmanuel Vadot	};
192*f126890aSEmmanuel Vadot};
193*f126890aSEmmanuel Vadot
194*f126890aSEmmanuel Vadot&pciec {
195*f126890aSEmmanuel Vadot	status = "okay";
196*f126890aSEmmanuel Vadot
197*f126890aSEmmanuel Vadot	/* Connected to first Marvell 88SE9170 SATA controller */
198*f126890aSEmmanuel Vadot	pcie@1,0 {
199*f126890aSEmmanuel Vadot		/* Port 0, Lane 0 */
200*f126890aSEmmanuel Vadot		status = "okay";
201*f126890aSEmmanuel Vadot	};
202*f126890aSEmmanuel Vadot
203*f126890aSEmmanuel Vadot	/* Connected to second Marvell 88SE9170 SATA controller */
204*f126890aSEmmanuel Vadot	pcie@2,0 {
205*f126890aSEmmanuel Vadot		/* Port 0, Lane 1 */
206*f126890aSEmmanuel Vadot		status = "okay";
207*f126890aSEmmanuel Vadot	};
208*f126890aSEmmanuel Vadot
209*f126890aSEmmanuel Vadot	/* Connected to Fresco Logic FL1009 USB 3.0 controller */
210*f126890aSEmmanuel Vadot	pcie@5,0 {
211*f126890aSEmmanuel Vadot		/* Port 1, Lane 0 */
212*f126890aSEmmanuel Vadot		status = "okay";
213*f126890aSEmmanuel Vadot	};
214*f126890aSEmmanuel Vadot};
215*f126890aSEmmanuel Vadot
216*f126890aSEmmanuel Vadot&mdio {
217*f126890aSEmmanuel Vadot	phy0: ethernet-phy@0 { /* Marvell 88E1318 */
218*f126890aSEmmanuel Vadot		reg = <0>;
219*f126890aSEmmanuel Vadot	};
220*f126890aSEmmanuel Vadot
221*f126890aSEmmanuel Vadot	phy1: ethernet-phy@1 { /* Marvell 88E1318 */
222*f126890aSEmmanuel Vadot		reg = <1>;
223*f126890aSEmmanuel Vadot	};
224*f126890aSEmmanuel Vadot};
225*f126890aSEmmanuel Vadot
226*f126890aSEmmanuel Vadot
227*f126890aSEmmanuel Vadot&pinctrl {
228*f126890aSEmmanuel Vadot	poweroff: poweroff {
229*f126890aSEmmanuel Vadot		marvell,pins = "mpp42";
230*f126890aSEmmanuel Vadot		marvell,function = "gpio";
231*f126890aSEmmanuel Vadot	};
232*f126890aSEmmanuel Vadot
233*f126890aSEmmanuel Vadot	power_button_pin: power-button-pin {
234*f126890aSEmmanuel Vadot		marvell,pins = "mpp27";
235*f126890aSEmmanuel Vadot		marvell,function = "gpio";
236*f126890aSEmmanuel Vadot	};
237*f126890aSEmmanuel Vadot
238*f126890aSEmmanuel Vadot	reset_button_pin: reset-button-pin {
239*f126890aSEmmanuel Vadot		marvell,pins = "mpp41";
240*f126890aSEmmanuel Vadot		marvell,function = "gpio";
241*f126890aSEmmanuel Vadot	};
242*f126890aSEmmanuel Vadot
243*f126890aSEmmanuel Vadot	sata1_led_pin: sata1-led-pin {
244*f126890aSEmmanuel Vadot		marvell,pins = "mpp31";
245*f126890aSEmmanuel Vadot		marvell,function = "gpio";
246*f126890aSEmmanuel Vadot	};
247*f126890aSEmmanuel Vadot
248*f126890aSEmmanuel Vadot	sata2_led_pin: sata2-led-pin {
249*f126890aSEmmanuel Vadot		marvell,pins = "mpp40";
250*f126890aSEmmanuel Vadot		marvell,function = "gpio";
251*f126890aSEmmanuel Vadot	};
252*f126890aSEmmanuel Vadot
253*f126890aSEmmanuel Vadot	sata3_led_pin: sata3-led-pin {
254*f126890aSEmmanuel Vadot		marvell,pins = "mpp44";
255*f126890aSEmmanuel Vadot		marvell,function = "gpio";
256*f126890aSEmmanuel Vadot	};
257*f126890aSEmmanuel Vadot
258*f126890aSEmmanuel Vadot	sata4_led_pin: sata4-led-pin {
259*f126890aSEmmanuel Vadot		marvell,pins = "mpp47";
260*f126890aSEmmanuel Vadot		marvell,function = "gpio";
261*f126890aSEmmanuel Vadot	};
262*f126890aSEmmanuel Vadot
263*f126890aSEmmanuel Vadot	sata1_power_pin: sata1-power-pin {
264*f126890aSEmmanuel Vadot		marvell,pins = "mpp24";
265*f126890aSEmmanuel Vadot		marvell,function = "gpio";
266*f126890aSEmmanuel Vadot	};
267*f126890aSEmmanuel Vadot
268*f126890aSEmmanuel Vadot	sata2_power_pin: sata2-power-pin {
269*f126890aSEmmanuel Vadot		marvell,pins = "mpp25";
270*f126890aSEmmanuel Vadot		marvell,function = "gpio";
271*f126890aSEmmanuel Vadot	};
272*f126890aSEmmanuel Vadot
273*f126890aSEmmanuel Vadot	sata3_power_pin: sata3-power-pin {
274*f126890aSEmmanuel Vadot		marvell,pins = "mpp26";
275*f126890aSEmmanuel Vadot		marvell,function = "gpio";
276*f126890aSEmmanuel Vadot	};
277*f126890aSEmmanuel Vadot
278*f126890aSEmmanuel Vadot	sata4_power_pin: sata4-power-pin {
279*f126890aSEmmanuel Vadot		marvell,pins = "mpp28";
280*f126890aSEmmanuel Vadot		marvell,function = "gpio";
281*f126890aSEmmanuel Vadot	};
282*f126890aSEmmanuel Vadot
283*f126890aSEmmanuel Vadot	sata1_pres_pin: sata1-pres-pin {
284*f126890aSEmmanuel Vadot		marvell,pins = "mpp32";
285*f126890aSEmmanuel Vadot		marvell,function = "gpio";
286*f126890aSEmmanuel Vadot	};
287*f126890aSEmmanuel Vadot
288*f126890aSEmmanuel Vadot	sata2_pres_pin: sata2-pres-pin {
289*f126890aSEmmanuel Vadot		marvell,pins = "mpp33";
290*f126890aSEmmanuel Vadot		marvell,function = "gpio";
291*f126890aSEmmanuel Vadot	};
292*f126890aSEmmanuel Vadot
293*f126890aSEmmanuel Vadot	sata3_pres_pin: sata3-pres-pin {
294*f126890aSEmmanuel Vadot		marvell,pins = "mpp34";
295*f126890aSEmmanuel Vadot		marvell,function = "gpio";
296*f126890aSEmmanuel Vadot	};
297*f126890aSEmmanuel Vadot
298*f126890aSEmmanuel Vadot	sata4_pres_pin: sata4-pres-pin {
299*f126890aSEmmanuel Vadot		marvell,pins = "mpp35";
300*f126890aSEmmanuel Vadot		marvell,function = "gpio";
301*f126890aSEmmanuel Vadot	};
302*f126890aSEmmanuel Vadot
303*f126890aSEmmanuel Vadot	err_led_pin: err-led-pin {
304*f126890aSEmmanuel Vadot		marvell,pins = "mpp45";
305*f126890aSEmmanuel Vadot		marvell,function = "gpio";
306*f126890aSEmmanuel Vadot	};
307*f126890aSEmmanuel Vadot};
308*f126890aSEmmanuel Vadot
309*f126890aSEmmanuel Vadot&nand_controller {
310*f126890aSEmmanuel Vadot	status = "okay";
311*f126890aSEmmanuel Vadot
312*f126890aSEmmanuel Vadot	nand@0 {
313*f126890aSEmmanuel Vadot		reg = <0>;
314*f126890aSEmmanuel Vadot		label = "pxa3xx_nand-0";
315*f126890aSEmmanuel Vadot		nand-rb = <0>;
316*f126890aSEmmanuel Vadot		marvell,nand-keep-config;
317*f126890aSEmmanuel Vadot		nand-on-flash-bbt;
318*f126890aSEmmanuel Vadot
319*f126890aSEmmanuel Vadot		/* Use Hardware BCH ECC */
320*f126890aSEmmanuel Vadot		nand-ecc-strength = <4>;
321*f126890aSEmmanuel Vadot		nand-ecc-step-size = <512>;
322*f126890aSEmmanuel Vadot
323*f126890aSEmmanuel Vadot		partitions {
324*f126890aSEmmanuel Vadot			compatible = "fixed-partitions";
325*f126890aSEmmanuel Vadot			#address-cells = <1>;
326*f126890aSEmmanuel Vadot			#size-cells = <1>;
327*f126890aSEmmanuel Vadot
328*f126890aSEmmanuel Vadot			partition@0 {
329*f126890aSEmmanuel Vadot				label = "u-boot";
330*f126890aSEmmanuel Vadot				reg = <0x0000000 0x180000>;  /* 1.5MB */
331*f126890aSEmmanuel Vadot				read-only;
332*f126890aSEmmanuel Vadot			};
333*f126890aSEmmanuel Vadot
334*f126890aSEmmanuel Vadot			partition@180000 {
335*f126890aSEmmanuel Vadot				label = "u-boot-env";
336*f126890aSEmmanuel Vadot				reg = <0x180000 0x20000>;    /* 128KB */
337*f126890aSEmmanuel Vadot				read-only;
338*f126890aSEmmanuel Vadot			};
339*f126890aSEmmanuel Vadot
340*f126890aSEmmanuel Vadot			partition@200000 {
341*f126890aSEmmanuel Vadot				label = "uImage";
342*f126890aSEmmanuel Vadot				reg = <0x0200000 0x600000>;    /* 6MB */
343*f126890aSEmmanuel Vadot			};
344*f126890aSEmmanuel Vadot
345*f126890aSEmmanuel Vadot			partition@800000 {
346*f126890aSEmmanuel Vadot				label = "minirootfs";
347*f126890aSEmmanuel Vadot				reg = <0x0800000 0x400000>;    /* 4MB */
348*f126890aSEmmanuel Vadot			};
349*f126890aSEmmanuel Vadot
350*f126890aSEmmanuel Vadot			/* Last MB is for the BBT, i.e. not writable */
351*f126890aSEmmanuel Vadot			partition@c00000 {
352*f126890aSEmmanuel Vadot				label = "ubifs";
353*f126890aSEmmanuel Vadot				reg = <0x0c00000 0x7400000>; /* 116MB */
354*f126890aSEmmanuel Vadot			};
355*f126890aSEmmanuel Vadot		};
356*f126890aSEmmanuel Vadot	};
357*f126890aSEmmanuel Vadot};
358