rockchip: rk356x: Sync device tree from linux v6.7
[pandora-u-boot.git] / arch / arm / dts / rk3568-nanopi-r5s.dtsi
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 /*
3  * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd.
4  * (http://www.friendlyelec.com)
5  *
6  * Copyright (c) 2023 Tianling Shen <cnsztl@gmail.com>
7  */
8
9 /dts-v1/;
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/leds/common.h>
13 #include <dt-bindings/pinctrl/rockchip.h>
14 #include <dt-bindings/soc/rockchip,vop2.h>
15 #include "rk3568.dtsi"
16
17 / {
18         aliases {
19                 mmc0 = &sdmmc0;
20                 mmc1 = &sdhci;
21         };
22
23         chosen: chosen {
24                 stdout-path = "serial2:1500000n8";
25         };
26
27         hdmi-con {
28                 compatible = "hdmi-connector";
29                 type = "a";
30
31                 port {
32                         hdmi_con_in: endpoint {
33                                 remote-endpoint = <&hdmi_out_con>;
34                         };
35                 };
36         };
37
38         vdd_usbc: vdd-usbc-regulator {
39                 compatible = "regulator-fixed";
40                 regulator-name = "vdd_usbc";
41                 regulator-always-on;
42                 regulator-boot-on;
43                 regulator-min-microvolt = <5000000>;
44                 regulator-max-microvolt = <5000000>;
45         };
46
47         vcc3v3_sys: vcc3v3-sys-regulator {
48                 compatible = "regulator-fixed";
49                 regulator-name = "vcc3v3_sys";
50                 regulator-always-on;
51                 regulator-boot-on;
52                 regulator-min-microvolt = <3300000>;
53                 regulator-max-microvolt = <3300000>;
54                 vin-supply = <&vdd_usbc>;
55         };
56
57         vcc5v0_sys: vcc5v0-sys-regulator {
58                 compatible = "regulator-fixed";
59                 regulator-name = "vcc5v0_sys";
60                 regulator-always-on;
61                 regulator-boot-on;
62                 regulator-min-microvolt = <5000000>;
63                 regulator-max-microvolt = <5000000>;
64                 vin-supply = <&vdd_usbc>;
65         };
66
67         vcc3v3_pcie: vcc3v3-pcie-regulator {
68                 compatible = "regulator-fixed";
69                 regulator-name = "vcc3v3_pcie";
70                 regulator-min-microvolt = <3300000>;
71                 regulator-max-microvolt = <3300000>;
72                 enable-active-high;
73                 gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
74                 startup-delay-us = <200000>;
75                 vin-supply = <&vcc5v0_sys>;
76         };
77
78         vcc5v0_usb: vcc5v0-usb-regulator {
79                 compatible = "regulator-fixed";
80                 regulator-name = "vcc5v0_usb";
81                 regulator-always-on;
82                 regulator-boot-on;
83                 regulator-min-microvolt = <5000000>;
84                 regulator-max-microvolt = <5000000>;
85                 vin-supply = <&vdd_usbc>;
86         };
87
88         vcc5v0_usb_host: vcc5v0-usb-host-regulator {
89                 compatible = "regulator-fixed";
90                 enable-active-high;
91                 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
92                 pinctrl-names = "default";
93                 pinctrl-0 = <&vcc5v0_usb_host_en>;
94                 regulator-name = "vcc5v0_usb_host";
95                 regulator-always-on;
96                 regulator-boot-on;
97                 regulator-min-microvolt = <5000000>;
98                 regulator-max-microvolt = <5000000>;
99                 vin-supply = <&vcc5v0_usb>;
100         };
101
102         vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
103                 compatible = "regulator-fixed";
104                 enable-active-high;
105                 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
106                 pinctrl-names = "default";
107                 pinctrl-0 = <&vcc5v0_usb_otg_en>;
108                 regulator-name = "vcc5v0_usb_otg";
109                 regulator-min-microvolt = <5000000>;
110                 regulator-max-microvolt = <5000000>;
111                 vin-supply = <&vcc5v0_usb>;
112         };
113
114         pcie30_avdd0v9: pcie30-avdd0v9-regulator {
115                 compatible = "regulator-fixed";
116                 regulator-name = "pcie30_avdd0v9";
117                 regulator-always-on;
118                 regulator-boot-on;
119                 regulator-min-microvolt = <900000>;
120                 regulator-max-microvolt = <900000>;
121                 vin-supply = <&vcc3v3_sys>;
122         };
123
124         pcie30_avdd1v8: pcie30-avdd1v8-regulator {
125                 compatible = "regulator-fixed";
126                 regulator-name = "pcie30_avdd1v8";
127                 regulator-always-on;
128                 regulator-boot-on;
129                 regulator-min-microvolt = <1800000>;
130                 regulator-max-microvolt = <1800000>;
131                 vin-supply = <&vcc3v3_sys>;
132         };
133 };
134
135 &combphy0 {
136         status = "okay";
137 };
138
139 &combphy1 {
140         status = "okay";
141 };
142
143 &combphy2 {
144         status = "okay";
145 };
146
147 &cpu0 {
148         cpu-supply = <&vdd_cpu>;
149 };
150
151 &cpu1 {
152         cpu-supply = <&vdd_cpu>;
153 };
154
155 &cpu2 {
156         cpu-supply = <&vdd_cpu>;
157 };
158
159 &cpu3 {
160         cpu-supply = <&vdd_cpu>;
161 };
162
163 &gpu {
164         mali-supply = <&vdd_gpu>;
165         status = "okay";
166 };
167
168 &hdmi {
169         avdd-0v9-supply = <&vdda0v9_image>;
170         avdd-1v8-supply = <&vcca1v8_image>;
171         status = "okay";
172 };
173
174 &hdmi_in {
175         hdmi_in_vp0: endpoint {
176                 remote-endpoint = <&vp0_out_hdmi>;
177         };
178 };
179
180 &hdmi_out {
181         hdmi_out_con: endpoint {
182                 remote-endpoint = <&hdmi_con_in>;
183         };
184 };
185
186 &hdmi_sound {
187         status = "okay";
188 };
189
190 &i2c0 {
191         status = "okay";
192
193         vdd_cpu: regulator@1c {
194                 compatible = "tcs,tcs4525";
195                 reg = <0x1c>;
196                 fcs,suspend-voltage-selector = <1>;
197                 regulator-name = "vdd_cpu";
198                 regulator-always-on;
199                 regulator-boot-on;
200                 regulator-min-microvolt = <800000>;
201                 regulator-max-microvolt = <1150000>;
202                 regulator-ramp-delay = <2300>;
203                 vin-supply = <&vcc5v0_sys>;
204
205                 regulator-state-mem {
206                         regulator-off-in-suspend;
207                 };
208         };
209
210         rk809: pmic@20 {
211                 compatible = "rockchip,rk809";
212                 reg = <0x20>;
213                 interrupt-parent = <&gpio0>;
214                 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
215                 #clock-cells = <1>;
216                 pinctrl-names = "default";
217                 pinctrl-0 = <&pmic_int>;
218                 rockchip,system-power-controller;
219                 vcc1-supply = <&vcc3v3_sys>;
220                 vcc2-supply = <&vcc3v3_sys>;
221                 vcc3-supply = <&vcc3v3_sys>;
222                 vcc4-supply = <&vcc3v3_sys>;
223                 vcc5-supply = <&vcc3v3_sys>;
224                 vcc6-supply = <&vcc3v3_sys>;
225                 vcc7-supply = <&vcc3v3_sys>;
226                 vcc8-supply = <&vcc3v3_sys>;
227                 vcc9-supply = <&vcc3v3_sys>;
228                 wakeup-source;
229
230                 regulators {
231                         vdd_logic: DCDC_REG1 {
232                                 regulator-name = "vdd_logic";
233                                 regulator-always-on;
234                                 regulator-boot-on;
235                                 regulator-initial-mode = <0x2>;
236                                 regulator-min-microvolt = <500000>;
237                                 regulator-max-microvolt = <1350000>;
238                                 regulator-ramp-delay = <6001>;
239
240                                 regulator-state-mem {
241                                         regulator-off-in-suspend;
242                                 };
243                         };
244
245                         vdd_gpu: DCDC_REG2 {
246                                 regulator-name = "vdd_gpu";
247                                 regulator-always-on;
248                                 regulator-initial-mode = <0x2>;
249                                 regulator-min-microvolt = <500000>;
250                                 regulator-max-microvolt = <1350000>;
251                                 regulator-ramp-delay = <6001>;
252
253                                 regulator-state-mem {
254                                         regulator-off-in-suspend;
255                                 };
256                         };
257
258                         vcc_ddr: DCDC_REG3 {
259                                 regulator-name = "vcc_ddr";
260                                 regulator-always-on;
261                                 regulator-boot-on;
262                                 regulator-initial-mode = <0x2>;
263
264                                 regulator-state-mem {
265                                         regulator-on-in-suspend;
266                                 };
267                         };
268
269                         vdd_npu: DCDC_REG4 {
270                                 regulator-name = "vdd_npu";
271                                 regulator-initial-mode = <0x2>;
272                                 regulator-min-microvolt = <500000>;
273                                 regulator-max-microvolt = <1350000>;
274                                 regulator-ramp-delay = <6001>;
275
276                                 regulator-state-mem {
277                                         regulator-off-in-suspend;
278                                 };
279                         };
280
281                         vcc_1v8: DCDC_REG5 {
282                                 regulator-name = "vcc_1v8";
283                                 regulator-always-on;
284                                 regulator-boot-on;
285                                 regulator-min-microvolt = <1800000>;
286                                 regulator-max-microvolt = <1800000>;
287
288                                 regulator-state-mem {
289                                         regulator-off-in-suspend;
290                                 };
291                         };
292
293                         vdda0v9_image: LDO_REG1 {
294                                 regulator-name = "vdda0v9_image";
295                                 regulator-min-microvolt = <950000>;
296                                 regulator-max-microvolt = <950000>;
297
298                                 regulator-state-mem {
299                                         regulator-off-in-suspend;
300                                 };
301                         };
302
303                         vdda_0v9: LDO_REG2 {
304                                 regulator-name = "vdda_0v9";
305                                 regulator-always-on;
306                                 regulator-boot-on;
307                                 regulator-min-microvolt = <900000>;
308                                 regulator-max-microvolt = <900000>;
309
310                                 regulator-state-mem {
311                                         regulator-off-in-suspend;
312                                 };
313                         };
314
315                         vdda0v9_pmu: LDO_REG3 {
316                                 regulator-name = "vdda0v9_pmu";
317                                 regulator-always-on;
318                                 regulator-boot-on;
319                                 regulator-min-microvolt = <900000>;
320                                 regulator-max-microvolt = <900000>;
321
322                                 regulator-state-mem {
323                                         regulator-on-in-suspend;
324                                         regulator-suspend-microvolt = <900000>;
325                                 };
326                         };
327
328                         vccio_acodec: LDO_REG4 {
329                                 regulator-name = "vccio_acodec";
330                                 regulator-min-microvolt = <3300000>;
331                                 regulator-max-microvolt = <3300000>;
332
333                                 regulator-state-mem {
334                                         regulator-off-in-suspend;
335                                 };
336                         };
337
338                         vccio_sd: LDO_REG5 {
339                                 regulator-name = "vccio_sd";
340                                 regulator-min-microvolt = <1800000>;
341                                 regulator-max-microvolt = <3300000>;
342
343                                 regulator-state-mem {
344                                         regulator-off-in-suspend;
345                                 };
346                         };
347
348                         vcc3v3_pmu: LDO_REG6 {
349                                 regulator-name = "vcc3v3_pmu";
350                                 regulator-always-on;
351                                 regulator-boot-on;
352                                 regulator-min-microvolt = <3300000>;
353                                 regulator-max-microvolt = <3300000>;
354
355                                 regulator-state-mem {
356                                         regulator-on-in-suspend;
357                                         regulator-suspend-microvolt = <3300000>;
358                                 };
359                         };
360
361                         vcca_1v8: LDO_REG7 {
362                                 regulator-name = "vcca_1v8";
363                                 regulator-always-on;
364                                 regulator-boot-on;
365                                 regulator-min-microvolt = <1800000>;
366                                 regulator-max-microvolt = <1800000>;
367
368                                 regulator-state-mem {
369                                         regulator-off-in-suspend;
370                                 };
371                         };
372
373                         vcca1v8_pmu: LDO_REG8 {
374                                 regulator-name = "vcca1v8_pmu";
375                                 regulator-always-on;
376                                 regulator-boot-on;
377                                 regulator-min-microvolt = <1800000>;
378                                 regulator-max-microvolt = <1800000>;
379
380                                 regulator-state-mem {
381                                         regulator-on-in-suspend;
382                                         regulator-suspend-microvolt = <1800000>;
383                                 };
384                         };
385
386                         vcca1v8_image: LDO_REG9 {
387                                 regulator-name = "vcca1v8_image";
388                                 regulator-min-microvolt = <1800000>;
389                                 regulator-max-microvolt = <1800000>;
390
391                                 regulator-state-mem {
392                                         regulator-off-in-suspend;
393                                 };
394                         };
395
396                         vcc_3v3: SWITCH_REG1 {
397                                 regulator-name = "vcc_3v3";
398                                 regulator-always-on;
399                                 regulator-boot-on;
400
401                                 regulator-state-mem {
402                                         regulator-off-in-suspend;
403                                 };
404                         };
405
406                         vcc3v3_sd: SWITCH_REG2 {
407                                 regulator-name = "vcc3v3_sd";
408                                 regulator-always-on;
409                                 regulator-boot-on;
410
411                                 regulator-state-mem {
412                                         regulator-off-in-suspend;
413                                 };
414                         };
415                 };
416
417         };
418 };
419
420 &i2c5 {
421         status = "okay";
422
423         hym8563: rtc@51 {
424                 compatible = "haoyu,hym8563";
425                 reg = <0x51>;
426                 interrupt-parent = <&gpio0>;
427                 interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
428                 #clock-cells = <0>;
429                 clock-output-names = "rtcic_32kout";
430                 pinctrl-names = "default";
431                 pinctrl-0 = <&hym8563_int>;
432                 wakeup-source;
433         };
434 };
435
436 &i2s0_8ch {
437         status = "okay";
438 };
439
440 &pcie30phy {
441         data-lanes = <1 2>;
442         status = "okay";
443 };
444
445 &pinctrl {
446         hym8563 {
447                 hym8563_int: hym8563-int {
448                         rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
449                 };
450         };
451
452         pmic {
453                 pmic_int: pmic-int {
454                         rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
455                 };
456         };
457
458         usb {
459                 vcc5v0_usb_host_en: vcc5v0-usb-host-en {
460                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
461                 };
462
463                 vcc5v0_usb_otg_en: vcc5v0-usb-otg-en {
464                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
465                 };
466         };
467 };
468
469 &pmu_io_domains {
470         pmuio1-supply = <&vcc3v3_pmu>;
471         pmuio2-supply = <&vcc3v3_pmu>;
472         vccio1-supply = <&vccio_acodec>;
473         vccio3-supply = <&vccio_sd>;
474         vccio4-supply = <&vcc_1v8>;
475         vccio5-supply = <&vcc_3v3>;
476         vccio6-supply = <&vcc_1v8>;
477         vccio7-supply = <&vcc_3v3>;
478         status = "okay";
479 };
480
481 &saradc {
482         vref-supply = <&vcca_1v8>;
483         status = "okay";
484 };
485
486 &sdhci {
487         bus-width = <8>;
488         max-frequency = <200000000>;
489         non-removable;
490         pinctrl-names = "default";
491         pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
492         status = "okay";
493 };
494
495 &sdmmc0 {
496         max-frequency = <150000000>;
497         no-sdio;
498         no-mmc;
499         bus-width = <4>;
500         cap-mmc-highspeed;
501         cap-sd-highspeed;
502         disable-wp;
503         vmmc-supply = <&vcc3v3_sd>;
504         vqmmc-supply = <&vccio_sd>;
505         pinctrl-names = "default";
506         pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
507         status = "okay";
508 };
509
510 &tsadc {
511         rockchip,hw-tshut-mode = <1>;
512         rockchip,hw-tshut-polarity = <0>;
513         status = "okay";
514 };
515
516 &uart2 {
517         status = "okay";
518 };
519
520 &usb_host0_ehci {
521         status = "okay";
522 };
523
524 &usb_host0_ohci {
525         status = "okay";
526 };
527
528 &usb_host0_xhci {
529         extcon = <&usb2phy0>;
530         dr_mode = "host";
531         status = "okay";
532 };
533
534 &usb_host1_ehci {
535         status = "okay";
536 };
537
538 &usb_host1_ohci {
539         status = "okay";
540 };
541
542 &usb_host1_xhci {
543         status = "okay";
544 };
545
546 &usb2phy0 {
547         status = "okay";
548 };
549
550 &usb2phy0_host {
551         phy-supply = <&vcc5v0_usb_host>;
552         status = "okay";
553 };
554
555 &usb2phy0_otg {
556         status = "okay";
557 };
558
559 &usb2phy1 {
560         status = "okay";
561 };
562
563 &usb2phy1_host {
564         phy-supply = <&vcc5v0_usb_otg>;
565         status = "okay";
566 };
567
568 &usb2phy1_otg {
569         status = "okay";
570 };
571
572 &vop {
573         assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
574         assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
575         status = "okay";
576 };
577
578 &vop_mmu {
579         status = "okay";
580 };
581
582 &vp0 {
583         vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
584                 reg = <ROCKCHIP_VOP2_EP_HDMI0>;
585                 remote-endpoint = <&hdmi_in_vp0>;
586         };
587 };