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