1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
5 * Copyright (c) 2020 Tobias Schramm <t.schramm@manjaro.org>
6 */
7
8/dts-v1/;
9#include <dt-bindings/input/gpio-keys.h>
10#include <dt-bindings/input/linux-event-codes.h>
11#include <dt-bindings/pwm/pwm.h>
12#include <dt-bindings/usb/pd.h>
13#include <dt-bindings/leds/common.h>
14#include "rk3399.dtsi"
15#include "rk3399-opp.dtsi"
16
17/ {
18	model = "Pine64 Pinebook Pro";
19	compatible = "pine64,pinebook-pro", "rockchip,rk3399";
20	chassis-type = "laptop";
21
22	aliases {
23		mmc0 = &sdio0;
24		mmc1 = &sdmmc;
25		mmc2 = &sdhci;
26	};
27
28	chosen {
29		stdout-path = "serial2:1500000n8";
30	};
31
32	backlight: edp-backlight {
33		compatible = "pwm-backlight";
34		power-supply = <&vcc_12v>;
35		pwms = <&pwm0 0 740740 0>;
36	};
37
38	bat: battery {
39		compatible = "simple-battery";
40		charge-full-design-microamp-hours = <9800000>;
41		voltage-max-design-microvolt = <4350000>;
42		voltage-min-design-microvolt = <3000000>;
43	};
44
45	edp_panel: edp-panel {
46		compatible = "boe,nv140fhmn49";
47		backlight = <&backlight>;
48		enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
49		pinctrl-names = "default";
50		pinctrl-0 = <&panel_en_pin>;
51		power-supply = <&vcc3v3_panel>;
52
53		port {
54			panel_in_edp: endpoint {
55				remote-endpoint = <&edp_out_panel>;
56			};
57		};
58	};
59
60	/*
61	 * Use separate nodes for gpio-keys to allow for selective deactivation
62	 * of wakeup sources via sysfs without disabling the whole key
63	 */
64	gpio-key-lid {
65		compatible = "gpio-keys";
66		pinctrl-names = "default";
67		pinctrl-0 = <&lidbtn_pin>;
68
69		switch-lid {
70			debounce-interval = <20>;
71			gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
72			label = "Lid";
73			linux,code = <SW_LID>;
74			linux,input-type = <EV_SW>;
75			wakeup-event-action = <EV_ACT_DEASSERTED>;
76			wakeup-source;
77		};
78	};
79
80	gpio-key-power {
81		compatible = "gpio-keys";
82		pinctrl-names = "default";
83		pinctrl-0 = <&pwrbtn_pin>;
84
85		key-power {
86			debounce-interval = <20>;
87			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
88			label = "Power";
89			linux,code = <KEY_POWER>;
90			wakeup-source;
91		};
92	};
93
94	leds {
95		compatible = "gpio-leds";
96		pinctrl-names = "default";
97		pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
98
99		green_led: led-0 {
100			color = <LED_COLOR_ID_GREEN>;
101			default-state = "on";
102			function = LED_FUNCTION_POWER;
103			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
104			label = "green:power";
105		};
106
107		red_led: led-1 {
108			color = <LED_COLOR_ID_RED>;
109			default-state = "off";
110			function = LED_FUNCTION_STANDBY;
111			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
112			label = "red:standby";
113			panic-indicator;
114			retain-state-suspended;
115		};
116	};
117
118	/* Power sequence for SDIO WiFi module */
119	sdio_pwrseq: sdio-pwrseq {
120		compatible = "mmc-pwrseq-simple";
121		clocks = <&rk808 1>;
122		clock-names = "ext_clock";
123		pinctrl-names = "default";
124		pinctrl-0 = <&wifi_enable_h_pin>;
125		post-power-on-delay-ms = <100>;
126		power-off-delay-us = <500000>;
127
128		/* WL_REG_ON on module */
129		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
130	};
131
132	/* Audio components */
133	es8316-sound {
134		compatible = "simple-audio-card";
135		pinctrl-names = "default";
136		pinctrl-0 = <&hp_det_pin>;
137		simple-audio-card,name = "rockchip,es8316-codec";
138		simple-audio-card,format = "i2s";
139		simple-audio-card,mclk-fs = <256>;
140
141		simple-audio-card,widgets =
142			"Microphone", "Mic Jack",
143			"Headphone", "Headphones",
144			"Speaker", "Speaker";
145		simple-audio-card,routing =
146			"MIC1", "Mic Jack",
147			"Headphones", "HPOL",
148			"Headphones", "HPOR",
149			"Speaker Amplifier INL", "HPOL",
150			"Speaker Amplifier INR", "HPOR",
151			"Speaker", "Speaker Amplifier OUTL",
152			"Speaker", "Speaker Amplifier OUTR";
153
154		simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
155		simple-audio-card,aux-devs = <&speaker_amp>;
156		simple-audio-card,pin-switches = "Speaker";
157
158		simple-audio-card,cpu {
159			sound-dai = <&i2s1>;
160		};
161
162		simple-audio-card,codec {
163			sound-dai = <&es8316>;
164		};
165	};
166
167	speaker_amp: speaker-amplifier {
168		compatible = "simple-audio-amplifier";
169		enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
170		sound-name-prefix = "Speaker Amplifier";
171		VCC-supply = <&pa_5v>;
172	};
173
174	/* Power tree */
175	/* Root power source */
176	vcc_sysin: vcc-sysin {
177		compatible = "regulator-fixed";
178		regulator-name = "vcc_sysin";
179		regulator-always-on;
180		regulator-boot-on;
181	};
182
183	/* Regulators supplied by vcc_sysin */
184	/* LCD backlight supply */
185	vcc_12v: vcc-12v {
186		compatible = "regulator-fixed";
187		regulator-name = "vcc_12v";
188		regulator-always-on;
189		regulator-boot-on;
190		regulator-min-microvolt = <12000000>;
191		regulator-max-microvolt = <12000000>;
192		vin-supply = <&vcc_sysin>;
193
194		regulator-state-mem {
195			regulator-off-in-suspend;
196		};
197	};
198
199	/* Main 3.3 V supply */
200	vcc3v3_sys: wifi_bat: vcc3v3-sys {
201		compatible = "regulator-fixed";
202		regulator-name = "vcc3v3_sys";
203		regulator-always-on;
204		regulator-boot-on;
205		regulator-min-microvolt = <3300000>;
206		regulator-max-microvolt = <3300000>;
207		vin-supply = <&vcc_sysin>;
208
209		regulator-state-mem {
210			regulator-on-in-suspend;
211		};
212	};
213
214	/* 5 V USB power supply */
215	vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
216		compatible = "regulator-fixed";
217		enable-active-high;
218		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
219		pinctrl-names = "default";
220		pinctrl-0 = <&pwr_5v_pin>;
221		regulator-name = "vcc5v0_usb";
222		regulator-always-on;
223		regulator-min-microvolt = <5000000>;
224		regulator-max-microvolt = <5000000>;
225		vin-supply = <&vcc_sysin>;
226
227		regulator-state-mem {
228			regulator-off-in-suspend;
229		};
230	};
231
232	/* RK3399 logic supply */
233	vdd_log: vdd-log {
234		compatible = "pwm-regulator";
235		pwms = <&pwm2 0 25000 1>;
236		pwm-supply = <&vcc_sysin>;
237		regulator-name = "vdd_log";
238		regulator-always-on;
239		regulator-boot-on;
240		regulator-min-microvolt = <800000>;
241		regulator-max-microvolt = <1400000>;
242
243		regulator-state-mem {
244			regulator-on-in-suspend;
245		};
246	};
247
248	/* Regulators supplied by vcc3v3_sys */
249	/* 0.9 V supply, always on */
250	vcc_0v9: vcc-0v9 {
251		compatible = "regulator-fixed";
252		regulator-name = "vcc_0v9";
253		regulator-always-on;
254		regulator-boot-on;
255		regulator-min-microvolt = <900000>;
256		regulator-max-microvolt = <900000>;
257		vin-supply = <&vcc3v3_sys>;
258	};
259
260	/* S3 1.8 V supply, switched by vcc1v8_s3 */
261	vcca1v8_s3: vcc1v8-s3 {
262		compatible = "regulator-fixed";
263		regulator-name = "vcca1v8_s3";
264		regulator-always-on;
265		regulator-boot-on;
266		regulator-min-microvolt = <1800000>;
267		regulator-max-microvolt = <1800000>;
268		vin-supply = <&vcc3v3_sys>;
269	};
270
271	/* micro SD card power */
272	vcc3v0_sd: vcc3v0-sd {
273		compatible = "regulator-fixed";
274		enable-active-high;
275		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
276		pinctrl-names = "default";
277		pinctrl-0 = <&sdmmc0_pwr_h_pin>;
278		regulator-name = "vcc3v0_sd";
279		regulator-always-on;
280		regulator-min-microvolt = <3000000>;
281		regulator-max-microvolt = <3000000>;
282		vin-supply = <&vcc3v3_sys>;
283
284		regulator-state-mem {
285			regulator-off-in-suspend;
286		};
287	};
288
289	/* LCD panel power, called VCC3V3_S0 in schematic */
290	vcc3v3_panel: vcc3v3-panel {
291		compatible = "regulator-fixed";
292		enable-active-high;
293		gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
294		pinctrl-names = "default";
295		pinctrl-0 = <&lcdvcc_en_pin>;
296		regulator-name = "vcc3v3_panel";
297		regulator-always-on;
298		regulator-min-microvolt = <3300000>;
299		regulator-max-microvolt = <3300000>;
300		regulator-enable-ramp-delay = <100000>;
301		vin-supply = <&vcc3v3_sys>;
302
303		regulator-state-mem {
304			regulator-off-in-suspend;
305		};
306	};
307
308	/* M.2 adapter power, switched by vcc1v8_s3 */
309	vcc3v3_ssd: vcc3v3-ssd {
310		compatible = "regulator-fixed";
311		regulator-name = "vcc3v3_ssd";
312		regulator-min-microvolt = <3300000>;
313		regulator-max-microvolt = <3300000>;
314		vin-supply = <&vcc3v3_sys>;
315	};
316
317	/* Regulators supplied by vcc5v0_usb */
318	/* USB 3 port power supply regulator  */
319	vcc5v0_otg: vcc5v0-otg {
320		compatible = "regulator-fixed";
321		enable-active-high;
322		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
323		pinctrl-names = "default";
324		pinctrl-0 = <&vcc5v0_host_en_pin>;
325		regulator-name = "vcc5v0_otg";
326		regulator-always-on;
327		regulator-min-microvolt = <5000000>;
328		regulator-max-microvolt = <5000000>;
329		vin-supply = <&vcc5v0_usb>;
330
331		regulator-state-mem {
332			regulator-off-in-suspend;
333		};
334	};
335
336	/* Regulators supplied by vcc5v0_usb */
337	/* Type C port power supply regulator */
338	vbus_5vout: vbus_typec: vbus-5vout {
339		compatible = "regulator-fixed";
340		enable-active-high;
341		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
342		pinctrl-names = "default";
343		pinctrl-0 = <&vcc5v0_typec0_en_pin>;
344		regulator-name = "vbus_5vout";
345		regulator-min-microvolt = <5000000>;
346		regulator-max-microvolt = <5000000>;
347		vin-supply = <&vcc5v0_usb>;
348
349		regulator-state-mem {
350			regulator-off-in-suspend;
351		};
352	};
353
354	/* Regulators supplied by vcc_1v8 */
355	/* Primary 0.9 V LDO */
356	vcca0v9_s3: vcca0v9-s3 {
357		compatible = "regulator-fixed";
358		regulator-name = "vcc0v9_s3";
359		regulator-min-microvolt = <5000000>;
360		regulator-max-microvolt = <5000000>;
361		vin-supply = <&vcc_1v8>;
362
363		regulator-state-mem {
364			regulator-on-in-suspend;
365		};
366	};
367
368	mains_charger: dc-charger {
369		compatible = "gpio-charger";
370		charger-type = "mains";
371		gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
372
373		/* Also triggered by USB charger */
374		pinctrl-names = "default";
375		pinctrl-0 = <&dc_det_pin>;
376	};
377};
378
379&cpu_b0 {
380	cpu-supply = <&vdd_cpu_b>;
381};
382
383&cpu_b1 {
384	cpu-supply = <&vdd_cpu_b>;
385};
386
387&cpu_l0 {
388	cpu-supply = <&vdd_cpu_l>;
389};
390
391&cpu_l1 {
392	cpu-supply = <&vdd_cpu_l>;
393};
394
395&cpu_l2 {
396	cpu-supply = <&vdd_cpu_l>;
397};
398
399&cpu_l3 {
400	cpu-supply = <&vdd_cpu_l>;
401};
402
403&edp {
404	force-hpd;
405	pinctrl-names = "default";
406	pinctrl-0 = <&edp_hpd>;
407	status = "okay";
408
409	ports {
410		edp_out: port@1 {
411			reg = <1>;
412			#address-cells = <1>;
413			#size-cells = <0>;
414
415			edp_out_panel: endpoint@0 {
416				reg = <0>;
417				remote-endpoint = <&panel_in_edp>;
418			};
419		};
420	};
421};
422
423&emmc_phy {
424	status = "okay";
425};
426
427&gpu {
428	mali-supply = <&vdd_gpu>;
429	status = "okay";
430};
431
432&hdmi_sound {
433	status = "okay";
434};
435
436&i2c0 {
437	clock-frequency = <400000>;
438	i2c-scl-falling-time-ns = <4>;
439	i2c-scl-rising-time-ns = <168>;
440	status = "okay";
441
442	rk808: pmic@1b {
443		compatible = "rockchip,rk808";
444		reg = <0x1b>;
445		#clock-cells = <1>;
446		clock-output-names = "xin32k", "rk808-clkout2";
447		interrupt-parent = <&gpio3>;
448		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
449		pinctrl-names = "default";
450		pinctrl-0 = <&pmic_int_l_pin>;
451		rockchip,system-power-controller;
452		wakeup-source;
453
454		vcc1-supply = <&vcc_sysin>;
455		vcc2-supply = <&vcc_sysin>;
456		vcc3-supply = <&vcc_sysin>;
457		vcc4-supply = <&vcc_sysin>;
458		vcc6-supply = <&vcc_sysin>;
459		vcc7-supply = <&vcc_sysin>;
460		vcc8-supply = <&vcc3v3_sys>;
461		vcc9-supply = <&vcc_sysin>;
462		vcc10-supply = <&vcc_sysin>;
463		vcc11-supply = <&vcc_sysin>;
464		vcc12-supply = <&vcc3v3_sys>;
465
466		regulators {
467			/* rk3399 center logic supply */
468			vdd_center: DCDC_REG1 {
469				regulator-name = "vdd_center";
470				regulator-always-on;
471				regulator-boot-on;
472				regulator-min-microvolt = <750000>;
473				regulator-max-microvolt = <1350000>;
474				regulator-ramp-delay = <6001>;
475
476				regulator-state-mem {
477					regulator-off-in-suspend;
478				};
479			};
480
481			vdd_cpu_l: DCDC_REG2 {
482				regulator-name = "vdd_cpu_l";
483				regulator-always-on;
484				regulator-boot-on;
485				regulator-min-microvolt = <750000>;
486				regulator-max-microvolt = <1350000>;
487				regulator-ramp-delay = <6001>;
488
489				regulator-state-mem {
490					regulator-off-in-suspend;
491				};
492			};
493
494			vcc_ddr: DCDC_REG3 {
495				regulator-name = "vcc_ddr";
496				regulator-always-on;
497				regulator-boot-on;
498
499				regulator-state-mem {
500					regulator-on-in-suspend;
501				};
502			};
503
504			vcc_1v8: vcc_wl: DCDC_REG4 {
505				regulator-name = "vcc_1v8";
506				regulator-always-on;
507				regulator-boot-on;
508				regulator-min-microvolt = <1800000>;
509				regulator-max-microvolt = <1800000>;
510
511				regulator-state-mem {
512					regulator-on-in-suspend;
513					regulator-suspend-microvolt = <1800000>;
514				};
515			};
516
517			/* not used */
518			LDO_REG1 {
519			};
520
521			/* not used */
522			LDO_REG2 {
523			};
524
525			vcc1v8_pmupll: LDO_REG3 {
526				regulator-name = "vcc1v8_pmupll";
527				regulator-always-on;
528				regulator-boot-on;
529				regulator-min-microvolt = <1800000>;
530				regulator-max-microvolt = <1800000>;
531
532				regulator-state-mem {
533					regulator-on-in-suspend;
534					regulator-suspend-microvolt = <1800000>;
535				};
536			};
537
538			vcc_sdio: LDO_REG4 {
539				regulator-name = "vcc_sdio";
540				regulator-always-on;
541				regulator-boot-on;
542				regulator-min-microvolt = <1800000>;
543				regulator-max-microvolt = <3000000>;
544
545				regulator-state-mem {
546					regulator-on-in-suspend;
547					regulator-suspend-microvolt = <3000000>;
548				};
549			};
550
551			vcca3v0_codec: LDO_REG5 {
552				regulator-name = "vcca3v0_codec";
553				regulator-always-on;
554				regulator-boot-on;
555				regulator-min-microvolt = <3000000>;
556				regulator-max-microvolt = <3000000>;
557
558				regulator-state-mem {
559					regulator-off-in-suspend;
560				};
561			};
562
563			vcc_1v5: LDO_REG6 {
564				regulator-name = "vcc_1v5";
565				regulator-always-on;
566				regulator-boot-on;
567				regulator-min-microvolt = <1500000>;
568				regulator-max-microvolt = <1500000>;
569
570				regulator-state-mem {
571					regulator-on-in-suspend;
572					regulator-suspend-microvolt = <1500000>;
573				};
574			};
575
576			vcca1v8_codec: LDO_REG7 {
577				regulator-name = "vcca1v8_codec";
578				regulator-always-on;
579				regulator-boot-on;
580				regulator-min-microvolt = <1800000>;
581				regulator-max-microvolt = <1800000>;
582
583				regulator-state-mem {
584					regulator-off-in-suspend;
585				};
586			};
587
588			vcc_3v0: LDO_REG8 {
589				regulator-name = "vcc_3v0";
590				regulator-always-on;
591				regulator-boot-on;
592				regulator-min-microvolt = <3000000>;
593				regulator-max-microvolt = <3000000>;
594
595				regulator-state-mem {
596					regulator-on-in-suspend;
597					regulator-suspend-microvolt = <3000000>;
598				};
599			};
600
601			vcc3v3_s3: SWITCH_REG1 {
602				regulator-name = "vcc3v3_s3";
603				regulator-always-on;
604				regulator-boot-on;
605
606				regulator-state-mem {
607					regulator-off-in-suspend;
608				};
609			};
610
611			vcc3v3_s0: SWITCH_REG2 {
612				regulator-name = "vcc3v3_s0";
613				regulator-always-on;
614				regulator-boot-on;
615
616				regulator-state-mem {
617					regulator-off-in-suspend;
618				};
619			};
620		};
621	};
622
623	vdd_cpu_b: regulator@40 {
624		compatible = "silergy,syr827";
625		reg = <0x40>;
626		fcs,suspend-voltage-selector = <1>;
627		pinctrl-names = "default";
628		pinctrl-0 = <&vsel1_pin>;
629		regulator-name = "vdd_cpu_b";
630		regulator-always-on;
631		regulator-boot-on;
632		regulator-min-microvolt = <712500>;
633		regulator-max-microvolt = <1500000>;
634		regulator-ramp-delay = <1000>;
635		vin-supply = <&vcc_1v8>;
636
637		regulator-state-mem {
638			regulator-off-in-suspend;
639		};
640	};
641
642	vdd_gpu: regulator@41 {
643		compatible = "silergy,syr828";
644		reg = <0x41>;
645		fcs,suspend-voltage-selector = <1>;
646		pinctrl-names = "default";
647		pinctrl-0 = <&vsel2_pin>;
648		regulator-name = "vdd_gpu";
649		regulator-always-on;
650		regulator-boot-on;
651		regulator-min-microvolt = <712500>;
652		regulator-max-microvolt = <1500000>;
653		regulator-ramp-delay = <1000>;
654		vin-supply = <&vcc_1v8>;
655
656		regulator-state-mem {
657			regulator-off-in-suspend;
658		};
659	};
660};
661
662&i2c1 {
663	clock-frequency = <100000>;
664	i2c-scl-falling-time-ns = <4>;
665	i2c-scl-rising-time-ns = <168>;
666	status = "okay";
667
668	es8316: audio-codec@11 {
669		compatible = "everest,es8316";
670		reg = <0x11>;
671		clocks = <&cru SCLK_I2S_8CH_OUT>;
672		clock-names = "mclk";
673		#sound-dai-cells = <0>;
674	};
675};
676
677&i2c3 {
678	i2c-scl-falling-time-ns = <15>;
679	i2c-scl-rising-time-ns = <450>;
680	status = "okay";
681};
682
683&i2c4 {
684	i2c-scl-falling-time-ns = <20>;
685	i2c-scl-rising-time-ns = <600>;
686	status = "okay";
687
688	fusb0: fusb30x@22 {
689		compatible = "fcs,fusb302";
690		reg = <0x22>;
691		interrupt-parent = <&gpio1>;
692		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
693		pinctrl-names = "default";
694		pinctrl-0 = <&fusb0_int_pin>;
695		vbus-supply = <&vbus_typec>;
696
697		connector {
698			compatible = "usb-c-connector";
699			data-role = "dual";
700			label = "USB-C";
701			op-sink-microwatt = <1000000>;
702			power-role = "dual";
703			sink-pdos =
704				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
705			source-pdos =
706				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
707			try-power-role = "sink";
708
709			ports {
710				#address-cells = <1>;
711				#size-cells = <0>;
712
713				port@0 {
714					reg = <0>;
715
716					usbc_hs: endpoint {
717						remote-endpoint =
718							<&u2phy0_typec_hs>;
719					};
720				};
721
722				port@1 {
723					reg = <1>;
724
725					usbc_ss: endpoint {
726						remote-endpoint =
727							<&tcphy0_typec_ss>;
728					};
729				};
730
731				port@2 {
732					reg = <2>;
733
734					usbc_dp: endpoint {
735						remote-endpoint =
736							<&tcphy0_typec_dp>;
737					};
738				};
739			};
740		};
741	};
742
743	cw2015@62 {
744		compatible = "cellwise,cw2015";
745		reg = <0x62>;
746		cellwise,battery-profile = /bits/ 8 <
747			0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
748			0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
749			0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
750			0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
751			0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
752			0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
753			0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
754			0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
755		>;
756		cellwise,monitor-interval-ms = <5000>;
757		monitored-battery = <&bat>;
758		power-supplies = <&mains_charger>, <&fusb0>;
759	};
760};
761
762&i2s1 {
763	pinctrl-names = "default";
764	pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
765	rockchip,capture-channels = <8>;
766	rockchip,playback-channels = <8>;
767	status = "okay";
768};
769
770&io_domains {
771	audio-supply = <&vcc_3v0>;
772	gpio1830-supply = <&vcc_3v0>;
773	sdmmc-supply = <&vcc_sdio>;
774	status = "okay";
775};
776
777&pcie_phy {
778	status = "okay";
779};
780
781&pcie0 {
782	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};
1111