blob: 054c6a4d1a45f71c7951752cbe8e86bd4e24d6ab [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 * 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};