xref: /linux/arch/arm64/boot/dts/rockchip/rk3326-gameforce-chi.dts (revision 6c60000f0b9ae7da630a5715a9ba33042d87e7fd)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2024 Chris Morgan <macromorgan@hotmail.com>
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11#include "rk3326.dtsi"
12
13/ {
14	model = "GameForce Chi";
15	compatible = "gameforce,chi", "rockchip,rk3326";
16	chassis-type = "handset";
17
18	aliases {
19		mmc0 = &sdmmc;
20		mmc1 = &sdio;
21	};
22
23	chosen {
24		stdout-path = "serial2:115200n8";
25	};
26
27	adc_joystick: adc-joystick {
28		compatible = "adc-joystick";
29		io-channels = <&saradc 0>,
30			      <&saradc 1>;
31		poll-interval = <100>;
32		#address-cells = <1>;
33		#size-cells = <0>;
34
35		axis@0 {
36			reg = <0>;
37			abs-flat = <10>;
38			abs-fuzz = <10>;
39			abs-range = <850 175>;
40			linux,code = <ABS_Y>;
41		};
42
43		axis@1 {
44			reg = <1>;
45			abs-flat = <10>;
46			abs-fuzz = <10>;
47			abs-range = <800 190>;
48			linux,code = <ABS_X>;
49		};
50	};
51
52	adc_keys: adc-keys {
53		compatible = "adc-keys";
54		io-channels = <&saradc 2>;
55		io-channel-names = "buttons";
56		keyup-threshold-microvolt = <1800000>;
57		poll-interval = <60>;
58
59		button-1 {
60			label = "HAPPY1";
61			linux,code = <BTN_TRIGGER_HAPPY1>;
62			press-threshold-microvolt = <15000>;
63		};
64
65		button-2 {
66			label = "HAPPY2";
67			linux,code = <BTN_TRIGGER_HAPPY2>;
68			press-threshold-microvolt = <300000>;
69		};
70	};
71
72	backlight: backlight {
73		compatible = "pwm-backlight";
74		power-supply = <&vcc_bl>;
75		pwms = <&pwm1 0 25000 0>;
76	};
77
78	battery: battery {
79		compatible = "simple-battery";
80		charge-full-design-microamp-hours = <3000000>;
81		charge-term-current-microamp = <300000>;
82		constant-charge-current-max-microamp = <1500000>;
83		constant-charge-voltage-max-microvolt = <4200000>;
84		factory-internal-resistance-micro-ohms = <180000>;
85		ocv-capacity-celsius = <20>;
86		ocv-capacity-table-0 =  <4106000 100>, <4071000 95>, <4018000 90>, <3975000 85>,
87					<3946000 80>, <3908000 75>, <3877000 70>, <3853000 65>,
88					<3834000 60>, <3816000 55>, <3802000 50>, <3788000 45>,
89					<3774000 40>, <3760000 35>, <3748000 30>, <3735000 25>,
90					<3718000 20>, <3697000 15>, <3685000 10>, <3625000 5>,
91					<3400000 0>;
92		voltage-max-design-microvolt = <4250000>;
93		voltage-min-design-microvolt = <3400000>;
94	};
95
96	gpio_leds: gpio-leds {
97		compatible = "gpio-leds";
98		pinctrl-names = "default";
99		pinctrl-0 = <&led_pins>;
100
101		red_led: led-0 {
102			color = <LED_COLOR_ID_RED>;
103			gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
104		};
105
106		green_led: led-1 {
107			color = <LED_COLOR_ID_GREEN>;
108			gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
109		};
110
111		blue_led: led-2 {
112			color = <LED_COLOR_ID_BLUE>;
113			gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
114		};
115
116		white_led: led-3 {
117			color = <LED_COLOR_ID_WHITE>;
118			function = LED_FUNCTION_STATUS;
119			gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
120		};
121
122		chg_led: led-4 {
123			color = <LED_COLOR_ID_RED>;
124			function = LED_FUNCTION_CHARGING;
125			gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
126		};
127
128	};
129
130	gpio_keys: gpio-keys {
131		compatible = "gpio-keys";
132		pinctrl-0 = <&btn_pins_ctrl>;
133		pinctrl-names = "default";
134
135		button-a {
136			gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;
137			label = "EAST";
138			linux,code = <BTN_EAST>;
139		};
140
141		button-b {
142			gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
143			label = "SOUTH";
144			linux,code = <BTN_SOUTH>;
145		};
146
147		button-down {
148			gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
149			label = "DPAD-DOWN";
150			linux,code = <BTN_DPAD_DOWN>;
151		};
152
153		button-home {
154			gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
155			label = "HOME";
156			linux,code = <BTN_MODE>;
157		};
158
159		button-l1 {
160			gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
161			label = "TL";
162			linux,code = <BTN_TL>;
163		};
164
165		button-l2 {
166			gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>;
167			label = "TL2";
168			linux,code = <BTN_TL2>;
169		};
170
171		button-left {
172			gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
173			label = "DPAD-LEFT";
174			linux,code = <BTN_DPAD_LEFT>;
175		};
176
177		button-r1 {
178			gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>;
179			label = "TR";
180			linux,code = <BTN_TR>;
181		};
182
183		button-r2 {
184			gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>;
185			label = "TR2";
186			linux,code = <BTN_TR2>;
187		};
188
189		button-right {
190			gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
191			label = "DPAD-RIGHT";
192			linux,code = <BTN_DPAD_RIGHT>;
193		};
194
195		button-select {
196			gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>;
197			label = "SELECT";
198			linux,code = <BTN_SELECT>;
199		};
200
201		button-start {
202			gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
203			label = "START";
204			linux,code = <BTN_START>;
205		};
206
207		button-up {
208			gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
209			label = "DPAD-UP";
210			linux,code = <BTN_DPAD_UP>;
211		};
212
213		button-x {
214			gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>;
215			label = "NORTH";
216			linux,code = <BTN_NORTH>;
217		};
218
219		button-y {
220			gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
221			label = "WEST";
222			linux,code = <BTN_WEST>;
223		};
224	};
225
226	multi-led {
227		compatible = "leds-group-multicolor";
228		color = <LED_COLOR_ID_RGB>;
229		function = LED_FUNCTION_KBD_BACKLIGHT;
230		leds = <&red_led>, <&green_led>, <&blue_led>;
231	};
232
233	spk_amp: audio-amplifier {
234		compatible = "simple-audio-amplifier";
235		enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
236		pinctrl-0 = <&spk_amp_enable_h>;
237		pinctrl-names = "default";
238		sound-name-prefix = "Speaker Amp";
239	};
240
241	sound {
242		compatible = "simple-audio-card";
243		pinctrl-0 = <&hp_det>;
244		pinctrl-names = "default";
245		simple-audio-card,name = "rk817_ext";
246		simple-audio-card,aux-devs = <&spk_amp>;
247		simple-audio-card,format = "i2s";
248		simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
249		simple-audio-card,mclk-fs = <256>;
250		simple-audio-card,widgets =
251			"Microphone", "Mic Jack",
252			"Headphone", "Headphones",
253			"Speaker", "Internal Speakers";
254		simple-audio-card,routing =
255			"MICL", "Mic Jack",
256			"Headphones", "HPOL",
257			"Headphones", "HPOR",
258			"Internal Speakers", "Speaker Amp OUTL",
259			"Internal Speakers", "Speaker Amp OUTR",
260			"Speaker Amp INL", "HPOL",
261			"Speaker Amp INR", "HPOR";
262		simple-audio-card,pin-switches = "Internal Speakers";
263
264		simple-audio-card,codec {
265			sound-dai = <&rk817>;
266		};
267
268		simple-audio-card,cpu {
269			sound-dai = <&i2s1_2ch>;
270		};
271	};
272
273	vibrator_left: pwm-vibrator-l {
274		compatible = "pwm-vibrator";
275		pwm-names = "enable";
276		pwms = <&pwm4 0 25000 0>;
277	};
278
279	vibrator_right: pwm-vibrator-r {
280		compatible = "pwm-vibrator";
281		pwm-names = "enable";
282		pwms = <&pwm5 0 25000 0>;
283	};
284
285	sdio_pwrseq: sdio-pwrseq {
286		compatible = "mmc-pwrseq-simple";
287		clocks = <&rk817 1>;
288		clock-names = "ext_clock";
289		pinctrl-0 = <&wifi_enable_h>;
290		pinctrl-names = "default";
291		post-power-on-delay-ms = <200>;
292		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
293	};
294
295	vccsys: vccsys-regulator {
296		compatible = "regulator-fixed";
297		regulator-name = "vcc3v8_sys";
298		regulator-always-on;
299		regulator-min-microvolt = <3800000>;
300		regulator-max-microvolt = <3800000>;
301	};
302};
303
304&cpu0 {
305	cpu-supply = <&vdd_arm>;
306};
307
308&cpu1 {
309	cpu-supply = <&vdd_arm>;
310};
311
312&cpu2 {
313	cpu-supply = <&vdd_arm>;
314};
315
316&cpu3 {
317	cpu-supply = <&vdd_arm>;
318};
319
320&display_subsystem {
321	status = "okay";
322};
323
324&dsi {
325	status = "okay";
326
327	internal_display: panel@0 {
328		reg = <0>;
329		compatible = "gameforce,chi-panel";
330		backlight = <&backlight>;
331		iovcc-supply = <&vcc_lcd>;
332		vcc-supply = <&vcc_lcd>;
333		reset-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_LOW>;
334
335		port {
336			mipi_in_panel: endpoint {
337				remote-endpoint = <&mipi_out_panel>;
338			};
339		};
340	};
341
342	ports {
343		mipi_out: port@1 {
344			reg = <1>;
345
346			mipi_out_panel: endpoint {
347				remote-endpoint = <&mipi_in_panel>;
348			};
349		};
350	};
351};
352
353&dsi_dphy {
354	status = "okay";
355};
356
357&gpu {
358	mali-supply = <&vdd_logic>;
359	status = "okay";
360};
361
362&i2c0 {
363	clock-frequency = <400000>;
364	i2c-scl-falling-time-ns = <16>;
365	i2c-scl-rising-time-ns = <280>;
366	status = "okay";
367
368	rk817: pmic@20 {
369		compatible = "rockchip,rk817";
370		reg = <0x20>;
371		#clock-cells = <1>;
372		clock-names = "mclk";
373		clock-output-names = "rk808-clkout1", "xin32k";
374		clocks = <&cru SCLK_I2S1_OUT>;
375		interrupt-parent = <&gpio0>;
376		interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>;
377		pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
378		pinctrl-names = "default";
379		#sound-dai-cells = <0>;
380		system-power-controller;
381		wakeup-source;
382
383		vcc1-supply = <&vccsys>;
384		vcc2-supply = <&vccsys>;
385		vcc3-supply = <&vccsys>;
386		vcc4-supply = <&vccsys>;
387		vcc5-supply = <&vccsys>;
388		vcc6-supply = <&vccsys>;
389		vcc7-supply = <&vcc_3v0>;
390		vcc8-supply = <&vccsys>;
391		vcc9-supply = <&dcdc_boost>;
392
393		regulators {
394			vdd_logic: DCDC_REG1 {
395				regulator-always-on;
396				regulator-boot-on;
397				regulator-max-microvolt = <1150000>;
398				regulator-min-microvolt = <950000>;
399				regulator-name = "vdd_logic";
400				regulator-ramp-delay = <6001>;
401
402				regulator-state-mem {
403					regulator-on-in-suspend;
404					regulator-suspend-microvolt = <950000>;
405				};
406			};
407
408			vdd_arm: DCDC_REG2 {
409				regulator-always-on;
410				regulator-boot-on;
411				regulator-max-microvolt = <1350000>;
412				regulator-min-microvolt = <950000>;
413				regulator-name = "vdd_arm";
414				regulator-ramp-delay = <6001>;
415
416				regulator-state-mem {
417					regulator-off-in-suspend;
418					regulator-suspend-microvolt = <950000>;
419				};
420			};
421
422			vcc_ddr: DCDC_REG3 {
423				regulator-always-on;
424				regulator-boot-on;
425				regulator-name = "vcc_ddr";
426
427				regulator-state-mem {
428					regulator-on-in-suspend;
429				};
430			};
431
432			vcc_3v0: DCDC_REG4 {
433				regulator-always-on;
434				regulator-boot-on;
435				regulator-max-microvolt = <3000000>;
436				regulator-min-microvolt = <3000000>;
437				regulator-name = "vcc_3v0";
438
439				regulator-state-mem {
440					regulator-off-in-suspend;
441					regulator-suspend-microvolt = <3000000>;
442				};
443			};
444
445			vcc_1v8: LDO_REG2 {
446				regulator-always-on;
447				regulator-boot-on;
448				regulator-max-microvolt = <1800000>;
449				regulator-min-microvolt = <1800000>;
450				regulator-name = "vcc_1v8";
451
452				regulator-state-mem {
453					regulator-on-in-suspend;
454					regulator-suspend-microvolt = <1800000>;
455				};
456			};
457
458			vdd_1v0: LDO_REG3 {
459				regulator-always-on;
460				regulator-boot-on;
461				regulator-max-microvolt = <1000000>;
462				regulator-min-microvolt = <1000000>;
463				regulator-name = "vdd_1v0";
464
465				regulator-state-mem {
466					regulator-on-in-suspend;
467					regulator-suspend-microvolt = <1000000>;
468				};
469			};
470
471			vcc_3v0_pmu: LDO_REG4 {
472				regulator-always-on;
473				regulator-boot-on;
474				regulator-max-microvolt = <3000000>;
475				regulator-min-microvolt = <3000000>;
476				regulator-name = "vcc_3v0_pmu";
477
478				regulator-state-mem {
479					regulator-on-in-suspend;
480					regulator-suspend-microvolt = <3000000>;
481				};
482			};
483
484			vccio_sd: LDO_REG5 {
485				regulator-always-on;
486				regulator-boot-on;
487				regulator-max-microvolt = <3300000>;
488				regulator-min-microvolt = <1800000>;
489				regulator-name = "vccio_sd";
490
491				regulator-state-mem {
492					regulator-on-in-suspend;
493					regulator-suspend-microvolt = <3300000>;
494				};
495			};
496
497			vcc_sd: LDO_REG6 {
498				regulator-boot-on;
499				regulator-max-microvolt = <3300000>;
500				regulator-min-microvolt = <3300000>;
501				regulator-name = "vcc_sd";
502
503				regulator-state-mem {
504					regulator-on-in-suspend;
505					regulator-suspend-microvolt = <3300000>;
506				};
507			};
508
509			vcc_bl: LDO_REG7 {
510				regulator-max-microvolt = <3300000>;
511				regulator-min-microvolt = <3300000>;
512				regulator-name = "vcc_bl";
513
514				regulator-state-mem {
515					regulator-off-in-suspend;
516					regulator-suspend-microvolt = <3300000>;
517				};
518			};
519
520			vcc_lcd: LDO_REG8 {
521				regulator-max-microvolt = <2800000>;
522				regulator-min-microvolt = <2800000>;
523				regulator-name = "vcc_lcd";
524
525				regulator-state-mem {
526					regulator-off-in-suspend;
527					regulator-suspend-microvolt = <2800000>;
528				};
529			};
530
531			vcc_wifi: LDO_REG9 {
532				regulator-always-on;
533				regulator-boot-on;
534				regulator-max-microvolt = <3300000>;
535				regulator-min-microvolt = <3300000>;
536				regulator-name = "vcc_wifi";
537
538				regulator-state-mem {
539					regulator-off-in-suspend;
540					regulator-suspend-microvolt = <3300000>;
541				};
542			};
543
544			dcdc_boost: BOOST {
545				regulator-max-microvolt = <5000000>;
546				regulator-min-microvolt = <5000000>;
547				regulator-name = "dcdc_boost";
548
549				regulator-state-mem {
550					regulator-off-in-suspend;
551				};
552			};
553
554			otg_switch: OTG_SWITCH {
555				regulator-name = "otg_switch";
556
557				regulator-state-mem {
558					regulator-off-in-suspend;
559				};
560			};
561		};
562
563		rk817_charger: charger {
564			monitored-battery = <&battery>;
565			rockchip,resistor-sense-micro-ohms = <10000>;
566			rockchip,sleep-enter-current-microamp = <300000>;
567			rockchip,sleep-filter-current-microamp = <100000>;
568		};
569	};
570};
571
572&i2s1_2ch {
573	status = "okay";
574};
575
576&io_domains {
577	vccio1-supply = <&vcc_3v0_pmu>;
578	vccio2-supply = <&vccio_sd>;
579	vccio3-supply = <&vcc_3v0>;
580	vccio4-supply = <&vcc_3v0>;
581	vccio5-supply = <&vcc_3v0>;
582	vccio6-supply = <&vcc_3v0>;
583	status = "okay";
584};
585
586&pinctrl {
587	bluetooth-pins {
588		bt_reset: bt-reset {
589			rockchip,pins =
590				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
591		};
592
593		bt_wake_dev: bt-wake-dev {
594			rockchip,pins =
595				<0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
596		};
597
598		bt_wake_host: bt-wake-host {
599			rockchip,pins =
600				<0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
601		};
602	};
603
604	headphone {
605		hp_det: hp-det {
606			rockchip,pins =
607				<2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
608		};
609	};
610
611	gpio-btns {
612		btn_pins_ctrl: btn-pins-ctrl {
613			rockchip,pins =
614				<1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
615				<1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
616				<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
617				<1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
618				<2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
619				<2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
620				<2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
621				<2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
622				<2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
623				<2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
624				<2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
625				<2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
626				<2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
627				<2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
628				<2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
629		};
630	};
631
632	gpio-leds {
633		led_pins: led-pins {
634			rockchip,pins =
635				<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
636				<3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>,
637				<3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>,
638				<3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>,
639				<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
640		};
641	};
642
643	pmic {
644		pmic_int: pmic-int {
645			rockchip,pins =
646				<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
647		};
648
649		soc_slppin_gpio: soc_slppin_gpio {
650			rockchip,pins =
651				<0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
652		};
653
654		soc_slppin_rst: soc_slppin_rst {
655			rockchip,pins =
656				<0 RK_PA4 2 &pcfg_pull_none>;
657		};
658
659		soc_slppin_slp: soc_slppin_slp {
660			rockchip,pins =
661				<0 RK_PA4 1 &pcfg_pull_none>;
662		};
663	};
664
665	sdio-pwrseq {
666		wifi_enable_h: wifi-enable-h {
667			rockchip,pins =
668				<0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
669		};
670	};
671
672	speaker {
673		spk_amp_enable_h: spk-amp-enable-h {
674			rockchip,pins =
675				<2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
676		};
677	};
678};
679
680&pmu_io_domains {
681	pmuio1-supply = <&vcc_1v8>;
682	pmuio2-supply = <&vcc_3v0_pmu>;
683	status = "okay";
684};
685
686&pwm1 {
687	status = "okay";
688};
689
690&pwm4 {
691	status = "okay";
692};
693
694&pwm5 {
695	status = "okay";
696};
697
698&saradc {
699	vref-supply = <&vcc_1v8>;
700	status = "okay";
701};
702
703&sdio {
704	bus-width = <4>;
705	cap-sd-highspeed;
706	cap-sdio-irq;
707	disable-wp;
708	keep-power-in-suspend;
709	mmc-pwrseq = <&sdio_pwrseq>;
710	no-mmc;
711	no-sd;
712	non-removable;
713	sd-uhs-sdr104;
714	status = "okay";
715};
716
717&sdmmc {
718	cap-mmc-highspeed;
719	cap-sd-highspeed;
720	no-sdio;
721	sd-uhs-sdr12;
722	sd-uhs-sdr25;
723	sd-uhs-sdr50;
724	sd-uhs-sdr104;
725	vmmc-supply = <&vcc_sd>;
726	vqmmc-supply = <&vccio_sd>;
727	status = "okay";
728};
729
730&sfc {
731	#address-cells = <1>;
732	pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
733	pinctrl-names = "default";
734	#size-cells = <0>;
735	status = "okay";
736
737	flash@0 {
738		compatible = "jedec,spi-nor";
739		reg = <0>;
740		spi-max-frequency = <108000000>;
741		spi-rx-bus-width = <2>;
742		spi-tx-bus-width = <1>;
743	};
744};
745
746&tsadc {
747	status = "okay";
748};
749
750&u2phy {
751	status = "okay";
752
753	u2phy_otg: otg-port {
754		status = "okay";
755	};
756};
757
758&usb20_otg {
759	status = "okay";
760};
761
762/*
763 * The right ADC joystick exists connected to an unknown ADC
764 * controller which can be communicated with via uart0. This ADC device
765 * is an 8-pin SOIC with no markings located right next to the left ADC
766 * joystick ribbon cable. The pinout for this ADC controller appears to
767 * be pin 1 - VCC (2.8v), pin 2 - 1.8v (clk maybe?), pin 3 - GPIO 10,
768 * pin 4 - unknown, pin 5 - unknown, pin 6 - analog in, pin 7 - analog in,
769 * pin 8 - ground. There is currently a userspace UART driver for this
770 * device but it only works with the BSP joystick driver.
771 */
772&uart0 {
773	status = "okay";
774};
775
776/*
777 * Bluetooth was not working on BSP and is not currently working on
778 * mainline due to missing firmware. Bluetooth requires removal of DMA
779 * or else it will not probe.
780 */
781&uart1 {
782	/delete-property/ dma-names;
783	/delete-property/ dmas;
784	uart-has-rtscts;
785	status = "okay";
786
787	bluetooth: bluetooth {
788		compatible = "realtek,rtl8723ds-bt";
789		device-wake-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
790		enable-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
791		host-wake-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
792		pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
793		pinctrl-names = "default";
794	};
795};
796
797&uart2 {
798	pinctrl-0 = <&uart2m1_xfer>;
799	pinctrl-names = "default";
800	status = "okay";
801};
802
803&vopb {
804	status = "okay";
805};
806
807&vopb_mmu {
808	status = "okay";
809};
810