xref: /linux/arch/arm64/boot/dts/rockchip/rk3566-powkiddy-x55.dts (revision 55d0969c451159cff86949b38c39171cab962069)
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	model = "Powkiddy x55";
14	chassis-type = "handset";
15	compatible = "powkiddy,x55", "rockchip,rk3566";
16
17	aliases {
18		mmc0 = &sdhci;
19		mmc1 = &sdmmc0;
20		mmc2 = &sdmmc2;
21		mmc3 = &sdmmc1;
22	};
23
24	chosen: chosen {
25		stdout-path = "serial2:1500000n8";
26	};
27
28	adc_joystick: adc-joystick {
29		compatible = "adc-joystick";
30		io-channels = <&saradc 0>, <&saradc 1>,
31			      <&saradc 2>, <&saradc 3>;
32		poll-interval = <60>;
33		#address-cells = <1>;
34		#size-cells = <0>;
35
36		axis@0 {
37			reg = <0>;
38			abs-flat = <30>;
39			abs-fuzz = <20>;
40			abs-range = <15 1023>;
41			linux,code = <ABS_X>;
42		};
43
44		axis@1 {
45			reg = <1>;
46			abs-flat = <30>;
47			abs-fuzz = <20>;
48			abs-range = <1023 15>;
49			linux,code = <ABS_Y>;
50		};
51
52		axis@2 {
53			reg = <2>;
54			abs-flat = <30>;
55			abs-fuzz = <20>;
56			abs-range = <15 1023>;
57			linux,code = <ABS_RX>;
58		};
59
60		axis@3 {
61			reg = <3>;
62			abs-flat = <30>;
63			abs-fuzz = <20>;
64			abs-range = <1023 15>;
65			linux,code = <ABS_RY>;
66		};
67	};
68
69	backlight: backlight {
70		compatible = "pwm-backlight";
71		power-supply = <&vcc_sys>;
72		pwms = <&pwm4 0 25000 0>;
73	};
74
75	battery: battery {
76		compatible = "simple-battery";
77		charge-full-design-microamp-hours = <4000000>;
78		charge-term-current-microamp = <300000>;
79		constant-charge-current-max-microamp = <2000000>;
80		constant-charge-voltage-max-microvolt = <4300000>;
81		factory-internal-resistance-micro-ohms = <91000>;
82		voltage-max-design-microvolt = <4138000>;
83		voltage-min-design-microvolt = <3400000>;
84
85		ocv-capacity-celsius = <20>;
86		ocv-capacity-table-0 =  <4138000 100>, <4083000 95>, <4059000 90>, <4044000 85>,
87					<4030000 80>, <4020000 75>, <4006000 70>, <3972000 65>,
88					<3934000 60>, <3904000 55>, <3878000 50>, <3857000 45>,
89					<3843000 40>, <3826000 35>, <3801000 30>, <3768000 25>,
90					<3735000 20>, <3688000 15>, <3621000 10>, <3553000 5>,
91					<3400000 0>;
92	};
93
94	gpio_keys_control: gpio-keys-control {
95		compatible = "gpio-keys";
96		pinctrl-0 = <&btn_pins_ctrl>;
97		pinctrl-names = "default";
98
99		button-a {
100			gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_LOW>;
101			label = "EAST";
102			linux,code = <BTN_EAST>;
103		};
104
105		button-b {
106			gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
107			label = "SOUTH";
108			linux,code = <BTN_SOUTH>;
109		};
110
111		button-down {
112			gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>;
113			label = "DPAD-DOWN";
114			linux,code = <BTN_DPAD_DOWN>;
115		};
116
117		button-l1 {
118			gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
119			label = "TL";
120			linux,code = <BTN_TL>;
121		};
122
123		button-l2 {
124			gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>;
125			label = "TL2";
126			linux,code = <BTN_TL2>;
127		};
128
129		button-left {
130			gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;
131			label = "DPAD-LEFT";
132			linux,code = <BTN_DPAD_LEFT>;
133		};
134
135		button-right {
136			gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_LOW>;
137			label = "DPAD-RIGHT";
138			linux,code = <BTN_DPAD_RIGHT>;
139		};
140
141		button-select {
142			gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
143			label = "SELECT";
144			linux,code = <BTN_SELECT>;
145		};
146
147		button-start {
148			gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
149			label = "START";
150			linux,code = <BTN_START>;
151		};
152
153		button-thumbl {
154			gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
155			label = "THUMBL";
156			linux,code = <BTN_THUMBL>;
157		};
158
159		button-thumbr {
160			gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
161			label = "THUMBR";
162			linux,code = <BTN_THUMBR>;
163		};
164
165		button-r1 {
166			gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
167			label = "TR";
168			linux,code = <BTN_TR>;
169		};
170
171		button-r2 {
172			gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_LOW>;
173			label = "TR2";
174			linux,code = <BTN_TR2>;
175		};
176
177		button-up {
178			gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
179			label = "DPAD-UP";
180			linux,code = <BTN_DPAD_UP>;
181		};
182
183		button-x {
184			gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
185			label = "NORTH";
186			linux,code = <BTN_NORTH>;
187		};
188
189		button-y {
190			gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
191			label = "WEST";
192			linux,code = <BTN_WEST>;
193		};
194	};
195
196	gpio_keys_vol: gpio-keys-vol {
197		compatible = "gpio-keys";
198		autorepeat;
199		pinctrl-0 = <&btn_pins_vol>;
200		pinctrl-names = "default";
201
202		button-voldown {
203			gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
204			label = "VOLUMEDOWN";
205			linux,code = <KEY_VOLUMEDOWN>;
206		};
207
208		button-volup {
209			gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
210			label = "VOLUMEUP";
211			linux,code = <KEY_VOLUMEUP>;
212		};
213	};
214
215	gpio_leds: gpio-leds {
216		compatible = "gpio-leds";
217		pinctrl-names = "default";
218		pinctrl-0 = <&led_pins>;
219
220		red_led: led-0 {
221			color = <LED_COLOR_ID_RED>;
222			default-state = "off";
223			gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
224			function = LED_FUNCTION_STATUS;
225		};
226
227		green_led: led-1 {
228			color = <LED_COLOR_ID_GREEN>;
229			default-state = "on";
230			gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
231			function = LED_FUNCTION_POWER;
232		};
233
234		amber_led: led-2 {
235			color = <LED_COLOR_ID_AMBER>;
236			gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
237			function = LED_FUNCTION_CHARGING;
238		};
239
240	};
241
242	hdmi-con {
243		compatible = "hdmi-connector";
244		ddc-i2c-bus = <&i2c5>;
245		type = "c";
246
247		port {
248			hdmi_con_in: endpoint {
249				remote-endpoint = <&hdmi_out_con>;
250			};
251		};
252	};
253
254	sdio_pwrseq: sdio-pwrseq {
255		compatible = "mmc-pwrseq-simple";
256		clocks = <&rk817 1>;
257		clock-names = "ext_clock";
258		pinctrl-0 = <&wifi_enable_h>;
259		pinctrl-names = "default";
260		post-power-on-delay-ms = <200>;
261		reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
262	};
263
264	/* Channels reversed for both headphones and speakers. */
265	sound {
266		compatible = "simple-audio-card";
267		pinctrl-0 = <&hp_det>;
268		pinctrl-names = "default";
269		simple-audio-card,name = "rk817_ext";
270		simple-audio-card,aux-devs = <&spk_amp>;
271		simple-audio-card,format = "i2s";
272		simple-audio-card,hp-det-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
273		simple-audio-card,mclk-fs = <256>;
274		simple-audio-card,widgets =
275			"Microphone", "Mic Jack",
276			"Headphone", "Headphones",
277			"Speaker", "Internal Speakers";
278		simple-audio-card,routing =
279			"MICL", "Mic Jack",
280			"Headphones", "HPOL",
281			"Headphones", "HPOR",
282			"Internal Speakers", "Speaker Amp OUTL",
283			"Internal Speakers", "Speaker Amp OUTR",
284			"Speaker Amp INL", "HPOL",
285			"Speaker Amp INR", "HPOR";
286		simple-audio-card,pin-switches = "Internal Speakers";
287
288		simple-audio-card,codec {
289			sound-dai = <&rk817>;
290		};
291
292		simple-audio-card,cpu {
293			sound-dai = <&i2s1_8ch>;
294		};
295	};
296
297	spk_amp: audio-amplifier {
298		compatible = "simple-audio-amplifier";
299		enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
300		pinctrl-0 = <&spk_amp_enable_h>;
301		pinctrl-names = "default";
302		sound-name-prefix = "Speaker Amp";
303	};
304
305	vcc5v0_host: regulator-vcc5v0-host {
306		compatible = "regulator-fixed";
307		enable-active-high;
308		gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
309		pinctrl-0 = <&vcc5v0_host_en>;
310		pinctrl-names = "default";
311		regulator-name = "vcc5v0_host";
312		vin-supply = <&dcdc_boost>;
313	};
314
315	vcc_lcd: regulator-vcc-lcd {
316		compatible = "regulator-fixed";
317		enable-active-high;
318		gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
319		pinctrl-0 = <&vcc_lcd_en>;
320		pinctrl-names = "default";
321		regulator-min-microvolt = <3300000>;
322		regulator-max-microvolt = <3300000>;
323		regulator-name = "vcc_lcd";
324	};
325
326	vcc_sys: regulator-vcc-sys {
327		compatible = "regulator-fixed";
328		regulator-always-on;
329		regulator-boot-on;
330		regulator-min-microvolt = <3800000>;
331		regulator-max-microvolt = <3800000>;
332		regulator-name = "vcc_sys";
333	};
334
335	vcc_wifi: regulator-vcc-wifi {
336		compatible = "regulator-fixed";
337		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
338		pinctrl-0 = <&vcc_wifi_h>;
339		pinctrl-names = "default";
340		regulator-min-microvolt = <3300000>;
341		regulator-max-microvolt = <3300000>;
342		regulator-name = "vcc_wifi";
343	};
344};
345
346&combphy1 {
347	status = "okay";
348};
349
350&cru {
351	assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
352			  <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
353	assigned-clock-rates = <32768>, <1200000000>,
354			       <200000000>, <126400000>;
355};
356
357&cpu0 {
358	cpu-supply = <&vdd_cpu>;
359};
360
361&cpu1 {
362	cpu-supply = <&vdd_cpu>;
363};
364
365&cpu2 {
366	cpu-supply = <&vdd_cpu>;
367};
368
369&cpu3 {
370	cpu-supply = <&vdd_cpu>;
371};
372
373&dsi_dphy0 {
374	status = "okay";
375};
376
377&dsi0 {
378	status = "okay";
379	#address-cells = <1>;
380	#size-cells = <0>;
381
382	ports {
383		dsi0_in: port@0 {
384			reg = <0>;
385			dsi0_in_vp1: endpoint {
386				remote-endpoint = <&vp1_out_dsi0>;
387			};
388		};
389
390		dsi0_out: port@1 {
391			reg = <1>;
392			mipi_out_panel: endpoint {
393				remote-endpoint = <&mipi_in_panel>;
394			};
395		};
396	};
397
398	panel: panel@0 {
399		compatible = "powkiddy,x55-panel", "himax,hx8394";
400		reg = <0>;
401		backlight = <&backlight>;
402		iovcc-supply = <&vcc_lcd>;
403		pinctrl-names = "default";
404		pinctrl-0 = <&lcd_rst>;
405		reset-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
406		rotation = <270>;
407		vcc-supply = <&vcc_lcd>;
408
409		port {
410			mipi_in_panel: endpoint {
411				remote-endpoint = <&mipi_out_panel>;
412			};
413		};
414	};
415};
416
417&gpu {
418	mali-supply = <&vdd_gpu>;
419	status = "okay";
420};
421
422&hdmi {
423	ddc-i2c-bus = <&i2c5>;
424	pinctrl-0 = <&hdmitxm0_cec>;
425	pinctrl-names = "default";
426	status = "okay";
427};
428
429&hdmi_in {
430	hdmi_in_vp0: endpoint {
431		remote-endpoint = <&vp0_out_hdmi>;
432	};
433};
434
435&hdmi_out {
436	hdmi_out_con: endpoint {
437		remote-endpoint = <&hdmi_con_in>;
438	};
439};
440
441&hdmi_sound {
442	status = "okay";
443};
444
445&i2c0 {
446	status = "okay";
447
448	rk817: pmic@20 {
449		compatible = "rockchip,rk817";
450		reg = <0x20>;
451		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
452		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
453		clock-names = "mclk";
454		clock-output-names = "rk808-clkout1", "rk808-clkout2";
455		clocks = <&cru I2S1_MCLKOUT_TX>;
456		interrupt-parent = <&gpio0>;
457		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
458		pinctrl-names = "default";
459		pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>;
460		wakeup-source;
461		#clock-cells = <1>;
462		#sound-dai-cells = <0>;
463
464		vcc1-supply = <&vcc_sys>;
465		vcc2-supply = <&vcc_sys>;
466		vcc3-supply = <&vcc_sys>;
467		vcc4-supply = <&vcc_sys>;
468		vcc5-supply = <&vcc_sys>;
469		vcc6-supply = <&vcc_sys>;
470		vcc7-supply = <&vcc_sys>;
471		vcc8-supply = <&vcc_sys>;
472		vcc9-supply = <&dcdc_boost>;
473
474		regulators {
475			vdd_logic: DCDC_REG1 {
476				regulator-always-on;
477				regulator-boot-on;
478				regulator-min-microvolt = <500000>;
479				regulator-max-microvolt = <1350000>;
480				regulator-ramp-delay = <6001>;
481				regulator-initial-mode = <0x2>;
482				regulator-name = "vdd_logic";
483				regulator-state-mem {
484					regulator-off-in-suspend;
485					regulator-suspend-microvolt = <900000>;
486				};
487			};
488
489			vdd_gpu: DCDC_REG2 {
490				regulator-always-on;
491				regulator-boot-on;
492				regulator-min-microvolt = <500000>;
493				regulator-max-microvolt = <1350000>;
494				regulator-ramp-delay = <6001>;
495				regulator-initial-mode = <0x2>;
496				regulator-name = "vdd_gpu";
497				regulator-state-mem {
498					regulator-off-in-suspend;
499				};
500			};
501
502			vcc_ddr: DCDC_REG3 {
503				regulator-always-on;
504				regulator-boot-on;
505				regulator-initial-mode = <0x2>;
506				regulator-name = "vcc_ddr";
507				regulator-state-mem {
508					regulator-on-in-suspend;
509				};
510			};
511
512			vcc_3v3: DCDC_REG4 {
513				regulator-always-on;
514				regulator-boot-on;
515				regulator-min-microvolt = <3300000>;
516				regulator-max-microvolt = <3300000>;
517				regulator-initial-mode = <0x2>;
518				regulator-name = "vcc_3v3";
519				regulator-state-mem {
520					regulator-on-in-suspend;
521					regulator-suspend-microvolt = <3300000>;
522				};
523			};
524
525			vcca1v8_pmu: LDO_REG1 {
526				regulator-always-on;
527				regulator-boot-on;
528				regulator-min-microvolt = <1800000>;
529				regulator-max-microvolt = <1800000>;
530				regulator-name = "vcca1v8_pmu";
531				regulator-state-mem {
532					regulator-on-in-suspend;
533					regulator-suspend-microvolt = <1800000>;
534				};
535			};
536
537			vdda_0v9: LDO_REG2 {
538				regulator-always-on;
539				regulator-boot-on;
540				regulator-min-microvolt = <900000>;
541				regulator-max-microvolt = <900000>;
542				regulator-name = "vdda_0v9";
543				regulator-state-mem {
544					regulator-off-in-suspend;
545				};
546			};
547
548			vdda0v9_pmu: LDO_REG3 {
549				regulator-always-on;
550				regulator-boot-on;
551				regulator-min-microvolt = <900000>;
552				regulator-max-microvolt = <900000>;
553				regulator-name = "vdda0v9_pmu";
554				regulator-state-mem {
555					regulator-on-in-suspend;
556					regulator-suspend-microvolt = <900000>;
557				};
558			};
559
560			vccio_acodec: LDO_REG4 {
561				regulator-always-on;
562				regulator-boot-on;
563				regulator-min-microvolt = <3300000>;
564				regulator-max-microvolt = <3300000>;
565				regulator-name = "vccio_acodec";
566				regulator-state-mem {
567					regulator-off-in-suspend;
568				};
569			};
570
571			vccio_sd: LDO_REG5 {
572				regulator-always-on;
573				regulator-boot-on;
574				regulator-min-microvolt = <1800000>;
575				regulator-max-microvolt = <3300000>;
576				regulator-name = "vccio_sd";
577				regulator-state-mem {
578					regulator-off-in-suspend;
579				};
580			};
581
582			vcc3v3_pmu: LDO_REG6 {
583				regulator-always-on;
584				regulator-boot-on;
585				regulator-min-microvolt = <3300000>;
586				regulator-max-microvolt = <3300000>;
587				regulator-name = "vcc3v3_pmu";
588				regulator-state-mem {
589					regulator-on-in-suspend;
590					regulator-suspend-microvolt = <3300000>;
591				};
592			};
593
594			vcc_1v8: LDO_REG7 {
595				regulator-always-on;
596				regulator-boot-on;
597				regulator-min-microvolt = <1800000>;
598				regulator-max-microvolt = <1800000>;
599				regulator-name = "vcc_1v8";
600				regulator-state-mem {
601					regulator-off-in-suspend;
602				};
603			};
604
605			vcc1v8_dvp: LDO_REG8 {
606				regulator-always-on;
607				regulator-boot-on;
608				regulator-min-microvolt = <1800000>;
609				regulator-max-microvolt = <1800000>;
610				regulator-name = "vcc1v8_dvp";
611				regulator-state-mem {
612					regulator-on-in-suspend;
613				};
614			};
615
616			vcc2v8_dvp: LDO_REG9 {
617				regulator-always-on;
618				regulator-boot-on;
619				regulator-min-microvolt = <1800000>;
620				regulator-max-microvolt = <3300000>;
621				regulator-name = "vcc2v8_dvp";
622				regulator-state-mem {
623					regulator-off-in-suspend;
624				};
625			};
626
627			dcdc_boost: BOOST {
628				regulator-min-microvolt = <4700000>;
629				regulator-max-microvolt = <5400000>;
630				regulator-name = "boost";
631				regulator-state-mem {
632					regulator-off-in-suspend;
633				};
634			};
635
636			otg_switch: OTG_SWITCH {
637				regulator-name = "otg_switch";
638				regulator-state-mem {
639					regulator-off-in-suspend;
640				};
641			};
642		};
643
644		rk817_charger: charger {
645			monitored-battery = <&battery>;
646			rockchip,resistor-sense-micro-ohms = <10000>;
647			rockchip,sleep-enter-current-microamp = <150000>;
648			rockchip,sleep-filter-current-microamp = <100000>;
649		};
650
651	};
652
653	vdd_cpu: regulator@1c {
654		compatible = "tcs,tcs4525";
655		reg = <0x1c>;
656		fcs,suspend-voltage-selector = <1>;
657		regulator-always-on;
658		regulator-boot-on;
659		regulator-min-microvolt = <712500>;
660		regulator-max-microvolt = <1390000>;
661		regulator-name = "vdd_cpu";
662		regulator-ramp-delay = <2300>;
663		vin-supply = <&vcc_sys>;
664		regulator-state-mem {
665			regulator-off-in-suspend;
666		};
667	};
668};
669
670&i2c5 {
671	pinctrl-0 = <&i2c5m1_xfer>;
672	pinctrl-names = "default";
673	status = "okay";
674};
675
676&i2s0_8ch {
677	status = "okay";
678};
679
680&i2s1_8ch {
681	pinctrl-0 = <&i2s1m0_sclktx>, <&i2s1m0_lrcktx>, <&i2s1m0_sdi0>,
682		    <&i2s1m0_sdo0>;
683	pinctrl-names = "default";
684	rockchip,trcm-sync-tx-only;
685	status = "okay";
686};
687
688&pinctrl {
689	audio-amplifier {
690		spk_amp_enable_h: spk-amp-enable-h {
691			rockchip,pins =
692				<4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
693		};
694	};
695
696	gpio-control {
697		btn_pins_ctrl: btn-pins-ctrl {
698			rockchip,pins =
699				<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
700				<3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
701				<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>,
702				<3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
703				<3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
704				<3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>,
705				<3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>,
706				<3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>,
707				<3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
708				<3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>,
709				<4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
710				<4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
711				<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
712				<4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
713				<4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
714				<4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
715		};
716
717		btn_pins_vol: btn-pins-vol {
718			rockchip,pins =
719				<4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
720				<4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
721		};
722	};
723
724	gpio-lcd {
725		lcd_rst: lcd-rst {
726			rockchip,pins =
727				<0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
728		};
729	};
730
731	gpio-leds {
732		led_pins: led-pins {
733			rockchip,pins =
734				<4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
735				<4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
736				<4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
737		};
738	};
739
740	hp-detect {
741		hp_det: hp-det {
742			rockchip,pins =
743				<4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
744		};
745	};
746
747	pmic {
748		pmic_int_l: pmic-int-l {
749			rockchip,pins =
750				<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
751		};
752	};
753
754	sdio-pwrseq {
755		wifi_enable_h: wifi-enable-h {
756			rockchip,pins =
757				<0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
758		};
759	};
760
761	usb {
762		vcc5v0_host_en: vcc5v0-host-en {
763			rockchip,pins =
764				<4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
765		};
766
767		vcc5v0_otg_en: vcc5v0-otg-en {
768			rockchip,pins =
769				<4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
770		};
771	};
772
773	vcc-lcd {
774		vcc_lcd_en: vcc-lcd-en {
775			rockchip,pins =
776				<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
777		};
778	};
779
780	vcc-wifi {
781		vcc_wifi_h: vcc-wifi-h {
782			rockchip,pins =
783				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
784		};
785	};
786};
787
788&pmu_io_domains {
789	status = "okay";
790	pmuio1-supply = <&vcc3v3_pmu>;
791	pmuio2-supply = <&vcca1v8_pmu>;
792	vccio1-supply = <&vccio_acodec>;
793	vccio3-supply = <&vccio_sd>;
794	vccio4-supply = <&vcca1v8_pmu>;
795	vccio5-supply = <&vcc2v8_dvp>;
796	vccio6-supply = <&vcc1v8_dvp>;
797	vccio7-supply = <&vcc_3v3>;
798};
799
800&pwm4 {
801	status = "okay";
802};
803
804&saradc {
805	vref-supply = <&vcc_1v8>;
806	status = "okay";
807};
808
809&sdhci {
810	bus-width = <8>;
811	mmc-hs200-1_8v;
812	non-removable;
813	pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>,
814		    <&emmc_datastrobe>, <&emmc_rstnout>;
815	pinctrl-names = "default";
816	status = "okay";
817};
818
819&sdmmc0 {
820	bus-width = <4>;
821	cap-mmc-highspeed;
822	cap-sd-highspeed;
823	disable-wp;
824	pinctrl-0 = <&sdmmc0_bus4>, <&sdmmc0_clk>, <&sdmmc0_cmd>,
825		    <&sdmmc0_det>;
826	pinctrl-names = "default";
827	sd-uhs-sdr104;
828	vqmmc-supply = <&vccio_sd>;
829	status = "okay";
830};
831
832&sdmmc1 {
833	bus-width = <4>;
834	cap-sd-highspeed;
835	cap-sdio-irq;
836	keep-power-in-suspend;
837	mmc-pwrseq = <&sdio_pwrseq>;
838	non-removable;
839	pinctrl-0 = <&sdmmc1_bus4>, <&sdmmc1_cmd>, <&sdmmc1_clk>;
840	pinctrl-names = "default";
841	vmmc-supply = <&vcc_wifi>;
842	status = "okay";
843};
844
845&sdmmc2 {
846	bus-width = <4>;
847	cap-mmc-highspeed;
848	cap-sd-highspeed;
849	disable-wp;
850	pinctrl-0 = <&sdmmc2m1_bus4>, <&sdmmc2m1_cmd>, <&sdmmc2m1_clk>,
851		    <&sdmmc2m1_det>;
852	pinctrl-names = "default";
853	sd-uhs-sdr104;
854	vqmmc-supply = <&vcc2v8_dvp>;
855	status = "okay";
856};
857
858&tsadc {
859	rockchip,hw-tshut-mode = <1>;
860	rockchip,hw-tshut-polarity = <0>;
861	status = "okay";
862};
863
864&uart1 {
865	pinctrl-0 = <&uart1m0_xfer>, <&uart1m0_ctsn>, <&uart1m0_rtsn>;
866	pinctrl-names = "default";
867	uart-has-rtscts;
868	status = "okay";
869
870	bluetooth {
871		compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
872		device-wake-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
873		enable-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
874		host-wake-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
875	};
876};
877
878&uart2 {
879	status = "okay";
880};
881
882&usb_host0_xhci {
883	phys = <&usb2phy0_otg>;
884	phy-names = "usb2-phy";
885	status = "okay";
886};
887
888&usb_host1_xhci {
889	status = "okay";
890};
891
892&usb2phy0 {
893	status = "okay";
894};
895
896&usb2phy0_otg {
897	status = "okay";
898};
899
900&usb2phy0_host {
901	phy-supply = <&vcc5v0_host>;
902	status = "okay";
903};
904
905&vop {
906	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
907	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
908	status = "okay";
909};
910
911&vop_mmu {
912	status = "okay";
913};
914
915&vp0 {
916	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
917		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
918		remote-endpoint = <&hdmi_in_vp0>;
919	};
920};
921
922&vp1 {
923	vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
924		reg = <ROCKCHIP_VOP2_EP_MIPI0>;
925		remote-endpoint = <&dsi0_in_vp1>;
926	};
927};
928