1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/linux-event-codes.h>
7#include <dt-bindings/leds/common.h>
8#include <dt-bindings/pinctrl/rockchip.h>
9#include <dt-bindings/soc/rockchip,vop2.h>
10#include "rk3566.dtsi"
11
12/ {
13	chosen: chosen {
14		stdout-path = "serial2:1500000n8";
15	};
16
17	adc-joystick {
18		compatible = "adc-joystick";
19		io-channels = <&adc_mux 0>,
20			      <&adc_mux 1>,
21			      <&adc_mux 2>,
22			      <&adc_mux 3>;
23		pinctrl-0 = <&joy_mux_en>;
24		pinctrl-names = "default";
25		#address-cells = <1>;
26		#size-cells = <0>;
27
28		axis@0 {
29			reg = <0>;
30			abs-flat = <32>;
31			abs-fuzz = <32>;
32			abs-range = <1023 15>;
33			linux,code = <ABS_X>;
34		};
35
36		axis@1 {
37			reg = <1>;
38			abs-flat = <32>;
39			abs-fuzz = <32>;
40			abs-range = <15 1023>;
41			linux,code = <ABS_RX>;
42		};
43
44		axis@2 {
45			reg = <2>;
46			abs-flat = <32>;
47			abs-fuzz = <32>;
48			abs-range = <15 1023>;
49			linux,code = <ABS_Y>;
50		};
51
52		axis@3 {
53			reg = <3>;
54			abs-flat = <32>;
55			abs-fuzz = <32>;
56			abs-range = <1023 15>;
57			linux,code = <ABS_RY>;
58		};
59	};
60
61	adc_keys: adc-keys {
62		compatible = "adc-keys";
63		io-channels = <&saradc 0>;
64		io-channel-names = "buttons";
65		keyup-threshold-microvolt = <1800000>;
66		poll-interval = <60>;
67
68		/*
69		 * Button is mapped to F key in BSP kernel, but
70		 * according to input guidelines it should be mode.
71		 */
72		button-mode {
73			label = "MODE";
74			linux,code = <BTN_MODE>;
75			press-threshold-microvolt = <1750>;
76		};
77	};
78
79	adc_mux: adc-mux {
80		compatible = "io-channel-mux";
81		channels = "left_x", "right_x", "left_y", "right_y";
82		#io-channel-cells = <1>;
83		io-channels = <&saradc 3>;
84		io-channel-names = "parent";
85		mux-controls = <&gpio_mux>;
86		settle-time-us = <100>;
87	};
88
89	gpio_keys_control: gpio-keys-control {
90		compatible = "gpio-keys";
91		pinctrl-0 = <&btn_pins_ctrl>;
92		pinctrl-names = "default";
93
94		button-b {
95			gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
96			label = "SOUTH";
97			linux,code = <BTN_SOUTH>;
98		};
99
100		button-down {
101			gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
102			label = "DPAD-DOWN";
103			linux,code = <BTN_DPAD_DOWN>;
104		};
105
106		button-l1 {
107			gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
108			label = "TL";
109			linux,code = <BTN_TL>;
110		};
111
112		button-l2 {
113			gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
114			label = "TL2";
115			linux,code = <BTN_TL2>;
116		};
117
118		button-select {
119			gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
120			label = "SELECT";
121			linux,code = <BTN_SELECT>;
122		};
123
124		button-start {
125			gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
126			label = "START";
127			linux,code = <BTN_START>;
128		};
129
130		button-thumbl {
131			gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
132			label = "THUMBL";
133			linux,code = <BTN_THUMBL>;
134		};
135
136		button-thumbr {
137			gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
138			label = "THUMBR";
139			linux,code = <BTN_THUMBR>;
140		};
141
142		button-up {
143			gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
144			label = "DPAD-UP";
145			linux,code = <BTN_DPAD_UP>;
146		};
147
148		button-x {
149			gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
150			label = "NORTH";
151			linux,code = <BTN_NORTH>;
152		};
153	};
154
155	gpio_keys_vol: gpio-keys-vol {
156		compatible = "gpio-keys";
157		autorepeat;
158		pinctrl-0 = <&btn_pins_vol>;
159		pinctrl-names = "default";
160
161		button-vol-down {
162			gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
163			label = "VOLUMEDOWN";
164			linux,code = <KEY_VOLUMEDOWN>;
165		};
166
167		button-vol-up {
168			gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
169			label = "VOLUMEUP";
170			linux,code = <KEY_VOLUMEUP>;
171		};
172	};
173
174	gpio_mux: mux-controller {
175		compatible = "gpio-mux";
176		mux-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>,
177			    <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
178		#mux-control-cells = <0>;
179	};
180
181	hdmi-con {
182		compatible = "hdmi-connector";
183		ddc-i2c-bus = <&i2c5>;
184		type = "c";
185
186		port {
187			hdmi_con_in: endpoint {
188				remote-endpoint = <&hdmi_out_con>;
189			};
190		};
191	};
192
193	leds: gpio-leds {
194		compatible = "gpio-leds";
195		pinctrl-0 = <&led_pins>;
196		pinctrl-names = "default";
197
198		green_led: led-0 {
199			color = <LED_COLOR_ID_GREEN>;
200			default-state = "on";
201			function = LED_FUNCTION_POWER;
202			gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
203		};
204
205		amber_led: led-1 {
206			color = <LED_COLOR_ID_AMBER>;
207			function = LED_FUNCTION_CHARGING;
208			gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
209			retain-state-suspended;
210		};
211
212		red_led: led-2 {
213			color = <LED_COLOR_ID_RED>;
214			default-state = "off";
215			function = LED_FUNCTION_STATUS;
216			gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
217		};
218	};
219
220	/* Channels reversed for both headphones and speakers. */
221	sound {
222		compatible = "simple-audio-card";
223		simple-audio-card,name = "anbernic_rk817";
224		simple-audio-card,aux-devs = <&spk_amp>;
225		simple-audio-card,format = "i2s";
226		simple-audio-card,hp-det-gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
227		simple-audio-card,mclk-fs = <256>;
228		simple-audio-card,widgets =
229			"Microphone", "Mic Jack",
230			"Headphone", "Headphones",
231			"Speaker", "Internal Speakers";
232		simple-audio-card,routing =
233			"MICL", "Mic Jack",
234			"Headphones", "HPOL",
235			"Headphones", "HPOR",
236			"Internal Speakers", "Speaker Amp OUTL",
237			"Internal Speakers", "Speaker Amp OUTR",
238			"Speaker Amp INL", "HPOL",
239			"Speaker Amp INR", "HPOR";
240		simple-audio-card,pin-switches = "Internal Speakers";
241
242		simple-audio-card,codec {
243			sound-dai = <&rk817>;
244		};
245
246		simple-audio-card,cpu {
247			sound-dai = <&i2s1_8ch>;
248		};
249	};
250
251	sdio_pwrseq: sdio-pwrseq {
252		compatible = "mmc-pwrseq-simple";
253		clocks = <&rk817 1>;
254		clock-names = "ext_clock";
255		pinctrl-0 = <&wifi_enable_h>;
256		pinctrl-names = "default";
257		post-power-on-delay-ms = <200>;
258		reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
259	};
260
261	spk_amp: audio-amplifier {
262		compatible = "simple-audio-amplifier";
263		enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
264		pinctrl-0 = <&spk_amp_enable_h>;
265		pinctrl-names = "default";
266		sound-name-prefix = "Speaker Amp";
267	};
268
269	vcc3v3_lcd0_n: regulator-vcc3v3-lcd0 {
270		compatible = "regulator-fixed";
271		gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
272		enable-active-high;
273		pinctrl-0 = <&vcc_lcd_h>;
274		pinctrl-names = "default";
275		regulator-boot-on;
276		regulator-min-microvolt = <3300000>;
277		regulator-max-microvolt = <3300000>;
278		regulator-name = "vcc3v3_lcd0_n";
279		vin-supply = <&vcc_3v3>;
280		regulator-state-mem {
281			regulator-off-in-suspend;
282		};
283	};
284
285	vcc_sys: regulator-vcc-sys {
286		compatible = "regulator-fixed";
287		regulator-always-on;
288		regulator-boot-on;
289		regulator-min-microvolt = <3800000>;
290		regulator-max-microvolt = <3800000>;
291		regulator-name = "vcc_sys";
292	};
293
294	vcc_wifi: regulator-vcc-wifi {
295		compatible = "regulator-fixed";
296		enable-active-high;
297		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
298		pinctrl-0 = <&vcc_wifi_h>;
299		pinctrl-names = "default";
300		regulator-always-on;
301		regulator-boot-on;
302		regulator-min-microvolt = <3300000>;
303		regulator-max-microvolt = <3300000>;
304		regulator-name = "vcc_wifi";
305	};
306
307	vibrator: pwm-vibrator {
308		compatible = "pwm-vibrator";
309		pwm-names = "enable";
310		pwms = <&pwm5 0 1000000000 0>;
311	};
312};
313
314&combphy1 {
315	status = "okay";
316};
317
318&cpu0 {
319	cpu-supply = <&vdd_cpu>;
320};
321
322&cpu1 {
323	cpu-supply = <&vdd_cpu>;
324};
325
326&cpu2 {
327	cpu-supply = <&vdd_cpu>;
328};
329
330&cpu3 {
331	cpu-supply = <&vdd_cpu>;
332};
333
334&gpu {
335	mali-supply = <&vdd_gpu>;
336	status = "okay";
337};
338
339&hdmi {
340	ddc-i2c-bus = <&i2c5>;
341	pinctrl-0 = <&hdmitxm0_cec>;
342	pinctrl-names = "default";
343	status = "okay";
344};
345
346&hdmi_in {
347	hdmi_in_vp0: endpoint {
348		remote-endpoint = <&vp0_out_hdmi>;
349	};
350};
351
352&hdmi_out {
353	hdmi_out_con: endpoint {
354		remote-endpoint = <&hdmi_con_in>;
355	};
356};
357
358&hdmi_sound {
359	status = "okay";
360};
361
362&i2c0 {
363	status = "okay";
364
365	rk817: pmic@20 {
366		compatible = "rockchip,rk817";
367		reg = <0x20>;
368		interrupt-parent = <&gpio0>;
369		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
370		clock-output-names = "rk808-clkout1", "rk808-clkout2";
371		clock-names = "mclk";
372		clocks = <&cru I2S1_MCLKOUT_TX>;
373		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
374		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
375		#clock-cells = <1>;
376		#sound-dai-cells = <0>;
377		pinctrl-names = "default";
378		pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
379		wakeup-source;
380
381		vcc1-supply = <&vcc_sys>;
382		vcc2-supply = <&vcc_sys>;
383		vcc3-supply = <&vcc_sys>;
384		vcc4-supply = <&vcc_sys>;
385		vcc5-supply = <&vcc_sys>;
386		vcc6-supply = <&vcc_sys>;
387		vcc7-supply = <&vcc_sys>;
388		vcc8-supply = <&vcc_sys>;
389		vcc9-supply = <&dcdc_boost>;
390
391		regulators {
392			vdd_logic: DCDC_REG1 {
393				regulator-always-on;
394				regulator-boot-on;
395				regulator-min-microvolt = <500000>;
396				regulator-max-microvolt = <1350000>;
397				regulator-init-microvolt = <900000>;
398				regulator-ramp-delay = <6001>;
399				regulator-initial-mode = <0x2>;
400				regulator-name = "vdd_logic";
401				regulator-state-mem {
402					regulator-off-in-suspend;
403					regulator-suspend-microvolt = <900000>;
404				};
405			};
406
407			vdd_gpu: DCDC_REG2 {
408				regulator-always-on;
409				regulator-boot-on;
410				regulator-min-microvolt = <500000>;
411				regulator-max-microvolt = <1350000>;
412				regulator-init-microvolt = <900000>;
413				regulator-ramp-delay = <6001>;
414				regulator-initial-mode = <0x2>;
415				regulator-name = "vdd_gpu";
416				regulator-state-mem {
417					regulator-off-in-suspend;
418				};
419			};
420
421			vcc_ddr: DCDC_REG3 {
422				regulator-always-on;
423				regulator-boot-on;
424				regulator-initial-mode = <0x2>;
425				regulator-name = "vcc_ddr";
426				regulator-state-mem {
427					regulator-on-in-suspend;
428				};
429			};
430
431			vcc_3v3: DCDC_REG4 {
432				regulator-always-on;
433				regulator-boot-on;
434				regulator-min-microvolt = <3300000>;
435				regulator-max-microvolt = <3300000>;
436				regulator-initial-mode = <0x2>;
437				regulator-name = "vcc_3v3";
438				regulator-state-mem {
439					regulator-on-in-suspend;
440					regulator-suspend-microvolt = <3300000>;
441				};
442			};
443
444			vcca1v8_pmu: LDO_REG1 {
445				regulator-always-on;
446				regulator-boot-on;
447				regulator-min-microvolt = <1800000>;
448				regulator-max-microvolt = <1800000>;
449				regulator-name = "vcca1v8_pmu";
450				regulator-state-mem {
451					regulator-on-in-suspend;
452					regulator-suspend-microvolt = <1800000>;
453				};
454			};
455
456			vdda_0v9: LDO_REG2 {
457				regulator-always-on;
458				regulator-boot-on;
459				regulator-min-microvolt = <900000>;
460				regulator-max-microvolt = <900000>;
461				regulator-name = "vdda_0v9";
462				regulator-state-mem {
463					regulator-off-in-suspend;
464				};
465			};
466
467			vdda0v9_pmu: LDO_REG3 {
468				regulator-always-on;
469				regulator-boot-on;
470				regulator-min-microvolt = <900000>;
471				regulator-max-microvolt = <900000>;
472				regulator-name = "vdda0v9_pmu";
473				regulator-state-mem {
474					regulator-on-in-suspend;
475					regulator-suspend-microvolt = <900000>;
476				};
477			};
478
479			vccio_acodec: LDO_REG4 {
480				regulator-always-on;
481				regulator-boot-on;
482				regulator-min-microvolt = <3300000>;
483				regulator-max-microvolt = <3300000>;
484				regulator-name = "vccio_acodec";
485				regulator-state-mem {
486					regulator-off-in-suspend;
487				};
488			};
489
490			vccio_sd: LDO_REG5 {
491				regulator-always-on;
492				regulator-boot-on;
493				regulator-min-microvolt = <1800000>;
494				regulator-max-microvolt = <3300000>;
495				regulator-name = "vccio_sd";
496				regulator-state-mem {
497					regulator-off-in-suspend;
498				};
499			};
500
501			vcc3v3_pmu: LDO_REG6 {
502				regulator-always-on;
503				regulator-boot-on;
504				regulator-min-microvolt = <3300000>;
505				regulator-max-microvolt = <3300000>;
506				regulator-name = "vcc3v3_pmu";
507				regulator-state-mem {
508					regulator-on-in-suspend;
509					regulator-suspend-microvolt = <3300000>;
510				};
511			};
512
513			vcc_1v8: LDO_REG7 {
514				regulator-always-on;
515				regulator-boot-on;
516				regulator-min-microvolt = <1800000>;
517				regulator-max-microvolt = <1800000>;
518				regulator-name = "vcc_1v8";
519				regulator-state-mem {
520					regulator-off-in-suspend;
521				};
522			};
523
524			vcc1v8_dvp: LDO_REG8 {
525				regulator-always-on;
526				regulator-boot-on;
527				regulator-min-microvolt = <1800000>;
528				regulator-max-microvolt = <3300000>;
529				regulator-name = "vcc1v8_dvp";
530				regulator-state-mem {
531					regulator-off-in-suspend;
532				};
533			};
534
535			vcc2v8_dvp: LDO_REG9 {
536				regulator-always-on;
537				regulator-boot-on;
538				regulator-min-microvolt = <2800000>;
539				regulator-max-microvolt = <2800000>;
540				regulator-name = "vcc2v8_dvp";
541				regulator-state-mem {
542					regulator-off-in-suspend;
543				};
544			};
545
546			dcdc_boost: BOOST {
547				regulator-always-on;
548				regulator-boot-on;
549				regulator-min-microvolt = <4700000>;
550				regulator-max-microvolt = <5400000>;
551				regulator-name = "boost";
552				regulator-state-mem {
553					regulator-off-in-suspend;
554				};
555			};
556
557			otg_switch: OTG_SWITCH {
558				regulator-name = "otg_switch";
559				regulator-state-mem {
560					regulator-off-in-suspend;
561				};
562			};
563		};
564	};
565
566	vdd_cpu: regulator@40 {
567		compatible = "fcs,fan53555";
568		reg = <0x40>;
569		fcs,suspend-voltage-selector = <1>;
570		regulator-always-on;
571		regulator-boot-on;
572		regulator-min-microvolt = <712500>;
573		regulator-max-microvolt = <1390000>;
574		regulator-init-microvolt = <900000>;
575		regulator-name = "vdd_cpu";
576		regulator-ramp-delay = <2300>;
577		vin-supply = <&vcc_sys>;
578		regulator-state-mem {
579			regulator-off-in-suspend;
580		};
581	};
582};
583
584&i2c1 {
585	/* Unknown/unused device at 0x3c */
586	status = "disabled";
587};
588
589&i2c5 {
590	pinctrl-0 = <&i2c5m1_xfer>;
591	pinctrl-names = "default";
592	status = "okay";
593};
594
595&i2s0_8ch {
596	status = "okay";
597};
598
599&i2s1_8ch {
600	pinctrl-0 = <&i2s1m0_sclktx
601		     &i2s1m0_lrcktx
602		     &i2s1m0_sdi0
603		     &i2s1m0_sdo0>;
604	pinctrl-names = "default";
605	rockchip,trcm-sync-tx-only;
606	status = "okay";
607};
608
609&pinctrl {
610	audio-amplifier {
611		spk_amp_enable_h: spk-amp-enable-h {
612			rockchip,pins =
613				<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
614		};
615	};
616
617	gpio-btns {
618		btn_pins_ctrl: btn-pins-ctrl {
619			rockchip,pins =
620				<3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
621				<3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
622				<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
623				<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
624				<3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
625				<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
626				<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
627				<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
628				<3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
629				<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
630				<3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
631				<3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
632				<3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>,
633				<3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
634				<3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>,
635				<3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
636		};
637
638		btn_pins_vol: btn-pins-vol {
639			rockchip,pins =
640			<3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
641			<3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
642		};
643	};
644
645	gpio-led {
646		led_pins: led-pins {
647			rockchip,pins =
648				<0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>,
649				<0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>,
650				<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
651		};
652	};
653
654	joy-mux {
655		joy_mux_en: joy-mux-en {
656			rockchip,pins =
657				<0 RK_PB5 RK_FUNC_GPIO &pcfg_output_low>;
658		};
659	};
660
661	pmic {
662		pmic_int_l: pmic-int-l {
663			rockchip,pins =
664				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
665		};
666	};
667
668	sdio-pwrseq {
669		wifi_enable_h: wifi-enable-h {
670			rockchip,pins =
671				<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
672		};
673	};
674
675	vcc3v3-lcd {
676		vcc_lcd_h: vcc-lcd-h {
677			rockchip,pins =
678				<0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
679		};
680	};
681
682	vcc-wifi {
683		vcc_wifi_h: vcc-wifi-h {
684			rockchip,pins =
685				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
686		};
687	};
688};
689
690&pmu_io_domains {
691	status = "okay";
692	pmuio1-supply = <&vcc3v3_pmu>;
693	pmuio2-supply = <&vcc3v3_pmu>;
694	vccio1-supply = <&vccio_acodec>;
695	vccio3-supply = <&vccio_sd>;
696	vccio4-supply = <&vcc_1v8>;
697	vccio5-supply = <&vcc_3v3>;
698	vccio6-supply = <&vcc1v8_dvp>;
699	vccio7-supply = <&vcc_3v3>;
700};
701
702&pwm5 {
703	status = "okay";
704};
705
706&saradc {
707	vref-supply = <&vcc_1v8>;
708	status = "okay";
709};
710
711&sdmmc0 {
712	bus-width = <4>;
713	cap-sd-highspeed;
714	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
715	disable-wp;
716	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
717	pinctrl-names = "default";
718	sd-uhs-sdr104;
719	vmmc-supply = <&vcc_3v3>;
720	vqmmc-supply = <&vccio_sd>;
721	status = "okay";
722};
723
724&sdmmc1 {
725	bus-width = <4>;
726	cap-sd-highspeed;
727	cd-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
728	disable-wp;
729	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &sdmmc1_det>;
730	pinctrl-names = "default";
731	sd-uhs-sdr104;
732	vmmc-supply = <&vcc_3v3>;
733	vqmmc-supply = <&vcc1v8_dvp>;
734	status = "okay";
735};
736
737&sdmmc2 {
738	bus-width = <4>;
739	cap-sd-highspeed;
740	cap-sdio-irq;
741	keep-power-in-suspend;
742	mmc-pwrseq = <&sdio_pwrseq>;
743	non-removable;
744	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
745	pinctrl-names = "default";
746	vmmc-supply = <&vcc_wifi>;
747	vqmmc-supply = <&vcca1v8_pmu>;
748	status = "okay";
749};
750
751&tsadc {
752	rockchip,hw-tshut-mode = <1>;
753	rockchip,hw-tshut-polarity = <0>;
754	status = "okay";
755};
756
757&uart1 {
758	pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>;
759	pinctrl-names = "default";
760	uart-has-rtscts;
761	status = "okay";
762
763	bluetooth {
764		compatible = "realtek,rtl8821cs-bt";
765		device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
766		enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
767		host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
768	};
769};
770
771&uart2 {
772	status = "okay";
773};
774
775/*
776 * Lack the schematics to verify, but port works as a peripheral
777 * (and not a host or OTG port).
778 */
779&usb_host0_xhci {
780	dr_mode = "peripheral";
781	phys = <&usb2phy0_otg>;
782	phy-names = "usb2-phy";
783	status = "okay";
784};
785
786&usb_host1_ehci {
787	status = "okay";
788};
789
790&usb_host1_ohci {
791	status = "okay";
792};
793
794&usb_host1_xhci {
795	phy-names = "usb2-phy", "usb3-phy";
796	phys = <&usb2phy1_host>, <&combphy1 PHY_TYPE_USB3>;
797	status = "okay";
798};
799
800&usb2phy0 {
801	status = "okay";
802};
803
804&usb2phy0_otg {
805	status = "okay";
806};
807
808&usb2phy1 {
809	status = "okay";
810};
811
812&usb2phy1_host {
813	status = "okay";
814};
815
816&vop {
817	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
818	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
819	status = "okay";
820};
821
822&vop_mmu {
823	status = "okay";
824};
825
826&vp0 {
827	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
828		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
829		remote-endpoint = <&hdmi_in_vp0>;
830	};
831};
832