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