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