]> git.ipfire.org Git - thirdparty/kernel/linux.git/blob - arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi
94ecb9b4f98f88c6ec0f93ff839f6a594eb75c19
[thirdparty/kernel/linux.git] / arch / arm64 / boot / dts / rockchip / rk3588-coolpi-cm5.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
4 *
5 */
6
7 /dts-v1/;
8
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/pwm/pwm.h>
11 #include <dt-bindings/pinctrl/rockchip.h>
12 #include "rk3588.dtsi"
13
14 / {
15 compatible = "coolpi,pi-cm5", "rockchip,rk3588";
16
17 aliases {
18 mmc0 = &sdhci;
19 mmc1 = &sdmmc;
20 mmc2 = &sdio;
21 serial2 = &uart2;
22 };
23
24 analog-sound {
25 compatible = "audio-graph-card";
26 dais = <&i2s0_8ch_p0>;
27 label = "rk3588-es8316";
28 routing = "MIC2", "Mic Jack",
29 "Headphones", "HPOL",
30 "Headphones", "HPOR";
31 widgets = "Microphone", "Mic Jack",
32 "Headphone", "Headphones";
33 };
34
35 chosen {
36 stdout-path = "serial2:1500000n8";
37 };
38
39 avdd0v85_pcie20: avdd0v85-pcie20-regulator {
40 compatible = "regulator-fixed";
41 regulator-name = "avdd0v85_pcie20";
42 regulator-boot-on;
43 regulator-always-on;
44 regulator-min-microvolt = <850000>;
45 regulator-max-microvolt = <850000>;
46 vin-supply = <&vdd_0v85_s0>;
47 };
48
49 avdd1v8_pcie20: avdd1v8-pcie20-regulator {
50 compatible = "regulator-fixed";
51 regulator-name = "avdd1v8_pcie20";
52 regulator-boot-on;
53 regulator-always-on;
54 regulator-min-microvolt = <1800000>;
55 regulator-max-microvolt = <1800000>;
56 vin-supply = <&avcc_1v8_s0>;
57 };
58
59 avdd0v75_pcie30: avdd0v75-pcie30-regulator {
60 compatible = "regulator-fixed";
61 regulator-name = "avdd0v75_pcie30";
62 regulator-boot-on;
63 regulator-always-on;
64 regulator-min-microvolt = <750000>;
65 regulator-max-microvolt = <750000>;
66 vin-supply = <&avdd_0v75_s0>;
67 };
68
69 pcie30_avdd1v8: avdd1v8-pcie30-regulator {
70 compatible = "regulator-fixed";
71 regulator-name = "pcie30_avdd1v8";
72 regulator-boot-on;
73 regulator-always-on;
74 regulator-min-microvolt = <1800000>;
75 regulator-max-microvolt = <1800000>;
76 vin-supply = <&avcc_1v8_s0>;
77 };
78 };
79
80 &combphy0_ps {
81 status = "okay";
82 };
83
84 &combphy1_ps {
85 status = "okay";
86 };
87
88 &combphy2_psu {
89 status = "okay";
90 };
91
92 &cpu_b0 {
93 cpu-supply = <&vdd_cpu_big0_s0>;
94 };
95
96 &cpu_b1 {
97 cpu-supply = <&vdd_cpu_big0_s0>;
98 };
99
100 &cpu_b2 {
101 cpu-supply = <&vdd_cpu_big1_s0>;
102 };
103
104 &cpu_b3 {
105 cpu-supply = <&vdd_cpu_big1_s0>;
106 };
107
108 &cpu_l0 {
109 cpu-supply = <&vdd_cpu_lit_s0>;
110 };
111
112 &cpu_l1 {
113 cpu-supply = <&vdd_cpu_lit_s0>;
114 };
115
116 &cpu_l2 {
117 cpu-supply = <&vdd_cpu_lit_s0>;
118 };
119
120 &cpu_l3 {
121 cpu-supply = <&vdd_cpu_lit_s0>;
122 };
123
124 &gmac0 {
125 clock_in_out = "output";
126 phy-handle = <&rgmii_phy>;
127 phy-mode = "rgmii-rxid";
128 pinctrl-0 = <&gmac0_miim
129 &gmac0_tx_bus2
130 &gmac0_rx_bus2
131 &gmac0_rgmii_clk
132 &gmac0_rgmii_bus>;
133 pinctrl-names = "default";
134 rx_delay = <0x00>;
135 tx_delay = <0x43>;
136 status = "okay";
137 };
138
139 &i2c0 {
140 pinctrl-0 = <&i2c0m2_xfer>;
141 status = "okay";
142
143 vdd_cpu_big0_s0: regulator@42 {
144 compatible = "rockchip,rk8602";
145 reg = <0x42>;
146 fcs,suspend-voltage-selector = <1>;
147 regulator-name = "vdd_cpu_big0_s0";
148 regulator-always-on;
149 regulator-boot-on;
150 regulator-min-microvolt = <550000>;
151 regulator-max-microvolt = <1050000>;
152 regulator-ramp-delay = <2300>;
153 vin-supply = <&vcc5v0_sys>;
154
155 regulator-state-mem {
156 regulator-off-in-suspend;
157 };
158 };
159
160 vdd_cpu_big1_s0: regulator@43 {
161 compatible = "rockchip,rk8603", "rockchip,rk8602";
162 reg = <0x43>;
163 fcs,suspend-voltage-selector = <1>;
164 regulator-name = "vdd_cpu_big1_s0";
165 regulator-always-on;
166 regulator-boot-on;
167 regulator-min-microvolt = <550000>;
168 regulator-max-microvolt = <1050000>;
169 regulator-ramp-delay = <2300>;
170 vin-supply = <&vcc5v0_sys>;
171
172 regulator-state-mem {
173 regulator-off-in-suspend;
174 };
175 };
176 };
177
178 &i2c2 {
179 status = "okay";
180
181 vdd_npu_s0: regulator@42 {
182 compatible = "rockchip,rk8602";
183 reg = <0x42>;
184 fcs,suspend-voltage-selector = <1>;
185 regulator-name = "vdd_npu_s0";
186 regulator-always-on;
187 regulator-boot-on;
188 regulator-min-microvolt = <550000>;
189 regulator-max-microvolt = <950000>;
190 regulator-ramp-delay = <2300>;
191 vin-supply = <&vcc5v0_sys>;
192
193 regulator-state-mem {
194 regulator-off-in-suspend;
195 };
196 };
197 };
198
199 &i2c6 {
200 status = "okay";
201
202 hym8563: rtc@51 {
203 compatible = "haoyu,hym8563";
204 reg = <0x51>;
205 interrupt-parent = <&gpio0>;
206 interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
207 #clock-cells = <0>;
208 clock-output-names = "hym8563";
209 pinctrl-names = "default";
210 pinctrl-0 = <&hym8563_int>;
211 wakeup-source;
212 };
213 };
214
215 &i2c7 {
216 pinctrl-0 = <&i2c7m0_xfer>;
217 status = "okay";
218
219 es8316: audio-codec@10 {
220 compatible = "everest,es8316";
221 reg = <0x10>;
222 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
223 assigned-clock-rates = <12288000>;
224 clocks = <&cru I2S0_8CH_MCLKOUT>;
225 clock-names = "mclk";
226 #sound-dai-cells = <0>;
227
228 port {
229 es8316_p0_0: endpoint {
230 remote-endpoint = <&i2s0_8ch_p0_0>;
231 };
232 };
233 };
234 };
235
236 &i2s0_8ch {
237 pinctrl-0 = <&i2s0_lrck
238 &i2s0_mclk
239 &i2s0_sclk
240 &i2s0_sdi0
241 &i2s0_sdo0>;
242 status = "okay";
243
244 i2s0_8ch_p0: port {
245 i2s0_8ch_p0_0: endpoint {
246 dai-format = "i2s";
247 mclk-fs = <256>;
248 remote-endpoint = <&es8316_p0_0>;
249 };
250 };
251 };
252
253 &mdio0 {
254 rgmii_phy: ethernet-phy@1 {
255 /* YT8531C/H */
256 compatible = "ethernet-phy-ieee802.3-c22";
257 reg = <0x1>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&yt8531_rst>;
260 reset-assert-us = <20000>;
261 reset-deassert-us = <100000>;
262 reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
263 };
264 };
265
266 /* ethernet */
267 &pcie2x1l2 {
268 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
269 vpcie3v3-supply = <&vcc3v3_sys>;
270 pinctrl-names = "default";
271 pinctrl-0 = <&yt6801_isolate>;
272 status = "okay";
273 };
274
275 &pinctrl {
276 hym8563 {
277 hym8563_int: hym8563-int {
278 rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
279 };
280 };
281
282 yt6801 {
283 yt6801_isolate: yt6801-isolate {
284 rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
285 };
286 };
287
288 yt8531 {
289 yt8531_rst: yt8531-rst {
290 rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
291 };
292 };
293 };
294
295 &saradc {
296 vref-supply = <&vcc_1v8_s0>;
297 status = "okay";
298 };
299
300 &sdhci {
301 bus-width = <8>;
302 max-frequency = <200000000>;
303 mmc-hs400-1_8v;
304 mmc-hs400-enhanced-strobe;
305 no-sdio;
306 no-sd;
307 non-removable;
308 status = "okay";
309 };
310
311 &sdmmc {
312 bus-width = <4>;
313 cap-mmc-highspeed;
314 cap-sd-highspeed;
315 disable-wp;
316 max-frequency = <150000000>;
317 no-sdio;
318 no-mmc;
319 sd-uhs-sdr104;
320 vqmmc-supply = <&vccio_sd_s0>;
321 status = "okay";
322 };
323
324 &spi2 {
325 assigned-clocks = <&cru CLK_SPI2>;
326 assigned-clock-rates = <200000000>;
327 num-cs = <1>;
328 pinctrl-names = "default";
329 pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
330 status = "okay";
331
332 pmic@0 {
333 compatible = "rockchip,rk806";
334 reg = <0x0>;
335 interrupt-parent = <&gpio0>;
336 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
337 gpio-controller;
338 #gpio-cells = <2>;
339 pinctrl-names = "default";
340 pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
341 <&rk806_dvs2_null>, <&rk806_dvs3_null>;
342 spi-max-frequency = <1000000>;
343 vcc1-supply = <&vcc5v0_sys>;
344 vcc2-supply = <&vcc5v0_sys>;
345 vcc3-supply = <&vcc5v0_sys>;
346 vcc4-supply = <&vcc5v0_sys>;
347 vcc5-supply = <&vcc5v0_sys>;
348 vcc6-supply = <&vcc5v0_sys>;
349 vcc7-supply = <&vcc5v0_sys>;
350 vcc8-supply = <&vcc5v0_sys>;
351 vcc9-supply = <&vcc5v0_sys>;
352 vcc10-supply = <&vcc5v0_sys>;
353 vcc11-supply = <&vcc_2v0_pldo_s3>;
354 vcc12-supply = <&vcc5v0_sys>;
355 vcc13-supply = <&vcc_2v0_pldo_s3>;
356 vcc14-supply = <&vcc_2v0_pldo_s3>;
357 vcca-supply = <&vcc5v0_sys>;
358
359 rk806_dvs1_null: dvs1-null-pins {
360 pins = "gpio_pwrctrl2";
361 function = "pin_fun0";
362 };
363
364 rk806_dvs2_null: dvs2-null-pins {
365 pins = "gpio_pwrctrl2";
366 function = "pin_fun0";
367 };
368
369 rk806_dvs3_null: dvs3-null-pins {
370 pins = "gpio_pwrctrl3";
371 function = "pin_fun0";
372 };
373
374 regulators {
375 vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
376 regulator-boot-on;
377 regulator-min-microvolt = <550000>;
378 regulator-max-microvolt = <950000>;
379 regulator-ramp-delay = <12500>;
380 regulator-name = "vdd_gpu_s0";
381 regulator-enable-ramp-delay = <400>;
382
383 regulator-state-mem {
384 regulator-off-in-suspend;
385 };
386 };
387
388 vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
389 regulator-always-on;
390 regulator-boot-on;
391 regulator-min-microvolt = <550000>;
392 regulator-max-microvolt = <950000>;
393 regulator-ramp-delay = <12500>;
394 regulator-name = "vdd_cpu_lit_s0";
395
396 regulator-state-mem {
397 regulator-off-in-suspend;
398 };
399 };
400
401 vdd_log_s0: dcdc-reg3 {
402 regulator-always-on;
403 regulator-boot-on;
404 regulator-min-microvolt = <675000>;
405 regulator-max-microvolt = <750000>;
406 regulator-ramp-delay = <12500>;
407 regulator-name = "vdd_log_s0";
408
409 regulator-state-mem {
410 regulator-off-in-suspend;
411 regulator-suspend-microvolt = <750000>;
412 };
413 };
414
415 vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
416 regulator-always-on;
417 regulator-boot-on;
418 regulator-min-microvolt = <550000>;
419 regulator-max-microvolt = <950000>;
420 regulator-ramp-delay = <12500>;
421 regulator-name = "vdd_vdenc_s0";
422
423 regulator-state-mem {
424 regulator-off-in-suspend;
425 };
426 };
427
428 vdd_ddr_s0: dcdc-reg5 {
429 regulator-always-on;
430 regulator-boot-on;
431 regulator-min-microvolt = <675000>;
432 regulator-max-microvolt = <900000>;
433 regulator-ramp-delay = <12500>;
434 regulator-name = "vdd_ddr_s0";
435
436 regulator-state-mem {
437 regulator-off-in-suspend;
438 regulator-suspend-microvolt = <850000>;
439 };
440 };
441
442 vdd2_ddr_s3: dcdc-reg6 {
443 regulator-always-on;
444 regulator-boot-on;
445 regulator-name = "vdd2_ddr_s3";
446
447 regulator-state-mem {
448 regulator-on-in-suspend;
449 };
450 };
451
452 vcc_2v0_pldo_s3: dcdc-reg7 {
453 regulator-always-on;
454 regulator-boot-on;
455 regulator-min-microvolt = <2000000>;
456 regulator-max-microvolt = <2000000>;
457 regulator-ramp-delay = <12500>;
458 regulator-name = "vdd_2v0_pldo_s3";
459
460 regulator-state-mem {
461 regulator-on-in-suspend;
462 regulator-suspend-microvolt = <2000000>;
463 };
464 };
465
466 vcc_3v3_s3: dcdc-reg8 {
467 regulator-always-on;
468 regulator-boot-on;
469 regulator-min-microvolt = <3300000>;
470 regulator-max-microvolt = <3300000>;
471 regulator-name = "vcc_3v3_s3";
472
473 regulator-state-mem {
474 regulator-on-in-suspend;
475 regulator-suspend-microvolt = <3300000>;
476 };
477 };
478
479 vddq_ddr_s0: dcdc-reg9 {
480 regulator-always-on;
481 regulator-boot-on;
482 regulator-name = "vddq_ddr_s0";
483
484 regulator-state-mem {
485 regulator-off-in-suspend;
486 };
487 };
488
489 vcc_1v8_s3: dcdc-reg10 {
490 regulator-always-on;
491 regulator-boot-on;
492 regulator-min-microvolt = <1800000>;
493 regulator-max-microvolt = <1800000>;
494 regulator-name = "vcc_1v8_s3";
495
496 regulator-state-mem {
497 regulator-on-in-suspend;
498 regulator-suspend-microvolt = <1800000>;
499 };
500 };
501
502 avcc_1v8_s0: pldo-reg1 {
503 regulator-always-on;
504 regulator-boot-on;
505 regulator-min-microvolt = <1800000>;
506 regulator-max-microvolt = <1800000>;
507 regulator-name = "avcc_1v8_s0";
508
509 regulator-state-mem {
510 regulator-off-in-suspend;
511 };
512 };
513
514 vcc_1v8_s0: pldo-reg2 {
515 regulator-always-on;
516 regulator-boot-on;
517 regulator-min-microvolt = <1800000>;
518 regulator-max-microvolt = <1800000>;
519 regulator-name = "vcc_1v8_s0";
520
521 regulator-state-mem {
522 regulator-off-in-suspend;
523 regulator-suspend-microvolt = <1800000>;
524 };
525 };
526
527 avdd_1v2_s0: pldo-reg3 {
528 regulator-always-on;
529 regulator-boot-on;
530 regulator-min-microvolt = <1200000>;
531 regulator-max-microvolt = <1200000>;
532 regulator-name = "avdd_1v2_s0";
533
534 regulator-state-mem {
535 regulator-off-in-suspend;
536 };
537 };
538
539 vcc_3v3_s0: pldo-reg4 {
540 regulator-always-on;
541 regulator-boot-on;
542 regulator-min-microvolt = <3300000>;
543 regulator-max-microvolt = <3300000>;
544 regulator-ramp-delay = <12500>;
545 regulator-name = "vcc_3v3_s0";
546
547 regulator-state-mem {
548 regulator-off-in-suspend;
549 };
550 };
551
552 vccio_sd_s0: pldo-reg5 {
553 regulator-always-on;
554 regulator-boot-on;
555 regulator-min-microvolt = <1800000>;
556 regulator-max-microvolt = <3300000>;
557 regulator-ramp-delay = <12500>;
558 regulator-name = "vccio_sd_s0";
559
560 regulator-state-mem {
561 regulator-off-in-suspend;
562 };
563 };
564
565 pldo6_s3: pldo-reg6 {
566 regulator-always-on;
567 regulator-boot-on;
568 regulator-min-microvolt = <1800000>;
569 regulator-max-microvolt = <1800000>;
570 regulator-name = "pldo6_s3";
571
572 regulator-state-mem {
573 regulator-on-in-suspend;
574 regulator-suspend-microvolt = <1800000>;
575 };
576 };
577
578 vdd_0v75_s3: nldo-reg1 {
579 regulator-always-on;
580 regulator-boot-on;
581 regulator-min-microvolt = <750000>;
582 regulator-max-microvolt = <750000>;
583 regulator-name = "vdd_0v75_s3";
584
585 regulator-state-mem {
586 regulator-on-in-suspend;
587 regulator-suspend-microvolt = <750000>;
588 };
589 };
590
591 vdd_ddr_pll_s0: nldo-reg2 {
592 regulator-always-on;
593 regulator-boot-on;
594 regulator-min-microvolt = <850000>;
595 regulator-max-microvolt = <850000>;
596 regulator-name = "vdd_ddr_pll_s0";
597
598 regulator-state-mem {
599 regulator-off-in-suspend;
600 regulator-suspend-microvolt = <850000>;
601 };
602 };
603
604 avdd_0v75_s0: nldo-reg3 {
605 regulator-always-on;
606 regulator-boot-on;
607 regulator-min-microvolt = <750000>;
608 regulator-max-microvolt = <750000>;
609 regulator-name = "avdd_0v75_s0";
610
611 regulator-state-mem {
612 regulator-off-in-suspend;
613 };
614 };
615
616 vdd_0v85_s0: nldo-reg4 {
617 regulator-always-on;
618 regulator-boot-on;
619 regulator-min-microvolt = <850000>;
620 regulator-max-microvolt = <850000>;
621 regulator-name = "vdd_0v85_s0";
622
623 regulator-state-mem {
624 regulator-off-in-suspend;
625 };
626 };
627
628 vdd_0v75_s0: nldo-reg5 {
629 regulator-always-on;
630 regulator-boot-on;
631 regulator-min-microvolt = <750000>;
632 regulator-max-microvolt = <750000>;
633 regulator-name = "vdd_0v75_s0";
634
635 regulator-state-mem {
636 regulator-off-in-suspend;
637 };
638 };
639 };
640 };
641 };
642
643 &tsadc {
644 status = "okay";
645 };
646
647 &uart2 {
648 pinctrl-0 = <&uart2m0_xfer>;
649 status = "okay";
650 };