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