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