1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * ZyXEL NSA310S Board Description
4*724ba675SRob Herring * Copyright 2020-2022 Pawel Dembicki <paweldembicki@gmail.com>
5*724ba675SRob Herring * Copyright (c) 2015-2021, Tony Dinh <mibodhi@gmail.com>
6*724ba675SRob Herring * Copyright (c) 2014, Adam Baker <linux@baker-net.org.uk>
7*724ba675SRob Herring * Based upon the board setup file created by Peter Schildmann
8*724ba675SRob Herring */
9*724ba675SRob Herring/dts-v1/;
10*724ba675SRob Herring
11*724ba675SRob Herring#include "kirkwood.dtsi"
12*724ba675SRob Herring#include "kirkwood-6281.dtsi"
13*724ba675SRob Herring#include <dt-bindings/leds/common.h>
14*724ba675SRob Herring
15*724ba675SRob Herring/ {
16*724ba675SRob Herring	model = "ZyXEL NSA310S";
17*724ba675SRob Herring	compatible = "zyxel,nsa310s", "marvell,kirkwood-88f6702", "marvell,kirkwood";
18*724ba675SRob Herring
19*724ba675SRob Herring	memory {
20*724ba675SRob Herring		device_type = "memory";
21*724ba675SRob Herring		reg = <0x00000000 0x10000000>;
22*724ba675SRob Herring	};
23*724ba675SRob Herring
24*724ba675SRob Herring	chosen {
25*724ba675SRob Herring		bootargs = "console=ttyS0,115200n8 earlyprintk";
26*724ba675SRob Herring		stdout-path = &uart0;
27*724ba675SRob Herring	};
28*724ba675SRob Herring
29*724ba675SRob Herring	gpio_poweroff {
30*724ba675SRob Herring		compatible = "gpio-poweroff";
31*724ba675SRob Herring		pinctrl-0 = <&pmx_pwr_off>;
32*724ba675SRob Herring		pinctrl-names = "default";
33*724ba675SRob Herring		gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
34*724ba675SRob Herring	};
35*724ba675SRob Herring
36*724ba675SRob Herring	keys {
37*724ba675SRob Herring		compatible = "gpio-keys";
38*724ba675SRob Herring		#address-cells = <1>;
39*724ba675SRob Herring		#size-cells = <0>;
40*724ba675SRob Herring		pinctrl-0 = <&pmx_buttons>;
41*724ba675SRob Herring		pinctrl-names = "default";
42*724ba675SRob Herring
43*724ba675SRob Herring		power {
44*724ba675SRob Herring			label = "Power Button";
45*724ba675SRob Herring			linux,code = <KEY_POWER>;
46*724ba675SRob Herring			gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
47*724ba675SRob Herring		};
48*724ba675SRob Herring
49*724ba675SRob Herring		copy {
50*724ba675SRob Herring			label = "Copy Button";
51*724ba675SRob Herring			linux,code = <KEY_COPY>;
52*724ba675SRob Herring			gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
53*724ba675SRob Herring		};
54*724ba675SRob Herring
55*724ba675SRob Herring		reset {
56*724ba675SRob Herring			label = "Reset Button";
57*724ba675SRob Herring			linux,code = <KEY_RESTART>;
58*724ba675SRob Herring			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
59*724ba675SRob Herring		};
60*724ba675SRob Herring	};
61*724ba675SRob Herring
62*724ba675SRob Herring	leds {
63*724ba675SRob Herring		compatible = "gpio-leds";
64*724ba675SRob Herring		pinctrl-0 = <&pmx_leds>;
65*724ba675SRob Herring		pinctrl-names = "default";
66*724ba675SRob Herring
67*724ba675SRob Herring		led-1 {
68*724ba675SRob Herring			function = LED_FUNCTION_DISK_ERR;
69*724ba675SRob Herring			color = <LED_COLOR_ID_RED>;
70*724ba675SRob Herring			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
71*724ba675SRob Herring		};
72*724ba675SRob Herring
73*724ba675SRob Herring		led-2 {
74*724ba675SRob Herring			function = LED_FUNCTION_USB;
75*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
76*724ba675SRob Herring			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
77*724ba675SRob Herring			linux,default-trigger = "usb-host";
78*724ba675SRob Herring		};
79*724ba675SRob Herring
80*724ba675SRob Herring		led-3 {
81*724ba675SRob Herring			function = LED_FUNCTION_DISK;
82*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
83*724ba675SRob Herring			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
84*724ba675SRob Herring			linux,default-trigger = "ata1";
85*724ba675SRob Herring		};
86*724ba675SRob Herring
87*724ba675SRob Herring		led-4 {
88*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
89*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
90*724ba675SRob Herring			gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
91*724ba675SRob Herring		};
92*724ba675SRob Herring
93*724ba675SRob Herring		led-5 {
94*724ba675SRob Herring			function = LED_FUNCTION_INDICATOR;
95*724ba675SRob Herring			color = <LED_COLOR_ID_RED>;
96*724ba675SRob Herring			gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
97*724ba675SRob Herring		};
98*724ba675SRob Herring
99*724ba675SRob Herring		led-6 {
100*724ba675SRob Herring			function = LED_FUNCTION_STATUS;
101*724ba675SRob Herring			color = <LED_COLOR_ID_GREEN>;
102*724ba675SRob Herring			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
103*724ba675SRob Herring			linux,default-trigger = "default-on";
104*724ba675SRob Herring		};
105*724ba675SRob Herring
106*724ba675SRob Herring		led-7 {
107*724ba675SRob Herring			function = LED_FUNCTION_STATUS;
108*724ba675SRob Herring			color = <LED_COLOR_ID_RED>;
109*724ba675SRob Herring			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
110*724ba675SRob Herring		};
111*724ba675SRob Herring	};
112*724ba675SRob Herring
113*724ba675SRob Herring	usb0_power: regulator@1 {
114*724ba675SRob Herring		compatible = "regulator-fixed";
115*724ba675SRob Herring		regulator-name = "USB Power";
116*724ba675SRob Herring
117*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
118*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
119*724ba675SRob Herring		regulator-always-on;
120*724ba675SRob Herring		regulator-boot-on;
121*724ba675SRob Herring		gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
122*724ba675SRob Herring	};
123*724ba675SRob Herring
124*724ba675SRob Herring	sata1_power: regulator@2 {
125*724ba675SRob Herring		compatible = "regulator-fixed";
126*724ba675SRob Herring		regulator-name = "SATA1 Power";
127*724ba675SRob Herring
128*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
129*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
130*724ba675SRob Herring		regulator-always-on;
131*724ba675SRob Herring		regulator-boot-on;
132*724ba675SRob Herring		gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
133*724ba675SRob Herring	};
134*724ba675SRob Herring
135*724ba675SRob Herring	thermal-zones {
136*724ba675SRob Herring		disk-thermal {
137*724ba675SRob Herring			polling-delay = <20000>;
138*724ba675SRob Herring			polling-delay-passive = <2000>;
139*724ba675SRob Herring
140*724ba675SRob Herring			thermal-sensors = <&hdd_temp>;
141*724ba675SRob Herring
142*724ba675SRob Herring			trips {
143*724ba675SRob Herring				disk_alert: disk-alert {
144*724ba675SRob Herring					temperature = <40000>;
145*724ba675SRob Herring					hysteresis = <5000>;
146*724ba675SRob Herring					type = "active";
147*724ba675SRob Herring				};
148*724ba675SRob Herring				disk_crit: disk-crit {
149*724ba675SRob Herring					temperature = <60000>;
150*724ba675SRob Herring					hysteresis = <2000>;
151*724ba675SRob Herring					type = "critical";
152*724ba675SRob Herring				};
153*724ba675SRob Herring			};
154*724ba675SRob Herring		};
155*724ba675SRob Herring	};
156*724ba675SRob Herring};
157*724ba675SRob Herring
158*724ba675SRob Herring
159*724ba675SRob Herring&eth0 {
160*724ba675SRob Herring	status = "okay";
161*724ba675SRob Herring
162*724ba675SRob Herring	ethernet0-port@0 {
163*724ba675SRob Herring		phy-handle = <&ethphy0>;
164*724ba675SRob Herring	};
165*724ba675SRob Herring};
166*724ba675SRob Herring
167*724ba675SRob Herring&i2c0 {
168*724ba675SRob Herring	status = "okay";
169*724ba675SRob Herring
170*724ba675SRob Herring	rtc@68 {
171*724ba675SRob Herring		compatible = "htk,ht1382";
172*724ba675SRob Herring		reg = <0x68>;
173*724ba675SRob Herring	};
174*724ba675SRob Herring};
175*724ba675SRob Herring
176*724ba675SRob Herring&mdio {
177*724ba675SRob Herring	status = "okay";
178*724ba675SRob Herring
179*724ba675SRob Herring	ethphy0: ethernet-phy@1 {
180*724ba675SRob Herring		reg = <1>;
181*724ba675SRob Herring		phy-mode = "rgmii-id";
182*724ba675SRob Herring		marvell,reg-init = <0x1 0x16 0x0 0x3>,
183*724ba675SRob Herring				   <0x1 0x10 0x0 0x1017>,
184*724ba675SRob Herring				   <0x1 0x11 0x0 0x4408>,
185*724ba675SRob Herring				   <0x1 0x16 0x0 0x0>;
186*724ba675SRob Herring	};
187*724ba675SRob Herring};
188*724ba675SRob Herring
189*724ba675SRob Herring&nand {
190*724ba675SRob Herring	status = "okay";
191*724ba675SRob Herring	chip-delay = <35>;
192*724ba675SRob Herring
193*724ba675SRob Herring	partition@0 {
194*724ba675SRob Herring		label = "uboot";
195*724ba675SRob Herring		reg = <0x0000000 0x00c0000>;
196*724ba675SRob Herring		read-only;
197*724ba675SRob Herring	};
198*724ba675SRob Herring	partition@c0000 {
199*724ba675SRob Herring		label = "uboot_env";
200*724ba675SRob Herring		reg = <0x00c0000 0x0080000>;
201*724ba675SRob Herring	};
202*724ba675SRob Herring	partition@140000 {
203*724ba675SRob Herring		label = "ubi";
204*724ba675SRob Herring		reg = <0x0140000 0x7ec0000>;
205*724ba675SRob Herring	};
206*724ba675SRob Herring};
207*724ba675SRob Herring
208*724ba675SRob Herring&pciec {
209*724ba675SRob Herring	status = "okay";
210*724ba675SRob Herring};
211*724ba675SRob Herring
212*724ba675SRob Herring&pcie0 {
213*724ba675SRob Herring	status = "okay";
214*724ba675SRob Herring};
215*724ba675SRob Herring
216*724ba675SRob Herring&pinctrl {
217*724ba675SRob Herring	pinctrl-names = "default";
218*724ba675SRob Herring
219*724ba675SRob Herring	pmx_buttons: pmx-buttons {
220*724ba675SRob Herring		marvell,pins = "mpp24", "mpp25", "mpp26";
221*724ba675SRob Herring		marvell,function = "gpio";
222*724ba675SRob Herring	};
223*724ba675SRob Herring
224*724ba675SRob Herring	pmx_leds: pmx-leds {
225*724ba675SRob Herring		marvell,pins = "mpp13", "mpp15", "mpp16", "mpp22", "mpp23",
226*724ba675SRob Herring						"mpp28", "mpp29";
227*724ba675SRob Herring		marvell,function = "gpio";
228*724ba675SRob Herring	};
229*724ba675SRob Herring
230*724ba675SRob Herring	pmx_power: pmx-power {
231*724ba675SRob Herring		marvell,pins = "mpp21", "mpp33";
232*724ba675SRob Herring		marvell,function = "gpio";
233*724ba675SRob Herring	};
234*724ba675SRob Herring
235*724ba675SRob Herring	pmx_pwr_off: pmx-pwr-off {
236*724ba675SRob Herring		marvell,pins = "mpp27";
237*724ba675SRob Herring		marvell,function = "gpio";
238*724ba675SRob Herring	};
239*724ba675SRob Herring};
240*724ba675SRob Herring
241*724ba675SRob Herring&rtc {
242*724ba675SRob Herring	status = "disabled";
243*724ba675SRob Herring};
244*724ba675SRob Herring
245*724ba675SRob Herring&sata {
246*724ba675SRob Herring	status = "okay";
247*724ba675SRob Herring	nr-ports = <1>;
248*724ba675SRob Herring	#address-cells = <1>;
249*724ba675SRob Herring	#size-cells = <0>;
250*724ba675SRob Herring
251*724ba675SRob Herring	hdd_temp: sata-port@0 {
252*724ba675SRob Herring		reg = <0>;
253*724ba675SRob Herring		#thermal-sensor-cells = <0>;
254*724ba675SRob Herring	};
255*724ba675SRob Herring};
256*724ba675SRob Herring
257*724ba675SRob Herring&uart0 {
258*724ba675SRob Herring	status = "okay";
259*724ba675SRob Herring};
260