xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3328-nanopi-r2.dtsi (revision 1260ed77798502de9c98020040d2995008de10cc)
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
146f3c6526dSDragan Simic	mdio {
147f3c6526dSDragan Simic		compatible = "snps,dwmac-mdio";
148f3c6526dSDragan Simic		#address-cells = <1>;
149f3c6526dSDragan Simic		#size-cells = <0>;
150f3c6526dSDragan Simic	};
151f3c6526dSDragan Simic};
152f3c6526dSDragan Simic
153f3c6526dSDragan Simic&i2c1 {
154f3c6526dSDragan Simic	status = "okay";
155f3c6526dSDragan Simic
156f3c6526dSDragan Simic	rk805: pmic@18 {
157f3c6526dSDragan Simic		compatible = "rockchip,rk805";
158f3c6526dSDragan Simic		reg = <0x18>;
159f3c6526dSDragan Simic		interrupt-parent = <&gpio1>;
160f3c6526dSDragan Simic		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
161f3c6526dSDragan Simic		#clock-cells = <1>;
162f3c6526dSDragan Simic		clock-output-names = "xin32k", "rk805-clkout2";
163f3c6526dSDragan Simic		gpio-controller;
164f3c6526dSDragan Simic		#gpio-cells = <2>;
165f3c6526dSDragan Simic		pinctrl-0 = <&pmic_int_l>;
166f3c6526dSDragan Simic		pinctrl-names = "default";
167f3c6526dSDragan Simic		system-power-controller;
168f3c6526dSDragan Simic		wakeup-source;
169f3c6526dSDragan Simic
170f3c6526dSDragan Simic		vcc1-supply = <&vdd_5v>;
171f3c6526dSDragan Simic		vcc2-supply = <&vdd_5v>;
172f3c6526dSDragan Simic		vcc3-supply = <&vdd_5v>;
173f3c6526dSDragan Simic		vcc4-supply = <&vdd_5v>;
174f3c6526dSDragan Simic		vcc5-supply = <&vcc_io_33>;
175f3c6526dSDragan Simic		vcc6-supply = <&vdd_5v>;
176f3c6526dSDragan Simic
177f3c6526dSDragan Simic		regulators {
178f3c6526dSDragan Simic			vdd_log: DCDC_REG1 {
179f3c6526dSDragan Simic				regulator-name = "vdd_log";
180f3c6526dSDragan Simic				regulator-always-on;
181f3c6526dSDragan Simic				regulator-boot-on;
182f3c6526dSDragan Simic				regulator-min-microvolt = <712500>;
183f3c6526dSDragan Simic				regulator-max-microvolt = <1450000>;
184f3c6526dSDragan Simic				regulator-ramp-delay = <12500>;
185f3c6526dSDragan Simic
186f3c6526dSDragan Simic				regulator-state-mem {
187f3c6526dSDragan Simic					regulator-on-in-suspend;
188f3c6526dSDragan Simic					regulator-suspend-microvolt = <1000000>;
189f3c6526dSDragan Simic				};
190f3c6526dSDragan Simic			};
191f3c6526dSDragan Simic
192f3c6526dSDragan Simic			vdd_arm: DCDC_REG2 {
193f3c6526dSDragan Simic				regulator-name = "vdd_arm";
194f3c6526dSDragan Simic				regulator-always-on;
195f3c6526dSDragan Simic				regulator-boot-on;
196f3c6526dSDragan Simic				regulator-min-microvolt = <712500>;
197f3c6526dSDragan Simic				regulator-max-microvolt = <1450000>;
198f3c6526dSDragan Simic				regulator-ramp-delay = <12500>;
199f3c6526dSDragan Simic
200f3c6526dSDragan Simic				regulator-state-mem {
201f3c6526dSDragan Simic					regulator-on-in-suspend;
202f3c6526dSDragan Simic					regulator-suspend-microvolt = <950000>;
203f3c6526dSDragan Simic				};
204f3c6526dSDragan Simic			};
205f3c6526dSDragan Simic
206f3c6526dSDragan Simic			vcc_ddr: DCDC_REG3 {
207f3c6526dSDragan Simic				regulator-name = "vcc_ddr";
208f3c6526dSDragan Simic				regulator-always-on;
209f3c6526dSDragan Simic				regulator-boot-on;
210f3c6526dSDragan Simic
211f3c6526dSDragan Simic				regulator-state-mem {
212f3c6526dSDragan Simic					regulator-on-in-suspend;
213f3c6526dSDragan Simic				};
214f3c6526dSDragan Simic			};
215f3c6526dSDragan Simic
216f3c6526dSDragan Simic			vcc_io_33: DCDC_REG4 {
217f3c6526dSDragan Simic				regulator-name = "vcc_io_33";
218f3c6526dSDragan Simic				regulator-always-on;
219f3c6526dSDragan Simic				regulator-boot-on;
220f3c6526dSDragan Simic				regulator-min-microvolt = <3300000>;
221f3c6526dSDragan Simic				regulator-max-microvolt = <3300000>;
222f3c6526dSDragan Simic
223f3c6526dSDragan Simic				regulator-state-mem {
224f3c6526dSDragan Simic					regulator-on-in-suspend;
225f3c6526dSDragan Simic					regulator-suspend-microvolt = <3300000>;
226f3c6526dSDragan Simic				};
227f3c6526dSDragan Simic			};
228f3c6526dSDragan Simic
229f3c6526dSDragan Simic			vcc_18: LDO_REG1 {
230f3c6526dSDragan Simic				regulator-name = "vcc_18";
231f3c6526dSDragan Simic				regulator-always-on;
232f3c6526dSDragan Simic				regulator-boot-on;
233f3c6526dSDragan Simic				regulator-min-microvolt = <1800000>;
234f3c6526dSDragan Simic				regulator-max-microvolt = <1800000>;
235f3c6526dSDragan Simic
236f3c6526dSDragan Simic				regulator-state-mem {
237f3c6526dSDragan Simic					regulator-on-in-suspend;
238f3c6526dSDragan Simic					regulator-suspend-microvolt = <1800000>;
239f3c6526dSDragan Simic				};
240f3c6526dSDragan Simic			};
241f3c6526dSDragan Simic
242f3c6526dSDragan Simic			vcc18_emmc: LDO_REG2 {
243f3c6526dSDragan Simic				regulator-name = "vcc18_emmc";
244f3c6526dSDragan Simic				regulator-always-on;
245f3c6526dSDragan Simic				regulator-boot-on;
246f3c6526dSDragan Simic				regulator-min-microvolt = <1800000>;
247f3c6526dSDragan Simic				regulator-max-microvolt = <1800000>;
248f3c6526dSDragan Simic
249f3c6526dSDragan Simic				regulator-state-mem {
250f3c6526dSDragan Simic					regulator-on-in-suspend;
251f3c6526dSDragan Simic					regulator-suspend-microvolt = <1800000>;
252f3c6526dSDragan Simic				};
253f3c6526dSDragan Simic			};
254f3c6526dSDragan Simic
255f3c6526dSDragan Simic			vdd_10: LDO_REG3 {
256f3c6526dSDragan Simic				regulator-name = "vdd_10";
257f3c6526dSDragan Simic				regulator-always-on;
258f3c6526dSDragan Simic				regulator-boot-on;
259f3c6526dSDragan Simic				regulator-min-microvolt = <1000000>;
260f3c6526dSDragan Simic				regulator-max-microvolt = <1000000>;
261f3c6526dSDragan Simic
262f3c6526dSDragan Simic				regulator-state-mem {
263f3c6526dSDragan Simic					regulator-on-in-suspend;
264f3c6526dSDragan Simic					regulator-suspend-microvolt = <1000000>;
265f3c6526dSDragan Simic				};
266f3c6526dSDragan Simic			};
267f3c6526dSDragan Simic		};
268f3c6526dSDragan Simic	};
269f3c6526dSDragan Simic};
270f3c6526dSDragan Simic
271f3c6526dSDragan Simic&io_domains {
272f3c6526dSDragan Simic	pmuio-supply = <&vcc_io_33>;
273f3c6526dSDragan Simic	vccio1-supply = <&vcc_io_33>;
274f3c6526dSDragan Simic	vccio2-supply = <&vcc18_emmc>;
275f3c6526dSDragan Simic	vccio3-supply = <&vcc_io_sdio>;
276f3c6526dSDragan Simic	vccio4-supply = <&vcc_18>;
277f3c6526dSDragan Simic	vccio5-supply = <&vcc_io_33>;
278f3c6526dSDragan Simic	vccio6-supply = <&vcc_io_33>;
279f3c6526dSDragan Simic	status = "okay";
280f3c6526dSDragan Simic};
281f3c6526dSDragan Simic
282f3c6526dSDragan Simic&pinctrl {
283f3c6526dSDragan Simic	button {
284f3c6526dSDragan Simic		reset_button_pin: reset-button-pin {
285f3c6526dSDragan Simic			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
286f3c6526dSDragan Simic		};
287f3c6526dSDragan Simic	};
288f3c6526dSDragan Simic
289f3c6526dSDragan Simic	gmac2io {
290f3c6526dSDragan Simic		eth_phy_reset_pin: eth-phy-reset-pin {
291f3c6526dSDragan Simic			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
292f3c6526dSDragan Simic		};
293f3c6526dSDragan Simic	};
294f3c6526dSDragan Simic
295f3c6526dSDragan Simic	leds {
296f3c6526dSDragan Simic		lan_led_pin: lan-led-pin {
297f3c6526dSDragan Simic			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
298f3c6526dSDragan Simic		};
299f3c6526dSDragan Simic
300f3c6526dSDragan Simic		sys_led_pin: sys-led-pin {
301f3c6526dSDragan Simic			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
302f3c6526dSDragan Simic		};
303f3c6526dSDragan Simic
304f3c6526dSDragan Simic		wan_led_pin: wan-led-pin {
305f3c6526dSDragan Simic			rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
306f3c6526dSDragan Simic		};
307f3c6526dSDragan Simic	};
308f3c6526dSDragan Simic
309f3c6526dSDragan Simic	lan {
310f3c6526dSDragan Simic		lan_vdd_pin: lan-vdd-pin {
311f3c6526dSDragan Simic			rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
312f3c6526dSDragan Simic		};
313f3c6526dSDragan Simic	};
314f3c6526dSDragan Simic
315f3c6526dSDragan Simic	pmic {
316f3c6526dSDragan Simic		pmic_int_l: pmic-int-l {
317f3c6526dSDragan Simic			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
318f3c6526dSDragan Simic		};
319f3c6526dSDragan Simic	};
320f3c6526dSDragan Simic
321f3c6526dSDragan Simic	sd {
322f3c6526dSDragan Simic		sdio_vcc_pin: sdio-vcc-pin {
323f3c6526dSDragan Simic			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
324f3c6526dSDragan Simic		};
325f3c6526dSDragan Simic	};
326f3c6526dSDragan Simic};
327f3c6526dSDragan Simic
328f3c6526dSDragan Simic&pwm2 {
329f3c6526dSDragan Simic	status = "okay";
330f3c6526dSDragan Simic};
331f3c6526dSDragan Simic
332f3c6526dSDragan Simic&sdmmc {
333f3c6526dSDragan Simic	bus-width = <4>;
334f3c6526dSDragan Simic	cap-sd-highspeed;
335f3c6526dSDragan Simic	disable-wp;
336f3c6526dSDragan Simic	pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
337f3c6526dSDragan Simic	pinctrl-names = "default";
338f3c6526dSDragan Simic	sd-uhs-sdr12;
339f3c6526dSDragan Simic	sd-uhs-sdr25;
340f3c6526dSDragan Simic	sd-uhs-sdr50;
341f3c6526dSDragan Simic	sd-uhs-sdr104;
342f3c6526dSDragan Simic	vmmc-supply = <&vcc_sd>;
343f3c6526dSDragan Simic	vqmmc-supply = <&vcc_io_sdio>;
344f3c6526dSDragan Simic	status = "okay";
345f3c6526dSDragan Simic};
346f3c6526dSDragan Simic
347f3c6526dSDragan Simic&tsadc {
348f3c6526dSDragan Simic	rockchip,hw-tshut-mode = <0>;
349f3c6526dSDragan Simic	rockchip,hw-tshut-polarity = <0>;
350f3c6526dSDragan Simic	status = "okay";
351f3c6526dSDragan Simic};
352f3c6526dSDragan Simic
353f3c6526dSDragan Simic&u2phy {
354f3c6526dSDragan Simic	status = "okay";
355f3c6526dSDragan Simic};
356f3c6526dSDragan Simic
357f3c6526dSDragan Simic&u2phy_host {
358f3c6526dSDragan Simic	status = "okay";
359f3c6526dSDragan Simic};
360f3c6526dSDragan Simic
361f3c6526dSDragan Simic&u2phy_otg {
362f3c6526dSDragan Simic	status = "okay";
363f3c6526dSDragan Simic};
364f3c6526dSDragan Simic
365f3c6526dSDragan Simic&uart2 {
366f3c6526dSDragan Simic	status = "okay";
367f3c6526dSDragan Simic};
368f3c6526dSDragan Simic
369f3c6526dSDragan Simic&usb20_otg {
370f3c6526dSDragan Simic	status = "okay";
371f3c6526dSDragan Simic	dr_mode = "host";
372f3c6526dSDragan Simic};
373f3c6526dSDragan Simic
374f3c6526dSDragan Simic&usbdrd3 {
375f3c6526dSDragan Simic	dr_mode = "host";
376f3c6526dSDragan Simic	status = "okay";
377f3c6526dSDragan Simic	#address-cells = <1>;
378f3c6526dSDragan Simic	#size-cells = <0>;
379f3c6526dSDragan Simic
380f3c6526dSDragan Simic	/* Second port is for USB 3.0 */
381f3c6526dSDragan Simic	rtl8153: device@2 {
382f3c6526dSDragan Simic		compatible = "usbbda,8153";
383f3c6526dSDragan Simic		reg = <2>;
384f3c6526dSDragan Simic	};
385f3c6526dSDragan Simic};
386f3c6526dSDragan Simic
387f3c6526dSDragan Simic&usb_host0_ehci {
388f3c6526dSDragan Simic	status = "okay";
389f3c6526dSDragan Simic};
390f3c6526dSDragan Simic
391f3c6526dSDragan Simic&usb_host0_ohci {
392f3c6526dSDragan Simic	status = "okay";
393f3c6526dSDragan Simic};
394