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