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-gpio = <&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: vcc12v-dcin-regulator {
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: vcc3v3-bt-regulator {
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: vcc3v3-pcie30-regulator {
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: vcc3v3-wf-regulator {
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: vcc4v0-sys-regulator {
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: vcc5v0-host-regulator {
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: vcc5v0-usb-regulator {
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&i2c2 {
289	status = "okay";
290
291	hym8563: rtc@51 {
292		compatible = "haoyu,hym8563";
293		reg = <0x51>;
294		#clock-cells = <0>;
295		clock-output-names = "hym8563";
296		interrupt-parent = <&gpio0>;
297		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
298		pinctrl-names = "default";
299		pinctrl-0 = <&hym8563_int>;
300		wakeup-source;
301	};
302};
303
304&i2c7 {
305	status = "okay";
306
307	es8388: audio-codec@11 {
308		compatible = "everest,es8388";
309		reg = <0x11>;
310		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
311		assigned-clock-rates = <12288000>;
312		clocks = <&cru I2S0_8CH_MCLKOUT>;
313		clock-names = "mclk";
314		AVDD-supply = <&avcc_1v8_codec_s0>;
315		DVDD-supply = <&avcc_1v8_codec_s0>;
316		HPVDD-supply = <&vcc_3v3_s0>;
317		PVDD-supply = <&vcc_3v3_s0>;
318		#sound-dai-cells = <0>;
319	};
320};
321
322&i2s0_8ch {
323	pinctrl-names = "default";
324	pinctrl-0 = <&i2s0_lrck
325		     &i2s0_mclk
326		     &i2s0_sclk
327		     &i2s0_sdi0
328		     &i2s0_sdo0>;
329	status = "okay";
330};
331
332&mdio0 {
333	rgmii_phy: ethernet-phy@1 {
334		/* RTL8211F */
335		compatible = "ethernet-phy-id001c.c916";
336		reg = <0x1>;
337		pinctrl-names = "default";
338		pinctrl-0 = <&rtl8211f_rst>;
339		reset-assert-us = <20000>;
340		reset-deassert-us = <100000>;
341		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
342	};
343};
344
345&pinctrl {
346	hym8563 {
347		hym8563_int: hym8563-int {
348			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
349		};
350	};
351
352	leds {
353		led_pins: led-pins {
354			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
355		};
356	};
357
358	rtl8111 {
359		rtl8111_isolate: rtl8111-isolate {
360			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
361		};
362	};
363
364	rtl8211f {
365		rtl8211f_rst: rtl8211f-rst {
366			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
367		};
368
369	};
370
371	sound {
372		hp_detect: hp-detect {
373			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
374		};
375	};
376
377	usb {
378		vcc5v0_host_en: vcc5v0-host-en {
379			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
380		};
381	};
382};
383
384/* WIFI */
385&pcie2x1l0 {
386	reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
387	vpcie3v3-supply = <&vcc3v3_wf>;
388	status = "okay";
389};
390
391/* GMAC1 */
392&pcie2x1l1 {
393	pinctrl-names = "default";
394	pinctrl-0 = <&rtl8111_isolate>;
395	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
396	status = "okay";
397};
398
399&pcie30phy {
400	status = "okay";
401};
402
403&pcie3x4 {
404	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
405	vpcie3v3-supply = <&vcc3v3_pcie30>;
406	status = "okay";
407};
408
409&saradc {
410	vref-supply = <&vcc_1v8_s0>;
411	status = "okay";
412};
413
414&sata0 {
415	status = "okay";
416};
417
418&sdhci {
419	bus-width = <8>;
420	no-sdio;
421	no-sd;
422	non-removable;
423	max-frequency = <150000000>;
424	mmc-hs400-1_8v;
425	mmc-hs400-enhanced-strobe;
426	status = "okay";
427};
428
429&sdmmc {
430	bus-width = <4>;
431	cap-sd-highspeed;
432	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
433	disable-wp;
434	max-frequency = <150000000>;
435	no-sdio;
436	no-mmc;
437	sd-uhs-sdr104;
438	vmmc-supply = <&vcc_3v3_s3>;
439	vqmmc-supply = <&vccio_sd_s0>;
440	status = "okay";
441};
442
443&spi2 {
444	assigned-clocks = <&cru CLK_SPI2>;
445	assigned-clock-rates = <200000000>;
446	num-cs = <2>;
447	status = "okay";
448
449	pmic@0 {
450		compatible = "rockchip,rk806";
451		reg = <0x0>;
452		#gpio-cells = <2>;
453		gpio-controller;
454		interrupt-parent = <&gpio0>;
455		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
456		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
457			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
458		pinctrl-names = "default";
459		spi-max-frequency = <1000000>;
460
461		vcc1-supply = <&vcc4v0_sys>;
462		vcc2-supply = <&vcc4v0_sys>;
463		vcc3-supply = <&vcc4v0_sys>;
464		vcc4-supply = <&vcc4v0_sys>;
465		vcc5-supply = <&vcc4v0_sys>;
466		vcc6-supply = <&vcc4v0_sys>;
467		vcc7-supply = <&vcc4v0_sys>;
468		vcc8-supply = <&vcc4v0_sys>;
469		vcc9-supply = <&vcc4v0_sys>;
470		vcc10-supply = <&vcc4v0_sys>;
471		vcc11-supply = <&vcc_2v0_pldo_s3>;
472		vcc12-supply = <&vcc4v0_sys>;
473		vcc13-supply = <&vcc_1v1_nldo_s3>;
474		vcc14-supply = <&vcc_1v1_nldo_s3>;
475		vcca-supply = <&vcc4v0_sys>;
476
477		rk806_dvs1_null: dvs1-null-pins {
478			pins = "gpio_pwrctrl1";
479			function = "pin_fun0";
480		};
481
482		rk806_dvs2_null: dvs2-null-pins {
483			pins = "gpio_pwrctrl2";
484			function = "pin_fun0";
485		};
486
487		rk806_dvs3_null: dvs3-null-pins {
488			pins = "gpio_pwrctrl3";
489			function = "pin_fun0";
490		};
491
492		regulators {
493			vdd_gpu_s0: dcdc-reg1 {
494				regulator-name = "vdd_gpu_s0";
495				regulator-boot-on;
496				regulator-enable-ramp-delay = <400>;
497				regulator-min-microvolt = <550000>;
498				regulator-max-microvolt = <950000>;
499				regulator-ramp-delay = <12500>;
500
501				regulator-state-mem {
502					regulator-off-in-suspend;
503				};
504			};
505
506			vdd_npu_s0: dcdc-reg2 {
507				regulator-name = "vdd_npu_s0";
508				regulator-always-on;
509				regulator-boot-on;
510				regulator-min-microvolt = <550000>;
511				regulator-max-microvolt = <950000>;
512				regulator-ramp-delay = <12500>;
513
514				regulator-state-mem {
515					regulator-off-in-suspend;
516				};
517			};
518
519			vdd_log_s0: dcdc-reg3 {
520				regulator-name = "vdd_log_s0";
521				regulator-always-on;
522				regulator-boot-on;
523				regulator-min-microvolt = <675000>;
524				regulator-max-microvolt = <750000>;
525				regulator-ramp-delay = <12500>;
526
527				regulator-state-mem {
528					regulator-off-in-suspend;
529					regulator-suspend-microvolt = <750000>;
530				};
531			};
532
533			vdd_vdenc_s0: dcdc-reg4 {
534				regulator-name = "vdd_vdenc_s0";
535				regulator-always-on;
536				regulator-boot-on;
537				regulator-min-microvolt = <550000>;
538				regulator-max-microvolt = <950000>;
539				regulator-ramp-delay = <12500>;
540
541				regulator-state-mem {
542					regulator-off-in-suspend;
543				};
544
545			};
546
547			vdd_gpu_mem_s0: dcdc-reg5 {
548				regulator-name = "vdd_gpu_mem_s0";
549				regulator-boot-on;
550				regulator-enable-ramp-delay = <400>;
551				regulator-min-microvolt = <675000>;
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_npu_mem_s0: dcdc-reg6 {
562				regulator-name = "vdd_npu_mem_s0";
563				regulator-always-on;
564				regulator-boot-on;
565				regulator-min-microvolt = <675000>;
566				regulator-max-microvolt = <950000>;
567				regulator-ramp-delay = <12500>;
568
569				regulator-state-mem {
570					regulator-off-in-suspend;
571				};
572
573			};
574
575			vcc_2v0_pldo_s3: dcdc-reg7 {
576				regulator-name = "vdd_2v0_pldo_s3";
577				regulator-always-on;
578				regulator-boot-on;
579				regulator-min-microvolt = <2000000>;
580				regulator-max-microvolt = <2000000>;
581				regulator-ramp-delay = <12500>;
582
583				regulator-state-mem {
584					regulator-on-in-suspend;
585					regulator-suspend-microvolt = <2000000>;
586				};
587			};
588
589			vdd_vdenc_mem_s0: dcdc-reg8 {
590				regulator-name = "vdd_vdenc_mem_s0";
591				regulator-always-on;
592				regulator-boot-on;
593				regulator-min-microvolt = <675000>;
594				regulator-max-microvolt = <950000>;
595				regulator-ramp-delay = <12500>;
596
597				regulator-state-mem {
598					regulator-off-in-suspend;
599				};
600			};
601
602			vdd2_ddr_s3: dcdc-reg9 {
603				regulator-name = "vdd2_ddr_s3";
604				regulator-always-on;
605				regulator-boot-on;
606
607				regulator-state-mem {
608					regulator-on-in-suspend;
609				};
610			};
611
612			vcc_1v1_nldo_s3: dcdc-reg10 {
613				regulator-name = "vcc_1v1_nldo_s3";
614				regulator-always-on;
615				regulator-boot-on;
616				regulator-min-microvolt = <1100000>;
617				regulator-max-microvolt = <1100000>;
618				regulator-ramp-delay = <12500>;
619
620				regulator-state-mem {
621					regulator-on-in-suspend;
622					regulator-suspend-microvolt = <1100000>;
623				};
624			};
625
626			avcc_1v8_s0: pldo-reg1 {
627				regulator-name = "avcc_1v8_s0";
628				regulator-always-on;
629				regulator-boot-on;
630				regulator-min-microvolt = <1800000>;
631				regulator-max-microvolt = <1800000>;
632				regulator-ramp-delay = <12500>;
633
634				regulator-state-mem {
635					regulator-off-in-suspend;
636				};
637			};
638
639			vdd1_1v8_ddr_s3: pldo-reg2 {
640				regulator-name = "vdd1_1v8_ddr_s3";
641				regulator-always-on;
642				regulator-boot-on;
643				regulator-min-microvolt = <1800000>;
644				regulator-max-microvolt = <1800000>;
645				regulator-ramp-delay = <12500>;
646
647				regulator-state-mem {
648					regulator-on-in-suspend;
649					regulator-suspend-microvolt = <1800000>;
650				};
651			};
652
653			avcc_1v8_codec_s0: pldo-reg3 {
654				regulator-name = "avcc_1v8_codec_s0";
655				regulator-always-on;
656				regulator-boot-on;
657				regulator-min-microvolt = <1800000>;
658				regulator-max-microvolt = <1800000>;
659				regulator-ramp-delay = <12500>;
660
661				regulator-state-mem {
662					regulator-off-in-suspend;
663				};
664			};
665
666			vcc_3v3_s3: pldo-reg4 {
667				regulator-name = "vcc_3v3_s3";
668				regulator-always-on;
669				regulator-boot-on;
670				regulator-min-microvolt = <3300000>;
671				regulator-max-microvolt = <3300000>;
672				regulator-ramp-delay = <12500>;
673
674				regulator-state-mem {
675					regulator-on-in-suspend;
676					regulator-suspend-microvolt = <3300000>;
677				};
678			};
679
680			vccio_sd_s0: pldo-reg5 {
681				regulator-name = "vccio_sd_s0";
682				regulator-always-on;
683				regulator-boot-on;
684				regulator-min-microvolt = <1800000>;
685				regulator-max-microvolt = <3300000>;
686				regulator-ramp-delay = <12500>;
687
688				regulator-state-mem {
689					regulator-off-in-suspend;
690				};
691			};
692
693			vcc_1v8_s3: pldo-reg6 {
694				regulator-name = "vcc_1v8_s3";
695				regulator-always-on;
696				regulator-boot-on;
697				regulator-min-microvolt = <1800000>;
698				regulator-max-microvolt = <1800000>;
699				regulator-ramp-delay = <12500>;
700
701				regulator-state-mem {
702					regulator-on-in-suspend;
703					regulator-suspend-microvolt = <1800000>;
704				};
705			};
706
707			vdd_0v75_s3: nldo-reg1 {
708				regulator-name = "vdd_0v75_s3";
709				regulator-always-on;
710				regulator-boot-on;
711				regulator-min-microvolt = <750000>;
712				regulator-max-microvolt = <750000>;
713				regulator-ramp-delay = <12500>;
714
715				regulator-state-mem {
716					regulator-on-in-suspend;
717					regulator-suspend-microvolt = <750000>;
718				};
719			};
720
721			/* reserved for LPDDR5, unused? */
722			vdd2l_0v9_ddr_s3: nldo-reg2 {
723				regulator-name = "vdd2l_0v9_ddr_s3";
724				regulator-always-on;
725				regulator-boot-on;
726				regulator-min-microvolt = <900000>;
727				regulator-max-microvolt = <900000>;
728
729				regulator-state-mem {
730					regulator-on-in-suspend;
731					regulator-suspend-microvolt = <900000>;
732				};
733			};
734
735			vdd_0v75_hdmi_edp_s0: nldo-reg3 {
736				regulator-name = "vdd_0v75_hdmi_edp_s0";
737				regulator-always-on;
738				regulator-boot-on;
739				regulator-min-microvolt = <750000>;
740				regulator-max-microvolt = <750000>;
741
742				regulator-state-mem {
743					regulator-off-in-suspend;
744				};
745			};
746
747			avdd_0v75_s0: nldo-reg4 {
748				regulator-name = "avdd_0v75_s0";
749				regulator-always-on;
750				regulator-boot-on;
751				regulator-min-microvolt = <750000>;
752				regulator-max-microvolt = <750000>;
753
754				regulator-state-mem {
755					regulator-off-in-suspend;
756				};
757			};
758
759			vdd_0v85_s0: nldo-reg5 {
760				regulator-name = "vdd_0v85_s0";
761				regulator-always-on;
762				regulator-boot-on;
763				regulator-min-microvolt = <850000>;
764				regulator-max-microvolt = <850000>;
765
766				regulator-state-mem {
767					regulator-off-in-suspend;
768				};
769			};
770		};
771	};
772
773	pmic@1 {
774		compatible = "rockchip,rk806";
775		reg = <0x01>;
776		#gpio-cells = <2>;
777		gpio-controller;
778		interrupt-parent = <&gpio0>;
779		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
780		pinctrl-0 = <&rk806_slave_dvs1_null>, <&rk806_slave_dvs2_null>,
781			    <&rk806_slave_dvs3_null>;
782		pinctrl-names = "default";
783		spi-max-frequency = <1000000>;
784
785		vcc1-supply = <&vcc4v0_sys>;
786		vcc2-supply = <&vcc4v0_sys>;
787		vcc3-supply = <&vcc4v0_sys>;
788		vcc4-supply = <&vcc4v0_sys>;
789		vcc5-supply = <&vcc4v0_sys>;
790		vcc6-supply = <&vcc4v0_sys>;
791		vcc7-supply = <&vcc4v0_sys>;
792		vcc8-supply = <&vcc4v0_sys>;
793		vcc9-supply = <&vcc4v0_sys>;
794		vcc10-supply = <&vcc4v0_sys>;
795		vcc11-supply = <&vcc_2v0_pldo_s3>;
796		vcc12-supply = <&vcc4v0_sys>;
797		vcc13-supply = <&vcc_1v1_nldo_s3>;
798		vcc14-supply = <&vcc_2v0_pldo_s3>;
799		vcca-supply = <&vcc4v0_sys>;
800
801		rk806_slave_dvs1_null: dvs1-null-pins {
802			pins = "gpio_pwrctrl1";
803			function = "pin_fun0";
804		};
805
806		rk806_slave_dvs2_null: dvs2-null-pins {
807			pins = "gpio_pwrctrl2";
808			function = "pin_fun0";
809		};
810
811		rk806_slave_dvs3_null: dvs3-null-pins {
812			pins = "gpio_pwrctrl3";
813			function = "pin_fun0";
814		};
815
816		regulators {
817			vdd_cpu_big1_s0: dcdc-reg1 {
818				regulator-name = "vdd_cpu_big1_s0";
819				regulator-always-on;
820				regulator-boot-on;
821				regulator-min-microvolt = <550000>;
822				regulator-max-microvolt = <1050000>;
823				regulator-ramp-delay = <12500>;
824
825				regulator-state-mem {
826					regulator-off-in-suspend;
827				};
828			};
829
830			vdd_cpu_big0_s0: dcdc-reg2 {
831				regulator-name = "vdd_cpu_big0_s0";
832				regulator-always-on;
833				regulator-boot-on;
834				regulator-min-microvolt = <550000>;
835				regulator-max-microvolt = <1050000>;
836				regulator-ramp-delay = <12500>;
837
838				regulator-state-mem {
839					regulator-off-in-suspend;
840				};
841			};
842
843			vdd_cpu_lit_s0: dcdc-reg3 {
844				regulator-name = "vdd_cpu_lit_s0";
845				regulator-always-on;
846				regulator-boot-on;
847				regulator-min-microvolt = <550000>;
848				regulator-max-microvolt = <950000>;
849				regulator-ramp-delay = <12500>;
850
851				regulator-state-mem {
852					regulator-off-in-suspend;
853				};
854			};
855
856			vcc_3v3_s0: dcdc-reg4 {
857				regulator-name = "vcc_3v3_s0";
858				regulator-always-on;
859				regulator-boot-on;
860				regulator-min-microvolt = <3300000>;
861				regulator-max-microvolt = <3300000>;
862				regulator-ramp-delay = <12500>;
863
864				regulator-state-mem {
865					regulator-off-in-suspend;
866				};
867			};
868
869			vdd_cpu_big1_mem_s0: dcdc-reg5 {
870				regulator-name = "vdd_cpu_big1_mem_s0";
871				regulator-always-on;
872				regulator-boot-on;
873				regulator-min-microvolt = <675000>;
874				regulator-max-microvolt = <1050000>;
875				regulator-ramp-delay = <12500>;
876
877				regulator-state-mem {
878					regulator-off-in-suspend;
879				};
880			};
881
882
883			vdd_cpu_big0_mem_s0: dcdc-reg6 {
884				regulator-name = "vdd_cpu_big0_mem_s0";
885				regulator-always-on;
886				regulator-boot-on;
887				regulator-min-microvolt = <675000>;
888				regulator-max-microvolt = <1050000>;
889				regulator-ramp-delay = <12500>;
890
891				regulator-state-mem {
892					regulator-off-in-suspend;
893				};
894			};
895
896			vcc_1v8_s0: dcdc-reg7 {
897				regulator-name = "vcc_1v8_s0";
898				regulator-always-on;
899				regulator-boot-on;
900				regulator-min-microvolt = <1800000>;
901				regulator-max-microvolt = <1800000>;
902				regulator-ramp-delay = <12500>;
903
904				regulator-state-mem {
905					regulator-off-in-suspend;
906				};
907			};
908
909			vdd_cpu_lit_mem_s0: dcdc-reg8 {
910				regulator-name = "vdd_cpu_lit_mem_s0";
911				regulator-always-on;
912				regulator-boot-on;
913				regulator-min-microvolt = <675000>;
914				regulator-max-microvolt = <950000>;
915				regulator-ramp-delay = <12500>;
916
917				regulator-state-mem {
918					regulator-off-in-suspend;
919				};
920			};
921
922			vddq_ddr_s0: dcdc-reg9 {
923				regulator-name = "vddq_ddr_s0";
924				regulator-always-on;
925				regulator-boot-on;
926
927				regulator-state-mem {
928					regulator-off-in-suspend;
929				};
930			};
931
932			vdd_ddr_s0: dcdc-reg10 {
933				regulator-name = "vdd_ddr_s0";
934				regulator-always-on;
935				regulator-boot-on;
936				regulator-min-microvolt = <675000>;
937				regulator-max-microvolt = <900000>;
938				regulator-ramp-delay = <12500>;
939
940				regulator-state-mem {
941					regulator-off-in-suspend;
942				};
943			};
944
945			/* reserved, unused? */
946			vcc_1v8_cam_s0: pldo-reg1 {
947				regulator-name = "vcc_1v8_cam_s0";
948				regulator-always-on;
949				regulator-boot-on;
950				regulator-min-microvolt = <1800000>;
951				regulator-max-microvolt = <1800000>;
952				regulator-ramp-delay = <12500>;
953
954				regulator-state-mem {
955					regulator-off-in-suspend;
956				};
957			};
958
959			avdd1v8_ddr_pll_s0: pldo-reg2 {
960				regulator-name = "avdd1v8_ddr_pll_s0";
961				regulator-always-on;
962				regulator-boot-on;
963				regulator-min-microvolt = <1800000>;
964				regulator-max-microvolt = <1800000>;
965				regulator-ramp-delay = <12500>;
966
967				regulator-state-mem {
968					regulator-off-in-suspend;
969				};
970			};
971
972			vdd_1v8_pll_s0: pldo-reg3 {
973				regulator-name = "vdd_1v8_pll_s0";
974				regulator-always-on;
975				regulator-boot-on;
976				regulator-min-microvolt = <1800000>;
977				regulator-max-microvolt = <1800000>;
978				regulator-ramp-delay = <12500>;
979
980				regulator-state-mem {
981					regulator-off-in-suspend;
982				};
983			};
984
985			/* reserved, unused? */
986			vcc_3v3_sd_s0: pldo-reg4 {
987				regulator-name = "vcc_3v3_sd_s0";
988				regulator-always-on;
989				regulator-boot-on;
990				regulator-min-microvolt = <3300000>;
991				regulator-max-microvolt = <3300000>;
992				regulator-ramp-delay = <12500>;
993
994				regulator-state-mem {
995					regulator-off-in-suspend;
996				};
997			};
998
999			/* reserved, unused? */
1000			vcc_2v8_cam_s0: pldo-reg5 {
1001				regulator-name = "vcc_2v8_cam_s0";
1002				regulator-always-on;
1003				regulator-boot-on;
1004				regulator-min-microvolt = <2800000>;
1005				regulator-max-microvolt = <2800000>;
1006				regulator-ramp-delay = <12500>;
1007
1008				regulator-state-mem {
1009					regulator-off-in-suspend;
1010				};
1011			};
1012
1013			/* unused */
1014			pldo6_s3: pldo-reg6 {
1015				regulator-name = "pldo6_s3";
1016				regulator-always-on;
1017				regulator-boot-on;
1018				regulator-min-microvolt = <1800000>;
1019				regulator-max-microvolt = <1800000>;
1020
1021				regulator-state-mem {
1022					regulator-on-in-suspend;
1023					regulator-suspend-microvolt = <1800000>;
1024				};
1025			};
1026
1027			vdd_0v75_pll_s0: nldo-reg1 {
1028				regulator-name = "vdd_0v75_pll_s0";
1029				regulator-always-on;
1030				regulator-boot-on;
1031				regulator-min-microvolt = <750000>;
1032				regulator-max-microvolt = <750000>;
1033				regulator-ramp-delay = <12500>;
1034
1035				regulator-state-mem {
1036					regulator-off-in-suspend;
1037				};
1038			};
1039
1040			vdd_ddr_pll_s0: nldo-reg2 {
1041				regulator-name = "vdd_ddr_pll_s0";
1042				regulator-always-on;
1043				regulator-boot-on;
1044				regulator-min-microvolt = <850000>;
1045				regulator-max-microvolt = <850000>;
1046
1047				regulator-state-mem {
1048					regulator-off-in-suspend;
1049				};
1050			};
1051
1052			avdd_0v85_s0: nldo-reg3 {
1053				regulator-name = "avdd_0v85_s0";
1054				regulator-always-on;
1055				regulator-boot-on;
1056				regulator-min-microvolt = <850000>;
1057				regulator-max-microvolt = <850000>;
1058				regulator-ramp-delay = <12500>;
1059
1060				regulator-state-mem {
1061					regulator-off-in-suspend;
1062				};
1063			};
1064
1065			/* reserved, unused */
1066			avdd_1v2_cam_s0: nldo-reg4 {
1067				regulator-name = "avdd_1v2_cam_s0";
1068				regulator-always-on;
1069				regulator-boot-on;
1070				regulator-min-microvolt = <1200000>;
1071				regulator-max-microvolt = <1200000>;
1072				regulator-ramp-delay = <12500>;
1073
1074				regulator-state-mem {
1075					regulator-off-in-suspend;
1076				};
1077			};
1078
1079			avdd_1v2_s0: nldo-reg5 {
1080				regulator-name = "avdd_1v2_s0";
1081				regulator-always-on;
1082				regulator-boot-on;
1083				regulator-min-microvolt = <1200000>;
1084				regulator-max-microvolt = <1200000>;
1085				regulator-ramp-delay = <12500>;
1086
1087				regulator-state-mem {
1088					regulator-off-in-suspend;
1089				};
1090			};
1091		};
1092	};
1093};
1094
1095&tsadc {
1096	status = "okay";
1097};
1098
1099&u2phy2 {
1100	status = "okay";
1101};
1102
1103&u2phy2_host {
1104	phy-supply = <&vcc5v0_host>;
1105	status = "okay";
1106};
1107
1108&u2phy3 {
1109	status = "okay";
1110};
1111
1112&u2phy3_host {
1113	phy-supply = <&vcc5v0_host>;
1114	status = "okay";
1115};
1116
1117&uart2 {
1118	pinctrl-names = "default";
1119	pinctrl-0 = <&uart2m0_xfer>;
1120	status = "okay";
1121};
1122
1123&usb_host0_ehci {
1124	status = "okay";
1125};
1126
1127&usb_host0_ohci {
1128	status = "okay";
1129};
1130
1131&usb_host1_ehci {
1132	status = "okay";
1133};
1134
1135&usb_host1_ohci {
1136	status = "okay";
1137};
1138