1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Ondřej Jirman <megi@xff.cz>
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/usb/pd.h>
13#include "rk3588.dtsi"
14
15/ {
16	model = "Pine64 QuartzPro64";
17	compatible = "pine64,quartzpro64", "rockchip,rk3588";
18
19	aliases {
20		ethernet0 = &gmac0;
21		mmc0 = &sdhci;
22		mmc1 = &sdmmc;
23	};
24
25	chosen {
26		stdout-path = "serial2:1500000n8";
27	};
28
29	adc-keys-0 {
30		compatible = "adc-keys";
31		io-channels = <&saradc 0>;
32		io-channel-names = "buttons";
33		keyup-threshold-microvolt = <1800000>;
34		poll-interval = <100>;
35
36		button-maskrom {
37			label = "Mask Rom";
38			linux,code = <KEY_SETUP>;
39			press-threshold-microvolt = <393>;
40		};
41	};
42
43	adc-keys-1 {
44		compatible = "adc-keys";
45		io-channels = <&saradc 1>;
46		io-channel-names = "buttons";
47		keyup-threshold-microvolt = <1800000>;
48		poll-interval = <100>;
49
50		button-volume-up {
51			label = "V+/REC";
52			linux,code = <KEY_VOLUMEUP>;
53			press-threshold-microvolt = <17821>;
54		};
55
56		button-volume-down {
57			label = "V-";
58			linux,code = <KEY_VOLUMEDOWN>;
59			press-threshold-microvolt = <415384>;
60		};
61
62		button-menu {
63			label = "MENU";
64			linux,code = <KEY_MENU>;
65			press-threshold-microvolt = <890909>;
66		};
67
68		button-esc {
69			label = "ESC";
70			linux,code = <KEY_ESC>;
71			press-threshold-microvolt = <1233962>;
72		};
73	};
74
75	headphone_amp: audio-amplifier-headphone {
76		compatible = "simple-audio-amplifier";
77		enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
78		sound-name-prefix = "Headphones Amp";
79	};
80
81	speaker_amp: audio-amplifier-speaker {
82		compatible = "simple-audio-amplifier";
83		enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
84		sound-name-prefix = "Speaker Amp";
85	};
86
87	leds {
88		compatible = "gpio-leds";
89		pinctrl-names = "default";
90		pinctrl-0 = <&led_pins>;
91
92		led-1 {
93			color = <LED_COLOR_ID_ORANGE>;
94			function = LED_FUNCTION_INDICATOR;
95			gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
96		};
97	};
98
99	sound {
100		compatible = "simple-audio-card";
101		pinctrl-names = "default";
102		pinctrl-0 = <&hp_detect>;
103		simple-audio-card,name = "Analog";
104		simple-audio-card,aux-devs = <&speaker_amp>, <&headphone_amp>;
105		simple-audio-card,format = "i2s";
106		simple-audio-card,mclk-fs = <256>;
107		simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
108		simple-audio-card,bitclock-master = <&daicpu>;
109		simple-audio-card,frame-master = <&daicpu>;
110		/* SARADC_IN3 is used as MIC detection / key input */
111
112		simple-audio-card,widgets =
113			"Microphone", "Onboard Microphone",
114			"Microphone", "Microphone Jack",
115			"Speaker", "Speaker",
116			"Headphone", "Headphones";
117
118		simple-audio-card,routing =
119			"Headphones", "LOUT1",
120			"Headphones", "ROUT1",
121			"Speaker", "LOUT2",
122			"Speaker", "ROUT2",
123
124			"Headphones", "Headphones Amp OUTL",
125			"Headphones", "Headphones Amp OUTR",
126			"Headphones Amp INL", "LOUT1",
127			"Headphones Amp INR", "ROUT1",
128
129			"Speaker", "Speaker Amp OUTL",
130			"Speaker", "Speaker Amp OUTR",
131			"Speaker Amp INL", "LOUT2",
132			"Speaker Amp INR", "ROUT2",
133
134			/* single ended signal to LINPUT1 */
135			"LINPUT1", "Microphone Jack",
136			"RINPUT1", "Microphone Jack",
137			/* differential signal */
138			"LINPUT2", "Onboard Microphone",
139			"RINPUT2", "Onboard Microphone";
140
141		daicpu: simple-audio-card,cpu {
142			sound-dai = <&i2s0_8ch>;
143			system-clock-frequency = <12288000>;
144		};
145
146		daicodec: simple-audio-card,codec {
147			sound-dai = <&es8388>;
148			system-clock-frequency = <12288000>;
149		};
150	};
151
152	vcc12v_dcin: regulator-vcc12v-dcin {
153		compatible = "regulator-fixed";
154		regulator-name = "vcc12v_dcin";
155		regulator-always-on;
156		regulator-boot-on;
157		regulator-min-microvolt = <12000000>;
158		regulator-max-microvolt = <12000000>;
159	};
160
161	vcc3v3_bt: regulator-vcc3v3-bt {
162		compatible = "regulator-fixed";
163		enable-active-high;
164		gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
165		regulator-name = "vcc3v3_bt";
166		regulator-min-microvolt = <3300000>;
167		regulator-max-microvolt = <3300000>;
168		startup-delay-us = <50000>;
169		vin-supply = <&vcc_3v3_s0>;
170	};
171
172	vcc3v3_pcie30: regulator-vcc3v3-pcie30 {
173		compatible = "regulator-fixed";
174		enable-active-high;
175		gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
176		regulator-name = "vcc3v3_pcie30";
177		regulator-min-microvolt = <3300000>;
178		regulator-max-microvolt = <3300000>;
179		startup-delay-us = <5000>;
180		vin-supply = <&vcc12v_dcin>;
181	};
182
183	vcc3v3_wf: regulator-vcc3v3-wf {
184		compatible = "regulator-fixed";
185		enable-active-high;
186		gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
187		regulator-name = "vcc3v3_wf";
188		regulator-min-microvolt = <3300000>;
189		regulator-max-microvolt = <3300000>;
190		startup-delay-us = <50000>;
191		vin-supply = <&vcc_3v3_s0>;
192	};
193
194	vcc4v0_sys: regulator-vcc4v0-sys {
195		compatible = "regulator-fixed";
196		regulator-name = "vcc4v0_sys";
197		regulator-always-on;
198		regulator-boot-on;
199		regulator-min-microvolt = <4000000>;
200		regulator-max-microvolt = <4000000>;
201		vin-supply = <&vcc12v_dcin>;
202	};
203
204	vcc5v0_host: regulator-vcc5v0-host {
205		compatible = "regulator-fixed";
206		enable-active-high;
207		gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
208		pinctrl-names = "default";
209		pinctrl-0 = <&vcc5v0_host_en>;
210		regulator-name = "vcc5v0_host";
211		regulator-always-on;
212		regulator-boot-on;
213		regulator-min-microvolt = <5000000>;
214		regulator-max-microvolt = <5000000>;
215		vin-supply = <&vcc5v0_usb>;
216	};
217
218	vcc5v0_usb: regulator-vcc5v0-usb {
219		compatible = "regulator-fixed";
220		regulator-name = "vcc5v0_usb";
221		regulator-always-on;
222		regulator-boot-on;
223		regulator-min-microvolt = <5000000>;
224		regulator-max-microvolt = <5000000>;
225		vin-supply = <&vcc12v_dcin>;
226	};
227};
228
229&combphy0_ps {
230	status = "okay";
231};
232
233&combphy1_ps {
234	status = "okay";
235};
236
237&combphy2_psu {
238	status = "okay";
239};
240
241&cpu_b0 {
242	cpu-supply = <&vdd_cpu_big0_s0>;
243};
244
245&cpu_b1 {
246	cpu-supply = <&vdd_cpu_big0_s0>;
247};
248
249&cpu_b2 {
250	cpu-supply = <&vdd_cpu_big1_s0>;
251};
252
253&cpu_b3 {
254	cpu-supply = <&vdd_cpu_big1_s0>;
255};
256
257&cpu_l0 {
258	cpu-supply = <&vdd_cpu_lit_s0>;
259};
260
261&cpu_l1 {
262	cpu-supply = <&vdd_cpu_lit_s0>;
263};
264
265&cpu_l2 {
266	cpu-supply = <&vdd_cpu_lit_s0>;
267};
268
269&cpu_l3 {
270	cpu-supply = <&vdd_cpu_lit_s0>;
271};
272
273&gmac0 {
274	clock_in_out = "output";
275	phy-handle = <&rgmii_phy>;
276	phy-mode = "rgmii-rxid";
277	pinctrl-names = "default";
278	pinctrl-0 = <&gmac0_miim
279		     &gmac0_tx_bus2
280		     &gmac0_rx_bus2
281		     &gmac0_rgmii_clk
282		     &gmac0_rgmii_bus>;
283	rx_delay = <0x00>;
284	tx_delay = <0x43>;
285	status = "okay";
286};
287
288&gpu {
289	mali-supply = <&vdd_gpu_s0>;
290	sram-supply = <&vdd_gpu_mem_s0>;
291	status = "okay";
292};
293
294&i2c2 {
295	status = "okay";
296
297	hym8563: rtc@51 {
298		compatible = "haoyu,hym8563";
299		reg = <0x51>;
300		#clock-cells = <0>;
301		clock-output-names = "hym8563";
302		interrupt-parent = <&gpio0>;
303		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
304		pinctrl-names = "default";
305		pinctrl-0 = <&hym8563_int>;
306		wakeup-source;
307	};
308};
309
310&i2c7 {
311	status = "okay";
312
313	es8388: audio-codec@11 {
314		compatible = "everest,es8388", "everest,es8328";
315		reg = <0x11>;
316		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
317		assigned-clock-rates = <12288000>;
318		clocks = <&cru I2S0_8CH_MCLKOUT>;
319		AVDD-supply = <&avcc_1v8_codec_s0>;
320		DVDD-supply = <&avcc_1v8_codec_s0>;
321		HPVDD-supply = <&vcc_3v3_s0>;
322		PVDD-supply = <&vcc_3v3_s0>;
323		#sound-dai-cells = <0>;
324	};
325};
326
327&i2s0_8ch {
328	pinctrl-names = "default";
329	pinctrl-0 = <&i2s0_lrck
330		     &i2s0_mclk
331		     &i2s0_sclk
332		     &i2s0_sdi0
333		     &i2s0_sdo0>;
334	status = "okay";
335};
336
337&mdio0 {
338	rgmii_phy: ethernet-phy@1 {
339		/* RTL8211F */
340		compatible = "ethernet-phy-id001c.c916";
341		reg = <0x1>;
342		pinctrl-names = "default";
343		pinctrl-0 = <&rtl8211f_rst>;
344		reset-assert-us = <20000>;
345		reset-deassert-us = <100000>;
346		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
347	};
348};
349
350&pd_gpu {
351	domain-supply = <&vdd_gpu_s0>;
352};
353
354&pinctrl {
355	hym8563 {
356		hym8563_int: hym8563-int {
357			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
358		};
359	};
360
361	leds {
362		led_pins: led-pins {
363			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
364		};
365	};
366
367	rtl8111 {
368		rtl8111_isolate: rtl8111-isolate {
369			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
370		};
371	};
372
373	rtl8211f {
374		rtl8211f_rst: rtl8211f-rst {
375			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
376		};
377
378	};
379
380	sound {
381		hp_detect: hp-detect {
382			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
383		};
384	};
385
386	usb {
387		vcc5v0_host_en: vcc5v0-host-en {
388			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
389		};
390	};
391};
392
393/* WIFI */
394&pcie2x1l0 {
395	reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
396	vpcie3v3-supply = <&vcc3v3_wf>;
397	status = "okay";
398};
399
400/* GMAC1 */
401&pcie2x1l1 {
402	pinctrl-names = "default";
403	pinctrl-0 = <&rtl8111_isolate>;
404	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
405	status = "okay";
406};
407
408&pcie30phy {
409	status = "okay";
410};
411
412&pcie3x4 {
413	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
414	vpcie3v3-supply = <&vcc3v3_pcie30>;
415	status = "okay";
416};
417
418&saradc {
419	vref-supply = <&vcc_1v8_s0>;
420	status = "okay";
421};
422
423&sata0 {
424	status = "okay";
425};
426
427&sdhci {
428	bus-width = <8>;
429	no-sdio;
430	no-sd;
431	non-removable;
432	max-frequency = <150000000>;
433	mmc-hs400-1_8v;
434	mmc-hs400-enhanced-strobe;
435	status = "okay";
436};
437
438&sdmmc {
439	bus-width = <4>;
440	cap-sd-highspeed;
441	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
442	disable-wp;
443	max-frequency = <150000000>;
444	no-sdio;
445	no-mmc;
446	sd-uhs-sdr104;
447	vmmc-supply = <&vcc_3v3_s3>;
448	vqmmc-supply = <&vccio_sd_s0>;
449	status = "okay";
450};
451
452&spi2 {
453	assigned-clocks = <&cru CLK_SPI2>;
454	assigned-clock-rates = <200000000>;
455	num-cs = <2>;
456	status = "okay";
457
458	pmic@0 {
459		compatible = "rockchip,rk806";
460		reg = <0x0>;
461		#gpio-cells = <2>;
462		gpio-controller;
463		interrupt-parent = <&gpio0>;
464		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
465		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
466			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
467		pinctrl-names = "default";
468		spi-max-frequency = <1000000>;
469		system-power-controller;
470
471		vcc1-supply = <&vcc4v0_sys>;
472		vcc2-supply = <&vcc4v0_sys>;
473		vcc3-supply = <&vcc4v0_sys>;
474		vcc4-supply = <&vcc4v0_sys>;
475		vcc5-supply = <&vcc4v0_sys>;
476		vcc6-supply = <&vcc4v0_sys>;
477		vcc7-supply = <&vcc4v0_sys>;
478		vcc8-supply = <&vcc4v0_sys>;
479		vcc9-supply = <&vcc4v0_sys>;
480		vcc10-supply = <&vcc4v0_sys>;
481		vcc11-supply = <&vcc_2v0_pldo_s3>;
482		vcc12-supply = <&vcc4v0_sys>;
483		vcc13-supply = <&vcc_1v1_nldo_s3>;
484		vcc14-supply = <&vcc_1v1_nldo_s3>;
485		vcca-supply = <&vcc4v0_sys>;
486
487		rk806_dvs1_null: dvs1-null-pins {
488			pins = "gpio_pwrctrl1";
489			function = "pin_fun0";
490		};
491
492		rk806_dvs2_null: dvs2-null-pins {
493			pins = "gpio_pwrctrl2";
494			function = "pin_fun0";
495		};
496
497		rk806_dvs3_null: dvs3-null-pins {
498			pins = "gpio_pwrctrl3";
499			function = "pin_fun0";
500		};
501
502		regulators {
503			vdd_gpu_s0: dcdc-reg1 {
504				regulator-name = "vdd_gpu_s0";
505				/* regulator coupling requires always-on */
506				regulator-always-on;
507				regulator-boot-on;
508				regulator-enable-ramp-delay = <400>;
509				regulator-min-microvolt = <550000>;
510				regulator-max-microvolt = <950000>;
511				regulator-ramp-delay = <12500>;
512				regulator-coupled-with = <&vdd_gpu_mem_s0>;
513				regulator-coupled-max-spread = <10000>;
514
515				regulator-state-mem {
516					regulator-off-in-suspend;
517				};
518			};
519
520			vdd_npu_s0: dcdc-reg2 {
521				regulator-name = "vdd_npu_s0";
522				regulator-always-on;
523				regulator-boot-on;
524				regulator-min-microvolt = <550000>;
525				regulator-max-microvolt = <950000>;
526				regulator-ramp-delay = <12500>;
527
528				regulator-state-mem {
529					regulator-off-in-suspend;
530				};
531			};
532
533			vdd_log_s0: dcdc-reg3 {
534				regulator-name = "vdd_log_s0";
535				regulator-always-on;
536				regulator-boot-on;
537				regulator-min-microvolt = <675000>;
538				regulator-max-microvolt = <750000>;
539				regulator-ramp-delay = <12500>;
540
541				regulator-state-mem {
542					regulator-off-in-suspend;
543					regulator-suspend-microvolt = <750000>;
544				};
545			};
546
547			vdd_vdenc_s0: dcdc-reg4 {
548				regulator-name = "vdd_vdenc_s0";
549				regulator-always-on;
550				regulator-boot-on;
551				regulator-min-microvolt = <550000>;
552				regulator-max-microvolt = <950000>;
553				regulator-ramp-delay = <12500>;
554
555				regulator-state-mem {
556					regulator-off-in-suspend;
557				};
558
559			};
560
561			vdd_gpu_mem_s0: dcdc-reg5 {
562				regulator-name = "vdd_gpu_mem_s0";
563				/* regulator coupling requires always-on */
564				regulator-always-on;
565				regulator-boot-on;
566				regulator-enable-ramp-delay = <400>;
567				regulator-min-microvolt = <675000>;
568				regulator-max-microvolt = <950000>;
569				regulator-ramp-delay = <12500>;
570				regulator-coupled-with = <&vdd_gpu_s0>;
571				regulator-coupled-max-spread = <10000>;
572
573				regulator-state-mem {
574					regulator-off-in-suspend;
575				};
576
577			};
578
579			vdd_npu_mem_s0: dcdc-reg6 {
580				regulator-name = "vdd_npu_mem_s0";
581				regulator-always-on;
582				regulator-boot-on;
583				regulator-min-microvolt = <675000>;
584				regulator-max-microvolt = <950000>;
585				regulator-ramp-delay = <12500>;
586
587				regulator-state-mem {
588					regulator-off-in-suspend;
589				};
590
591			};
592
593			vcc_2v0_pldo_s3: dcdc-reg7 {
594				regulator-name = "vdd_2v0_pldo_s3";
595				regulator-always-on;
596				regulator-boot-on;
597				regulator-min-microvolt = <2000000>;
598				regulator-max-microvolt = <2000000>;
599				regulator-ramp-delay = <12500>;
600
601				regulator-state-mem {
602					regulator-on-in-suspend;
603					regulator-suspend-microvolt = <2000000>;
604				};
605			};
606
607			vdd_vdenc_mem_s0: dcdc-reg8 {
608				regulator-name = "vdd_vdenc_mem_s0";
609				regulator-always-on;
610				regulator-boot-on;
611				regulator-min-microvolt = <675000>;
612				regulator-max-microvolt = <950000>;
613				regulator-ramp-delay = <12500>;
614
615				regulator-state-mem {
616					regulator-off-in-suspend;
617				};
618			};
619
620			vdd2_ddr_s3: dcdc-reg9 {
621				regulator-name = "vdd2_ddr_s3";
622				regulator-always-on;
623				regulator-boot-on;
624
625				regulator-state-mem {
626					regulator-on-in-suspend;
627				};
628			};
629
630			vcc_1v1_nldo_s3: dcdc-reg10 {
631				regulator-name = "vcc_1v1_nldo_s3";
632				regulator-always-on;
633				regulator-boot-on;
634				regulator-min-microvolt = <1100000>;
635				regulator-max-microvolt = <1100000>;
636				regulator-ramp-delay = <12500>;
637
638				regulator-state-mem {
639					regulator-on-in-suspend;
640					regulator-suspend-microvolt = <1100000>;
641				};
642			};
643
644			avcc_1v8_s0: pldo-reg1 {
645				regulator-name = "avcc_1v8_s0";
646				regulator-always-on;
647				regulator-boot-on;
648				regulator-min-microvolt = <1800000>;
649				regulator-max-microvolt = <1800000>;
650				regulator-ramp-delay = <12500>;
651
652				regulator-state-mem {
653					regulator-off-in-suspend;
654				};
655			};
656
657			vdd1_1v8_ddr_s3: pldo-reg2 {
658				regulator-name = "vdd1_1v8_ddr_s3";
659				regulator-always-on;
660				regulator-boot-on;
661				regulator-min-microvolt = <1800000>;
662				regulator-max-microvolt = <1800000>;
663				regulator-ramp-delay = <12500>;
664
665				regulator-state-mem {
666					regulator-on-in-suspend;
667					regulator-suspend-microvolt = <1800000>;
668				};
669			};
670
671			avcc_1v8_codec_s0: pldo-reg3 {
672				regulator-name = "avcc_1v8_codec_s0";
673				regulator-always-on;
674				regulator-boot-on;
675				regulator-min-microvolt = <1800000>;
676				regulator-max-microvolt = <1800000>;
677				regulator-ramp-delay = <12500>;
678
679				regulator-state-mem {
680					regulator-off-in-suspend;
681				};
682			};
683
684			vcc_3v3_s3: pldo-reg4 {
685				regulator-name = "vcc_3v3_s3";
686				regulator-always-on;
687				regulator-boot-on;
688				regulator-min-microvolt = <3300000>;
689				regulator-max-microvolt = <3300000>;
690				regulator-ramp-delay = <12500>;
691
692				regulator-state-mem {
693					regulator-on-in-suspend;
694					regulator-suspend-microvolt = <3300000>;
695				};
696			};
697
698			vccio_sd_s0: pldo-reg5 {
699				regulator-name = "vccio_sd_s0";
700				regulator-always-on;
701				regulator-boot-on;
702				regulator-min-microvolt = <1800000>;
703				regulator-max-microvolt = <3300000>;
704				regulator-ramp-delay = <12500>;
705
706				regulator-state-mem {
707					regulator-off-in-suspend;
708				};
709			};
710
711			vcc_1v8_s3: pldo-reg6 {
712				regulator-name = "vcc_1v8_s3";
713				regulator-always-on;
714				regulator-boot-on;
715				regulator-min-microvolt = <1800000>;
716				regulator-max-microvolt = <1800000>;
717				regulator-ramp-delay = <12500>;
718
719				regulator-state-mem {
720					regulator-on-in-suspend;
721					regulator-suspend-microvolt = <1800000>;
722				};
723			};
724
725			vdd_0v75_s3: nldo-reg1 {
726				regulator-name = "vdd_0v75_s3";
727				regulator-always-on;
728				regulator-boot-on;
729				regulator-min-microvolt = <750000>;
730				regulator-max-microvolt = <750000>;
731				regulator-ramp-delay = <12500>;
732
733				regulator-state-mem {
734					regulator-on-in-suspend;
735					regulator-suspend-microvolt = <750000>;
736				};
737			};
738
739			/* reserved for LPDDR5, unused? */
740			vdd2l_0v9_ddr_s3: nldo-reg2 {
741				regulator-name = "vdd2l_0v9_ddr_s3";
742				regulator-always-on;
743				regulator-boot-on;
744				regulator-min-microvolt = <900000>;
745				regulator-max-microvolt = <900000>;
746
747				regulator-state-mem {
748					regulator-on-in-suspend;
749					regulator-suspend-microvolt = <900000>;
750				};
751			};
752
753			vdd_0v75_hdmi_edp_s0: nldo-reg3 {
754				regulator-name = "vdd_0v75_hdmi_edp_s0";
755				regulator-always-on;
756				regulator-boot-on;
757				regulator-min-microvolt = <750000>;
758				regulator-max-microvolt = <750000>;
759
760				regulator-state-mem {
761					regulator-off-in-suspend;
762				};
763			};
764
765			avdd_0v75_s0: nldo-reg4 {
766				regulator-name = "avdd_0v75_s0";
767				regulator-always-on;
768				regulator-boot-on;
769				regulator-min-microvolt = <750000>;
770				regulator-max-microvolt = <750000>;
771
772				regulator-state-mem {
773					regulator-off-in-suspend;
774				};
775			};
776
777			vdd_0v85_s0: nldo-reg5 {
778				regulator-name = "vdd_0v85_s0";
779				regulator-always-on;
780				regulator-boot-on;
781				regulator-min-microvolt = <850000>;
782				regulator-max-microvolt = <850000>;
783
784				regulator-state-mem {
785					regulator-off-in-suspend;
786				};
787			};
788		};
789	};
790
791	pmic@1 {
792		compatible = "rockchip,rk806";
793		reg = <0x01>;
794		#gpio-cells = <2>;
795		gpio-controller;
796		interrupt-parent = <&gpio0>;
797		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
798		pinctrl-0 = <&rk806_slave_dvs1_null>, <&rk806_slave_dvs2_null>,
799			    <&rk806_slave_dvs3_null>;
800		pinctrl-names = "default";
801		spi-max-frequency = <1000000>;
802
803		vcc1-supply = <&vcc4v0_sys>;
804		vcc2-supply = <&vcc4v0_sys>;
805		vcc3-supply = <&vcc4v0_sys>;
806		vcc4-supply = <&vcc4v0_sys>;
807		vcc5-supply = <&vcc4v0_sys>;
808		vcc6-supply = <&vcc4v0_sys>;
809		vcc7-supply = <&vcc4v0_sys>;
810		vcc8-supply = <&vcc4v0_sys>;
811		vcc9-supply = <&vcc4v0_sys>;
812		vcc10-supply = <&vcc4v0_sys>;
813		vcc11-supply = <&vcc_2v0_pldo_s3>;
814		vcc12-supply = <&vcc4v0_sys>;
815		vcc13-supply = <&vcc_1v1_nldo_s3>;
816		vcc14-supply = <&vcc_2v0_pldo_s3>;
817		vcca-supply = <&vcc4v0_sys>;
818
819		rk806_slave_dvs1_null: dvs1-null-pins {
820			pins = "gpio_pwrctrl1";
821			function = "pin_fun0";
822		};
823
824		rk806_slave_dvs2_null: dvs2-null-pins {
825			pins = "gpio_pwrctrl2";
826			function = "pin_fun0";
827		};
828
829		rk806_slave_dvs3_null: dvs3-null-pins {
830			pins = "gpio_pwrctrl3";
831			function = "pin_fun0";
832		};
833
834		regulators {
835			vdd_cpu_big1_s0: dcdc-reg1 {
836				regulator-name = "vdd_cpu_big1_s0";
837				regulator-always-on;
838				regulator-boot-on;
839				regulator-coupled-with = <&vdd_cpu_big1_mem_s0>;
840				regulator-coupled-max-spread = <10000>;
841				regulator-min-microvolt = <550000>;
842				regulator-max-microvolt = <1050000>;
843				regulator-ramp-delay = <12500>;
844
845				regulator-state-mem {
846					regulator-off-in-suspend;
847				};
848			};
849
850			vdd_cpu_big0_s0: dcdc-reg2 {
851				regulator-name = "vdd_cpu_big0_s0";
852				regulator-always-on;
853				regulator-boot-on;
854				regulator-coupled-with = <&vdd_cpu_big0_mem_s0>;
855				regulator-coupled-max-spread = <10000>;
856				regulator-min-microvolt = <550000>;
857				regulator-max-microvolt = <1050000>;
858				regulator-ramp-delay = <12500>;
859
860				regulator-state-mem {
861					regulator-off-in-suspend;
862				};
863			};
864
865			vdd_cpu_lit_s0: dcdc-reg3 {
866				regulator-name = "vdd_cpu_lit_s0";
867				regulator-always-on;
868				regulator-boot-on;
869				regulator-coupled-with = <&vdd_cpu_lit_mem_s0>;
870				regulator-coupled-max-spread = <10000>;
871				regulator-min-microvolt = <550000>;
872				regulator-max-microvolt = <950000>;
873				regulator-ramp-delay = <12500>;
874
875				regulator-state-mem {
876					regulator-off-in-suspend;
877				};
878			};
879
880			vcc_3v3_s0: dcdc-reg4 {
881				regulator-name = "vcc_3v3_s0";
882				regulator-always-on;
883				regulator-boot-on;
884				regulator-min-microvolt = <3300000>;
885				regulator-max-microvolt = <3300000>;
886				regulator-ramp-delay = <12500>;
887
888				regulator-state-mem {
889					regulator-off-in-suspend;
890				};
891			};
892
893			vdd_cpu_big1_mem_s0: dcdc-reg5 {
894				regulator-name = "vdd_cpu_big1_mem_s0";
895				regulator-always-on;
896				regulator-boot-on;
897				regulator-coupled-with = <&vdd_cpu_big1_s0>;
898				regulator-coupled-max-spread = <10000>;
899				regulator-min-microvolt = <675000>;
900				regulator-max-microvolt = <1050000>;
901				regulator-ramp-delay = <12500>;
902
903				regulator-state-mem {
904					regulator-off-in-suspend;
905				};
906			};
907
908
909			vdd_cpu_big0_mem_s0: dcdc-reg6 {
910				regulator-name = "vdd_cpu_big0_mem_s0";
911				regulator-always-on;
912				regulator-boot-on;
913				regulator-coupled-with = <&vdd_cpu_big0_s0>;
914				regulator-coupled-max-spread = <10000>;
915				regulator-min-microvolt = <675000>;
916				regulator-max-microvolt = <1050000>;
917				regulator-ramp-delay = <12500>;
918
919				regulator-state-mem {
920					regulator-off-in-suspend;
921				};
922			};
923
924			vcc_1v8_s0: dcdc-reg7 {
925				regulator-name = "vcc_1v8_s0";
926				regulator-always-on;
927				regulator-boot-on;
928				regulator-min-microvolt = <1800000>;
929				regulator-max-microvolt = <1800000>;
930				regulator-ramp-delay = <12500>;
931
932				regulator-state-mem {
933					regulator-off-in-suspend;
934				};
935			};
936
937			vdd_cpu_lit_mem_s0: dcdc-reg8 {
938				regulator-name = "vdd_cpu_lit_mem_s0";
939				regulator-always-on;
940				regulator-boot-on;
941				regulator-coupled-with = <&vdd_cpu_lit_s0>;
942				regulator-coupled-max-spread = <10000>;
943				regulator-min-microvolt = <675000>;
944				regulator-max-microvolt = <950000>;
945				regulator-ramp-delay = <12500>;
946
947				regulator-state-mem {
948					regulator-off-in-suspend;
949				};
950			};
951
952			vddq_ddr_s0: dcdc-reg9 {
953				regulator-name = "vddq_ddr_s0";
954				regulator-always-on;
955				regulator-boot-on;
956
957				regulator-state-mem {
958					regulator-off-in-suspend;
959				};
960			};
961
962			vdd_ddr_s0: dcdc-reg10 {
963				regulator-name = "vdd_ddr_s0";
964				regulator-always-on;
965				regulator-boot-on;
966				regulator-min-microvolt = <675000>;
967				regulator-max-microvolt = <900000>;
968				regulator-ramp-delay = <12500>;
969
970				regulator-state-mem {
971					regulator-off-in-suspend;
972				};
973			};
974
975			/* reserved, unused? */
976			vcc_1v8_cam_s0: pldo-reg1 {
977				regulator-name = "vcc_1v8_cam_s0";
978				regulator-always-on;
979				regulator-boot-on;
980				regulator-min-microvolt = <1800000>;
981				regulator-max-microvolt = <1800000>;
982				regulator-ramp-delay = <12500>;
983
984				regulator-state-mem {
985					regulator-off-in-suspend;
986				};
987			};
988
989			avdd1v8_ddr_pll_s0: pldo-reg2 {
990				regulator-name = "avdd1v8_ddr_pll_s0";
991				regulator-always-on;
992				regulator-boot-on;
993				regulator-min-microvolt = <1800000>;
994				regulator-max-microvolt = <1800000>;
995				regulator-ramp-delay = <12500>;
996
997				regulator-state-mem {
998					regulator-off-in-suspend;
999				};
1000			};
1001
1002			vdd_1v8_pll_s0: pldo-reg3 {
1003				regulator-name = "vdd_1v8_pll_s0";
1004				regulator-always-on;
1005				regulator-boot-on;
1006				regulator-min-microvolt = <1800000>;
1007				regulator-max-microvolt = <1800000>;
1008				regulator-ramp-delay = <12500>;
1009
1010				regulator-state-mem {
1011					regulator-off-in-suspend;
1012				};
1013			};
1014
1015			/* reserved, unused? */
1016			vcc_3v3_sd_s0: pldo-reg4 {
1017				regulator-name = "vcc_3v3_sd_s0";
1018				regulator-always-on;
1019				regulator-boot-on;
1020				regulator-min-microvolt = <3300000>;
1021				regulator-max-microvolt = <3300000>;
1022				regulator-ramp-delay = <12500>;
1023
1024				regulator-state-mem {
1025					regulator-off-in-suspend;
1026				};
1027			};
1028
1029			/* reserved, unused? */
1030			vcc_2v8_cam_s0: pldo-reg5 {
1031				regulator-name = "vcc_2v8_cam_s0";
1032				regulator-always-on;
1033				regulator-boot-on;
1034				regulator-min-microvolt = <2800000>;
1035				regulator-max-microvolt = <2800000>;
1036				regulator-ramp-delay = <12500>;
1037
1038				regulator-state-mem {
1039					regulator-off-in-suspend;
1040				};
1041			};
1042
1043			/* unused */
1044			pldo6_s3: pldo-reg6 {
1045				regulator-name = "pldo6_s3";
1046				regulator-always-on;
1047				regulator-boot-on;
1048				regulator-min-microvolt = <1800000>;
1049				regulator-max-microvolt = <1800000>;
1050
1051				regulator-state-mem {
1052					regulator-on-in-suspend;
1053					regulator-suspend-microvolt = <1800000>;
1054				};
1055			};
1056
1057			vdd_0v75_pll_s0: nldo-reg1 {
1058				regulator-name = "vdd_0v75_pll_s0";
1059				regulator-always-on;
1060				regulator-boot-on;
1061				regulator-min-microvolt = <750000>;
1062				regulator-max-microvolt = <750000>;
1063				regulator-ramp-delay = <12500>;
1064
1065				regulator-state-mem {
1066					regulator-off-in-suspend;
1067				};
1068			};
1069
1070			vdd_ddr_pll_s0: nldo-reg2 {
1071				regulator-name = "vdd_ddr_pll_s0";
1072				regulator-always-on;
1073				regulator-boot-on;
1074				regulator-min-microvolt = <850000>;
1075				regulator-max-microvolt = <850000>;
1076
1077				regulator-state-mem {
1078					regulator-off-in-suspend;
1079				};
1080			};
1081
1082			avdd_0v85_s0: nldo-reg3 {
1083				regulator-name = "avdd_0v85_s0";
1084				regulator-always-on;
1085				regulator-boot-on;
1086				regulator-min-microvolt = <850000>;
1087				regulator-max-microvolt = <850000>;
1088				regulator-ramp-delay = <12500>;
1089
1090				regulator-state-mem {
1091					regulator-off-in-suspend;
1092				};
1093			};
1094
1095			/* reserved, unused */
1096			avdd_1v2_cam_s0: nldo-reg4 {
1097				regulator-name = "avdd_1v2_cam_s0";
1098				regulator-always-on;
1099				regulator-boot-on;
1100				regulator-min-microvolt = <1200000>;
1101				regulator-max-microvolt = <1200000>;
1102				regulator-ramp-delay = <12500>;
1103
1104				regulator-state-mem {
1105					regulator-off-in-suspend;
1106				};
1107			};
1108
1109			avdd_1v2_s0: nldo-reg5 {
1110				regulator-name = "avdd_1v2_s0";
1111				regulator-always-on;
1112				regulator-boot-on;
1113				regulator-min-microvolt = <1200000>;
1114				regulator-max-microvolt = <1200000>;
1115				regulator-ramp-delay = <12500>;
1116
1117				regulator-state-mem {
1118					regulator-off-in-suspend;
1119				};
1120			};
1121		};
1122	};
1123};
1124
1125&tsadc {
1126	status = "okay";
1127};
1128
1129&u2phy2 {
1130	status = "okay";
1131};
1132
1133&u2phy2_host {
1134	phy-supply = <&vcc5v0_host>;
1135	status = "okay";
1136};
1137
1138&u2phy3 {
1139	status = "okay";
1140};
1141
1142&u2phy3_host {
1143	phy-supply = <&vcc5v0_host>;
1144	status = "okay";
1145};
1146
1147&uart2 {
1148	pinctrl-names = "default";
1149	pinctrl-0 = <&uart2m0_xfer>;
1150	status = "okay";
1151};
1152
1153&usb_host0_ehci {
1154	status = "okay";
1155};
1156
1157&usb_host0_ohci {
1158	status = "okay";
1159};
1160
1161&usb_host1_ehci {
1162	status = "okay";
1163};
1164
1165&usb_host1_ohci {
1166	status = "okay";
1167};
1168