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