blob: 260415d99aebf8fcb301bd6e3d32354eb4d1f63d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6/dts-v1/;
7#include <dt-bindings/input/linux-event-codes.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/pwm/pwm.h>
10#include <dt-bindings/usb/pd.h>
11#include "rk3399.dtsi"
12#include "rk3399-opp.dtsi"
13
14/ {
15 model = "Firefly-RK3399 Board";
16 compatible = "firefly,firefly-rk3399", "rockchip,rk3399";
17
18 aliases {
Tom Rini93743d22024-04-01 09:08:13 -040019 ethernet0 = &gmac;
Tom Rini53633a82024-02-29 12:33:36 -050020 mmc0 = &sdio0;
21 mmc1 = &sdmmc;
22 mmc2 = &sdhci;
23 };
24
25 chosen {
26 stdout-path = "serial2:1500000n8";
27 };
28
29 backlight: backlight {
30 compatible = "pwm-backlight";
31 enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
32 pwms = <&pwm0 0 25000 0>;
33 brightness-levels = <
34 0 1 2 3 4 5 6 7
35 8 9 10 11 12 13 14 15
36 16 17 18 19 20 21 22 23
37 24 25 26 27 28 29 30 31
38 32 33 34 35 36 37 38 39
39 40 41 42 43 44 45 46 47
40 48 49 50 51 52 53 54 55
41 56 57 58 59 60 61 62 63
42 64 65 66 67 68 69 70 71
43 72 73 74 75 76 77 78 79
44 80 81 82 83 84 85 86 87
45 88 89 90 91 92 93 94 95
46 96 97 98 99 100 101 102 103
47 104 105 106 107 108 109 110 111
48 112 113 114 115 116 117 118 119
49 120 121 122 123 124 125 126 127
50 128 129 130 131 132 133 134 135
51 136 137 138 139 140 141 142 143
52 144 145 146 147 148 149 150 151
53 152 153 154 155 156 157 158 159
54 160 161 162 163 164 165 166 167
55 168 169 170 171 172 173 174 175
56 176 177 178 179 180 181 182 183
57 184 185 186 187 188 189 190 191
58 192 193 194 195 196 197 198 199
59 200 201 202 203 204 205 206 207
60 208 209 210 211 212 213 214 215
61 216 217 218 219 220 221 222 223
62 224 225 226 227 228 229 230 231
63 232 233 234 235 236 237 238 239
64 240 241 242 243 244 245 246 247
65 248 249 250 251 252 253 254 255>;
66 default-brightness-level = <200>;
67 };
68
69 clkin_gmac: external-gmac-clock {
70 compatible = "fixed-clock";
71 clock-frequency = <125000000>;
72 clock-output-names = "clkin_gmac";
73 #clock-cells = <0>;
74 };
75
76 dc_12v: dc-12v {
77 compatible = "regulator-fixed";
78 regulator-name = "dc_12v";
79 regulator-always-on;
80 regulator-boot-on;
81 regulator-min-microvolt = <12000000>;
82 regulator-max-microvolt = <12000000>;
83 };
84
85 gpio-keys {
86 compatible = "gpio-keys";
87 autorepeat;
88 pinctrl-names = "default";
89 pinctrl-0 = <&pwrbtn>;
90
91 key-power {
92 debounce-interval = <100>;
93 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
94 label = "GPIO Key Power";
95 linux,code = <KEY_POWER>;
96 wakeup-source;
97 };
98 };
99
100 ir-receiver {
101 compatible = "gpio-ir-receiver";
102 gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
103 pinctrl-0 = <&ir_int>;
104 pinctrl-names = "default";
105 };
106
107 leds {
108 compatible = "gpio-leds";
109 pinctrl-names = "default";
110 pinctrl-0 = <&work_led_pin>, <&diy_led_pin>;
111
112 work_led: led-0 {
113 label = "work";
114 default-state = "on";
115 gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
116 };
117
118 diy_led: led-1 {
119 label = "diy";
120 default-state = "off";
121 gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
122 };
123 };
124
125 rt5640-sound {
126 compatible = "simple-audio-card";
127 simple-audio-card,name = "rockchip,rt5640-codec";
128 simple-audio-card,format = "i2s";
129 simple-audio-card,mclk-fs = <256>;
130 simple-audio-card,widgets =
131 "Microphone", "Mic Jack",
132 "Headphone", "Headphone Jack";
133 simple-audio-card,routing =
134 "Mic Jack", "MICBIAS1",
135 "IN1P", "Mic Jack",
136 "Headphone Jack", "HPOL",
137 "Headphone Jack", "HPOR";
138
139 simple-audio-card,cpu {
140 sound-dai = <&i2s1>;
141 };
142
143 simple-audio-card,codec {
144 sound-dai = <&rt5640>;
145 };
146 };
147
148 sdio_pwrseq: sdio-pwrseq {
149 compatible = "mmc-pwrseq-simple";
150 clocks = <&rk808 1>;
151 clock-names = "ext_clock";
152 pinctrl-names = "default";
153 pinctrl-0 = <&wifi_enable_h>;
154
155 /*
156 * On the module itself this is one of these (depending
157 * on the actual card populated):
158 * - SDIO_RESET_L_WL_REG_ON
159 * - PDN (power down when low)
160 */
161 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
162 };
163
164 sound-dit {
165 compatible = "audio-graph-card";
166 label = "SPDIF";
167 dais = <&spdif_p0>;
168 };
169
170 spdif-dit {
171 compatible = "linux,spdif-dit";
172 #sound-dai-cells = <0>;
173
174 port {
175 dit_p0_0: endpoint {
176 remote-endpoint = <&spdif_p0_0>;
177 };
178 };
179 };
180
181 /* switched by pmic_sleep */
182 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
183 compatible = "regulator-fixed";
184 regulator-name = "vcc1v8_s3";
185 regulator-always-on;
186 regulator-boot-on;
187 regulator-min-microvolt = <1800000>;
188 regulator-max-microvolt = <1800000>;
189 vin-supply = <&vcc_1v8>;
190 };
191
192 vcc3v3_pcie: vcc3v3-pcie-regulator {
193 compatible = "regulator-fixed";
194 enable-active-high;
195 gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
196 pinctrl-names = "default";
197 pinctrl-0 = <&pcie_pwr_en>;
198 regulator-name = "vcc3v3_pcie";
199 regulator-always-on;
200 regulator-boot-on;
201 vin-supply = <&dc_12v>;
202 };
203
204 vcc3v3_sys: vcc3v3-sys {
205 compatible = "regulator-fixed";
206 regulator-name = "vcc3v3_sys";
207 regulator-always-on;
208 regulator-boot-on;
209 regulator-min-microvolt = <3300000>;
210 regulator-max-microvolt = <3300000>;
211 vin-supply = <&vcc_sys>;
212 };
213
214 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
215 vcc5v0_host: vcc5v0-host-regulator {
216 compatible = "regulator-fixed";
217 enable-active-high;
218 gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
219 pinctrl-names = "default";
220 pinctrl-0 = <&vcc5v0_host_en>;
221 regulator-name = "vcc5v0_host";
222 regulator-always-on;
223 vin-supply = <&vcc_sys>;
224 };
225
226 vcc5v0_typec: vcc5v0-typec-regulator {
227 compatible = "regulator-fixed";
228 enable-active-high;
229 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
230 pinctrl-names = "default";
231 pinctrl-0 = <&vcc5v0_typec_en>;
232 regulator-name = "vcc5v0_typec";
233 regulator-always-on;
234 vin-supply = <&vcc_sys>;
235 };
236
237 vcc_sys: vcc-sys {
238 compatible = "regulator-fixed";
239 regulator-name = "vcc_sys";
240 regulator-always-on;
241 regulator-boot-on;
242 regulator-min-microvolt = <5000000>;
243 regulator-max-microvolt = <5000000>;
244 vin-supply = <&dc_12v>;
245 };
246
247 vdd_log: vdd-log {
248 compatible = "pwm-regulator";
249 pwms = <&pwm2 0 25000 1>;
250 pwm-supply = <&vcc_sys>;
251 regulator-name = "vdd_log";
252 regulator-always-on;
253 regulator-boot-on;
254 regulator-min-microvolt = <430000>;
255 regulator-max-microvolt = <1400000>;
256 };
257};
258
259&cpu_l0 {
260 cpu-supply = <&vdd_cpu_l>;
261};
262
263&cpu_l1 {
264 cpu-supply = <&vdd_cpu_l>;
265};
266
267&cpu_l2 {
268 cpu-supply = <&vdd_cpu_l>;
269};
270
271&cpu_l3 {
272 cpu-supply = <&vdd_cpu_l>;
273};
274
275&cpu_b0 {
276 cpu-supply = <&vdd_cpu_b>;
277};
278
279&cpu_b1 {
280 cpu-supply = <&vdd_cpu_b>;
281};
282
283&emmc_phy {
284 status = "okay";
285};
286
287&gmac {
288 assigned-clocks = <&cru SCLK_RMII_SRC>;
289 assigned-clock-parents = <&clkin_gmac>;
290 clock_in_out = "input";
291 phy-supply = <&vcc_lan>;
292 phy-mode = "rgmii";
293 pinctrl-names = "default";
294 pinctrl-0 = <&rgmii_pins>;
295 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
296 snps,reset-active-low;
297 snps,reset-delays-us = <0 10000 50000>;
298 tx_delay = <0x28>;
299 rx_delay = <0x11>;
300 status = "okay";
301};
302
303&gpu {
304 mali-supply = <&vdd_gpu>;
305 status = "okay";
306};
307
308&hdmi {
309 ddc-i2c-bus = <&i2c3>;
310 pinctrl-names = "default";
311 pinctrl-0 = <&hdmi_cec>;
312 status = "okay";
313};
314
315&i2c0 {
316 clock-frequency = <400000>;
317 i2c-scl-rising-time-ns = <168>;
318 i2c-scl-falling-time-ns = <4>;
319 status = "okay";
320
321 rk808: pmic@1b {
322 compatible = "rockchip,rk808";
323 reg = <0x1b>;
324 interrupt-parent = <&gpio1>;
325 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
326 #clock-cells = <1>;
327 clock-output-names = "xin32k", "rk808-clkout2";
328 pinctrl-names = "default";
329 pinctrl-0 = <&pmic_int_l>;
330 rockchip,system-power-controller;
331 wakeup-source;
332
333 vcc1-supply = <&vcc_sys>;
334 vcc2-supply = <&vcc_sys>;
335 vcc3-supply = <&vcc_sys>;
336 vcc4-supply = <&vcc_sys>;
337 vcc6-supply = <&vcc_sys>;
338 vcc7-supply = <&vcc_sys>;
339 vcc8-supply = <&vcc3v3_sys>;
340 vcc9-supply = <&vcc_sys>;
341 vcc10-supply = <&vcc_sys>;
342 vcc11-supply = <&vcc_sys>;
343 vcc12-supply = <&vcc3v3_sys>;
344 vddio-supply = <&vcc1v8_pmu>;
345
346 regulators {
347 vdd_center: DCDC_REG1 {
348 regulator-name = "vdd_center";
349 regulator-always-on;
350 regulator-boot-on;
351 regulator-min-microvolt = <750000>;
352 regulator-max-microvolt = <1350000>;
353 regulator-ramp-delay = <6001>;
354 regulator-state-mem {
355 regulator-off-in-suspend;
356 };
357 };
358
359 vdd_cpu_l: DCDC_REG2 {
360 regulator-name = "vdd_cpu_l";
361 regulator-always-on;
362 regulator-boot-on;
363 regulator-min-microvolt = <750000>;
364 regulator-max-microvolt = <1350000>;
365 regulator-ramp-delay = <6001>;
366 regulator-state-mem {
367 regulator-off-in-suspend;
368 };
369 };
370
371 vcc_ddr: DCDC_REG3 {
372 regulator-name = "vcc_ddr";
373 regulator-always-on;
374 regulator-boot-on;
375 regulator-state-mem {
376 regulator-on-in-suspend;
377 };
378 };
379
380 vcc_1v8: DCDC_REG4 {
381 regulator-name = "vcc_1v8";
382 regulator-always-on;
383 regulator-boot-on;
384 regulator-min-microvolt = <1800000>;
385 regulator-max-microvolt = <1800000>;
386 regulator-state-mem {
387 regulator-on-in-suspend;
388 regulator-suspend-microvolt = <1800000>;
389 };
390 };
391
392 vcc1v8_dvp: LDO_REG1 {
393 regulator-name = "vcc1v8_dvp";
394 regulator-always-on;
395 regulator-boot-on;
396 regulator-min-microvolt = <1800000>;
397 regulator-max-microvolt = <1800000>;
398 regulator-state-mem {
399 regulator-off-in-suspend;
400 };
401 };
402
403 vcc2v8_dvp: LDO_REG2 {
404 regulator-name = "vcc2v8_dvp";
405 regulator-always-on;
406 regulator-boot-on;
407 regulator-min-microvolt = <2800000>;
408 regulator-max-microvolt = <2800000>;
409 regulator-state-mem {
410 regulator-off-in-suspend;
411 };
412 };
413
414 vcc1v8_pmu: LDO_REG3 {
415 regulator-name = "vcc1v8_pmu";
416 regulator-always-on;
417 regulator-boot-on;
418 regulator-min-microvolt = <1800000>;
419 regulator-max-microvolt = <1800000>;
420 regulator-state-mem {
421 regulator-on-in-suspend;
422 regulator-suspend-microvolt = <1800000>;
423 };
424 };
425
426 vcc_sdio: LDO_REG4 {
427 regulator-name = "vcc_sdio";
428 regulator-always-on;
429 regulator-boot-on;
430 regulator-min-microvolt = <1800000>;
431 regulator-max-microvolt = <3000000>;
432 regulator-state-mem {
433 regulator-on-in-suspend;
434 regulator-suspend-microvolt = <3000000>;
435 };
436 };
437
438 vcca3v0_codec: LDO_REG5 {
439 regulator-name = "vcca3v0_codec";
440 regulator-always-on;
441 regulator-boot-on;
442 regulator-min-microvolt = <3000000>;
443 regulator-max-microvolt = <3000000>;
444 regulator-state-mem {
445 regulator-off-in-suspend;
446 };
447 };
448
449 vcc_1v5: LDO_REG6 {
450 regulator-name = "vcc_1v5";
451 regulator-always-on;
452 regulator-boot-on;
453 regulator-min-microvolt = <1500000>;
454 regulator-max-microvolt = <1500000>;
455 regulator-state-mem {
456 regulator-on-in-suspend;
457 regulator-suspend-microvolt = <1500000>;
458 };
459 };
460
461 vcca1v8_codec: LDO_REG7 {
462 regulator-name = "vcca1v8_codec";
463 regulator-always-on;
464 regulator-boot-on;
465 regulator-min-microvolt = <1800000>;
466 regulator-max-microvolt = <1800000>;
467 regulator-state-mem {
468 regulator-off-in-suspend;
469 };
470 };
471
472 vcc_3v0: LDO_REG8 {
473 regulator-name = "vcc_3v0";
474 regulator-always-on;
475 regulator-boot-on;
476 regulator-min-microvolt = <3000000>;
477 regulator-max-microvolt = <3000000>;
478 regulator-state-mem {
479 regulator-on-in-suspend;
480 regulator-suspend-microvolt = <3000000>;
481 };
482 };
483
484 vcc3v3_s3: vcc_lan: SWITCH_REG1 {
485 regulator-name = "vcc3v3_s3";
486 regulator-always-on;
487 regulator-boot-on;
488 regulator-state-mem {
489 regulator-off-in-suspend;
490 };
491 };
492
493 vcc3v3_s0: SWITCH_REG2 {
494 regulator-name = "vcc3v3_s0";
495 regulator-always-on;
496 regulator-boot-on;
497 regulator-state-mem {
498 regulator-off-in-suspend;
499 };
500 };
501 };
502 };
503
504 vdd_cpu_b: regulator@40 {
505 compatible = "silergy,syr827";
506 reg = <0x40>;
507 fcs,suspend-voltage-selector = <0>;
508 regulator-name = "vdd_cpu_b";
509 regulator-min-microvolt = <712500>;
510 regulator-max-microvolt = <1500000>;
511 regulator-ramp-delay = <1000>;
512 regulator-always-on;
513 regulator-boot-on;
514 vin-supply = <&vcc_sys>;
515
516 regulator-state-mem {
517 regulator-off-in-suspend;
518 };
519 };
520
521 vdd_gpu: regulator@41 {
522 compatible = "silergy,syr828";
523 reg = <0x41>;
524 fcs,suspend-voltage-selector = <1>;
525 regulator-name = "vdd_gpu";
526 regulator-min-microvolt = <712500>;
527 regulator-max-microvolt = <1500000>;
528 regulator-ramp-delay = <1000>;
529 regulator-always-on;
530 regulator-boot-on;
531 vin-supply = <&vcc_sys>;
532
533 regulator-state-mem {
534 regulator-off-in-suspend;
535 };
536 };
537};
538
539&i2c1 {
540 i2c-scl-rising-time-ns = <300>;
541 i2c-scl-falling-time-ns = <15>;
542 status = "okay";
543
544 rt5640: rt5640@1c {
545 compatible = "realtek,rt5640";
546 reg = <0x1c>;
547 clocks = <&cru SCLK_I2S_8CH_OUT>;
548 clock-names = "mclk";
549 realtek,in1-differential;
550 #sound-dai-cells = <0>;
551 pinctrl-names = "default";
552 pinctrl-0 = <&rt5640_hpcon>;
553 };
554};
555
556&i2c3 {
557 i2c-scl-rising-time-ns = <450>;
558 i2c-scl-falling-time-ns = <15>;
559 status = "okay";
560};
561
562&i2c4 {
563 i2c-scl-rising-time-ns = <600>;
564 i2c-scl-falling-time-ns = <20>;
565 status = "okay";
566
567 fusb0: typec-portc@22 {
568 compatible = "fcs,fusb302";
569 reg = <0x22>;
570 interrupt-parent = <&gpio1>;
571 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
572 pinctrl-names = "default";
573 pinctrl-0 = <&fusb0_int>;
574 vbus-supply = <&vcc5v0_typec>;
575 status = "okay";
576
577 connector {
578 compatible = "usb-c-connector";
579 data-role = "host";
580 label = "USB-C";
581 op-sink-microwatt = <1000000>;
582 power-role = "dual";
583 sink-pdos =
584 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
585 source-pdos =
586 <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
587 try-power-role = "sink";
588
589 ports {
590 #address-cells = <1>;
591 #size-cells = <0>;
592
593 port@0 {
594 reg = <0>;
595
596 usbc_hs: endpoint {
597 remote-endpoint =
598 <&u2phy0_typec_hs>;
599 };
600 };
601
602 port@1 {
603 reg = <1>;
604
605 usbc_ss: endpoint {
606 remote-endpoint =
607 <&tcphy0_typec_ss>;
608 };
609 };
610 };
611 };
612 };
613
614 accelerometer@68 {
615 compatible = "invensense,mpu6500";
616 reg = <0x68>;
617 interrupt-parent = <&gpio1>;
618 interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
619 };
620};
621
622&i2s0 {
623 rockchip,playback-channels = <8>;
624 rockchip,capture-channels = <8>;
625 status = "okay";
626};
627
628&i2s1 {
629 rockchip,playback-channels = <2>;
630 rockchip,capture-channels = <2>;
631 status = "okay";
632};
633
634&i2s2 {
635 status = "okay";
636};
637
638&io_domains {
639 status = "okay";
640
641 bt656-supply = <&vcc1v8_dvp>;
642 audio-supply = <&vcca1v8_codec>;
643 sdmmc-supply = <&vcc_sdio>;
644 gpio1830-supply = <&vcc_3v0>;
645};
646
647&pcie_phy {
648 status = "okay";
649};
650
651&pcie0 {
652 ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
653 num-lanes = <4>;
654 pinctrl-names = "default";
655 pinctrl-0 = <&pcie_clkreqn_cpm>;
656 status = "okay";
657};
658
659&pmu_io_domains {
660 pmu1830-supply = <&vcc_3v0>;
661 status = "okay";
662};
663
664&pinctrl {
665 buttons {
666 pwrbtn: pwrbtn {
667 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
668 };
669 };
670
671 fusb302x {
672 fusb0_int: fusb0-int {
673 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
674 };
675 };
676
677 ir {
678 ir_int: ir-int {
679 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
680 };
681 };
682
683 lcd-panel {
684 lcd_panel_reset: lcd-panel-reset {
685 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
686 };
687 };
688
689 leds {
690 work_led_pin: work-led-pin {
691 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
692 };
693
694 diy_led_pin: diy-led-pin {
695 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
696 };
697 };
698
699 pcie {
700 pcie_pwr_en: pcie-pwr-en {
701 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
702 };
703
704 pcie_3g_drv: pcie-3g-drv {
705 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
706 };
707 };
708
709 pmic {
710 pmic_int_l: pmic-int-l {
711 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
712 };
713
714 vsel1_pin: vsel1-pin {
715 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
716 };
717
718 vsel2_pin: vsel2-pin {
719 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
720 };
721 };
722
723 rt5640 {
724 rt5640_hpcon: rt5640-hpcon {
725 rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
726 };
727 };
728
729 sdio-pwrseq {
730 wifi_enable_h: wifi-enable-h {
731 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
732 };
733 };
734
735 usb-typec {
736 vcc5v0_typec_en: vcc5v0_typec_en {
737 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
738 };
739 };
740
741 usb2 {
742 vcc5v0_host_en: vcc5v0-host-en {
743 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
744 };
745 };
746
747 wifi {
748 wifi_host_wake_l: wifi-host-wake-l {
749 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
750 };
751 };
752};
753
754&pwm0 {
755 status = "okay";
756};
757
758&pwm2 {
759 status = "okay";
760};
761
762&saradc {
763 vref-supply = <&vcca1v8_s3>;
764 status = "okay";
765};
766
767&sdio0 {
768 /* WiFi & BT combo module Ampak AP6356S */
769 bus-width = <4>;
770 cap-sdio-irq;
771 cap-sd-highspeed;
772 keep-power-in-suspend;
773 mmc-pwrseq = <&sdio_pwrseq>;
774 non-removable;
775 pinctrl-names = "default";
776 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
777 sd-uhs-sdr104;
778
779 /* Power supply */
780 vqmmc-supply = <&vcc1v8_s3>; /* IO line */
781 vmmc-supply = <&vcc_sdio>; /* card's power */
782
783 #address-cells = <1>;
784 #size-cells = <0>;
785 status = "okay";
786
787 brcmf: wifi@1 {
788 reg = <1>;
789 compatible = "brcm,bcm4329-fmac";
790 interrupt-parent = <&gpio0>;
791 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
792 interrupt-names = "host-wake";
793 brcm,drive-strength = <5>;
794 pinctrl-names = "default";
795 pinctrl-0 = <&wifi_host_wake_l>;
796 };
797};
798
799&sdmmc {
800 bus-width = <4>;
801 cap-mmc-highspeed;
802 cap-sd-highspeed;
803 cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
804 disable-wp;
805 max-frequency = <150000000>;
806 pinctrl-names = "default";
807 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
808 status = "okay";
809};
810
811&sdhci {
812 bus-width = <8>;
813 mmc-hs400-1_8v;
814 mmc-hs400-enhanced-strobe;
815 non-removable;
816 status = "okay";
817};
818
819&spdif {
820 pinctrl-0 = <&spdif_bus_1>;
821 status = "okay";
822
823 spdif_p0: port {
824 spdif_p0_0: endpoint {
825 remote-endpoint = <&dit_p0_0>;
826 };
827 };
828};
829
830&tcphy0 {
831 status = "okay";
832};
833
834&tcphy0_usb3 {
835 port {
836 tcphy0_typec_ss: endpoint {
837 remote-endpoint = <&usbc_ss>;
838 };
839 };
840};
841
842&tcphy1 {
843 status = "okay";
844};
845
846&tsadc {
847 /* tshut mode 0:CRU 1:GPIO */
848 rockchip,hw-tshut-mode = <1>;
849 /* tshut polarity 0:LOW 1:HIGH */
850 rockchip,hw-tshut-polarity = <1>;
851 status = "okay";
852};
853
854&u2phy0 {
855 status = "okay";
856
857 u2phy0_otg: otg-port {
858 status = "okay";
859 };
860
861 u2phy0_host: host-port {
862 phy-supply = <&vcc5v0_host>;
863 status = "okay";
864 };
865
866 port {
867 u2phy0_typec_hs: endpoint {
868 remote-endpoint = <&usbc_hs>;
869 };
870 };
871};
872
873&u2phy1 {
874 status = "okay";
875
876 u2phy1_otg: otg-port {
877 status = "okay";
878 };
879
880 u2phy1_host: host-port {
881 phy-supply = <&vcc5v0_host>;
882 status = "okay";
883 };
884};
885
886&uart0 {
887 pinctrl-names = "default";
888 pinctrl-0 = <&uart0_xfer &uart0_cts>;
889 status = "okay";
890};
891
892&uart2 {
893 status = "okay";
894};
895
896&usb_host0_ehci {
897 status = "okay";
898};
899
900&usb_host0_ohci {
901 status = "okay";
902};
903
904&usb_host1_ehci {
905 status = "okay";
906};
907
908&usb_host1_ohci {
909 status = "okay";
910};
911
912&usbdrd3_0 {
913 status = "okay";
914};
915
916&usbdrd_dwc3_0 {
917 status = "okay";
918 dr_mode = "otg";
919};
920
921&usbdrd3_1 {
922 status = "okay";
923};
924
925&usbdrd_dwc3_1 {
926 status = "okay";
927 dr_mode = "host";
928};
929
930&vopb {
931 status = "okay";
932};
933
934&vopb_mmu {
935 status = "okay";
936};
937
938&vopl {
939 status = "okay";
940};
941
942&vopl_mmu {
943 status = "okay";
944};