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