xref: /linux/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2.dtsi (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
1f3c6526dSDragan Simic// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2f3c6526dSDragan Simic/*
3f3c6526dSDragan Simic * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
4f3c6526dSDragan Simic */
5f3c6526dSDragan Simic
6f3c6526dSDragan Simic/dts-v1/;
7f3c6526dSDragan Simic
8f3c6526dSDragan Simic#include <dt-bindings/input/input.h>
9f3c6526dSDragan Simic#include <dt-bindings/gpio/gpio.h>
10f3c6526dSDragan Simic#include "rk3328.dtsi"
11f3c6526dSDragan Simic
12f3c6526dSDragan Simic/ {
13f3c6526dSDragan Simic	aliases {
14f3c6526dSDragan Simic		ethernet0 = &gmac2io;
15f3c6526dSDragan Simic		ethernet1 = &rtl8153;
16f3c6526dSDragan Simic		mmc0 = &sdmmc;
17f3c6526dSDragan Simic	};
18f3c6526dSDragan Simic
19f3c6526dSDragan Simic	chosen {
20f3c6526dSDragan Simic		stdout-path = "serial2:1500000n8";
21f3c6526dSDragan Simic	};
22f3c6526dSDragan Simic
23f3c6526dSDragan Simic	gmac_clk: gmac-clock {
24f3c6526dSDragan Simic		compatible = "fixed-clock";
25f3c6526dSDragan Simic		clock-frequency = <125000000>;
26f3c6526dSDragan Simic		clock-output-names = "gmac_clkin";
27f3c6526dSDragan Simic		#clock-cells = <0>;
28f3c6526dSDragan Simic	};
29f3c6526dSDragan Simic
30f3c6526dSDragan Simic	keys {
31f3c6526dSDragan Simic		compatible = "gpio-keys";
32f3c6526dSDragan Simic		pinctrl-0 = <&reset_button_pin>;
33f3c6526dSDragan Simic		pinctrl-names = "default";
34f3c6526dSDragan Simic
35f3c6526dSDragan Simic		key-reset {
36f3c6526dSDragan Simic			label = "reset";
37f3c6526dSDragan Simic			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
38f3c6526dSDragan Simic			linux,code = <KEY_RESTART>;
39f3c6526dSDragan Simic			debounce-interval = <50>;
40f3c6526dSDragan Simic		};
41f3c6526dSDragan Simic	};
42f3c6526dSDragan Simic
43f3c6526dSDragan Simic	leds {
44f3c6526dSDragan Simic		compatible = "gpio-leds";
45f3c6526dSDragan Simic		pinctrl-0 = <&lan_led_pin>,  <&sys_led_pin>, <&wan_led_pin>;
46f3c6526dSDragan Simic		pinctrl-names = "default";
47f3c6526dSDragan Simic
48f3c6526dSDragan Simic		lan_led: led-0 {
49f3c6526dSDragan Simic			gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
50f3c6526dSDragan Simic			label = "nanopi-r2s:green:lan";
51f3c6526dSDragan Simic		};
52f3c6526dSDragan Simic
53f3c6526dSDragan Simic		sys_led: led-1 {
54f3c6526dSDragan Simic			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
55f3c6526dSDragan Simic			label = "nanopi-r2s:red:sys";
56f3c6526dSDragan Simic			default-state = "on";
57f3c6526dSDragan Simic		};
58f3c6526dSDragan Simic
59f3c6526dSDragan Simic		wan_led: led-2 {
60f3c6526dSDragan Simic			gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
61f3c6526dSDragan Simic			label = "nanopi-r2s:green:wan";
62f3c6526dSDragan Simic		};
63f3c6526dSDragan Simic	};
64f3c6526dSDragan Simic
65*5c96e633SJohan Jonker	vcc_io_sdio: regulator-sdmmcio {
66f3c6526dSDragan Simic		compatible = "regulator-gpio";
67f3c6526dSDragan Simic		enable-active-high;
68f3c6526dSDragan Simic		gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
69f3c6526dSDragan Simic		pinctrl-0 = <&sdio_vcc_pin>;
70f3c6526dSDragan Simic		pinctrl-names = "default";
71f3c6526dSDragan Simic		regulator-name = "vcc_io_sdio";
72f3c6526dSDragan Simic		regulator-always-on;
73f3c6526dSDragan Simic		regulator-min-microvolt = <1800000>;
74f3c6526dSDragan Simic		regulator-max-microvolt = <3300000>;
75f3c6526dSDragan Simic		regulator-settling-time-us = <5000>;
76f3c6526dSDragan Simic		regulator-type = "voltage";
77f3c6526dSDragan Simic		startup-delay-us = <2000>;
78f3c6526dSDragan Simic		states = <1800000 0x1>,
79f3c6526dSDragan Simic			 <3300000 0x0>;
80f3c6526dSDragan Simic		vin-supply = <&vcc_io_33>;
81f3c6526dSDragan Simic	};
82f3c6526dSDragan Simic
83*5c96e633SJohan Jonker	vcc_sd: regulator-sdmmc {
84f3c6526dSDragan Simic		compatible = "regulator-fixed";
85f3c6526dSDragan Simic		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
86f3c6526dSDragan Simic		pinctrl-0 = <&sdmmc0m1_pin>;
87f3c6526dSDragan Simic		pinctrl-names = "default";
88f3c6526dSDragan Simic		regulator-name = "vcc_sd";
89f3c6526dSDragan Simic		regulator-boot-on;
90f3c6526dSDragan Simic		regulator-min-microvolt = <3300000>;
91f3c6526dSDragan Simic		regulator-max-microvolt = <3300000>;
92f3c6526dSDragan Simic		vin-supply = <&vcc_io_33>;
93f3c6526dSDragan Simic	};
94f3c6526dSDragan Simic
95*5c96e633SJohan Jonker	vdd_5v: regulator-vdd-5v {
96f3c6526dSDragan Simic		compatible = "regulator-fixed";
97f3c6526dSDragan Simic		regulator-name = "vdd_5v";
98f3c6526dSDragan Simic		regulator-always-on;
99f3c6526dSDragan Simic		regulator-boot-on;
100f3c6526dSDragan Simic		regulator-min-microvolt = <5000000>;
101f3c6526dSDragan Simic		regulator-max-microvolt = <5000000>;
102f3c6526dSDragan Simic	};
103f3c6526dSDragan Simic
104*5c96e633SJohan Jonker	vdd_5v_lan: regulator-vdd-5v-lan {
105f3c6526dSDragan Simic		compatible = "regulator-fixed";
106f3c6526dSDragan Simic		enable-active-high;
107f3c6526dSDragan Simic		gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
108f3c6526dSDragan Simic		pinctrl-0 = <&lan_vdd_pin>;
109f3c6526dSDragan Simic		pinctrl-names = "default";
110f3c6526dSDragan Simic		regulator-name = "vdd_5v_lan";
111f3c6526dSDragan Simic		regulator-always-on;
112f3c6526dSDragan Simic		regulator-boot-on;
113f3c6526dSDragan Simic		vin-supply = <&vdd_5v>;
114f3c6526dSDragan Simic	};
115f3c6526dSDragan Simic};
116f3c6526dSDragan Simic
117f3c6526dSDragan Simic&cpu0 {
118f3c6526dSDragan Simic	cpu-supply = <&vdd_arm>;
119f3c6526dSDragan Simic};
120f3c6526dSDragan Simic
121f3c6526dSDragan Simic&cpu1 {
122f3c6526dSDragan Simic	cpu-supply = <&vdd_arm>;
123f3c6526dSDragan Simic};
124f3c6526dSDragan Simic
125f3c6526dSDragan Simic&cpu2 {
126f3c6526dSDragan Simic	cpu-supply = <&vdd_arm>;
127f3c6526dSDragan Simic};
128f3c6526dSDragan Simic
129f3c6526dSDragan Simic&cpu3 {
130f3c6526dSDragan Simic	cpu-supply = <&vdd_arm>;
131f3c6526dSDragan Simic};
132f3c6526dSDragan Simic
133f3c6526dSDragan Simic&display_subsystem {
134f3c6526dSDragan Simic	status = "disabled";
135f3c6526dSDragan Simic};
136f3c6526dSDragan Simic
137f3c6526dSDragan Simic&gmac2io {
138f3c6526dSDragan Simic	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
139f3c6526dSDragan Simic	assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
140f3c6526dSDragan Simic	clock_in_out = "input";
141f3c6526dSDragan Simic	phy-mode = "rgmii";
142f3c6526dSDragan Simic	phy-supply = <&vcc_io_33>;
143f3c6526dSDragan Simic	pinctrl-0 = <&rgmiim1_pins>;
144f3c6526dSDragan Simic	pinctrl-names = "default";
145f3c6526dSDragan Simic	snps,aal;
146f3c6526dSDragan Simic
147f3c6526dSDragan Simic	mdio {
148f3c6526dSDragan Simic		compatible = "snps,dwmac-mdio";
149f3c6526dSDragan Simic		#address-cells = <1>;
150f3c6526dSDragan Simic		#size-cells = <0>;
151f3c6526dSDragan Simic	};
152f3c6526dSDragan Simic};
153f3c6526dSDragan Simic
154f3c6526dSDragan Simic&i2c1 {
155f3c6526dSDragan Simic	status = "okay";
156f3c6526dSDragan Simic
157f3c6526dSDragan Simic	rk805: pmic@18 {
158f3c6526dSDragan Simic		compatible = "rockchip,rk805";
159f3c6526dSDragan Simic		reg = <0x18>;
160f3c6526dSDragan Simic		interrupt-parent = <&gpio1>;
161f3c6526dSDragan Simic		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
162f3c6526dSDragan Simic		#clock-cells = <1>;
163f3c6526dSDragan Simic		clock-output-names = "xin32k", "rk805-clkout2";
164f3c6526dSDragan Simic		gpio-controller;
165f3c6526dSDragan Simic		#gpio-cells = <2>;
166f3c6526dSDragan Simic		pinctrl-0 = <&pmic_int_l>;
167f3c6526dSDragan Simic		pinctrl-names = "default";
168f3c6526dSDragan Simic		system-power-controller;
169f3c6526dSDragan Simic		wakeup-source;
170f3c6526dSDragan Simic
171f3c6526dSDragan Simic		vcc1-supply = <&vdd_5v>;
172f3c6526dSDragan Simic		vcc2-supply = <&vdd_5v>;
173f3c6526dSDragan Simic		vcc3-supply = <&vdd_5v>;
174f3c6526dSDragan Simic		vcc4-supply = <&vdd_5v>;
175f3c6526dSDragan Simic		vcc5-supply = <&vcc_io_33>;
176f3c6526dSDragan Simic		vcc6-supply = <&vdd_5v>;
177f3c6526dSDragan Simic
178f3c6526dSDragan Simic		regulators {
179f3c6526dSDragan Simic			vdd_log: DCDC_REG1 {
180f3c6526dSDragan Simic				regulator-name = "vdd_log";
181f3c6526dSDragan Simic				regulator-always-on;
182f3c6526dSDragan Simic				regulator-boot-on;
183f3c6526dSDragan Simic				regulator-min-microvolt = <712500>;
184f3c6526dSDragan Simic				regulator-max-microvolt = <1450000>;
185f3c6526dSDragan Simic				regulator-ramp-delay = <12500>;
186f3c6526dSDragan Simic
187f3c6526dSDragan Simic				regulator-state-mem {
188f3c6526dSDragan Simic					regulator-on-in-suspend;
189f3c6526dSDragan Simic					regulator-suspend-microvolt = <1000000>;
190f3c6526dSDragan Simic				};
191f3c6526dSDragan Simic			};
192f3c6526dSDragan Simic
193f3c6526dSDragan Simic			vdd_arm: DCDC_REG2 {
194f3c6526dSDragan Simic				regulator-name = "vdd_arm";
195f3c6526dSDragan Simic				regulator-always-on;
196f3c6526dSDragan Simic				regulator-boot-on;
197f3c6526dSDragan Simic				regulator-min-microvolt = <712500>;
198f3c6526dSDragan Simic				regulator-max-microvolt = <1450000>;
199f3c6526dSDragan Simic				regulator-ramp-delay = <12500>;
200f3c6526dSDragan Simic
201f3c6526dSDragan Simic				regulator-state-mem {
202f3c6526dSDragan Simic					regulator-on-in-suspend;
203f3c6526dSDragan Simic					regulator-suspend-microvolt = <950000>;
204f3c6526dSDragan Simic				};
205f3c6526dSDragan Simic			};
206f3c6526dSDragan Simic
207f3c6526dSDragan Simic			vcc_ddr: DCDC_REG3 {
208f3c6526dSDragan Simic				regulator-name = "vcc_ddr";
209f3c6526dSDragan Simic				regulator-always-on;
210f3c6526dSDragan Simic				regulator-boot-on;
211f3c6526dSDragan Simic
212f3c6526dSDragan Simic				regulator-state-mem {
213f3c6526dSDragan Simic					regulator-on-in-suspend;
214f3c6526dSDragan Simic				};
215f3c6526dSDragan Simic			};
216f3c6526dSDragan Simic
217f3c6526dSDragan Simic			vcc_io_33: DCDC_REG4 {
218f3c6526dSDragan Simic				regulator-name = "vcc_io_33";
219f3c6526dSDragan Simic				regulator-always-on;
220f3c6526dSDragan Simic				regulator-boot-on;
221f3c6526dSDragan Simic				regulator-min-microvolt = <3300000>;
222f3c6526dSDragan Simic				regulator-max-microvolt = <3300000>;
223f3c6526dSDragan Simic
224f3c6526dSDragan Simic				regulator-state-mem {
225f3c6526dSDragan Simic					regulator-on-in-suspend;
226f3c6526dSDragan Simic					regulator-suspend-microvolt = <3300000>;
227f3c6526dSDragan Simic				};
228f3c6526dSDragan Simic			};
229f3c6526dSDragan Simic
230f3c6526dSDragan Simic			vcc_18: LDO_REG1 {
231f3c6526dSDragan Simic				regulator-name = "vcc_18";
232f3c6526dSDragan Simic				regulator-always-on;
233f3c6526dSDragan Simic				regulator-boot-on;
234f3c6526dSDragan Simic				regulator-min-microvolt = <1800000>;
235f3c6526dSDragan Simic				regulator-max-microvolt = <1800000>;
236f3c6526dSDragan Simic
237f3c6526dSDragan Simic				regulator-state-mem {
238f3c6526dSDragan Simic					regulator-on-in-suspend;
239f3c6526dSDragan Simic					regulator-suspend-microvolt = <1800000>;
240f3c6526dSDragan Simic				};
241f3c6526dSDragan Simic			};
242f3c6526dSDragan Simic
243f3c6526dSDragan Simic			vcc18_emmc: LDO_REG2 {
244f3c6526dSDragan Simic				regulator-name = "vcc18_emmc";
245f3c6526dSDragan Simic				regulator-always-on;
246f3c6526dSDragan Simic				regulator-boot-on;
247f3c6526dSDragan Simic				regulator-min-microvolt = <1800000>;
248f3c6526dSDragan Simic				regulator-max-microvolt = <1800000>;
249f3c6526dSDragan Simic
250f3c6526dSDragan Simic				regulator-state-mem {
251f3c6526dSDragan Simic					regulator-on-in-suspend;
252f3c6526dSDragan Simic					regulator-suspend-microvolt = <1800000>;
253f3c6526dSDragan Simic				};
254f3c6526dSDragan Simic			};
255f3c6526dSDragan Simic
256f3c6526dSDragan Simic			vdd_10: LDO_REG3 {
257f3c6526dSDragan Simic				regulator-name = "vdd_10";
258f3c6526dSDragan Simic				regulator-always-on;
259f3c6526dSDragan Simic				regulator-boot-on;
260f3c6526dSDragan Simic				regulator-min-microvolt = <1000000>;
261f3c6526dSDragan Simic				regulator-max-microvolt = <1000000>;
262f3c6526dSDragan Simic
263f3c6526dSDragan Simic				regulator-state-mem {
264f3c6526dSDragan Simic					regulator-on-in-suspend;
265f3c6526dSDragan Simic					regulator-suspend-microvolt = <1000000>;
266f3c6526dSDragan Simic				};
267f3c6526dSDragan Simic			};
268f3c6526dSDragan Simic		};
269f3c6526dSDragan Simic	};
270f3c6526dSDragan Simic};
271f3c6526dSDragan Simic
272f3c6526dSDragan Simic&io_domains {
273f3c6526dSDragan Simic	pmuio-supply = <&vcc_io_33>;
274f3c6526dSDragan Simic	vccio1-supply = <&vcc_io_33>;
275f3c6526dSDragan Simic	vccio2-supply = <&vcc18_emmc>;
276f3c6526dSDragan Simic	vccio3-supply = <&vcc_io_sdio>;
277f3c6526dSDragan Simic	vccio4-supply = <&vcc_18>;
278f3c6526dSDragan Simic	vccio5-supply = <&vcc_io_33>;
279f3c6526dSDragan Simic	vccio6-supply = <&vcc_io_33>;
280f3c6526dSDragan Simic	status = "okay";
281f3c6526dSDragan Simic};
282f3c6526dSDragan Simic
283f3c6526dSDragan Simic&pinctrl {
284f3c6526dSDragan Simic	button {
285f3c6526dSDragan Simic		reset_button_pin: reset-button-pin {
286f3c6526dSDragan Simic			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
287f3c6526dSDragan Simic		};
288f3c6526dSDragan Simic	};
289f3c6526dSDragan Simic
290f3c6526dSDragan Simic	gmac2io {
291f3c6526dSDragan Simic		eth_phy_reset_pin: eth-phy-reset-pin {
292f3c6526dSDragan Simic			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
293f3c6526dSDragan Simic		};
294f3c6526dSDragan Simic	};
295f3c6526dSDragan Simic
296f3c6526dSDragan Simic	leds {
297f3c6526dSDragan Simic		lan_led_pin: lan-led-pin {
298f3c6526dSDragan Simic			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
299f3c6526dSDragan Simic		};
300f3c6526dSDragan Simic
301f3c6526dSDragan Simic		sys_led_pin: sys-led-pin {
302f3c6526dSDragan Simic			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
303f3c6526dSDragan Simic		};
304f3c6526dSDragan Simic
305f3c6526dSDragan Simic		wan_led_pin: wan-led-pin {
306f3c6526dSDragan Simic			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
307f3c6526dSDragan Simic		};
308f3c6526dSDragan Simic	};
309f3c6526dSDragan Simic
310f3c6526dSDragan Simic	lan {
311f3c6526dSDragan Simic		lan_vdd_pin: lan-vdd-pin {
312f3c6526dSDragan Simic			rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
313f3c6526dSDragan Simic		};
314f3c6526dSDragan Simic	};
315f3c6526dSDragan Simic
316f3c6526dSDragan Simic	pmic {
317f3c6526dSDragan Simic		pmic_int_l: pmic-int-l {
318f3c6526dSDragan Simic			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
319f3c6526dSDragan Simic		};
320f3c6526dSDragan Simic	};
321f3c6526dSDragan Simic
322f3c6526dSDragan Simic	sd {
323f3c6526dSDragan Simic		sdio_vcc_pin: sdio-vcc-pin {
324f3c6526dSDragan Simic			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
325f3c6526dSDragan Simic		};
326f3c6526dSDragan Simic	};
327f3c6526dSDragan Simic};
328f3c6526dSDragan Simic
329f3c6526dSDragan Simic&pwm2 {
330f3c6526dSDragan Simic	status = "okay";
331f3c6526dSDragan Simic};
332f3c6526dSDragan Simic
333f3c6526dSDragan Simic&sdmmc {
334f3c6526dSDragan Simic	bus-width = <4>;
335f3c6526dSDragan Simic	cap-sd-highspeed;
336f3c6526dSDragan Simic	disable-wp;
337f3c6526dSDragan Simic	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
338f3c6526dSDragan Simic	pinctrl-names = "default";
339f3c6526dSDragan Simic	sd-uhs-sdr12;
340f3c6526dSDragan Simic	sd-uhs-sdr25;
341f3c6526dSDragan Simic	sd-uhs-sdr50;
342f3c6526dSDragan Simic	sd-uhs-sdr104;
343f3c6526dSDragan Simic	vmmc-supply = <&vcc_sd>;
344f3c6526dSDragan Simic	vqmmc-supply = <&vcc_io_sdio>;
345f3c6526dSDragan Simic	status = "okay";
346f3c6526dSDragan Simic};
347f3c6526dSDragan Simic
348f3c6526dSDragan Simic&tsadc {
349f3c6526dSDragan Simic	rockchip,hw-tshut-mode = <0>;
350f3c6526dSDragan Simic	rockchip,hw-tshut-polarity = <0>;
351f3c6526dSDragan Simic	status = "okay";
352f3c6526dSDragan Simic};
353f3c6526dSDragan Simic
354f3c6526dSDragan Simic&u2phy {
355f3c6526dSDragan Simic	status = "okay";
356f3c6526dSDragan Simic};
357f3c6526dSDragan Simic
358f3c6526dSDragan Simic&u2phy_host {
359f3c6526dSDragan Simic	status = "okay";
360f3c6526dSDragan Simic};
361f3c6526dSDragan Simic
362f3c6526dSDragan Simic&u2phy_otg {
363f3c6526dSDragan Simic	status = "okay";
364f3c6526dSDragan Simic};
365f3c6526dSDragan Simic
366f3c6526dSDragan Simic&uart2 {
367f3c6526dSDragan Simic	status = "okay";
368f3c6526dSDragan Simic};
369f3c6526dSDragan Simic
370f3c6526dSDragan Simic&usb20_otg {
371f3c6526dSDragan Simic	status = "okay";
372f3c6526dSDragan Simic	dr_mode = "host";
373f3c6526dSDragan Simic};
374f3c6526dSDragan Simic
375f3c6526dSDragan Simic&usbdrd3 {
376f3c6526dSDragan Simic	dr_mode = "host";
377f3c6526dSDragan Simic	status = "okay";
378f3c6526dSDragan Simic	#address-cells = <1>;
379f3c6526dSDragan Simic	#size-cells = <0>;
380f3c6526dSDragan Simic
381f3c6526dSDragan Simic	/* Second port is for USB 3.0 */
382f3c6526dSDragan Simic	rtl8153: device@2 {
383f3c6526dSDragan Simic		compatible = "usbbda,8153";
384f3c6526dSDragan Simic		reg = <2>;
385f3c6526dSDragan Simic	};
386f3c6526dSDragan Simic};
387f3c6526dSDragan Simic
388f3c6526dSDragan Simic&usb_host0_ehci {
389f3c6526dSDragan Simic	status = "okay";
390f3c6526dSDragan Simic};
391f3c6526dSDragan Simic
392f3c6526dSDragan Simic&usb_host0_ohci {
393f3c6526dSDragan Simic	status = "okay";
394f3c6526dSDragan Simic};
395