1// SPDX-License-Identifier: GPL-2.0+
2/* Device tree file for the Zyxel NSA 325 NAS box.
3 *
4 * Copyright (c) 2015, Hans Ulli Kroll <ulli.kroll@googlemail.com>
5 *
6 *
7 * Based upon the board setup file created by Peter Schildmann
8 */
9
10/dts-v1/;
11
12#include "kirkwood-nsa3x0-common.dtsi"
13
14/ {
15	model = "ZyXEL NSA325";
16	compatible = "zyxel,nsa325", "marvell,kirkwood-88f6282", "marvell,kirkwood";
17
18	memory {
19		device_type = "memory";
20		reg = <0x00000000 0x20000000>;
21	};
22
23	chosen {
24		bootargs = "console=ttyS0,115200";
25		stdout-path = &uart0;
26	};
27
28	ocp@f1000000 {
29		pinctrl: pin-controller@10000 {
30			pinctrl-names = "default";
31
32			pmx_led_hdd2_green: pmx-led-hdd2-green {
33				marvell,pins = "mpp12";
34				marvell,function = "gpio";
35			};
36
37			pmx_led_hdd2_red: pmx-led-hdd2-red {
38				marvell,pins = "mpp13";
39				marvell,function = "gpio";
40			};
41
42			pmx_mcu_data: pmx-mcu-data {
43				marvell,pins = "mpp14";
44				marvell,function = "gpio";
45			};
46
47			pmx_led_usb_green: pmx-led-usb-green {
48				marvell,pins = "mpp15";
49				marvell,function = "gpio";
50			};
51
52			pmx_mcu_clk: pmx-mcu-clk {
53				marvell,pins = "mpp16";
54				marvell,function = "gpio";
55			};
56
57			pmx_mcu_act: pmx-mcu-act {
58				marvell,pins = "mpp17";
59				marvell,function = "gpio";
60			};
61
62			pmx_led_sys_green: pmx-led-sys-green {
63				marvell,pins = "mpp28";
64				marvell,function = "gpio";
65			};
66
67			pmx_led_sys_orange: pmx-led-sys-orange {
68				marvell,pins = "mpp29";
69				marvell,function = "gpio";
70			};
71
72			pmx_led_hdd1_green: pmx-led-hdd1-green {
73				marvell,pins = "mpp41";
74				marvell,function = "gpio";
75			};
76
77			pmx_led_hdd1_red: pmx-led-hdd1-red {
78				marvell,pins = "mpp42";
79				marvell,function = "gpio";
80			};
81
82			pmx_htp: pmx-htp {
83				marvell,pins = "mpp43";
84				marvell,function = "gpio";
85			};
86
87			/*
88			 * Buzzer needs to be switched at around 1kHz so is
89			 * not compatible with the gpio-beeper driver.
90			 */
91			pmx_buzzer: pmx-buzzer {
92				marvell,pins = "mpp44";
93				marvell,function = "gpio";
94			};
95
96			pmx_vid_b1: pmx-vid-b1 {
97				marvell,pins = "mpp45";
98				marvell,function = "gpio";
99			};
100
101			pmx_power_resume_data: pmx-power-resume-data {
102				marvell,pins = "mpp47";
103				marvell,function = "gpio";
104			};
105
106			pmx_power_resume_clk: pmx-power-resume-clk {
107				marvell,pins = "mpp49";
108				marvell,function = "gpio";
109			};
110
111			pmx_pwr_sata1: pmx-pwr-sata1 {
112				marvell,pins = "mpp47";
113				marvell,function = "gpio";
114			};
115		};
116
117		/* This board uses the pcf8563 RTC instead of the SoC RTC */
118		rtc@10300 {
119			status = "disabled";
120		};
121
122		i2c@11000 {
123			status = "okay";
124
125			pcf8563: pcf8563@51 {
126				compatible = "nxp,pcf8563";
127				reg = <0x51>;
128			};
129		};
130	};
131
132	regulators {
133		compatible = "simple-bus";
134		#address-cells = <1>;
135		#size-cells = <0>;
136		pinctrl-0 = <&pmx_pwr_sata1>;
137		pinctrl-names = "default";
138
139		usb0_power: regulator@1 {
140			enable-active-high;
141		};
142
143		sata1_power: regulator@2 {
144			compatible = "regulator-fixed";
145			reg = <2>;
146			regulator-name = "SATA1 Power";
147			regulator-min-microvolt = <5000000>;
148			regulator-max-microvolt = <5000000>;
149			regulator-always-on;
150			regulator-boot-on;
151			enable-active-high;
152			gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
153		};
154	};
155
156	gpio-leds {
157		compatible = "gpio-leds";
158		pinctrl-0 = <&pmx_led_hdd2_green &pmx_led_hdd2_red
159			     &pmx_led_usb_green
160			     &pmx_led_sys_green &pmx_led_sys_orange
161			     &pmx_led_copy_green &pmx_led_copy_red
162			     &pmx_led_hdd1_green &pmx_led_hdd1_red>;
163		pinctrl-names = "default";
164
165		green-sys {
166			label = "nsa325:green:sys";
167			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
168		};
169		orange-sys {
170			label = "nsa325:orange:sys";
171			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
172		};
173		green-hdd1 {
174			label = "nsa325:green:hdd1";
175			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
176		};
177		red-hdd1 {
178			label = "nsa325:red:hdd1";
179			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
180		};
181		green-hdd2 {
182			label = "nsa325:green:hdd2";
183			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
184		};
185		red-hdd2 {
186			label = "nsa325:red:hdd2";
187			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
188		};
189		green-usb {
190			label = "nsa325:green:usb";
191			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
192		};
193		green-copy {
194			label = "nsa325:green:copy";
195			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
196		};
197		red-copy {
198			label = "nsa325:red:copy";
199			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
200		};
201
202	/* The following pins are currently not assigned to a driver,
203	   some of them should be configured as inputs.
204	pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act
205		     &pmx_htp &pmx_vid_b1
206		     &pmx_power_resume_data &pmx_power_resume_clk>; */
207	};
208
209
210};
211
212&mdio {
213	status = "okay";
214	ethphy0: ethernet-phy@1 {
215		reg = <1>;
216	};
217};
218
219&eth0 {
220	status = "okay";
221	ethernet0-port@0 {
222		phy-handle = <&ethphy0>;
223	};
224};
225
226&pciec {
227        status = "okay";
228};
229
230&pcie0 {
231	status = "okay";
232};
233