xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3568-qnap-ts433.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
19da1c032SUwe Kleine-König// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29da1c032SUwe Kleine-König/*
39da1c032SUwe Kleine-König * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
49da1c032SUwe Kleine-König * Copyright (c) 2024 Uwe Kleine-König
59da1c032SUwe Kleine-König */
69da1c032SUwe Kleine-König
79da1c032SUwe Kleine-König/dts-v1/;
89da1c032SUwe Kleine-König
99b682d31SHeiko Stuebner#include <dt-bindings/input/input.h>
10ea91aabfSHeiko Stuebner#include <dt-bindings/leds/common.h>
119da1c032SUwe Kleine-König#include <dt-bindings/gpio/gpio.h>
129da1c032SUwe Kleine-König#include "rk3568.dtsi"
139da1c032SUwe Kleine-König
149da1c032SUwe Kleine-König/ {
159da1c032SUwe Kleine-König	model = "Qnap TS-433-4G NAS System 4-Bay";
169da1c032SUwe Kleine-König	compatible = "qnap,ts433", "rockchip,rk3568";
17e0ec6d48SHeiko Stuebner
18dadd4256SHeiko Stuebner	aliases {
19dadd4256SHeiko Stuebner		ethernet0 = &gmac0;
20dadd4256SHeiko Stuebner		mmc0 = &sdhci;
21dadd4256SHeiko Stuebner		rtc0 = &rtc_rv8263;
22dadd4256SHeiko Stuebner	};
23dadd4256SHeiko Stuebner
24e1cb5d8aSHeiko Stuebner	chosen {
25e1cb5d8aSHeiko Stuebner		stdout-path = "serial2:115200n8";
26e1cb5d8aSHeiko Stuebner	};
27e1cb5d8aSHeiko Stuebner
289b682d31SHeiko Stuebner	keys {
299b682d31SHeiko Stuebner		compatible = "gpio-keys";
309b682d31SHeiko Stuebner		pinctrl-0 = <&copy_button_pin>, <&reset_button_pin>;
319b682d31SHeiko Stuebner		pinctrl-names = "default";
329b682d31SHeiko Stuebner
339b682d31SHeiko Stuebner		key-copy {
349b682d31SHeiko Stuebner			label = "copy";
359b682d31SHeiko Stuebner			gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
369b682d31SHeiko Stuebner			linux,code = <KEY_COPY>;
379b682d31SHeiko Stuebner		};
389b682d31SHeiko Stuebner
399b682d31SHeiko Stuebner		key-reset {
409b682d31SHeiko Stuebner			label = "reset";
419b682d31SHeiko Stuebner			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>;
429b682d31SHeiko Stuebner			linux,code = <KEY_RESTART>;
439b682d31SHeiko Stuebner		};
449b682d31SHeiko Stuebner	};
459b682d31SHeiko Stuebner
46ea91aabfSHeiko Stuebner	leds {
47ea91aabfSHeiko Stuebner		compatible = "gpio-leds";
48ea91aabfSHeiko Stuebner
49ea91aabfSHeiko Stuebner		led-0 {
50ea91aabfSHeiko Stuebner			color = <LED_COLOR_ID_GREEN>;
51ea91aabfSHeiko Stuebner			function = LED_FUNCTION_DISK;
52ea91aabfSHeiko Stuebner			gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
5328876859SHeiko Stuebner			label = "hdd1:green:disk";
54ea91aabfSHeiko Stuebner			linux,default-trigger = "disk-activity";
55ea91aabfSHeiko Stuebner			pinctrl-names = "default";
56ea91aabfSHeiko Stuebner			pinctrl-0 = <&hdd1_led_pin>;
57ea91aabfSHeiko Stuebner		};
58ea91aabfSHeiko Stuebner
59ea91aabfSHeiko Stuebner		led-1 {
60ea91aabfSHeiko Stuebner			color = <LED_COLOR_ID_GREEN>;
61ea91aabfSHeiko Stuebner			function = LED_FUNCTION_DISK;
62ea91aabfSHeiko Stuebner			gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
6328876859SHeiko Stuebner			label = "hdd2:green:disk";
64ea91aabfSHeiko Stuebner			linux,default-trigger = "disk-activity";
65ea91aabfSHeiko Stuebner			pinctrl-names = "default";
66ea91aabfSHeiko Stuebner			pinctrl-0 = <&hdd2_led_pin>;
67ea91aabfSHeiko Stuebner		};
68ea91aabfSHeiko Stuebner
69ea91aabfSHeiko Stuebner		led-2 {
70ea91aabfSHeiko Stuebner			color = <LED_COLOR_ID_GREEN>;
71ea91aabfSHeiko Stuebner			function = LED_FUNCTION_DISK;
72ea91aabfSHeiko Stuebner			gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>;
7328876859SHeiko Stuebner			label = "hdd3:green:disk";
74ea91aabfSHeiko Stuebner			linux,default-trigger = "disk-activity";
75ea91aabfSHeiko Stuebner			pinctrl-names = "default";
76ea91aabfSHeiko Stuebner			pinctrl-0 = <&hdd3_led_pin>;
77ea91aabfSHeiko Stuebner		};
78ea91aabfSHeiko Stuebner
79ea91aabfSHeiko Stuebner		led-3 {
80ea91aabfSHeiko Stuebner			color = <LED_COLOR_ID_GREEN>;
81ea91aabfSHeiko Stuebner			function = LED_FUNCTION_DISK;
82ea91aabfSHeiko Stuebner			gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
8328876859SHeiko Stuebner			label = "hdd4:green:disk";
84ea91aabfSHeiko Stuebner			linux,default-trigger = "disk-activity";
85ea91aabfSHeiko Stuebner			pinctrl-names = "default";
86ea91aabfSHeiko Stuebner			pinctrl-0 = <&hdd4_led_pin>;
87ea91aabfSHeiko Stuebner		};
88ea91aabfSHeiko Stuebner	};
89ea91aabfSHeiko Stuebner
90e0ec6d48SHeiko Stuebner	dc_12v: regulator-dc-12v {
91e0ec6d48SHeiko Stuebner		compatible = "regulator-fixed";
92e0ec6d48SHeiko Stuebner		regulator-name = "dc_12v";
93e0ec6d48SHeiko Stuebner		regulator-always-on;
94e0ec6d48SHeiko Stuebner		regulator-boot-on;
95e0ec6d48SHeiko Stuebner		regulator-min-microvolt = <12000000>;
96e0ec6d48SHeiko Stuebner		regulator-max-microvolt = <12000000>;
97e0ec6d48SHeiko Stuebner	};
98e0ec6d48SHeiko Stuebner
99e0ec6d48SHeiko Stuebner	vcc3v3_pcie: regulator-vcc3v3-pcie {
100e0ec6d48SHeiko Stuebner		compatible = "regulator-fixed";
101e0ec6d48SHeiko Stuebner		regulator-name = "vcc3v3_pcie";
102e0ec6d48SHeiko Stuebner		regulator-min-microvolt = <3300000>;
103e0ec6d48SHeiko Stuebner		regulator-max-microvolt = <3300000>;
104e0ec6d48SHeiko Stuebner		enable-active-high;
105e0ec6d48SHeiko Stuebner		gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
106e0ec6d48SHeiko Stuebner		vin-supply = <&dc_12v>;
107e0ec6d48SHeiko Stuebner	};
108d992203fSHeiko Stuebner
109ee078c7dSHeiko Stuebner	vcc3v3_sys: regulator-vcc3v3-sys {
110ee078c7dSHeiko Stuebner		compatible = "regulator-fixed";
111ee078c7dSHeiko Stuebner		regulator-name = "vcc3v3_sys";
112ee078c7dSHeiko Stuebner		regulator-always-on;
113ee078c7dSHeiko Stuebner		regulator-boot-on;
114ee078c7dSHeiko Stuebner		regulator-min-microvolt = <3300000>;
115ee078c7dSHeiko Stuebner		regulator-max-microvolt = <3300000>;
116ee078c7dSHeiko Stuebner		vin-supply = <&dc_12v>;
117ee078c7dSHeiko Stuebner	};
118ee078c7dSHeiko Stuebner
119d992203fSHeiko Stuebner	vcc5v0_host: regulator-vcc5v0-host {
120d992203fSHeiko Stuebner		compatible = "regulator-fixed";
121d992203fSHeiko Stuebner		enable-active-high;
122d992203fSHeiko Stuebner		pinctrl-names = "default";
123d992203fSHeiko Stuebner		pinctrl-0 = <&vcc5v0_host_en>;
124d992203fSHeiko Stuebner		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
125d992203fSHeiko Stuebner		regulator-name = "vcc5v0_host";
126d992203fSHeiko Stuebner		regulator-always-on;
127d992203fSHeiko Stuebner		regulator-boot-on;
128d992203fSHeiko Stuebner		regulator-min-microvolt = <5000000>;
129d992203fSHeiko Stuebner		regulator-max-microvolt = <5000000>;
130d992203fSHeiko Stuebner		vin-supply = <&vcc5v0_usb>;
131d992203fSHeiko Stuebner	};
132d992203fSHeiko Stuebner
133d992203fSHeiko Stuebner	vcc5v0_otg: regulator-vcc5v0-otg {
134d992203fSHeiko Stuebner		compatible = "regulator-fixed";
135d992203fSHeiko Stuebner		enable-active-high;
136d992203fSHeiko Stuebner		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
137d992203fSHeiko Stuebner		pinctrl-names = "default";
138d992203fSHeiko Stuebner		pinctrl-0 = <&vcc5v0_otg_en>;
139d992203fSHeiko Stuebner		regulator-name = "vcc5v0_otg";
140d992203fSHeiko Stuebner		regulator-always-on;
141d992203fSHeiko Stuebner		regulator-boot-on;
142d992203fSHeiko Stuebner		regulator-min-microvolt = <5000000>;
143d992203fSHeiko Stuebner		regulator-max-microvolt = <5000000>;
144d992203fSHeiko Stuebner		vin-supply = <&vcc5v0_usb>;
145d992203fSHeiko Stuebner	};
146d992203fSHeiko Stuebner
14799b36ba9SHeiko Stuebner	vcc5v0_sys: regulator-vcc5v0-sys {
14899b36ba9SHeiko Stuebner		compatible = "regulator-fixed";
14999b36ba9SHeiko Stuebner		regulator-name = "vcc5v0_sys";
15099b36ba9SHeiko Stuebner		regulator-always-on;
15199b36ba9SHeiko Stuebner		regulator-boot-on;
15299b36ba9SHeiko Stuebner		regulator-min-microvolt = <5000000>;
15399b36ba9SHeiko Stuebner		regulator-max-microvolt = <5000000>;
15499b36ba9SHeiko Stuebner		vin-supply = <&dc_12v>;
15599b36ba9SHeiko Stuebner	};
15699b36ba9SHeiko Stuebner
157d992203fSHeiko Stuebner	vcc5v0_usb: regulator-vcc5v0-usb {
158d992203fSHeiko Stuebner		compatible = "regulator-fixed";
159d992203fSHeiko Stuebner		regulator-name = "vcc5v0_usb";
160d992203fSHeiko Stuebner		regulator-always-on;
161d992203fSHeiko Stuebner		regulator-boot-on;
162d992203fSHeiko Stuebner		regulator-min-microvolt = <5000000>;
163d992203fSHeiko Stuebner		regulator-max-microvolt = <5000000>;
164d992203fSHeiko Stuebner		vin-supply = <&dc_12v>;
165d992203fSHeiko Stuebner	};
166d992203fSHeiko Stuebner};
167d992203fSHeiko Stuebner
168d992203fSHeiko Stuebner/* connected to usb_host0_xhci */
169d992203fSHeiko Stuebner&combphy0 {
170d992203fSHeiko Stuebner	status = "okay";
1719da1c032SUwe Kleine-König};
1729da1c032SUwe Kleine-König
173673c1353SHeiko Stuebner/* connected to sata1 */
174673c1353SHeiko Stuebner&combphy1 {
175673c1353SHeiko Stuebner	status = "okay";
176673c1353SHeiko Stuebner};
177673c1353SHeiko Stuebner
178673c1353SHeiko Stuebner/* connected to sata2 */
179673c1353SHeiko Stuebner&combphy2 {
180673c1353SHeiko Stuebner	status = "okay";
181673c1353SHeiko Stuebner};
182673c1353SHeiko Stuebner
18399b36ba9SHeiko Stuebner&cpu0 {
18499b36ba9SHeiko Stuebner	cpu-supply = <&vdd_cpu>;
18599b36ba9SHeiko Stuebner};
18699b36ba9SHeiko Stuebner
18799b36ba9SHeiko Stuebner&cpu1 {
18899b36ba9SHeiko Stuebner	cpu-supply = <&vdd_cpu>;
18999b36ba9SHeiko Stuebner};
19099b36ba9SHeiko Stuebner
19199b36ba9SHeiko Stuebner&cpu2 {
19299b36ba9SHeiko Stuebner	cpu-supply = <&vdd_cpu>;
19399b36ba9SHeiko Stuebner};
19499b36ba9SHeiko Stuebner
19599b36ba9SHeiko Stuebner&cpu3 {
19699b36ba9SHeiko Stuebner	cpu-supply = <&vdd_cpu>;
19799b36ba9SHeiko Stuebner};
19899b36ba9SHeiko Stuebner
1999da1c032SUwe Kleine-König&gmac0 {
2009da1c032SUwe Kleine-König	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
2019da1c032SUwe Kleine-König	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
2029da1c032SUwe Kleine-König	assigned-clock-rates = <0>, <125000000>;
2039da1c032SUwe Kleine-König	clock_in_out = "output";
2049da1c032SUwe Kleine-König	phy-handle = <&rgmii_phy0>;
205e8d45544SUwe Kleine-König	phy-mode = "rgmii-id";
2069da1c032SUwe Kleine-König	pinctrl-names = "default";
2079da1c032SUwe Kleine-König	pinctrl-0 = <&gmac0_miim
2089da1c032SUwe Kleine-König		     &gmac0_tx_bus2
2099da1c032SUwe Kleine-König		     &gmac0_rx_bus2
2109da1c032SUwe Kleine-König		     &gmac0_rgmii_clk
2119da1c032SUwe Kleine-König		     &gmac0_rgmii_bus>;
2129da1c032SUwe Kleine-König	status = "okay";
2139da1c032SUwe Kleine-König};
2149da1c032SUwe Kleine-König
2159130eb62SHeiko Stuebner&gpu {
2169130eb62SHeiko Stuebner	mali-supply = <&vdd_gpu>;
2179130eb62SHeiko Stuebner	status = "okay";
2189130eb62SHeiko Stuebner};
2199130eb62SHeiko Stuebner
2209da1c032SUwe Kleine-König&i2c0 {
22199b36ba9SHeiko Stuebner	status = "okay";
22299b36ba9SHeiko Stuebner
2239da1c032SUwe Kleine-König	pmic@20 {
2249da1c032SUwe Kleine-König		compatible = "rockchip,rk809";
2259da1c032SUwe Kleine-König		reg = <0x20>;
2269da1c032SUwe Kleine-König		interrupt-parent = <&gpio0>;
227ee078c7dSHeiko Stuebner		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
228ee078c7dSHeiko Stuebner		#clock-cells = <1>;
229ee078c7dSHeiko Stuebner		pinctrl-names = "default";
230ee078c7dSHeiko Stuebner		pinctrl-0 = <&pmic_int_l>;
231ee078c7dSHeiko Stuebner		system-power-controller;
232ee078c7dSHeiko Stuebner		vcc1-supply = <&vcc3v3_sys>;
233ee078c7dSHeiko Stuebner		vcc2-supply = <&vcc3v3_sys>;
234ee078c7dSHeiko Stuebner		vcc3-supply = <&vcc3v3_sys>;
235ee078c7dSHeiko Stuebner		vcc4-supply = <&vcc3v3_sys>;
236ee078c7dSHeiko Stuebner		vcc5-supply = <&vcc3v3_sys>;
237ee078c7dSHeiko Stuebner		vcc6-supply = <&vcc3v3_sys>;
238ee078c7dSHeiko Stuebner		vcc7-supply = <&vcc3v3_sys>;
239ee078c7dSHeiko Stuebner		vcc8-supply = <&vcc3v3_sys>;
240ee078c7dSHeiko Stuebner		vcc9-supply = <&vcc3v3_sys>;
241ee078c7dSHeiko Stuebner		wakeup-source;
242ee078c7dSHeiko Stuebner
243ee078c7dSHeiko Stuebner		regulators {
244ee078c7dSHeiko Stuebner			vdd_logic: DCDC_REG1 {
245ee078c7dSHeiko Stuebner				regulator-name = "vdd_logic";
246ee078c7dSHeiko Stuebner				regulator-always-on;
247ee078c7dSHeiko Stuebner				regulator-boot-on;
248ee078c7dSHeiko Stuebner				regulator-initial-mode = <0x2>;
249ee078c7dSHeiko Stuebner				regulator-min-microvolt = <500000>;
250ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1350000>;
251ee078c7dSHeiko Stuebner				regulator-ramp-delay = <6001>;
252ee078c7dSHeiko Stuebner
253ee078c7dSHeiko Stuebner				regulator-state-mem {
254ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
255ee078c7dSHeiko Stuebner				};
256ee078c7dSHeiko Stuebner			};
257ee078c7dSHeiko Stuebner
258ee078c7dSHeiko Stuebner			vdd_gpu: DCDC_REG2 {
259ee078c7dSHeiko Stuebner				regulator-name = "vdd_gpu";
260ee078c7dSHeiko Stuebner				regulator-always-on;
261ee078c7dSHeiko Stuebner				regulator-initial-mode = <0x2>;
262ee078c7dSHeiko Stuebner				regulator-min-microvolt = <500000>;
263ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1350000>;
264ee078c7dSHeiko Stuebner				regulator-ramp-delay = <6001>;
265ee078c7dSHeiko Stuebner
266ee078c7dSHeiko Stuebner				regulator-state-mem {
267ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
268ee078c7dSHeiko Stuebner				};
269ee078c7dSHeiko Stuebner			};
270ee078c7dSHeiko Stuebner
271ee078c7dSHeiko Stuebner			vcc_ddr: DCDC_REG3 {
272ee078c7dSHeiko Stuebner				regulator-name = "vcc_ddr";
273ee078c7dSHeiko Stuebner				regulator-always-on;
274ee078c7dSHeiko Stuebner				regulator-boot-on;
275ee078c7dSHeiko Stuebner				regulator-initial-mode = <0x2>;
276ee078c7dSHeiko Stuebner
277ee078c7dSHeiko Stuebner				regulator-state-mem {
278ee078c7dSHeiko Stuebner					regulator-on-in-suspend;
279ee078c7dSHeiko Stuebner				};
280ee078c7dSHeiko Stuebner			};
281ee078c7dSHeiko Stuebner
282ee078c7dSHeiko Stuebner			vdd_npu: DCDC_REG4 {
283ee078c7dSHeiko Stuebner				regulator-name = "vdd_npu";
284ee078c7dSHeiko Stuebner				regulator-initial-mode = <0x2>;
285ee078c7dSHeiko Stuebner				regulator-min-microvolt = <500000>;
286ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1350000>;
287ee078c7dSHeiko Stuebner				regulator-ramp-delay = <6001>;
288ee078c7dSHeiko Stuebner
289ee078c7dSHeiko Stuebner				regulator-state-mem {
290ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
291ee078c7dSHeiko Stuebner				};
292ee078c7dSHeiko Stuebner			};
293ee078c7dSHeiko Stuebner
294ee078c7dSHeiko Stuebner			vcc_1v8: DCDC_REG5 {
295ee078c7dSHeiko Stuebner				regulator-name = "vcc_1v8";
296ee078c7dSHeiko Stuebner				regulator-always-on;
297ee078c7dSHeiko Stuebner				regulator-boot-on;
298ee078c7dSHeiko Stuebner				regulator-min-microvolt = <1800000>;
299ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1800000>;
300ee078c7dSHeiko Stuebner
301ee078c7dSHeiko Stuebner				regulator-state-mem {
302ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
303ee078c7dSHeiko Stuebner				};
304ee078c7dSHeiko Stuebner			};
305ee078c7dSHeiko Stuebner
306ee078c7dSHeiko Stuebner			vdda0v9_image: LDO_REG1 {
307ee078c7dSHeiko Stuebner				regulator-name = "vdda0v9_image";
308ee078c7dSHeiko Stuebner				regulator-always-on;
309ee078c7dSHeiko Stuebner				regulator-min-microvolt = <900000>;
310ee078c7dSHeiko Stuebner				regulator-max-microvolt = <900000>;
311ee078c7dSHeiko Stuebner
312ee078c7dSHeiko Stuebner				regulator-state-mem {
313ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
314ee078c7dSHeiko Stuebner				};
315ee078c7dSHeiko Stuebner			};
316ee078c7dSHeiko Stuebner
317ee078c7dSHeiko Stuebner			vdda_0v9: LDO_REG2 {
318ee078c7dSHeiko Stuebner				regulator-name = "vdda_0v9";
319ee078c7dSHeiko Stuebner				regulator-always-on;
320ee078c7dSHeiko Stuebner				regulator-boot-on;
321ee078c7dSHeiko Stuebner				regulator-min-microvolt = <900000>;
322ee078c7dSHeiko Stuebner				regulator-max-microvolt = <900000>;
323ee078c7dSHeiko Stuebner
324ee078c7dSHeiko Stuebner				regulator-state-mem {
325ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
326ee078c7dSHeiko Stuebner				};
327ee078c7dSHeiko Stuebner			};
328ee078c7dSHeiko Stuebner
329ee078c7dSHeiko Stuebner			vdda0v9_pmu: LDO_REG3 {
330ee078c7dSHeiko Stuebner				regulator-name = "vdda0v9_pmu";
331ee078c7dSHeiko Stuebner				regulator-always-on;
332ee078c7dSHeiko Stuebner				regulator-boot-on;
333ee078c7dSHeiko Stuebner				regulator-min-microvolt = <900000>;
334ee078c7dSHeiko Stuebner				regulator-max-microvolt = <900000>;
335ee078c7dSHeiko Stuebner
336ee078c7dSHeiko Stuebner				regulator-state-mem {
337ee078c7dSHeiko Stuebner					regulator-on-in-suspend;
338ee078c7dSHeiko Stuebner					regulator-suspend-microvolt = <900000>;
339ee078c7dSHeiko Stuebner				};
340ee078c7dSHeiko Stuebner			};
341ee078c7dSHeiko Stuebner
342ee078c7dSHeiko Stuebner			vccio_acodec: LDO_REG4 {
343ee078c7dSHeiko Stuebner				regulator-name = "vccio_acodec";
344ee078c7dSHeiko Stuebner				regulator-always-on;
345ee078c7dSHeiko Stuebner				regulator-boot-on;
346ee078c7dSHeiko Stuebner				regulator-min-microvolt = <3300000>;
347ee078c7dSHeiko Stuebner				regulator-max-microvolt = <3300000>;
348ee078c7dSHeiko Stuebner
349ee078c7dSHeiko Stuebner				regulator-state-mem {
350ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
351ee078c7dSHeiko Stuebner				};
352ee078c7dSHeiko Stuebner			};
353ee078c7dSHeiko Stuebner
354ee078c7dSHeiko Stuebner			vccio_sd: LDO_REG5 {
355ee078c7dSHeiko Stuebner				regulator-name = "vccio_sd";
356ee078c7dSHeiko Stuebner				regulator-min-microvolt = <1800000>;
357ee078c7dSHeiko Stuebner				regulator-max-microvolt = <3300000>;
358ee078c7dSHeiko Stuebner
359ee078c7dSHeiko Stuebner				regulator-state-mem {
360ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
361ee078c7dSHeiko Stuebner				};
362ee078c7dSHeiko Stuebner			};
363ee078c7dSHeiko Stuebner
364ee078c7dSHeiko Stuebner			vcc3v3_pmu: LDO_REG6 {
365ee078c7dSHeiko Stuebner				regulator-name = "vcc3v3_pmu";
366ee078c7dSHeiko Stuebner				regulator-always-on;
367ee078c7dSHeiko Stuebner				regulator-boot-on;
368ee078c7dSHeiko Stuebner				regulator-min-microvolt = <3300000>;
369ee078c7dSHeiko Stuebner				regulator-max-microvolt = <3300000>;
370ee078c7dSHeiko Stuebner
371ee078c7dSHeiko Stuebner				regulator-state-mem {
372ee078c7dSHeiko Stuebner					regulator-on-in-suspend;
373ee078c7dSHeiko Stuebner					regulator-suspend-microvolt = <3300000>;
374ee078c7dSHeiko Stuebner				};
375ee078c7dSHeiko Stuebner			};
376ee078c7dSHeiko Stuebner
377ee078c7dSHeiko Stuebner			vcca_1v8: LDO_REG7 {
378ee078c7dSHeiko Stuebner				regulator-name = "vcca_1v8";
379ee078c7dSHeiko Stuebner				regulator-always-on;
380ee078c7dSHeiko Stuebner				regulator-boot-on;
381ee078c7dSHeiko Stuebner				regulator-min-microvolt = <1800000>;
382ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1800000>;
383ee078c7dSHeiko Stuebner
384ee078c7dSHeiko Stuebner				regulator-state-mem {
385ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
386ee078c7dSHeiko Stuebner				};
387ee078c7dSHeiko Stuebner			};
388ee078c7dSHeiko Stuebner
389ee078c7dSHeiko Stuebner			vcca1v8_pmu: LDO_REG8 {
390ee078c7dSHeiko Stuebner				regulator-name = "vcca1v8_pmu";
391ee078c7dSHeiko Stuebner				regulator-always-on;
392ee078c7dSHeiko Stuebner				regulator-boot-on;
393ee078c7dSHeiko Stuebner				regulator-min-microvolt = <1800000>;
394ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1800000>;
395ee078c7dSHeiko Stuebner
396ee078c7dSHeiko Stuebner				regulator-state-mem {
397ee078c7dSHeiko Stuebner					regulator-on-in-suspend;
398ee078c7dSHeiko Stuebner					regulator-suspend-microvolt = <1800000>;
399ee078c7dSHeiko Stuebner				};
400ee078c7dSHeiko Stuebner			};
401ee078c7dSHeiko Stuebner
402ee078c7dSHeiko Stuebner			vcca1v8_image: LDO_REG9 {
403ee078c7dSHeiko Stuebner				regulator-name = "vcca1v8_image";
404ee078c7dSHeiko Stuebner				regulator-always-on;
405ee078c7dSHeiko Stuebner				regulator-min-microvolt = <1800000>;
406ee078c7dSHeiko Stuebner				regulator-max-microvolt = <1800000>;
407ee078c7dSHeiko Stuebner
408ee078c7dSHeiko Stuebner				regulator-state-mem {
409ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
410ee078c7dSHeiko Stuebner				};
411ee078c7dSHeiko Stuebner			};
412ee078c7dSHeiko Stuebner
413ee078c7dSHeiko Stuebner			vcc_3v3: SWITCH_REG1 {
414ee078c7dSHeiko Stuebner				regulator-name = "vcc_3v3";
415ee078c7dSHeiko Stuebner				regulator-always-on;
416ee078c7dSHeiko Stuebner				regulator-boot-on;
417ee078c7dSHeiko Stuebner
418ee078c7dSHeiko Stuebner				regulator-state-mem {
419ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
420ee078c7dSHeiko Stuebner				};
421ee078c7dSHeiko Stuebner			};
422ee078c7dSHeiko Stuebner
423ee078c7dSHeiko Stuebner			vcc3v3_sd: SWITCH_REG2 {
424ee078c7dSHeiko Stuebner				regulator-name = "vcc3v3_sd";
425ee078c7dSHeiko Stuebner				/*
426ee078c7dSHeiko Stuebner				 * turning this off, breaks access to both
427ee078c7dSHeiko Stuebner				 * PCIe controllers, refclk generator perhaps
428ee078c7dSHeiko Stuebner				 */
429ee078c7dSHeiko Stuebner				regulator-always-on;
430ee078c7dSHeiko Stuebner				regulator-boot-on;
431ee078c7dSHeiko Stuebner
432ee078c7dSHeiko Stuebner				regulator-state-mem {
433ee078c7dSHeiko Stuebner					regulator-off-in-suspend;
434ee078c7dSHeiko Stuebner				};
435ee078c7dSHeiko Stuebner			};
436ee078c7dSHeiko Stuebner		};
4379da1c032SUwe Kleine-König	};
43899b36ba9SHeiko Stuebner
43999b36ba9SHeiko Stuebner	vdd_cpu: regulator@40 {
44099b36ba9SHeiko Stuebner		compatible = "silergy,syr827";
44199b36ba9SHeiko Stuebner		reg = <0x40>;
44299b36ba9SHeiko Stuebner		fcs,suspend-voltage-selector = <1>;
44399b36ba9SHeiko Stuebner		regulator-name = "vdd_cpu";
44499b36ba9SHeiko Stuebner		regulator-always-on;
44599b36ba9SHeiko Stuebner		regulator-boot-on;
44699b36ba9SHeiko Stuebner		regulator-min-microvolt = <712500>;
44799b36ba9SHeiko Stuebner		regulator-max-microvolt = <1390000>;
44899b36ba9SHeiko Stuebner		regulator-ramp-delay = <2300>;
44999b36ba9SHeiko Stuebner		vin-supply = <&vcc5v0_sys>;
45099b36ba9SHeiko Stuebner	};
4519da1c032SUwe Kleine-König};
4529da1c032SUwe Kleine-König
4539da1c032SUwe Kleine-König&i2c1 {
4549da1c032SUwe Kleine-König	status = "okay";
4559da1c032SUwe Kleine-König
456dadd4256SHeiko Stuebner	rtc_rv8263: rtc@51 {
4579da1c032SUwe Kleine-König		compatible = "microcrystal,rv8263";
4589da1c032SUwe Kleine-König		reg = <0x51>;
4599da1c032SUwe Kleine-König		wakeup-source;
4609da1c032SUwe Kleine-König	};
461da6f4130SHeiko Stuebner
462da6f4130SHeiko Stuebner	/* eeprom for vital-product-data on the mainboard */
463da6f4130SHeiko Stuebner	eeprom@54 {
464da6f4130SHeiko Stuebner		compatible = "giantec,gt24c04a", "atmel,24c04";
465da6f4130SHeiko Stuebner		reg = <0x54>;
466da6f4130SHeiko Stuebner		label = "VPD_MB";
467da6f4130SHeiko Stuebner		num-addresses = <2>;
468da6f4130SHeiko Stuebner		pagesize = <16>;
469da6f4130SHeiko Stuebner		read-only;
470da6f4130SHeiko Stuebner	};
471da6f4130SHeiko Stuebner
472da6f4130SHeiko Stuebner	/* eeprom for vital-product-data on the backplane */
473da6f4130SHeiko Stuebner	eeprom@56 {
474da6f4130SHeiko Stuebner		compatible = "giantec,gt24c04a", "atmel,24c04";
475da6f4130SHeiko Stuebner		reg = <0x56>;
476da6f4130SHeiko Stuebner		label = "VPD_BP";
477da6f4130SHeiko Stuebner		num-addresses = <2>;
478da6f4130SHeiko Stuebner		pagesize = <16>;
479da6f4130SHeiko Stuebner		read-only;
480da6f4130SHeiko Stuebner	};
4819da1c032SUwe Kleine-König};
4829da1c032SUwe Kleine-König
4839da1c032SUwe Kleine-König&mdio0 {
484831263a4SUwe Kleine-König	rgmii_phy0: ethernet-phy@3 {
485831263a4SUwe Kleine-König		/* Motorcomm YT8521 phy */
4869da1c032SUwe Kleine-König		compatible = "ethernet-phy-ieee802.3-c22";
487831263a4SUwe Kleine-König		reg = <0x3>;
488*d01e09a9SUwe Kleine-König		pinctrl-0 = <&eth_phy0_reset_pin>;
489*d01e09a9SUwe Kleine-König		pinctrl-names = "default";
490*d01e09a9SUwe Kleine-König		reset-assert-us = <10000>;
491*d01e09a9SUwe Kleine-König		reset-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
4929da1c032SUwe Kleine-König	};
4939da1c032SUwe Kleine-König};
4949da1c032SUwe Kleine-König
495e09a1f00SHeiko Stuebner/*
496e09a1f00SHeiko Stuebner * The MCU can provide system temperature too, but only by polling and of
497e09a1f00SHeiko Stuebner * course also cannot set trip points. So attach to the cpu thermal-zone
498e09a1f00SHeiko Stuebner * instead to control the fan.
499e09a1f00SHeiko Stuebner */
500e09a1f00SHeiko Stuebner&cpu_thermal {
501e09a1f00SHeiko Stuebner	trips {
502e09a1f00SHeiko Stuebner		case_fan0: case-fan0 {
503e09a1f00SHeiko Stuebner			hysteresis = <2000>;
504e09a1f00SHeiko Stuebner			temperature = <35000>;
505e09a1f00SHeiko Stuebner			type = "active";
506e09a1f00SHeiko Stuebner		};
507e09a1f00SHeiko Stuebner
508e09a1f00SHeiko Stuebner		case_fan1: case-fan1 {
509e09a1f00SHeiko Stuebner			hysteresis = <2000>;
510e09a1f00SHeiko Stuebner			temperature = <45000>;
511e09a1f00SHeiko Stuebner			type = "active";
512e09a1f00SHeiko Stuebner		};
513e09a1f00SHeiko Stuebner
514e09a1f00SHeiko Stuebner		case_fan2: case-fan2 {
515e09a1f00SHeiko Stuebner			hysteresis = <2000>;
516e09a1f00SHeiko Stuebner			temperature = <65000>;
517e09a1f00SHeiko Stuebner			type = "active";
518e09a1f00SHeiko Stuebner		};
519e09a1f00SHeiko Stuebner	};
520e09a1f00SHeiko Stuebner
521e09a1f00SHeiko Stuebner	cooling-maps {
522e09a1f00SHeiko Stuebner		/*
523e09a1f00SHeiko Stuebner		 * Always provide some air movement, due to small case
524e09a1f00SHeiko Stuebner		 * full of harddrives.
525e09a1f00SHeiko Stuebner		 */
526e09a1f00SHeiko Stuebner		map1 {
527e09a1f00SHeiko Stuebner			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
528e09a1f00SHeiko Stuebner			trip = <&case_fan0>;
529e09a1f00SHeiko Stuebner		};
530e09a1f00SHeiko Stuebner
531e09a1f00SHeiko Stuebner		map2 {
532e09a1f00SHeiko Stuebner			cooling-device = <&fan 2 3>;
533e09a1f00SHeiko Stuebner			trip = <&case_fan1>;
534e09a1f00SHeiko Stuebner		};
535e09a1f00SHeiko Stuebner
536e09a1f00SHeiko Stuebner		map3 {
537e09a1f00SHeiko Stuebner			cooling-device = <&fan 4 THERMAL_NO_LIMIT>;
538e09a1f00SHeiko Stuebner			trip = <&case_fan2>;
539e09a1f00SHeiko Stuebner		};
540e09a1f00SHeiko Stuebner	};
541e09a1f00SHeiko Stuebner};
542e09a1f00SHeiko Stuebner
5439da1c032SUwe Kleine-König&pcie30phy {
5440f5f87a1SHeiko Stuebner	data-lanes = <1 2>;
5459da1c032SUwe Kleine-König	status = "okay";
5469da1c032SUwe Kleine-König};
5479da1c032SUwe Kleine-König
548e0ec6d48SHeiko Stuebner/* Connected to a JMicron AHCI SATA controller */
5499da1c032SUwe Kleine-König&pcie3x1 {
5509da1c032SUwe Kleine-König	reset-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
551e0ec6d48SHeiko Stuebner	vpcie3v3-supply = <&vcc3v3_pcie>;
5529da1c032SUwe Kleine-König	status = "okay";
5539da1c032SUwe Kleine-König};
5549da1c032SUwe Kleine-König
5550f5f87a1SHeiko Stuebner/* Connected to the 2.5G NIC for the upper network jack */
5560f5f87a1SHeiko Stuebner&pcie3x2 {
5570f5f87a1SHeiko Stuebner	num-lanes = <1>;
5580f5f87a1SHeiko Stuebner	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
5590f5f87a1SHeiko Stuebner	vpcie3v3-supply = <&vcc3v3_pcie>;
5600f5f87a1SHeiko Stuebner	status = "okay";
5610f5f87a1SHeiko Stuebner};
5620f5f87a1SHeiko Stuebner
563d992203fSHeiko Stuebner&pinctrl {
564*d01e09a9SUwe Kleine-König	gmac0 {
565*d01e09a9SUwe Kleine-König		eth_phy0_reset_pin: eth-phy0-reset-pin {
566*d01e09a9SUwe Kleine-König			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
567*d01e09a9SUwe Kleine-König		};
568*d01e09a9SUwe Kleine-König	};
569*d01e09a9SUwe Kleine-König
5709b682d31SHeiko Stuebner	keys {
5719b682d31SHeiko Stuebner		copy_button_pin: copy-button-pin {
5729b682d31SHeiko Stuebner			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
5739b682d31SHeiko Stuebner		};
5749b682d31SHeiko Stuebner
5759b682d31SHeiko Stuebner		reset_button_pin: reset-button-pin {
5769b682d31SHeiko Stuebner			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
5779b682d31SHeiko Stuebner		};
5789b682d31SHeiko Stuebner	};
5799b682d31SHeiko Stuebner
580ea91aabfSHeiko Stuebner	leds {
581ea91aabfSHeiko Stuebner		hdd1_led_pin: hdd1-led-pin {
582ea91aabfSHeiko Stuebner			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
583ea91aabfSHeiko Stuebner		};
584ea91aabfSHeiko Stuebner
585ea91aabfSHeiko Stuebner		hdd2_led_pin: hdd2-led-pin {
586ea91aabfSHeiko Stuebner			rockchip,pins = <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
587ea91aabfSHeiko Stuebner		};
588ea91aabfSHeiko Stuebner
589ea91aabfSHeiko Stuebner		hdd3_led_pin: hdd3-led-pin {
590ea91aabfSHeiko Stuebner			rockchip,pins = <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>;
591ea91aabfSHeiko Stuebner		};
592ea91aabfSHeiko Stuebner
593ea91aabfSHeiko Stuebner		hdd4_led_pin: hdd4_led-pin {
594ea91aabfSHeiko Stuebner			rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
595ea91aabfSHeiko Stuebner		};
596ea91aabfSHeiko Stuebner	};
597ea91aabfSHeiko Stuebner
598ee078c7dSHeiko Stuebner	pmic {
599ee078c7dSHeiko Stuebner		pmic_int_l: pmic-int-l {
600ee078c7dSHeiko Stuebner			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
601ee078c7dSHeiko Stuebner		};
602ee078c7dSHeiko Stuebner	};
603ee078c7dSHeiko Stuebner
604d992203fSHeiko Stuebner	usb {
605d992203fSHeiko Stuebner		vcc5v0_host_en: vcc5v0-host-en {
606d992203fSHeiko Stuebner			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
607d992203fSHeiko Stuebner		};
608d992203fSHeiko Stuebner
609d992203fSHeiko Stuebner		vcc5v0_otg_en: vcc5v0-otg-en {
610d992203fSHeiko Stuebner			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
611d992203fSHeiko Stuebner		};
612d992203fSHeiko Stuebner	};
613d992203fSHeiko Stuebner};
614d992203fSHeiko Stuebner
61564b7f16fSHeiko Stuebner&pmu_io_domains {
61664b7f16fSHeiko Stuebner	vccio4-supply = <&vcc_1v8>;
61764b7f16fSHeiko Stuebner	vccio6-supply = <&vcc_1v8>;
61840cc4257SHeiko Stuebner	status = "okay";
61964b7f16fSHeiko Stuebner};
62064b7f16fSHeiko Stuebner
621673c1353SHeiko Stuebner&sata1 {
622673c1353SHeiko Stuebner	status = "okay";
623673c1353SHeiko Stuebner};
624673c1353SHeiko Stuebner
625673c1353SHeiko Stuebner&sata2 {
626673c1353SHeiko Stuebner	status = "okay";
627673c1353SHeiko Stuebner};
628673c1353SHeiko Stuebner
6299da1c032SUwe Kleine-König&sdhci {
6309da1c032SUwe Kleine-König	bus-width = <8>;
6319da1c032SUwe Kleine-König	max-frequency = <200000000>;
6329da1c032SUwe Kleine-König	non-removable;
6337fc027e8SUwe Kleine-König	pinctrl-names = "default";
6347fc027e8SUwe Kleine-König	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
6359da1c032SUwe Kleine-König	status = "okay";
6369da1c032SUwe Kleine-König};
6379da1c032SUwe Kleine-König
6382dfdddd9SHeiko Stuebner&tsadc {
6392dfdddd9SHeiko Stuebner	rockchip,hw-tshut-mode = <1>;
6402dfdddd9SHeiko Stuebner	rockchip,hw-tshut-polarity = <0>;
6412dfdddd9SHeiko Stuebner	status = "okay";
6422dfdddd9SHeiko Stuebner};
6432dfdddd9SHeiko Stuebner
6449da1c032SUwe Kleine-König/*
64507ef8be4SHeiko Stuebner * Connected to an MCU, that provides access to more LEDs,
64607ef8be4SHeiko Stuebner * buzzer, fan control and more.
64707ef8be4SHeiko Stuebner */
64807ef8be4SHeiko Stuebner&uart0 {
64907ef8be4SHeiko Stuebner	status = "okay";
650e09a1f00SHeiko Stuebner
651e09a1f00SHeiko Stuebner	mcu {
652e09a1f00SHeiko Stuebner		compatible = "qnap,ts433-mcu";
653e09a1f00SHeiko Stuebner
654e09a1f00SHeiko Stuebner		fan: fan-0 {
655e09a1f00SHeiko Stuebner			#cooling-cells = <2>;
656e09a1f00SHeiko Stuebner			cooling-levels = <0 64 89 128 166 204 221 238>;
657e09a1f00SHeiko Stuebner		};
658e09a1f00SHeiko Stuebner	};
65907ef8be4SHeiko Stuebner};
66007ef8be4SHeiko Stuebner
66107ef8be4SHeiko Stuebner/*
662c5a48ffbSUwe Kleine-König * Pins available on CN3 connector at TTL voltage level (3V3).
6639da1c032SUwe Kleine-König * ,_  _.
6649da1c032SUwe Kleine-König * |1234|  1=TX 2=VCC
6659da1c032SUwe Kleine-König * `----'  3=RX 4=GND
6669da1c032SUwe Kleine-König */
6679da1c032SUwe Kleine-König&uart2 {
6689da1c032SUwe Kleine-König	status = "okay";
6699da1c032SUwe Kleine-König};
670d992203fSHeiko Stuebner
671d992203fSHeiko Stuebner&usb2phy0 {
672d992203fSHeiko Stuebner	status = "okay";
673d992203fSHeiko Stuebner};
674d992203fSHeiko Stuebner
675d992203fSHeiko Stuebner/* connected to usb_host0_xhci */
676d992203fSHeiko Stuebner&usb2phy0_otg {
677d992203fSHeiko Stuebner	phy-supply = <&vcc5v0_otg>;
678d992203fSHeiko Stuebner	status = "okay";
679d992203fSHeiko Stuebner};
680d992203fSHeiko Stuebner
681d992203fSHeiko Stuebner&usb2phy1 {
682d992203fSHeiko Stuebner	status = "okay";
683d992203fSHeiko Stuebner};
684d992203fSHeiko Stuebner
685d992203fSHeiko Stuebner/* connected to usb_host1_ehci/ohci */
686d992203fSHeiko Stuebner&usb2phy1_host {
687d992203fSHeiko Stuebner	phy-supply = <&vcc5v0_host>;
688d992203fSHeiko Stuebner	status = "okay";
689d992203fSHeiko Stuebner};
690d992203fSHeiko Stuebner
691d992203fSHeiko Stuebner/* connected to usb_host0_ehci/ohci */
692d992203fSHeiko Stuebner&usb2phy1_otg {
693d992203fSHeiko Stuebner	phy-supply = <&vcc5v0_host>;
694d992203fSHeiko Stuebner	status = "okay";
695d992203fSHeiko Stuebner};
696d992203fSHeiko Stuebner
697d992203fSHeiko Stuebner/* right port backside */
698d992203fSHeiko Stuebner&usb_host0_ehci {
699d992203fSHeiko Stuebner	status = "okay";
700d992203fSHeiko Stuebner};
701d992203fSHeiko Stuebner
702d992203fSHeiko Stuebner&usb_host0_ohci {
703d992203fSHeiko Stuebner	status = "okay";
704d992203fSHeiko Stuebner};
705d992203fSHeiko Stuebner
706d992203fSHeiko Stuebner/* front port */
707d992203fSHeiko Stuebner&usb_host0_xhci {
708d992203fSHeiko Stuebner	dr_mode = "host";
709d992203fSHeiko Stuebner	status = "okay";
710d992203fSHeiko Stuebner};
711d992203fSHeiko Stuebner
712d992203fSHeiko Stuebner/* left port backside */
713d992203fSHeiko Stuebner&usb_host1_ehci {
714d992203fSHeiko Stuebner	status = "okay";
715d992203fSHeiko Stuebner};
716d992203fSHeiko Stuebner
717d992203fSHeiko Stuebner&usb_host1_ohci {
718d992203fSHeiko Stuebner	status = "okay";
719d992203fSHeiko Stuebner};
720