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