]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - src/arm64/rockchip/rk3399-pinebook-pro.dts
Import DTS files from Linux 5.7
[FreeBSD/FreeBSD.git] / src / arm64 / rockchip / rk3399-pinebook-pro.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4  * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
5  * Copyright (c) 2020 Tobias Schramm <t.schramm@manjaro.org>
6  */
7
8 /dts-v1/;
9 #include <dt-bindings/input/gpio-keys.h>
10 #include <dt-bindings/input/linux-event-codes.h>
11 #include <dt-bindings/pwm/pwm.h>
12 #include <dt-bindings/usb/pd.h>
13 #include <dt-bindings/leds/common.h>
14 #include "rk3399.dtsi"
15 #include "rk3399-opp.dtsi"
16
17 / {
18         model = "Pine64 Pinebook Pro";
19         compatible = "pine64,pinebook-pro", "rockchip,rk3399";
20
21         chosen {
22                 stdout-path = "serial2:1500000n8";
23         };
24
25         backlight: edp-backlight {
26                 compatible = "pwm-backlight";
27                 power-supply = <&vcc_12v>;
28                 pwms = <&pwm0 0 740740 0>;
29         };
30
31         edp_panel: edp-panel {
32                 compatible = "boe,nv140fhmn49";
33                 backlight = <&backlight>;
34                 enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
35                 pinctrl-names = "default";
36                 pinctrl-0 = <&panel_en_gpio>;
37                 power-supply = <&vcc3v3_panel>;
38
39                 ports {
40                         #address-cells = <1>;
41                         #size-cells = <0>;
42
43                         port@0 {
44                                 reg = <0>;
45                                 #address-cells = <1>;
46                                 #size-cells = <0>;
47
48                                 panel_in_edp: endpoint@0 {
49                                         reg = <0>;
50                                         remote-endpoint = <&edp_out_panel>;
51                                 };
52                         };
53                 };
54         };
55
56         /*
57          * Use separate nodes for gpio-keys to allow for selective deactivation
58          * of wakeup sources via sysfs without disabling the whole key
59          */
60         gpio-key-lid {
61                 compatible = "gpio-keys";
62                 pinctrl-names = "default";
63                 pinctrl-0 = <&lidbtn_gpio>;
64
65                 lid {
66                         debounce-interval = <20>;
67                         gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
68                         label = "Lid";
69                         linux,code = <SW_LID>;
70                         linux,input-type = <EV_SW>;
71                         wakeup-event-action = <EV_ACT_DEASSERTED>;
72                         wakeup-source;
73                 };
74         };
75
76         gpio-key-power {
77                 compatible = "gpio-keys";
78                 pinctrl-names = "default";
79                 pinctrl-0 = <&pwrbtn_gpio>;
80
81                 power {
82                         debounce-interval = <20>;
83                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
84                         label = "Power";
85                         linux,code = <KEY_POWER>;
86                         wakeup-source;
87                 };
88         };
89
90         leds {
91                 compatible = "gpio-leds";
92                 pinctrl-names = "default";
93                 pinctrl-0 = <&pwrled_gpio &slpled_gpio>;
94
95                 green-led {
96                         color = <LED_COLOR_ID_GREEN>;
97                         default-state = "on";
98                         function = LED_FUNCTION_POWER;
99                         gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
100                         label = "green:power";
101                 };
102
103                 red-led {
104                         color = <LED_COLOR_ID_RED>;
105                         default-state = "off";
106                         function = LED_FUNCTION_STANDBY;
107                         gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
108                         label = "red:standby";
109                         panic-indicator;
110                         retain-state-suspended;
111                 };
112         };
113
114         /* Power sequence for SDIO WiFi module */
115         sdio_pwrseq: sdio-pwrseq {
116                 compatible = "mmc-pwrseq-simple";
117                 clocks = <&rk808 1>;
118                 clock-names = "ext_clock";
119                 pinctrl-names = "default";
120                 pinctrl-0 = <&wifi_enable_h_gpio>;
121                 post-power-on-delay-ms = <100>;
122                 power-off-delay-us = <500000>;
123
124                 /* WL_REG_ON on module */
125                 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
126         };
127
128         /* Audio components */
129         es8316-sound {
130                 compatible = "simple-audio-card";
131                 pinctrl-names = "default";
132                 pinctrl-0 = <&hp_det_gpio>;
133                 simple-audio-card,name = "rockchip,es8316-codec";
134                 simple-audio-card,format = "i2s";
135                 simple-audio-card,mclk-fs = <256>;
136
137                 simple-audio-card,widgets =
138                         "Microphone", "Mic Jack",
139                         "Headphone", "Headphones",
140                         "Speaker", "Speaker";
141                 simple-audio-card,routing =
142                         "MIC1", "Mic Jack",
143                         "Headphones", "HPOL",
144                         "Headphones", "HPOR",
145                         "Speaker Amplifier INL", "HPOL",
146                         "Speaker Amplifier INR", "HPOR",
147                         "Speaker", "Speaker Amplifier OUTL",
148                         "Speaker", "Speaker Amplifier OUTR";
149
150                 simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
151                 simple-audio-card,aux-devs = <&speaker_amp>;
152                 simple-audio-card,pin-switches = "Speaker";
153
154                 simple-audio-card,cpu {
155                         sound-dai = <&i2s1>;
156                 };
157
158                 simple-audio-card,codec {
159                         sound-dai = <&es8316>;
160                 };
161         };
162
163         speaker_amp: speaker-amplifier {
164                 compatible = "simple-audio-amplifier";
165                 enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
166                 sound-name-prefix = "Speaker Amplifier";
167                 VCC-supply = <&pa_5v>;
168         };
169
170         /* Power tree */
171         /* Root power source */
172         vcc_sysin: vcc-sysin {
173                 compatible = "regulator-fixed";
174                 regulator-name = "vcc_sysin";
175                 regulator-always-on;
176                 regulator-boot-on;
177         };
178
179         /* Regulators supplied by vcc_sysin */
180         /* LCD backlight supply */
181         vcc_12v: vcc-12v {
182                 compatible = "regulator-fixed";
183                 regulator-name = "vcc_12v";
184                 regulator-always-on;
185                 regulator-boot-on;
186                 regulator-min-microvolt = <12000000>;
187                 regulator-max-microvolt = <12000000>;
188                 vin-supply = <&vcc_sysin>;
189
190                 regulator-state-mem {
191                         regulator-off-in-suspend;
192                 };
193         };
194
195         /* Main 3.3 V supply */
196         vcc3v3_sys: wifi_bat: vcc3v3-sys {
197                 compatible = "regulator-fixed";
198                 regulator-name = "vcc3v3_sys";
199                 regulator-always-on;
200                 regulator-boot-on;
201                 regulator-min-microvolt = <3300000>;
202                 regulator-max-microvolt = <3300000>;
203                 vin-supply = <&vcc_sysin>;
204
205                 regulator-state-mem {
206                         regulator-on-in-suspend;
207                 };
208         };
209
210         /* 5 V USB power supply */
211         vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
212                 compatible = "regulator-fixed";
213                 enable-active-high;
214                 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
215                 pinctrl-names = "default";
216                 pinctrl-0 = <&pwr_5v_gpio>;
217                 regulator-name = "vcc5v0_usb";
218                 regulator-always-on;
219                 regulator-min-microvolt = <5000000>;
220                 regulator-max-microvolt = <5000000>;
221                 vin-supply = <&vcc_sysin>;
222
223                 regulator-state-mem {
224                         regulator-off-in-suspend;
225                 };
226         };
227
228         /* RK3399 logic supply */
229         vdd_log: vdd-log {
230                 compatible = "pwm-regulator";
231                 pwms = <&pwm2 0 25000 1>;
232                 regulator-name = "vdd_log";
233                 regulator-always-on;
234                 regulator-boot-on;
235                 regulator-min-microvolt = <800000>;
236                 regulator-max-microvolt = <1400000>;
237                 vin-supply = <&vcc_sysin>;
238
239                 regulator-state-mem {
240                         regulator-on-in-suspend;
241                 };
242         };
243
244         /* Regulators supplied by vcc3v3_sys */
245         /* 0.9 V supply, always on */
246         vcc_0v9: vcc-0v9 {
247                 compatible = "regulator-fixed";
248                 regulator-name = "vcc_0v9";
249                 regulator-always-on;
250                 regulator-boot-on;
251                 regulator-min-microvolt = <900000>;
252                 regulator-max-microvolt = <900000>;
253                 vin-supply = <&vcc3v3_sys>;
254         };
255
256         /* S3 1.8 V supply, switched by vcc1v8_s3 */
257         vcca1v8_s3: vcc1v8-s3 {
258                 compatible = "regulator-fixed";
259                 regulator-name = "vcca1v8_s3";
260                 regulator-always-on;
261                 regulator-boot-on;
262                 regulator-min-microvolt = <1800000>;
263                 regulator-max-microvolt = <1800000>;
264                 vin-supply = <&vcc3v3_sys>;
265         };
266
267         /* micro SD card power */
268         vcc3v0_sd: vcc3v0-sd {
269                 compatible = "regulator-fixed";
270                 enable-active-high;
271                 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
272                 pinctrl-names = "default";
273                 pinctrl-0 = <&sdmmc0_pwr_h_gpio>;
274                 regulator-name = "vcc3v0_sd";
275                 regulator-always-on;
276                 regulator-min-microvolt = <3000000>;
277                 regulator-max-microvolt = <3000000>;
278                 vin-supply = <&vcc3v3_sys>;
279
280                 regulator-state-mem {
281                         regulator-off-in-suspend;
282                 };
283         };
284
285         /* LCD panel power, called VCC3V3_S0 in schematic */
286         vcc3v3_panel: vcc3v3-panel {
287                 compatible = "regulator-fixed";
288                 enable-active-high;
289                 gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
290                 pinctrl-names = "default";
291                 pinctrl-0 = <&lcdvcc_en_gpio>;
292                 regulator-name = "vcc3v3_panel";
293                 regulator-always-on;
294                 regulator-min-microvolt = <3300000>;
295                 regulator-max-microvolt = <3300000>;
296                 regulator-enable-ramp-delay = <100000>;
297                 vin-supply = <&vcc3v3_sys>;
298
299                 regulator-state-mem {
300                         regulator-off-in-suspend;
301                 };
302         };
303
304         /* M.2 adapter power, switched by vcc1v8_s3 */
305         vcc3v3_ssd: vcc3v3-ssd {
306                 compatible = "regulator-fixed";
307                 regulator-name = "vcc3v3_ssd";
308                 regulator-min-microvolt = <3300000>;
309                 regulator-max-microvolt = <3300000>;
310                 vin-supply = <&vcc3v3_sys>;
311         };
312
313         /* Regulators supplied by vcc5v0_usb */
314         /* USB 3 port power supply regulator  */
315         vcc5v0_otg: vcc5v0-otg {
316                 compatible = "regulator-fixed";
317                 enable-active-high;
318                 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
319                 pinctrl-names = "default";
320                 pinctrl-0 = <&vcc5v0_host_en_gpio>;
321                 regulator-name = "vcc5v0_otg";
322                 regulator-always-on;
323                 regulator-min-microvolt = <5000000>;
324                 regulator-max-microvolt = <5000000>;
325                 vin-supply = <&vcc5v0_usb>;
326
327                 regulator-state-mem {
328                         regulator-off-in-suspend;
329                 };
330         };
331
332         /* Regulators supplied by vcc5v0_usb */
333         /* Type C port power supply regulator */
334         vbus_5vout: vbus_typec: vbus-5vout {
335                 compatible = "regulator-fixed";
336                 enable-active-high;
337                 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
338                 pinctrl-names = "default";
339                 pinctrl-0 = <&vcc5v0_typec0_en_gpio>;
340                 regulator-name = "vbus_5vout";
341                 regulator-min-microvolt = <5000000>;
342                 regulator-max-microvolt = <5000000>;
343                 vin-supply = <&vcc5v0_usb>;
344
345                 regulator-state-mem {
346                         regulator-off-in-suspend;
347                 };
348         };
349
350         /* Regulators supplied by vcc_1v8 */
351         /* Primary 0.9 V LDO */
352         vcca0v9_s3: vcca0v9-s3 {
353                 compatible = "regulator-fixed";
354                 regulator-name = "vcc0v9_s3";
355                 regulator-min-microvolt = <5000000>;
356                 regulator-max-microvolt = <5000000>;
357                 vin-supply = <&vcc_1v8>;
358
359                 regulator-state-mem {
360                         regulator-on-in-suspend;
361                 };
362         };
363
364         mains_charger: dc-charger {
365                 compatible = "gpio-charger";
366                 charger-type = "mains";
367                 gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
368
369                 /* Also triggered by USB charger */
370                 pinctrl-names = "default";
371                 pinctrl-0 = <&dc_det_gpio>;
372         };
373 };
374
375 &cdn_dp {
376         status = "okay";
377 };
378
379 &cpu_b0 {
380         cpu-supply = <&vdd_cpu_b>;
381 };
382
383 &cpu_b1 {
384         cpu-supply = <&vdd_cpu_b>;
385 };
386
387 &cpu_l0 {
388         cpu-supply = <&vdd_cpu_l>;
389 };
390
391 &cpu_l1 {
392         cpu-supply = <&vdd_cpu_l>;
393 };
394
395 &cpu_l2 {
396         cpu-supply = <&vdd_cpu_l>;
397 };
398
399 &cpu_l3 {
400         cpu-supply = <&vdd_cpu_l>;
401 };
402
403 &edp {
404         force-hpd;
405         pinctrl-names = "default";
406         pinctrl-0 = <&edp_hpd>;
407         status = "okay";
408
409         ports {
410                 edp_out: port@1 {
411                         reg = <1>;
412                         #address-cells = <1>;
413                         #size-cells = <0>;
414
415                         edp_out_panel: endpoint@0 {
416                                 reg = <0>;
417                                 remote-endpoint = <&panel_in_edp>;
418                         };
419                 };
420         };
421 };
422
423 &emmc_phy {
424         status = "okay";
425 };
426
427 &gpu {
428         mali-supply = <&vdd_gpu>;
429         status = "okay";
430 };
431
432 &hdmi_sound {
433         status = "okay";
434 };
435
436 &i2c0 {
437         clock-frequency = <400000>;
438         i2c-scl-falling-time-ns = <4>;
439         i2c-scl-rising-time-ns = <168>;
440         status = "okay";
441
442         rk808: pmic@1b {
443                 compatible = "rockchip,rk808";
444                 reg = <0x1b>;
445                 #clock-cells = <1>;
446                 clock-output-names = "xin32k", "rk808-clkout2";
447                 interrupt-parent = <&gpio3>;
448                 interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
449                 pinctrl-names = "default";
450                 pinctrl-0 = <&pmic_int_l_gpio>;
451                 rockchip,system-power-controller;
452                 wakeup-source;
453
454                 vcc1-supply = <&vcc_sysin>;
455                 vcc2-supply = <&vcc_sysin>;
456                 vcc3-supply = <&vcc_sysin>;
457                 vcc4-supply = <&vcc_sysin>;
458                 vcc6-supply = <&vcc_sysin>;
459                 vcc7-supply = <&vcc_sysin>;
460                 vcc8-supply = <&vcc3v3_sys>;
461                 vcc9-supply = <&vcc_sysin>;
462                 vcc10-supply = <&vcc_sysin>;
463                 vcc11-supply = <&vcc_sysin>;
464                 vcc12-supply = <&vcc3v3_sys>;
465                 vcc13-supply = <&vcc_sysin>;
466                 vcc14-supply = <&vcc_sysin>;
467
468                 regulators {
469                         /* rk3399 center logic supply */
470                         vdd_center: DCDC_REG1 {
471                                 regulator-name = "vdd_center";
472                                 regulator-always-on;
473                                 regulator-boot-on;
474                                 regulator-min-microvolt = <750000>;
475                                 regulator-max-microvolt = <1350000>;
476                                 regulator-ramp-delay = <6001>;
477
478                                 regulator-state-mem {
479                                         regulator-off-in-suspend;
480                                 };
481                         };
482
483                         vdd_cpu_l: DCDC_REG2 {
484                                 regulator-name = "vdd_cpu_l";
485                                 regulator-always-on;
486                                 regulator-boot-on;
487                                 regulator-min-microvolt = <750000>;
488                                 regulator-max-microvolt = <1350000>;
489                                 regulator-ramp-delay = <6001>;
490
491                                 regulator-state-mem {
492                                         regulator-off-in-suspend;
493                                 };
494                         };
495
496                         vcc_ddr: DCDC_REG3 {
497                                 regulator-name = "vcc_ddr";
498                                 regulator-always-on;
499                                 regulator-boot-on;
500
501                                 regulator-state-mem {
502                                         regulator-on-in-suspend;
503                                 };
504                         };
505
506                         vcc_1v8: vcc_wl: DCDC_REG4 {
507                                 regulator-name = "vcc_1v8";
508                                 regulator-always-on;
509                                 regulator-boot-on;
510                                 regulator-min-microvolt = <1800000>;
511                                 regulator-max-microvolt = <1800000>;
512
513                                 regulator-state-mem {
514                                         regulator-on-in-suspend;
515                                         regulator-suspend-microvolt = <1800000>;
516                                 };
517                         };
518
519                         /* not used */
520                         LDO_REG1 {
521                         };
522
523                         /* not used */
524                         LDO_REG2 {
525                         };
526
527                         vcc1v8_pmupll: LDO_REG3 {
528                                 regulator-name = "vcc1v8_pmupll";
529                                 regulator-always-on;
530                                 regulator-boot-on;
531                                 regulator-min-microvolt = <1800000>;
532                                 regulator-max-microvolt = <1800000>;
533
534                                 regulator-state-mem {
535                                         regulator-on-in-suspend;
536                                         regulator-suspend-microvolt = <1800000>;
537                                 };
538                         };
539
540                         vcc_sdio: LDO_REG4 {
541                                 regulator-name = "vcc_sdio";
542                                 regulator-always-on;
543                                 regulator-boot-on;
544                                 regulator-min-microvolt = <1800000>;
545                                 regulator-max-microvolt = <3000000>;
546
547                                 regulator-state-mem {
548                                         regulator-on-in-suspend;
549                                         regulator-suspend-microvolt = <3000000>;
550                                 };
551                         };
552
553                         vcca3v0_codec: LDO_REG5 {
554                                 regulator-name = "vcca3v0_codec";
555                                 regulator-always-on;
556                                 regulator-boot-on;
557                                 regulator-min-microvolt = <3000000>;
558                                 regulator-max-microvolt = <3000000>;
559
560                                 regulator-state-mem {
561                                         regulator-off-in-suspend;
562                                 };
563                         };
564
565                         vcc_1v5: LDO_REG6 {
566                                 regulator-name = "vcc_1v5";
567                                 regulator-always-on;
568                                 regulator-boot-on;
569                                 regulator-min-microvolt = <1500000>;
570                                 regulator-max-microvolt = <1500000>;
571
572                                 regulator-state-mem {
573                                         regulator-on-in-suspend;
574                                         regulator-suspend-microvolt = <1500000>;
575                                 };
576                         };
577
578                         vcca1v8_codec: LDO_REG7 {
579                                 regulator-name = "vcca1v8_codec";
580                                 regulator-always-on;
581                                 regulator-boot-on;
582                                 regulator-min-microvolt = <1800000>;
583                                 regulator-max-microvolt = <1800000>;
584
585                                 regulator-state-mem {
586                                         regulator-off-in-suspend;
587                                 };
588                         };
589
590                         vcc_3v0: LDO_REG8 {
591                                 regulator-name = "vcc_3v0";
592                                 regulator-always-on;
593                                 regulator-boot-on;
594                                 regulator-min-microvolt = <3000000>;
595                                 regulator-max-microvolt = <3000000>;
596
597                                 regulator-state-mem {
598                                         regulator-on-in-suspend;
599                                         regulator-suspend-microvolt = <3000000>;
600                                 };
601                         };
602
603                         vcc3v3_s3: SWITCH_REG1 {
604                                 regulator-name = "vcc3v3_s3";
605                                 regulator-always-on;
606                                 regulator-boot-on;
607
608                                 regulator-state-mem {
609                                         regulator-off-in-suspend;
610                                 };
611                         };
612
613                         vcc3v3_s0: SWITCH_REG2 {
614                                 regulator-name = "vcc3v3_s0";
615                                 regulator-always-on;
616                                 regulator-boot-on;
617
618                                 regulator-state-mem {
619                                         regulator-off-in-suspend;
620                                 };
621                         };
622                 };
623         };
624
625         vdd_cpu_b: regulator@40 {
626                 compatible = "silergy,syr827";
627                 reg = <0x40>;
628                 fcs,suspend-voltage-selector = <1>;
629                 pinctrl-names = "default";
630                 pinctrl-0 = <&vsel1_gpio>;
631                 regulator-name = "vdd_cpu_b";
632                 regulator-always-on;
633                 regulator-boot-on;
634                 regulator-min-microvolt = <712500>;
635                 regulator-max-microvolt = <1500000>;
636                 regulator-ramp-delay = <1000>;
637                 vin-supply = <&vcc_1v8>;
638
639                 regulator-state-mem {
640                         regulator-off-in-suspend;
641                 };
642         };
643
644         vdd_gpu: regulator@41 {
645                 compatible = "silergy,syr828";
646                 reg = <0x41>;
647                 fcs,suspend-voltage-selector = <1>;
648                 pinctrl-names = "default";
649                 pinctrl-0 = <&vsel2_gpio>;
650                 regulator-name = "vdd_gpu";
651                 regulator-always-on;
652                 regulator-boot-on;
653                 regulator-min-microvolt = <712500>;
654                 regulator-max-microvolt = <1500000>;
655                 regulator-ramp-delay = <1000>;
656                 vin-supply = <&vcc_1v8>;
657
658                 regulator-state-mem {
659                         regulator-off-in-suspend;
660                 };
661         };
662 };
663
664 &i2c1 {
665         clock-frequency = <100000>;
666         i2c-scl-falling-time-ns = <4>;
667         i2c-scl-rising-time-ns = <168>;
668         status = "okay";
669
670         es8316: es8316@11 {
671                 compatible = "everest,es8316";
672                 reg = <0x11>;
673                 clocks = <&cru SCLK_I2S_8CH_OUT>;
674                 clock-names = "mclk";
675                 #sound-dai-cells = <0>;
676         };
677 };
678
679 &i2c3 {
680         i2c-scl-falling-time-ns = <15>;
681         i2c-scl-rising-time-ns = <450>;
682         status = "okay";
683 };
684
685 &i2c4 {
686         i2c-scl-falling-time-ns = <20>;
687         i2c-scl-rising-time-ns = <600>;
688         status = "okay";
689
690         fusb0: fusb30x@22 {
691                 compatible = "fcs,fusb302";
692                 reg = <0x22>;
693                 interrupt-parent = <&gpio1>;
694                 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
695                 pinctrl-names = "default";
696                 pinctrl-0 = <&fusb0_int_gpio>;
697                 vbus-supply = <&vbus_typec>;
698
699                 connector {
700                         compatible = "usb-c-connector";
701                         data-role = "host";
702                         label = "USB-C";
703                         op-sink-microwatt = <1000000>;
704                         power-role = "dual";
705                         sink-pdos =
706                                 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
707                         source-pdos =
708                                 <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
709                         try-power-role = "sink";
710
711                         ports {
712                                 #address-cells = <1>;
713                                 #size-cells = <0>;
714
715                                 port@0 {
716                                         reg = <0>;
717
718                                         usbc_hs: endpoint {
719                                                 remote-endpoint =
720                                                         <&u2phy0_typec_hs>;
721                                         };
722                                 };
723
724                                 port@1 {
725                                         reg = <1>;
726
727                                         usbc_ss: endpoint {
728                                                 remote-endpoint =
729                                                         <&tcphy0_typec_ss>;
730                                         };
731                                 };
732
733                                 port@2 {
734                                         reg = <2>;
735
736                                         usbc_dp: endpoint {
737                                                 remote-endpoint =
738                                                         <&tcphy0_typec_dp>;
739                                         };
740                                 };
741                         };
742                 };
743         };
744 };
745
746 &i2s1 {
747         #sound-dai-cells = <0>;
748         pinctrl-names = "default";
749         pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>;
750         rockchip,capture-channels = <8>;
751         rockchip,playback-channels = <8>;
752         status = "okay";
753 };
754
755 &io_domains {
756         audio-supply = <&vcc_3v0>;
757         gpio1830-supply = <&vcc_3v0>;
758         sdmmc-supply = <&vcc_sdio>;
759         status = "okay";
760 };
761
762 &pcie_phy {
763         status = "okay";
764 };
765
766 &pcie0 {
767         bus-scan-delay-ms = <1000>;
768         ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
769         max-link-speed = <2>;
770         num-lanes = <4>;
771         pinctrl-names = "default";
772         pinctrl-0 = <&pcie_clkreqn_cpm>;
773         vpcie0v9-supply = <&vcca0v9_s3>;
774         vpcie1v8-supply = <&vcca1v8_s3>;
775         vpcie3v3-supply = <&vcc3v3_ssd>;
776         status = "okay";
777 };
778
779 &pinctrl {
780         buttons {
781                 pwrbtn_gpio: pwrbtn-gpio {
782                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
783                 };
784
785                 lidbtn_gpio: lidbtn-gpio {
786                         rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
787                 };
788         };
789
790         dc-charger {
791                 dc_det_gpio: dc-det-gpio {
792                         rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
793                 };
794         };
795
796         es8316 {
797                 hp_det_gpio: hp-det-gpio {
798                         rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
799                 };
800         };
801
802         fusb302x {
803                 fusb0_int_gpio: fusb0-int-gpio {
804                         rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
805                 };
806         };
807
808         i2s1 {
809                 i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio {
810                         rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
811                 };
812         };
813
814         lcd-panel {
815                 lcdvcc_en_gpio: lcdvcc-en-gpio {
816                         rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
817                 };
818
819                 panel_en_gpio: panel-en-gpio {
820                         rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
821                 };
822
823                 lcd_panel_reset_gpio: lcd-panel-reset-gpio {
824                         rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
825                 };
826         };
827
828         leds {
829                 pwrled_gpio: pwrled_gpio {
830                         rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
831                 };
832
833                 slpled_gpio: slpled_gpio {
834                         rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
835                 };
836         };
837
838         pmic {
839                 pmic_int_l_gpio: pmic-int-l-gpio {
840                         rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
841                 };
842
843                 vsel1_gpio: vsel1-gpio {
844                         rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
845                 };
846
847                 vsel2_gpio: vsel2-gpio {
848                         rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
849                 };
850         };
851
852         sdcard {
853                 sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio {
854                         rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
855                 };
856
857         };
858
859         sdio-pwrseq {
860                 wifi_enable_h_gpio: wifi-enable-h-gpio {
861                         rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
862                 };
863         };
864
865         usb-typec {
866                 vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio {
867                         rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
868                 };
869         };
870
871         usb2 {
872                 pwr_5v_gpio: pwr-5v-gpio {
873                         rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
874                 };
875
876                 vcc5v0_host_en_gpio: vcc5v0-host-en-gpio {
877                         rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
878                 };
879         };
880
881         wireless-bluetooth {
882                 bt_wake_gpio: bt-wake-gpio {
883                         rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
884                 };
885
886                 bt_host_wake_gpio: bt-host-wake-gpio {
887                         rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
888                 };
889
890                 bt_reset_gpio: bt-reset-gpio {
891                         rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
892                 };
893         };
894 };
895
896 &pmu_io_domains {
897         pmu1830-supply = <&vcc_3v0>;
898         status = "okay";
899 };
900
901 &pwm0 {
902         status = "okay";
903 };
904
905 &pwm2 {
906         status = "okay";
907 };
908
909 &saradc {
910         vref-supply = <&vcca1v8_s3>;
911         status = "okay";
912 };
913
914 &sdmmc {
915         bus-width = <4>;
916         cap-mmc-highspeed;
917         cap-sd-highspeed;
918         cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
919         disable-wp;
920         pinctrl-names = "default";
921         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
922         sd-uhs-sdr104;
923         vmmc-supply = <&vcc3v0_sd>;
924         vqmmc-supply = <&vcc_sdio>;
925         status = "okay";
926 };
927
928 &sdio0 {
929         bus-width = <4>;
930         cap-sd-highspeed;
931         cap-sdio-irq;
932         keep-power-in-suspend;
933         mmc-pwrseq = <&sdio_pwrseq>;
934         non-removable;
935         pinctrl-names = "default";
936         pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
937         sd-uhs-sdr104;
938         status = "okay";
939 };
940
941 &sdhci {
942         bus-width = <8>;
943         mmc-hs200-1_8v;
944         non-removable;
945         status = "okay";
946 };
947
948 &spi1 {
949         max-freq = <10000000>;
950         status = "okay";
951
952         spiflash: flash@0 {
953                 compatible = "jedec,spi-nor";
954                 reg = <0>;
955                 m25p,fast-read;
956                 spi-max-frequency = <10000000>;
957         };
958 };
959
960 &tcphy0 {
961         status = "okay";
962 };
963
964 &tcphy0_dp {
965         port {
966                 tcphy0_typec_dp: endpoint {
967                         remote-endpoint = <&usbc_dp>;
968                 };
969         };
970 };
971
972 &tcphy0_usb3 {
973         port {
974                 tcphy0_typec_ss: endpoint {
975                         remote-endpoint = <&usbc_ss>;
976                 };
977         };
978 };
979
980 &tcphy1 {
981         status = "okay";
982 };
983
984 &tsadc {
985         /* tshut mode 0:CRU 1:GPIO */
986         rockchip,hw-tshut-mode = <1>;
987         /* tshut polarity 0:LOW 1:HIGH */
988         rockchip,hw-tshut-polarity = <1>;
989         status = "okay";
990 };
991
992 &u2phy0 {
993         status = "okay";
994
995         u2phy0_otg: otg-port {
996                 status = "okay";
997         };
998
999         u2phy0_host: host-port {
1000                 phy-supply = <&vcc5v0_otg>;
1001                 status = "okay";
1002         };
1003
1004         port {
1005                 u2phy0_typec_hs: endpoint {
1006                         remote-endpoint = <&usbc_hs>;
1007                 };
1008         };
1009 };
1010
1011 &u2phy1 {
1012         status = "okay";
1013
1014         u2phy1_otg: otg-port {
1015                 status = "okay";
1016         };
1017
1018         u2phy1_host: host-port {
1019                 phy-supply = <&vcc5v0_otg>;
1020                 status = "okay";
1021         };
1022 };
1023
1024 &uart0 {
1025         pinctrl-names = "default";
1026         pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
1027         uart-has-rtscts;
1028         status = "okay";
1029
1030         bluetooth {
1031                 compatible = "brcm,bcm4345c5";
1032                 clocks = <&rk808 1>;
1033                 clock-names = "lpo";
1034                 device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
1035                 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
1036                 max-speed = <1500000>;
1037                 pinctrl-names = "default";
1038                 pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>;
1039                 shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
1040                 vbat-supply = <&wifi_bat>;
1041                 vddio-supply = <&vcc_wl>;
1042         };
1043 };
1044
1045 &uart2 {
1046         status = "okay";
1047 };
1048
1049 &usb_host0_ehci {
1050         status = "okay";
1051 };
1052
1053 &usb_host0_ohci {
1054         status = "okay";
1055 };
1056
1057 &usb_host1_ehci {
1058         status = "okay";
1059 };
1060
1061 &usb_host1_ohci {
1062         status = "okay";
1063 };
1064
1065 &usbdrd3_0 {
1066         status = "okay";
1067 };
1068
1069 &usbdrd_dwc3_0 {
1070         dr_mode = "host";
1071         status = "okay";
1072 };
1073
1074 &usbdrd3_1 {
1075         status = "okay";
1076 };
1077
1078 &usbdrd_dwc3_1 {
1079         dr_mode = "host";
1080         status = "okay";
1081 };
1082
1083 &vopb {
1084         status = "okay";
1085 };
1086
1087 &vopb_mmu {
1088         status = "okay";
1089 };
1090
1091 &vopl {
1092         status = "okay";
1093 };
1094
1095 &vopl_mmu {
1096         status = "okay";
1097 };