xref: /linux/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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-gpio = <&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: 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: 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: 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: vcc5v0-usb-regulator {
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: 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: 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: 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: 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: 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: 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: 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: 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: 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	ports {
409		edp_out: port@1 {
410			reg = <1>;
411			#address-cells = <1>;
412			#size-cells = <0>;
413
414			edp_out_panel: endpoint@0 {
415				reg = <0>;
416				remote-endpoint = <&panel_in_edp>;
417			};
418		};
419	};
420};
421
422&emmc_phy {
423	status = "okay";
424};
425
426&gpu {
427	mali-supply = <&vdd_gpu>;
428	status = "okay";
429};
430
431&hdmi_sound {
432	status = "okay";
433};
434
435&i2c0 {
436	clock-frequency = <400000>;
437	i2c-scl-falling-time-ns = <4>;
438	i2c-scl-rising-time-ns = <168>;
439	status = "okay";
440
441	rk808: pmic@1b {
442		compatible = "rockchip,rk808";
443		reg = <0x1b>;
444		#clock-cells = <1>;
445		clock-output-names = "xin32k", "rk808-clkout2";
446		interrupt-parent = <&gpio3>;
447		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
448		pinctrl-names = "default";
449		pinctrl-0 = <&pmic_int_l_pin>;
450		rockchip,system-power-controller;
451		wakeup-source;
452
453		vcc1-supply = <&vcc_sysin>;
454		vcc2-supply = <&vcc_sysin>;
455		vcc3-supply = <&vcc_sysin>;
456		vcc4-supply = <&vcc_sysin>;
457		vcc6-supply = <&vcc_sysin>;
458		vcc7-supply = <&vcc_sysin>;
459		vcc8-supply = <&vcc3v3_sys>;
460		vcc9-supply = <&vcc_sysin>;
461		vcc10-supply = <&vcc_sysin>;
462		vcc11-supply = <&vcc_sysin>;
463		vcc12-supply = <&vcc3v3_sys>;
464
465		regulators {
466			/* rk3399 center logic supply */
467			vdd_center: DCDC_REG1 {
468				regulator-name = "vdd_center";
469				regulator-always-on;
470				regulator-boot-on;
471				regulator-min-microvolt = <750000>;
472				regulator-max-microvolt = <1350000>;
473				regulator-ramp-delay = <6001>;
474
475				regulator-state-mem {
476					regulator-off-in-suspend;
477				};
478			};
479
480			vdd_cpu_l: DCDC_REG2 {
481				regulator-name = "vdd_cpu_l";
482				regulator-always-on;
483				regulator-boot-on;
484				regulator-min-microvolt = <750000>;
485				regulator-max-microvolt = <1350000>;
486				regulator-ramp-delay = <6001>;
487
488				regulator-state-mem {
489					regulator-off-in-suspend;
490				};
491			};
492
493			vcc_ddr: DCDC_REG3 {
494				regulator-name = "vcc_ddr";
495				regulator-always-on;
496				regulator-boot-on;
497
498				regulator-state-mem {
499					regulator-on-in-suspend;
500				};
501			};
502
503			vcc_1v8: vcc_wl: DCDC_REG4 {
504				regulator-name = "vcc_1v8";
505				regulator-always-on;
506				regulator-boot-on;
507				regulator-min-microvolt = <1800000>;
508				regulator-max-microvolt = <1800000>;
509
510				regulator-state-mem {
511					regulator-on-in-suspend;
512					regulator-suspend-microvolt = <1800000>;
513				};
514			};
515
516			/* not used */
517			LDO_REG1 {
518			};
519
520			/* not used */
521			LDO_REG2 {
522			};
523
524			vcc1v8_pmupll: LDO_REG3 {
525				regulator-name = "vcc1v8_pmupll";
526				regulator-always-on;
527				regulator-boot-on;
528				regulator-min-microvolt = <1800000>;
529				regulator-max-microvolt = <1800000>;
530
531				regulator-state-mem {
532					regulator-on-in-suspend;
533					regulator-suspend-microvolt = <1800000>;
534				};
535			};
536
537			vcc_sdio: LDO_REG4 {
538				regulator-name = "vcc_sdio";
539				regulator-always-on;
540				regulator-boot-on;
541				regulator-min-microvolt = <1800000>;
542				regulator-max-microvolt = <3000000>;
543
544				regulator-state-mem {
545					regulator-on-in-suspend;
546					regulator-suspend-microvolt = <3000000>;
547				};
548			};
549
550			vcca3v0_codec: LDO_REG5 {
551				regulator-name = "vcca3v0_codec";
552				regulator-always-on;
553				regulator-boot-on;
554				regulator-min-microvolt = <3000000>;
555				regulator-max-microvolt = <3000000>;
556
557				regulator-state-mem {
558					regulator-off-in-suspend;
559				};
560			};
561
562			vcc_1v5: LDO_REG6 {
563				regulator-name = "vcc_1v5";
564				regulator-always-on;
565				regulator-boot-on;
566				regulator-min-microvolt = <1500000>;
567				regulator-max-microvolt = <1500000>;
568
569				regulator-state-mem {
570					regulator-on-in-suspend;
571					regulator-suspend-microvolt = <1500000>;
572				};
573			};
574
575			vcca1v8_codec: LDO_REG7 {
576				regulator-name = "vcca1v8_codec";
577				regulator-always-on;
578				regulator-boot-on;
579				regulator-min-microvolt = <1800000>;
580				regulator-max-microvolt = <1800000>;
581
582				regulator-state-mem {
583					regulator-off-in-suspend;
584				};
585			};
586
587			vcc_3v0: LDO_REG8 {
588				regulator-name = "vcc_3v0";
589				regulator-always-on;
590				regulator-boot-on;
591				regulator-min-microvolt = <3000000>;
592				regulator-max-microvolt = <3000000>;
593
594				regulator-state-mem {
595					regulator-on-in-suspend;
596					regulator-suspend-microvolt = <3000000>;
597				};
598			};
599
600			vcc3v3_s3: SWITCH_REG1 {
601				regulator-name = "vcc3v3_s3";
602				regulator-always-on;
603				regulator-boot-on;
604
605				regulator-state-mem {
606					regulator-off-in-suspend;
607				};
608			};
609
610			vcc3v3_s0: SWITCH_REG2 {
611				regulator-name = "vcc3v3_s0";
612				regulator-always-on;
613				regulator-boot-on;
614
615				regulator-state-mem {
616					regulator-off-in-suspend;
617				};
618			};
619		};
620	};
621
622	vdd_cpu_b: regulator@40 {
623		compatible = "silergy,syr827";
624		reg = <0x40>;
625		fcs,suspend-voltage-selector = <1>;
626		pinctrl-names = "default";
627		pinctrl-0 = <&vsel1_pin>;
628		regulator-name = "vdd_cpu_b";
629		regulator-always-on;
630		regulator-boot-on;
631		regulator-min-microvolt = <712500>;
632		regulator-max-microvolt = <1500000>;
633		regulator-ramp-delay = <1000>;
634		vin-supply = <&vcc_1v8>;
635
636		regulator-state-mem {
637			regulator-off-in-suspend;
638		};
639	};
640
641	vdd_gpu: regulator@41 {
642		compatible = "silergy,syr828";
643		reg = <0x41>;
644		fcs,suspend-voltage-selector = <1>;
645		pinctrl-names = "default";
646		pinctrl-0 = <&vsel2_pin>;
647		regulator-name = "vdd_gpu";
648		regulator-always-on;
649		regulator-boot-on;
650		regulator-min-microvolt = <712500>;
651		regulator-max-microvolt = <1500000>;
652		regulator-ramp-delay = <1000>;
653		vin-supply = <&vcc_1v8>;
654
655		regulator-state-mem {
656			regulator-off-in-suspend;
657		};
658	};
659};
660
661&i2c1 {
662	clock-frequency = <100000>;
663	i2c-scl-falling-time-ns = <4>;
664	i2c-scl-rising-time-ns = <168>;
665	status = "okay";
666
667	es8316: audio-codec@11 {
668		compatible = "everest,es8316";
669		reg = <0x11>;
670		clocks = <&cru SCLK_I2S_8CH_OUT>;
671		clock-names = "mclk";
672		#sound-dai-cells = <0>;
673	};
674};
675
676&i2c3 {
677	i2c-scl-falling-time-ns = <15>;
678	i2c-scl-rising-time-ns = <450>;
679	status = "okay";
680};
681
682&i2c4 {
683	i2c-scl-falling-time-ns = <20>;
684	i2c-scl-rising-time-ns = <600>;
685	status = "okay";
686
687	fusb0: fusb30x@22 {
688		compatible = "fcs,fusb302";
689		reg = <0x22>;
690		interrupt-parent = <&gpio1>;
691		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
692		pinctrl-names = "default";
693		pinctrl-0 = <&fusb0_int_pin>;
694		vbus-supply = <&vbus_typec>;
695
696		connector {
697			compatible = "usb-c-connector";
698			data-role = "dual";
699			label = "USB-C";
700			op-sink-microwatt = <1000000>;
701			power-role = "dual";
702			sink-pdos =
703				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
704			source-pdos =
705				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
706			try-power-role = "sink";
707
708			ports {
709				#address-cells = <1>;
710				#size-cells = <0>;
711
712				port@0 {
713					reg = <0>;
714
715					usbc_hs: endpoint {
716						remote-endpoint =
717							<&u2phy0_typec_hs>;
718					};
719				};
720
721				port@1 {
722					reg = <1>;
723
724					usbc_ss: endpoint {
725						remote-endpoint =
726							<&tcphy0_typec_ss>;
727					};
728				};
729
730				port@2 {
731					reg = <2>;
732
733					usbc_dp: endpoint {
734						remote-endpoint =
735							<&tcphy0_typec_dp>;
736					};
737				};
738			};
739		};
740	};
741
742	cw2015@62 {
743		compatible = "cellwise,cw2015";
744		reg = <0x62>;
745		cellwise,battery-profile = /bits/ 8 <
746			0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
747			0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
748			0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
749			0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
750			0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
751			0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
752			0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
753			0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
754		>;
755		cellwise,monitor-interval-ms = <5000>;
756		monitored-battery = <&bat>;
757		power-supplies = <&mains_charger>, <&fusb0>;
758	};
759};
760
761&i2s1 {
762	pinctrl-names = "default";
763	pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
764	rockchip,capture-channels = <8>;
765	rockchip,playback-channels = <8>;
766	status = "okay";
767};
768
769&io_domains {
770	audio-supply = <&vcc_3v0>;
771	gpio1830-supply = <&vcc_3v0>;
772	sdmmc-supply = <&vcc_sdio>;
773	status = "okay";
774};
775
776&pcie_phy {
777	status = "okay";
778};
779
780&pcie0 {
781	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
782	num-lanes = <4>;
783	pinctrl-names = "default";
784	pinctrl-0 = <&pcie_clkreqn_cpm>;
785	vpcie0v9-supply = <&vcca0v9_s3>;
786	vpcie1v8-supply = <&vcca1v8_s3>;
787	vpcie3v3-supply = <&vcc3v3_ssd>;
788	status = "okay";
789};
790
791&pinctrl {
792	buttons {
793		pwrbtn_pin: pwrbtn-pin {
794			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
795		};
796
797		lidbtn_pin: lidbtn-pin {
798			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
799		};
800	};
801
802	dc-charger {
803		dc_det_pin: dc-det-pin {
804			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
805		};
806	};
807
808	es8316 {
809		hp_det_pin: hp-det-pin {
810			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
811		};
812	};
813
814	fusb302x {
815		fusb0_int_pin: fusb0-int-pin {
816			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
817		};
818	};
819
820	i2s1 {
821		i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
822			rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
823		};
824	};
825
826	lcd-panel {
827		lcdvcc_en_pin: lcdvcc-en-pin {
828			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
829		};
830
831		panel_en_pin: panel-en-pin {
832			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
833		};
834
835		lcd_panel_reset_pin: lcd-panel-reset-pin {
836			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
837		};
838	};
839
840	leds {
841		pwr_led_pin: pwr-led-pin {
842			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
843		};
844
845		slp_led_pin: slp-led-pin {
846			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
847		};
848	};
849
850	pmic {
851		pmic_int_l_pin: pmic-int-l-pin {
852			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
853		};
854
855		vsel1_pin: vsel1-pin {
856			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
857		};
858
859		vsel2_pin: vsel2-pin {
860			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
861		};
862	};
863
864	sdcard {
865		sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
866			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
867		};
868
869	};
870
871	sdio-pwrseq {
872		wifi_enable_h_pin: wifi-enable-h-pin {
873			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
874		};
875	};
876
877	usb-typec {
878		vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
879			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
880		};
881	};
882
883	usb2 {
884		pwr_5v_pin: pwr-5v-pin {
885			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
886		};
887
888		vcc5v0_host_en_pin: vcc5v0-host-en-pin {
889			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
890		};
891	};
892
893	wireless-bluetooth {
894		bt_wake_pin: bt-wake-pin {
895			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
896		};
897
898		bt_host_wake_pin: bt-host-wake-pin {
899			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
900		};
901
902		bt_reset_pin: bt-reset-pin {
903			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
904		};
905	};
906};
907
908&pmu_io_domains {
909	pmu1830-supply = <&vcc_3v0>;
910	status = "okay";
911};
912
913&pwm0 {
914	status = "okay";
915};
916
917&pwm2 {
918	status = "okay";
919};
920
921&saradc {
922	vref-supply = <&vcca1v8_s3>;
923	status = "okay";
924};
925
926&sdmmc {
927	bus-width = <4>;
928	cap-mmc-highspeed;
929	cap-sd-highspeed;
930	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
931	disable-wp;
932	pinctrl-names = "default";
933	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
934	sd-uhs-sdr50;
935	vmmc-supply = <&vcc3v0_sd>;
936	vqmmc-supply = <&vcc_sdio>;
937	status = "okay";
938};
939
940&sdio0 {
941	bus-width = <4>;
942	cap-sd-highspeed;
943	cap-sdio-irq;
944	keep-power-in-suspend;
945	mmc-pwrseq = <&sdio_pwrseq>;
946	non-removable;
947	pinctrl-names = "default";
948	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
949	sd-uhs-sdr104;
950	status = "okay";
951};
952
953&sdhci {
954	bus-width = <8>;
955	mmc-hs200-1_8v;
956	non-removable;
957	status = "okay";
958};
959
960&spi1 {
961	max-freq = <10000000>;
962	status = "okay";
963
964	spiflash: flash@0 {
965		compatible = "jedec,spi-nor";
966		reg = <0>;
967		m25p,fast-read;
968		spi-max-frequency = <10000000>;
969	};
970};
971
972&tcphy0 {
973	status = "okay";
974};
975
976&tcphy0_dp {
977	port {
978		tcphy0_typec_dp: endpoint {
979			remote-endpoint = <&usbc_dp>;
980		};
981	};
982};
983
984&tcphy0_usb3 {
985	port {
986		tcphy0_typec_ss: endpoint {
987			remote-endpoint = <&usbc_ss>;
988		};
989	};
990};
991
992&tcphy1 {
993	status = "okay";
994};
995
996&tsadc {
997	/* tshut mode 0:CRU 1:GPIO */
998	rockchip,hw-tshut-mode = <1>;
999	/* tshut polarity 0:LOW 1:HIGH */
1000	rockchip,hw-tshut-polarity = <1>;
1001	status = "okay";
1002};
1003
1004&u2phy0 {
1005	status = "okay";
1006
1007	u2phy0_otg: otg-port {
1008		status = "okay";
1009	};
1010
1011	u2phy0_host: host-port {
1012		phy-supply = <&vcc5v0_otg>;
1013		status = "okay";
1014	};
1015
1016	port {
1017		u2phy0_typec_hs: endpoint {
1018			remote-endpoint = <&usbc_hs>;
1019		};
1020	};
1021};
1022
1023&u2phy1 {
1024	status = "okay";
1025
1026	u2phy1_otg: otg-port {
1027		status = "okay";
1028	};
1029
1030	u2phy1_host: host-port {
1031		phy-supply = <&vcc5v0_otg>;
1032		status = "okay";
1033	};
1034};
1035
1036&uart0 {
1037	pinctrl-names = "default";
1038	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
1039	uart-has-rtscts;
1040	status = "okay";
1041
1042	bluetooth {
1043		compatible = "brcm,bcm4345c5";
1044		clocks = <&rk808 1>;
1045		clock-names = "lpo";
1046		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
1047		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
1048		max-speed = <1500000>;
1049		pinctrl-names = "default";
1050		pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
1051		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
1052		vbat-supply = <&wifi_bat>;
1053		vddio-supply = <&vcc_wl>;
1054	};
1055};
1056
1057&uart2 {
1058	status = "okay";
1059};
1060
1061&usb_host0_ehci {
1062	status = "okay";
1063};
1064
1065&usb_host0_ohci {
1066	status = "okay";
1067};
1068
1069&usb_host1_ehci {
1070	status = "okay";
1071};
1072
1073&usb_host1_ohci {
1074	status = "okay";
1075};
1076
1077&usbdrd3_0 {
1078	status = "okay";
1079};
1080
1081&usbdrd_dwc3_0 {
1082	dr_mode = "host";
1083	status = "okay";
1084};
1085
1086&usbdrd3_1 {
1087	status = "okay";
1088};
1089
1090&usbdrd_dwc3_1 {
1091	dr_mode = "host";
1092	status = "okay";
1093};
1094
1095&vopb {
1096	status = "okay";
1097};
1098
1099&vopb_mmu {
1100	status = "okay";
1101};
1102
1103&vopl {
1104	status = "okay";
1105};
1106
1107&vopl_mmu {
1108	status = "okay";
1109};
1110