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