blob: 294eb2de263debd89e7bbc1a41495fb5fdf782a3 [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 {
Tom Rini53633a82024-02-29 12:33:36 -0500782 ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
783 num-lanes = <4>;
784 pinctrl-names = "default";
785 pinctrl-0 = <&pcie_clkreqn_cpm>;
786 vpcie0v9-supply = <&vcca0v9_s3>;
787 vpcie1v8-supply = <&vcca1v8_s3>;
788 vpcie3v3-supply = <&vcc3v3_ssd>;
789 status = "okay";
790};
791
792&pinctrl {
793 buttons {
794 pwrbtn_pin: pwrbtn-pin {
795 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
796 };
797
798 lidbtn_pin: lidbtn-pin {
799 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
800 };
801 };
802
803 dc-charger {
804 dc_det_pin: dc-det-pin {
805 rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
806 };
807 };
808
809 es8316 {
810 hp_det_pin: hp-det-pin {
811 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
812 };
813 };
814
815 fusb302x {
816 fusb0_int_pin: fusb0-int-pin {
817 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
818 };
819 };
820
821 i2s1 {
822 i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
823 rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
824 };
825 };
826
827 lcd-panel {
828 lcdvcc_en_pin: lcdvcc-en-pin {
829 rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
830 };
831
832 panel_en_pin: panel-en-pin {
833 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
834 };
835
836 lcd_panel_reset_pin: lcd-panel-reset-pin {
837 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
838 };
839 };
840
841 leds {
842 pwr_led_pin: pwr-led-pin {
843 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
844 };
845
846 slp_led_pin: slp-led-pin {
847 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
848 };
849 };
850
851 pmic {
852 pmic_int_l_pin: pmic-int-l-pin {
853 rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
854 };
855
856 vsel1_pin: vsel1-pin {
857 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
858 };
859
860 vsel2_pin: vsel2-pin {
861 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
862 };
863 };
864
865 sdcard {
866 sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
867 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
868 };
869
870 };
871
872 sdio-pwrseq {
873 wifi_enable_h_pin: wifi-enable-h-pin {
874 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
875 };
876 };
877
878 usb-typec {
879 vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
880 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
881 };
882 };
883
884 usb2 {
885 pwr_5v_pin: pwr-5v-pin {
886 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
887 };
888
889 vcc5v0_host_en_pin: vcc5v0-host-en-pin {
890 rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
891 };
892 };
893
894 wireless-bluetooth {
895 bt_wake_pin: bt-wake-pin {
896 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
897 };
898
899 bt_host_wake_pin: bt-host-wake-pin {
900 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
901 };
902
903 bt_reset_pin: bt-reset-pin {
904 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
905 };
906 };
907};
908
909&pmu_io_domains {
910 pmu1830-supply = <&vcc_3v0>;
911 status = "okay";
912};
913
914&pwm0 {
915 status = "okay";
916};
917
918&pwm2 {
919 status = "okay";
920};
921
922&saradc {
923 vref-supply = <&vcca1v8_s3>;
924 status = "okay";
925};
926
927&sdmmc {
928 bus-width = <4>;
929 cap-mmc-highspeed;
930 cap-sd-highspeed;
931 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
932 disable-wp;
933 pinctrl-names = "default";
934 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
935 sd-uhs-sdr50;
936 vmmc-supply = <&vcc3v0_sd>;
937 vqmmc-supply = <&vcc_sdio>;
938 status = "okay";
939};
940
941&sdio0 {
942 bus-width = <4>;
943 cap-sd-highspeed;
944 cap-sdio-irq;
945 keep-power-in-suspend;
946 mmc-pwrseq = <&sdio_pwrseq>;
947 non-removable;
948 pinctrl-names = "default";
949 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
950 sd-uhs-sdr104;
951 status = "okay";
952};
953
954&sdhci {
955 bus-width = <8>;
956 mmc-hs200-1_8v;
957 non-removable;
958 status = "okay";
959};
960
961&spi1 {
962 max-freq = <10000000>;
963 status = "okay";
964
965 spiflash: flash@0 {
966 compatible = "jedec,spi-nor";
967 reg = <0>;
968 m25p,fast-read;
969 spi-max-frequency = <10000000>;
970 };
971};
972
973&tcphy0 {
974 status = "okay";
975};
976
977&tcphy0_dp {
978 port {
979 tcphy0_typec_dp: endpoint {
980 remote-endpoint = <&usbc_dp>;
981 };
982 };
983};
984
985&tcphy0_usb3 {
986 port {
987 tcphy0_typec_ss: endpoint {
988 remote-endpoint = <&usbc_ss>;
989 };
990 };
991};
992
993&tcphy1 {
994 status = "okay";
995};
996
997&tsadc {
998 /* tshut mode 0:CRU 1:GPIO */
999 rockchip,hw-tshut-mode = <1>;
1000 /* tshut polarity 0:LOW 1:HIGH */
1001 rockchip,hw-tshut-polarity = <1>;
1002 status = "okay";
1003};
1004
1005&u2phy0 {
1006 status = "okay";
1007
1008 u2phy0_otg: otg-port {
1009 status = "okay";
1010 };
1011
1012 u2phy0_host: host-port {
1013 phy-supply = <&vcc5v0_otg>;
1014 status = "okay";
1015 };
1016
1017 port {
1018 u2phy0_typec_hs: endpoint {
1019 remote-endpoint = <&usbc_hs>;
1020 };
1021 };
1022};
1023
1024&u2phy1 {
1025 status = "okay";
1026
1027 u2phy1_otg: otg-port {
1028 status = "okay";
1029 };
1030
1031 u2phy1_host: host-port {
1032 phy-supply = <&vcc5v0_otg>;
1033 status = "okay";
1034 };
1035};
1036
1037&uart0 {
1038 pinctrl-names = "default";
1039 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
1040 uart-has-rtscts;
1041 status = "okay";
1042
1043 bluetooth {
1044 compatible = "brcm,bcm4345c5";
1045 clocks = <&rk808 1>;
1046 clock-names = "lpo";
1047 device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
1048 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
1049 max-speed = <1500000>;
1050 pinctrl-names = "default";
1051 pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
1052 shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
1053 vbat-supply = <&wifi_bat>;
1054 vddio-supply = <&vcc_wl>;
1055 };
1056};
1057
1058&uart2 {
1059 status = "okay";
1060};
1061
1062&usb_host0_ehci {
1063 status = "okay";
1064};
1065
1066&usb_host0_ohci {
1067 status = "okay";
1068};
1069
1070&usb_host1_ehci {
1071 status = "okay";
1072};
1073
1074&usb_host1_ohci {
1075 status = "okay";
1076};
1077
1078&usbdrd3_0 {
1079 status = "okay";
1080};
1081
1082&usbdrd_dwc3_0 {
1083 dr_mode = "host";
1084 status = "okay";
1085};
1086
1087&usbdrd3_1 {
1088 status = "okay";
1089};
1090
1091&usbdrd_dwc3_1 {
1092 dr_mode = "host";
1093 status = "okay";
1094};
1095
1096&vopb {
1097 status = "okay";
1098};
1099
1100&vopb_mmu {
1101 status = "okay";
1102};
1103
1104&vopl {
1105 status = "okay";
1106};
1107
1108&vopl_mmu {
1109 status = "okay";
1110};