xref: /linux/arch/arm64/boot/dts/rockchip/rk3588s-gameforce-ace.dts (revision 7f71507851fc7764b36a3221839607d3a45c2025)
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/pwm/pwm.h>
10#include <dt-bindings/thermal/thermal.h>
11#include <dt-bindings/usb/pd.h>
12#include "rk3588s.dtsi"
13
14/ {
15	model = "Gameforce Ace";
16	chassis-type = "handset";
17	compatible = "gameforce,ace", "rockchip,rk3588s";
18
19	aliases {
20		mmc0 = &sdhci;
21		mmc1 = &sdmmc;
22		mmc2 = &sdio;
23	};
24
25	chosen {
26		stdout-path = "serial2:1500000n8";
27	};
28
29	adc_keys: adc-keys {
30		compatible = "adc-keys";
31		io-channels = <&saradc 1>;
32		io-channel-names = "buttons";
33		keyup-threshold-microvolt = <1800000>;
34		poll-interval = <60>;
35
36		button-vol-up {
37			label = "VOLUMEUP";
38			linux,code = <KEY_VOLUMEUP>;
39			press-threshold-microvolt = <17000>;
40		};
41
42		button-vol-down {
43			label = "VOLUMEDOWN";
44			linux,code = <KEY_VOLUMEDOWN>;
45			press-threshold-microvolt = <417000>;
46		};
47	};
48
49	/* Joystick range values based on hardware observation. */
50	adc_joystick: adc-joystick {
51		compatible = "adc-joystick";
52		io-channels = <&saradc 2>, <&saradc 3>,
53			      <&saradc 4>, <&saradc 5>;
54		poll-interval = <60>;
55		#address-cells = <1>;
56		#size-cells = <0>;
57
58		axis@0 {
59			reg = <0>;
60			abs-flat = <40>;
61			abs-fuzz = <30>;
62			abs-range = <0 4095>;
63			linux,code = <ABS_RX>;
64		};
65
66		axis@1 {
67			reg = <1>;
68			abs-flat = <40>;
69			abs-fuzz = <30>;
70			abs-range = <0 4095>;
71			linux,code = <ABS_RY>;
72		};
73
74		axis@2 {
75			reg = <2>;
76			abs-flat = <40>;
77			abs-fuzz = <30>;
78			abs-range = <0 4095>;
79			linux,code = <ABS_Y>;
80		};
81
82		axis@3 {
83			reg = <3>;
84			abs-flat = <40>;
85			abs-fuzz = <30>;
86			abs-range = <0 4095>;
87			linux,code = <ABS_X>;
88		};
89	};
90
91	/* Trigger range values based on hardware observation. */
92	adc_triggers: adc-trigger {
93		compatible = "adc-joystick";
94		io-channels = <&ti_adc 6>,
95			      <&ti_adc 7>;
96		poll-interval = <60>;
97		#address-cells = <1>;
98		#size-cells = <0>;
99
100		axis@0 {
101			reg = <0>;
102			abs-flat = <15>;
103			abs-fuzz = <15>;
104			abs-range = <890 1530>;
105			linux,code = <ABS_HAT2X>;
106		};
107
108		axis@1 {
109			reg = <1>;
110			abs-flat = <15>;
111			abs-fuzz = <15>;
112			abs-range = <1010 1550>;
113			linux,code = <ABS_HAT2Y>;
114		};
115	};
116
117	analog-sound {
118		compatible = "simple-audio-card";
119		pinctrl-0 = <&hp_detect>;
120		pinctrl-names = "default";
121		simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
122		simple-audio-card,bitclock-master = <&masterdai>;
123		simple-audio-card,format = "i2s";
124		simple-audio-card,frame-master = <&masterdai>;
125		simple-audio-card,hp-det-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
126		simple-audio-card,mclk-fs = <256>;
127		simple-audio-card,name = "rockchip,es8388-codec";
128		simple-audio-card,pin-switches = "Headphones", "Speaker";
129		simple-audio-card,routing =
130			"Speaker Amplifier INL", "LOUT2",
131			"Speaker Amplifier INR", "ROUT2",
132			"Speaker", "Speaker Amplifier OUTL",
133			"Speaker", "Speaker Amplifier OUTR",
134			"Headphones Amplifier INL", "LOUT1",
135			"Headphones Amplifier INR", "ROUT1",
136			"Headphones", "Headphones Amplifier OUTL",
137			"Headphones", "Headphones Amplifier OUTR",
138			"LINPUT1", "Microphone Jack",
139			"RINPUT1", "Microphone Jack",
140			"LINPUT2", "Onboard Microphone",
141			"RINPUT2", "Onboard Microphone";
142		simple-audio-card,widgets =
143			"Microphone", "Microphone Jack",
144			"Microphone", "Onboard Microphone",
145			"Headphone", "Headphones",
146			"Speaker", "Speaker";
147
148		masterdai: simple-audio-card,codec {
149			sound-dai = <&es8388>;
150			system-clock-frequency = <12288000>;
151		};
152
153		simple-audio-card,cpu {
154			sound-dai = <&i2s0_8ch>;
155		};
156	};
157
158	backlight: backlight {
159		compatible = "pwm-backlight";
160		enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
161		pinctrl-0 = <&lcd_bl_en>;
162		pinctrl-names = "default";
163		pwms = <&pwm13 0 25000 PWM_POLARITY_INVERTED>;
164	};
165
166	battery: battery {
167		compatible = "simple-battery";
168		charge-full-design-microamp-hours = <3700000>;
169		constant-charge-current-max-microamp = <2500000>;
170		constant-charge-voltage-max-microvolt = <8750000>;
171		voltage-min-design-microvolt = <7400000>;
172	};
173
174	gpio_keys: gpio-keys {
175		compatible = "gpio-keys";
176		pinctrl-0 = <&btn_pins_ctrl>;
177		pinctrl-names = "default";
178
179		button-a {
180			gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
181			label = "EAST";
182			linux,code = <BTN_EAST>;
183		};
184
185		button-b {
186			gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>;
187			label = "SOUTH";
188			linux,code = <BTN_SOUTH>;
189		};
190
191		button-down {
192			gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>;
193			label = "DPAD-DOWN";
194			linux,code = <BTN_DPAD_DOWN>;
195		};
196
197		button-home {
198			gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_LOW>;
199			label = "FUNCTION";
200			linux,code = <BTN_MODE>;
201		};
202
203		button-l1 {
204			gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
205			label = "L1";
206			linux,code = <BTN_TL>;
207		};
208
209		button-left {
210			gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>;
211			label = "DPAD-LEFT";
212			linux,code = <BTN_DPAD_LEFT>;
213		};
214
215		button-menu {
216			gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>;
217			label = "HOME";
218			linux,code = <KEY_HOME>;
219		};
220
221		button-r1 {
222			gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>;
223			label = "R1";
224			linux,code = <BTN_TR>;
225		};
226
227		button-right {
228			gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
229			label = "DPAD-RIGHT";
230			linux,code = <BTN_DPAD_RIGHT>;
231		};
232
233		button-select {
234			gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>;
235			label = "SELECT";
236			linux,code = <BTN_SELECT>;
237		};
238
239		button-start {
240			gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
241			label = "START";
242			linux,code = <BTN_START>;
243		};
244
245		button-thumbl {
246			gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>;
247			label = "THUMBL";
248			linux,code = <BTN_THUMBL>;
249		};
250
251		button-thumbr {
252			gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
253			label = "THUMBR";
254			linux,code = <BTN_THUMBR>;
255		};
256
257		button-up {
258			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
259			label = "DPAD-UP";
260			linux,code = <BTN_DPAD_UP>;
261		};
262
263		button-x {
264			gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
265			label = "NORTH";
266			linux,code = <BTN_NORTH>;
267		};
268
269		button-y {
270			gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_LOW>;
271			label = "WEST";
272			linux,code = <BTN_WEST>;
273		};
274	};
275
276	gpio_leds: gpio-leds {
277		compatible = "gpio-leds";
278		pinctrl-names = "default";
279		pinctrl-0 = <&led_pins>;
280
281		green_led: led-0 {
282			color = <LED_COLOR_ID_GREEN>;
283			gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
284			function = LED_FUNCTION_STATUS;
285		};
286
287		red_led: led-1 {
288			color = <LED_COLOR_ID_RED>;
289			gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
290			function = LED_FUNCTION_CHARGING;
291		};
292	};
293
294	amp_headphone: headphone-amplifier {
295		compatible = "simple-audio-amplifier";
296		enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
297		pinctrl-0 = <&headphone_amplifier_en>;
298		pinctrl-names = "default";
299		sound-name-prefix = "Headphones Amplifier";
300	};
301
302	pwm_fan: pwm-fan {
303		compatible = "pwm-fan";
304		#cooling-cells = <2>;
305		cooling-levels = <0 120 150 180 210 240 255>;
306		fan-supply = <&vcc5v0_sys>;
307		interrupt-parent = <&gpio4>;
308		interrupts = <RK_PB2 IRQ_TYPE_EDGE_RISING>;
309		pulses-per-revolution = <4>;
310		pwms = <&pwm12 0 50000 PWM_POLARITY_INVERTED>;
311	};
312
313	pwm_gpio33: pwm-33 {
314		compatible = "pwm-gpio";
315		gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
316		pinctrl-0 = <&vib_right_h>;
317		pinctrl-names = "default";
318		#pwm-cells = <3>;
319	};
320
321	pwm_gpio132: pwm-132 {
322		compatible = "pwm-gpio";
323		gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
324		pinctrl-0 = <&vib_left_h>;
325		pinctrl-names = "default";
326		#pwm-cells = <3>;
327	};
328
329	sdio_pwrseq: sdio-pwrseq {
330		compatible = "mmc-pwrseq-simple";
331		clock-names = "ext_clock";
332		clocks = <&rtc_hym8563>;
333		pinctrl-0 = <&wifi_enable_h>;
334		pinctrl-names = "default";
335		post-power-on-delay-ms = <200>;
336		power-off-delay-us = <5000000>;
337		reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
338	};
339
340	amp_speaker: speaker-amplifier {
341		compatible = "simple-audio-amplifier";
342		enable-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
343		pinctrl-0 = <&speaker_amplifier_en>;
344		pinctrl-names = "default";
345		sound-name-prefix = "Speaker Amplifier";
346		VCC-supply = <&vcc5v0_spk>;
347	};
348
349	vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
350		compatible = "regulator-fixed";
351		regulator-always-on;
352		regulator-boot-on;
353		regulator-max-microvolt = <1100000>;
354		regulator-min-microvolt = <1100000>;
355		regulator-name = "vcc_1v1_nldo_s3";
356		vin-supply = <&vcc5v0_sys>;
357	};
358
359	vcc3v3_lcd0_n: regulator-vcc3v3-lcd0-n {
360		compatible = "regulator-fixed";
361		enable-active-high;
362		gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
363		pinctrl-0 = <&vcc_lcd_h>;
364		pinctrl-names = "default";
365		regulator-max-microvolt = <3300000>;
366		regulator-min-microvolt = <3300000>;
367		regulator-name = "vcc3v3_lcd0_n";
368		vin-supply = <&vcc_3v3_s3>;
369		regulator-state-mem {
370			regulator-off-in-suspend;
371		};
372	};
373
374	vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
375		compatible = "regulator-fixed";
376		enable-active-high;
377		gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
378		pinctrl-0 = <&sd_s0_pwr>;
379		pinctrl-names = "default";
380		regulator-max-microvolt = <3000000>;
381		regulator-min-microvolt = <3000000>;
382		regulator-name = "vcc_3v3_sd_s0";
383		vin-supply = <&vcc_3v3_s3>;
384	};
385
386	vcc5v0_spk: regulator-vcc5v0-spk {
387		compatible = "regulator-fixed";
388		enable-active-high;
389		gpio = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
390		pinctrl-0 = <&vcc5v0_spk_pwr>;
391		pinctrl-names = "default";
392		regulator-max-microvolt = <5000000>;
393		regulator-min-microvolt = <5000000>;
394		regulator-name = "vcc5v0_spk";
395		vin-supply = <&vcc5v0_sys>;
396		regulator-state-mem {
397			regulator-off-in-suspend;
398		};
399	};
400
401	vcc5v0_sys: regulator-vcc5v0-sys {
402		compatible = "regulator-fixed";
403		regulator-always-on;
404		regulator-boot-on;
405		regulator-max-microvolt = <5000000>;
406		regulator-min-microvolt = <5000000>;
407		regulator-name = "vcc5v0_sys";
408	};
409
410	vibrator_l: vibrator-l {
411		compatible = "pwm-vibrator";
412		pwm-names = "enable";
413		pwms = <&pwm_gpio132 0 20000000 0>;
414	};
415
416	vibrator_r: vibrator-r {
417		compatible = "pwm-vibrator";
418		pwm-names = "enable";
419		pwms = <&pwm_gpio33 0 20000000 0>;
420	};
421};
422
423&combphy2_psu {
424	status = "okay";
425};
426
427&cpu_l0 {
428	cpu-supply = <&vdd_cpu_lit_s0>;
429};
430
431&cpu_l1 {
432	cpu-supply = <&vdd_cpu_lit_s0>;
433};
434
435&cpu_l2 {
436	cpu-supply = <&vdd_cpu_lit_s0>;
437};
438
439&cpu_l3 {
440	cpu-supply = <&vdd_cpu_lit_s0>;
441};
442
443&cpu_b0 {
444	cpu-supply = <&vdd_cpu_big0_s0>;
445};
446
447&cpu_b1 {
448	cpu-supply = <&vdd_cpu_big0_s0>;
449};
450
451&cpu_b2 {
452	cpu-supply = <&vdd_cpu_big1_s0>;
453};
454
455&cpu_b3 {
456	cpu-supply = <&vdd_cpu_big1_s0>;
457};
458
459&gpu {
460	mali-supply = <&vdd_gpu_s0>;
461	status = "okay";
462};
463
464&i2c0 {
465	pinctrl-0 = <&i2c0m2_xfer>;
466	pinctrl-names = "default";
467	status = "okay";
468
469	vdd_cpu_big0_s0: regulator@42 {
470		compatible = "rockchip,rk8602";
471		reg = <0x42>;
472		fcs,suspend-voltage-selector = <1>;
473		regulator-max-microvolt = <1050000>;
474		regulator-min-microvolt = <550000>;
475		regulator-name = "vdd_cpu_big0_s0";
476		regulator-ramp-delay = <2300>;
477		vin-supply = <&vcc5v0_sys>;
478
479		regulator-state-mem {
480			regulator-off-in-suspend;
481		};
482	};
483
484	vdd_cpu_big1_s0: regulator@43 {
485		compatible = "rockchip,rk8603", "rockchip,rk8602";
486		reg = <0x43>;
487		fcs,suspend-voltage-selector = <1>;
488		regulator-max-microvolt = <1050000>;
489		regulator-min-microvolt = <550000>;
490		regulator-name = "vdd_cpu_big1_s0";
491		regulator-ramp-delay = <2300>;
492		vin-supply = <&vcc5v0_sys>;
493
494		regulator-state-mem {
495			regulator-off-in-suspend;
496		};
497	};
498};
499
500&i2c2 {
501	status = "okay";
502
503	vdd_npu_s0: regulator@42 {
504		compatible = "rockchip,rk8602";
505		reg = <0x42>;
506		fcs,suspend-voltage-selector = <1>;
507		regulator-max-microvolt = <950000>;
508		regulator-min-microvolt = <550000>;
509		regulator-name = "vdd_npu_s0";
510		regulator-ramp-delay = <2300>;
511		vin-supply = <&vcc5v0_sys>;
512
513		regulator-state-mem {
514			regulator-off-in-suspend;
515		};
516	};
517};
518
519&i2c3 {
520	status = "okay";
521
522	touchscreen@14 {
523		compatible = "goodix,gt911";
524		reg = <0x14>;
525		interrupt-parent = <&gpio1>;
526		interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
527		irq-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
528		pinctrl-0 = <&touch_int>, <&touch_rst>;
529		pinctrl-names = "default";
530		reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
531		touchscreen-inverted-x;
532		touchscreen-size-x = <1080>;
533		touchscreen-size-y = <1920>;
534		touchscreen-swapped-x-y;
535	};
536};
537
538&i2c4 {
539	pinctrl-0 = <&i2c4m2_xfer>;
540	status = "okay";
541
542	ti_adc: adc@48 {
543		compatible = "ti,ads1015";
544		reg = <0x48>;
545		#address-cells = <1>;
546		#io-channel-cells = <1>;
547		#size-cells = <0>;
548
549		channel@4 {
550			reg = <4>;
551		};
552
553		channel@5 {
554			reg = <5>;
555		};
556
557		channel@6 {
558			reg = <6>;
559		};
560
561		channel@7 {
562			reg = <7>;
563		};
564	};
565
566	imu@68 {
567		compatible = "invensense,mpu6880";
568		reg = <0x68>;
569		interrupt-parent = <&gpio0>;
570		interrupts = <RK_PD3 IRQ_TYPE_EDGE_RISING>;
571	};
572};
573
574&i2c6 {
575	pinctrl-0 = <&i2c6m3_xfer>;
576	status = "okay";
577
578	rtc_hym8563: rtc@51 {
579		compatible = "haoyu,hym8563";
580		reg = <0x51>;
581		#clock-cells = <0>;
582		clock-output-names = "hym8563";
583		interrupt-parent = <&gpio0>;
584		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
585		pinctrl-0 = <&hym8563_int>, <&clk32k_in>;
586		pinctrl-names = "default";
587		wakeup-source;
588	};
589
590	/* Battery profile from BSP device tree. */
591	battery@62 {
592		compatible = "cellwise,cw2015";
593		reg = <0x62>;
594
595		cellwise,battery-profile = /bits/ 8
596			<0x18 0x0A 0x76 0x6A 0x6A 0x6A 0x68 0x66
597			 0x62 0x5E 0x5A 0x58 0x5F 0x59 0x46 0x3D
598			 0x35 0x2D 0x28 0x21 0x29 0x38 0x44 0x50
599			 0x1A 0x85 0x07 0xAE 0x14 0x28 0x48 0x56
600			 0x66 0x66 0x66 0x6A 0x3E 0x1A 0x6C 0x3D
601			 0x09 0x38 0x1A 0x49 0x7B 0x96 0xA2 0x15
602			 0x3B 0x77 0x9A 0xB1 0x80 0x87 0xB0 0xCB
603			 0x2F 0x00 0x64 0xA5 0xB5 0x1C 0xF0 0x49>;
604		cellwise,monitor-interval-ms = <5000>;
605		monitored-battery = <&battery>;
606		status = "okay";
607	};
608};
609
610&i2c7 {
611	status = "okay";
612
613	es8388: audio-codec@11 {
614		compatible = "everest,es8388";
615		reg = <0x11>;
616		assigned-clock-rates = <12288000>;
617		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
618		AVDD-supply = <&vcc_3v3_s3>;
619		clocks = <&cru I2S0_8CH_MCLKOUT>;
620		DVDD-supply = <&vcc_1v8_s3>;
621		HPVDD-supply = <&vcc_3v3_s3>;
622		PVDD-supply = <&vcc_1v8_s3>;
623		#sound-dai-cells = <0>;
624	};
625};
626
627&i2s0_8ch {
628	pinctrl-0 = <&i2s0_lrck
629		     &i2s0_mclk
630		     &i2s0_sclk
631		     &i2s0_sdi0
632		     &i2s0_sdo0>;
633	status = "okay";
634};
635
636&package_thermal {
637	polling-delay = <1000>;
638
639	trips {
640		package_fan0: package-fan0 {
641			temperature = <55000>;
642			hysteresis = <2000>;
643			type = "active";
644		};
645
646		package_fan1: package-fan1 {
647			temperature = <65000>;
648			hysteresis = <2000>;
649			type = "active";
650		};
651	};
652
653	cooling-maps {
654		map1 {
655			trip = <&package_fan0>;
656			cooling-device = <&pwm_fan THERMAL_NO_LIMIT 1>;
657		};
658
659		map2 {
660			trip = <&package_fan1>;
661			cooling-device = <&pwm_fan 2 THERMAL_NO_LIMIT>;
662		};
663	};
664};
665
666/*
667 * Attempts to use an M.2 SATA in this slot worked intermittently
668 * with the correct nodes enabled in device-tree, but eventually
669 * resulted in a destroyed board. Advise caution.
670 */
671&pcie2x1l1 {
672	pinctrl-0 = <&pcie_rst>;
673	pinctrl-names = "default";
674	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
675	status = "okay";
676};
677
678&pinctrl {
679	audio-amplifier {
680		headphone_amplifier_en: headphone-amplifier-en {
681			rockchip,pins =
682				<0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
683		};
684
685		hp_detect: headphone-detect {
686			rockchip,pins =
687				<3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
688		};
689
690		speaker_amplifier_en: speaker-amplifier-en {
691			rockchip,pins =
692				<4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
693		};
694	};
695
696	bt {
697		bt_enable_h: bt-enable-h {
698			rockchip,pins =
699				<3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
700		};
701
702		bt_host_wake_l: bt-host-wake-l {
703			rockchip,pins =
704				<3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
705		};
706
707		bt_wake_l: bt-wake-l {
708			rockchip,pins =
709				<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
710		};
711	};
712
713	charger {
714		boost_enable_h: boost-enable-h {
715			rockchip,pins =
716				<4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
717		};
718		charger_int_h: charger-int-h {
719			rockchip,pins =
720				<0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
721		};
722	};
723
724	hym8563 {
725		hym8563_int: hym8563-int {
726			rockchip,pins =
727				<0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
728		};
729	};
730
731	gpio-btns {
732		btn_pins_ctrl: btn-pins-ctrl {
733			rockchip,pins =
734				<1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
735				<1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
736				<1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
737				<1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
738				<1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
739				<1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
740				<1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
741				<1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
742				<1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
743				<1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
744				<1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
745				<1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
746				<1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
747				<1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
748				<1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
749				<1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>;
750		};
751	};
752
753	gpio-leds {
754		led_pins: led-pins {
755			rockchip,pins =
756				<3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
757				<3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
758		};
759	};
760
761	lcd_bl_en {
762		lcd_bl_en: lcd-bl-en {
763			rockchip,pins =
764				<3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
765		};
766	};
767
768	pcie-pins {
769		pcie_rst: pcie-rst {
770			rockchip,pins =
771				<3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
772		};
773	};
774
775	sd-pwr {
776		sd_s0_pwr: sd-s0-pwr {
777			rockchip,pins =
778				<4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
779		};
780	};
781
782	spk-pwr {
783		vcc5v0_spk_pwr: vcc5v0-spk-pwr {
784			rockchip,pins =
785				<4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
786		};
787	};
788
789	touch {
790		touch_int: touch-int {
791			rockchip,pins =
792				<1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
793		};
794
795		touch_rst: touch-rst {
796			rockchip,pins =
797				<1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
798		};
799	};
800
801	usb-typec {
802		usbc0_int: usbc0-int {
803			rockchip,pins =
804				<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
805		};
806	};
807
808	vcc3v3-lcd {
809		vcc_lcd_h: vcc-lcd-h {
810			rockchip,pins =
811				<4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
812		};
813	};
814
815	vibrator {
816		vib_left_h: vib-left-h {
817			rockchip,pins =
818				<4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
819		};
820
821		vib_right_h: vib-right-h {
822			rockchip,pins =
823				<1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>;
824		};
825	};
826
827	wifi {
828		wifi_enable_h: wifi-enable-h {
829			rockchip,pins =
830				<3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
831		};
832
833		wifi_host_wake_irq: wifi-host-wake-irq {
834			rockchip,pins =
835				<0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
836		};
837	};
838};
839
840&pwm12 {
841	pinctrl-0 = <&pwm12m1_pins>;
842	status = "okay";
843};
844
845&pwm13 {
846	pinctrl-0 = <&pwm13m1_pins>;
847	status = "okay";
848};
849
850&saradc {
851	vref-supply = <&vcc_1v8_s0>;
852	status = "okay";
853};
854
855&sdhci {
856	bus-width = <8>;
857	mmc-hs400-1_8v;
858	mmc-hs400-enhanced-strobe;
859	no-sd;
860	no-sdio;
861	non-removable;
862	status = "okay";
863};
864
865&sdio {
866	#address-cells = <1>;
867	bus-width = <4>;
868	cap-sd-highspeed;
869	cap-sdio-irq;
870	disable-wp;
871	keep-power-in-suspend;
872	max-frequency = <150000000>;
873	mmc-pwrseq = <&sdio_pwrseq>;
874	no-mmc;
875	no-sd;
876	sd-uhs-sdr104;
877	#size-cells = <0>;
878	status = "okay";
879
880	brcmf: wifi@1 {
881		compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
882		reg = <1>;
883		interrupt-parent = <&gpio0>;
884		interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
885		interrupt-names = "host-wake";
886		pinctrl-0 = <&wifi_host_wake_irq>;
887		pinctrl-names = "default";
888	};
889};
890
891&sdmmc {
892	bus-width = <4>;
893	cap-mmc-highspeed;
894	cap-sd-highspeed;
895	disable-wp;
896	max-frequency = <150000000>;
897	no-sdio;
898	no-mmc;
899	sd-uhs-sdr104;
900	vmmc-supply = <&vcc_3v3_sd_s0>;
901	vqmmc-supply = <&vccio_sd_s0>;
902	status = "okay";
903};
904
905&spi2 {
906	#address-cells = <1>;
907	assigned-clocks = <&cru CLK_SPI2>;
908	assigned-clock-rates = <200000000>;
909	num-cs = <1>;
910	pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>;
911	pinctrl-names = "default";
912	#size-cells = <0>;
913	status = "okay";
914
915	pmic@0 {
916		compatible = "rockchip,rk806";
917		reg = <0x0>;
918		#gpio-cells = <2>;
919		gpio-controller;
920		interrupt-parent = <&gpio0>;
921		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
922		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
923			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
924		pinctrl-names = "default";
925		spi-max-frequency = <1000000>;
926		system-power-controller;
927
928		vcc1-supply = <&vcc5v0_sys>;
929		vcc2-supply = <&vcc5v0_sys>;
930		vcc3-supply = <&vcc5v0_sys>;
931		vcc4-supply = <&vcc5v0_sys>;
932		vcc5-supply = <&vcc5v0_sys>;
933		vcc6-supply = <&vcc5v0_sys>;
934		vcc7-supply = <&vcc5v0_sys>;
935		vcc8-supply = <&vcc5v0_sys>;
936		vcc9-supply = <&vcc5v0_sys>;
937		vcc10-supply = <&vcc5v0_sys>;
938		vcc11-supply = <&vcc_2v0_pldo_s3>;
939		vcc12-supply = <&vcc5v0_sys>;
940		vcc13-supply = <&vcc_1v1_nldo_s3>;
941		vcc14-supply = <&vcc_1v1_nldo_s3>;
942		vcca-supply = <&vcc5v0_sys>;
943
944		rk806_dvs1_null: dvs1-null-pins {
945			pins = "gpio_pwrctrl1";
946			function = "pin_fun0";
947		};
948
949		rk806_dvs2_null: dvs2-null-pins {
950			pins = "gpio_pwrctrl2";
951			function = "pin_fun0";
952		};
953
954		rk806_dvs3_null: dvs3-null-pins {
955			pins = "gpio_pwrctrl3";
956			function = "pin_fun0";
957		};
958
959		regulators {
960			vdd_gpu_s0: dcdc-reg1 {
961				regulator-boot-on;
962				regulator-enable-ramp-delay = <400>;
963				regulator-max-microvolt = <950000>;
964				regulator-min-microvolt = <550000>;
965				regulator-name = "vdd_gpu_s0";
966				regulator-ramp-delay = <12500>;
967				regulator-state-mem {
968					regulator-off-in-suspend;
969				};
970			};
971
972			vdd_cpu_lit_s0: dcdc-reg2 {
973				regulator-always-on;
974				regulator-boot-on;
975				regulator-max-microvolt = <950000>;
976				regulator-min-microvolt = <550000>;
977				regulator-ramp-delay = <12500>;
978				regulator-name = "vdd_cpu_lit_s0";
979				regulator-state-mem {
980					regulator-off-in-suspend;
981				};
982			};
983
984			vdd_logic_s0: dcdc-reg3 {
985				regulator-always-on;
986				regulator-boot-on;
987				regulator-max-microvolt = <750000>;
988				regulator-min-microvolt = <675000>;
989				regulator-name = "vdd_logic_s0";
990				regulator-ramp-delay = <12500>;
991				regulator-state-mem {
992					regulator-on-in-suspend;
993					regulator-suspend-microvolt = <750000>;
994				};
995			};
996
997			vdd_vdenc_s0: dcdc-reg4 {
998				regulator-always-on;
999				regulator-boot-on;
1000				regulator-max-microvolt = <950000>;
1001				regulator-min-microvolt = <550000>;
1002				regulator-name = "vdd_vdenc_s0";
1003				regulator-ramp-delay = <12500>;
1004				regulator-state-mem {
1005					regulator-off-in-suspend;
1006				};
1007			};
1008
1009			vdd_ddr_s0: dcdc-reg5 {
1010				regulator-always-on;
1011				regulator-boot-on;
1012				regulator-min-microvolt = <675000>;
1013				regulator-max-microvolt = <900000>;
1014				regulator-ramp-delay = <12500>;
1015				regulator-name = "vdd_ddr_s0";
1016				regulator-state-mem {
1017					regulator-off-in-suspend;
1018					regulator-suspend-microvolt = <850000>;
1019				};
1020			};
1021
1022			vdd2_ddr_s3: dcdc-reg6 {
1023				regulator-always-on;
1024				regulator-boot-on;
1025				regulator-name = "vdd2_ddr_s3";
1026				regulator-state-mem {
1027					regulator-on-in-suspend;
1028				};
1029			};
1030
1031			vcc_2v0_pldo_s3: dcdc-reg7 {
1032				regulator-always-on;
1033				regulator-boot-on;
1034				regulator-max-microvolt = <2000000>;
1035				regulator-min-microvolt = <2000000>;
1036				regulator-name = "vdd_2v0_pldo_s3";
1037				regulator-state-mem {
1038					regulator-on-in-suspend;
1039					regulator-suspend-microvolt = <2000000>;
1040				};
1041			};
1042
1043			vcc_3v3_s3: dcdc-reg8 {
1044				regulator-always-on;
1045				regulator-boot-on;
1046				regulator-max-microvolt = <3300000>;
1047				regulator-min-microvolt = <3300000>;
1048				regulator-name = "vcc_3v3_s3";
1049				regulator-state-mem {
1050					regulator-on-in-suspend;
1051					regulator-suspend-microvolt = <3300000>;
1052				};
1053			};
1054
1055			vddq_ddr_s0: dcdc-reg9 {
1056				regulator-always-on;
1057				regulator-boot-on;
1058				regulator-name = "vddq_ddr_s0";
1059				regulator-state-mem {
1060					regulator-off-in-suspend;
1061				};
1062			};
1063
1064			vcc_1v8_s3: dcdc-reg10 {
1065				regulator-always-on;
1066				regulator-boot-on;
1067				regulator-max-microvolt = <1800000>;
1068				regulator-min-microvolt = <1800000>;
1069				regulator-name = "vcc_1v8_s3";
1070				regulator-state-mem {
1071					regulator-on-in-suspend;
1072					regulator-suspend-microvolt = <1800000>;
1073				};
1074			};
1075
1076			avcc_1v8_s0: pldo-reg1 {
1077				regulator-always-on;
1078				regulator-boot-on;
1079				regulator-max-microvolt = <1800000>;
1080				regulator-min-microvolt = <1800000>;
1081				regulator-name = "avcc_1v8_s0";
1082				regulator-state-mem {
1083					regulator-off-in-suspend;
1084				};
1085			};
1086
1087			vcc_1v8_s0: pldo-reg2 {
1088				regulator-always-on;
1089				regulator-boot-on;
1090				regulator-max-microvolt = <1800000>;
1091				regulator-min-microvolt = <1800000>;
1092				regulator-name = "vcc_1v8_s0";
1093				regulator-state-mem {
1094					regulator-off-in-suspend;
1095					regulator-suspend-microvolt = <1800000>;
1096				};
1097			};
1098
1099			avdd_1v2_s0: pldo-reg3 {
1100				regulator-always-on;
1101				regulator-boot-on;
1102				regulator-max-microvolt = <1200000>;
1103				regulator-min-microvolt = <1200000>;
1104				regulator-name = "avdd_1v2_s0";
1105				regulator-state-mem {
1106					regulator-off-in-suspend;
1107				};
1108			};
1109
1110			vcc_3v3_s0: pldo-reg4 {
1111				regulator-always-on;
1112				regulator-boot-on;
1113				regulator-max-microvolt = <3300000>;
1114				regulator-min-microvolt = <3300000>;
1115				regulator-name = "vcc_3v3_s0";
1116				regulator-state-mem {
1117					regulator-off-in-suspend;
1118				};
1119			};
1120
1121			vccio_sd_s0: pldo-reg5 {
1122				regulator-always-on;
1123				regulator-boot-on;
1124				regulator-max-microvolt = <3300000>;
1125				regulator-min-microvolt = <1800000>;
1126				regulator-name = "vccio_sd_s0";
1127				regulator-state-mem {
1128					regulator-off-in-suspend;
1129				};
1130			};
1131
1132			vcc_1v8_s3_pldo6: pldo-reg6 {
1133				regulator-always-on;
1134				regulator-boot-on;
1135				regulator-max-microvolt = <1800000>;
1136				regulator-min-microvolt = <1800000>;
1137				regulator-name = "vcc_1v8_s3_pldo6";
1138				regulator-state-mem {
1139					regulator-on-in-suspend;
1140					regulator-suspend-microvolt = <1800000>;
1141				};
1142			};
1143
1144			vdd_0v75_s3: nldo-reg1 {
1145				regulator-always-on;
1146				regulator-boot-on;
1147				regulator-max-microvolt = <750000>;
1148				regulator-min-microvolt = <750000>;
1149				regulator-name = "vdd_0v75_s3";
1150				regulator-state-mem {
1151					regulator-on-in-suspend;
1152					regulator-suspend-microvolt = <750000>;
1153				};
1154			};
1155
1156			vdd_ddr_pll_s0: nldo-reg2 {
1157				regulator-always-on;
1158				regulator-boot-on;
1159				regulator-max-microvolt = <850000>;
1160				regulator-min-microvolt = <850000>;
1161				regulator-name = "vdd_ddr_pll_s0";
1162				regulator-state-mem {
1163					regulator-off-in-suspend;
1164					regulator-suspend-microvolt = <850000>;
1165				};
1166			};
1167
1168			avdd_0v75_s0: nldo-reg3 {
1169				regulator-always-on;
1170				regulator-boot-on;
1171				regulator-max-microvolt = <837500>;
1172				regulator-min-microvolt = <837500>;
1173				regulator-name = "avdd_0v75_s0";
1174				regulator-state-mem {
1175					regulator-off-in-suspend;
1176				};
1177			};
1178
1179			vdd_0v85_s0: nldo-reg4 {
1180				regulator-always-on;
1181				regulator-boot-on;
1182				regulator-min-microvolt = <850000>;
1183				regulator-max-microvolt = <850000>;
1184				regulator-name = "vdd_0v85_s0";
1185				regulator-state-mem {
1186					regulator-off-in-suspend;
1187				};
1188			};
1189
1190			vdd_0v75_s0: nldo-reg5 {
1191				regulator-always-on;
1192				regulator-boot-on;
1193				regulator-min-microvolt = <750000>;
1194				regulator-max-microvolt = <750000>;
1195				regulator-name = "vdd_0v75_s0";
1196				regulator-state-mem {
1197					regulator-off-in-suspend;
1198				};
1199			};
1200		};
1201	};
1202};
1203
1204&tsadc {
1205	status = "okay";
1206};
1207
1208&u2phy0 {
1209	status = "okay";
1210};
1211
1212&u2phy0_otg {
1213	status = "okay";
1214};
1215
1216&uart2 {
1217	pinctrl-0 = <&uart2m0_xfer>;
1218	status = "okay";
1219};
1220
1221&uart9 {
1222	pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>;
1223	uart-has-rtscts;
1224	status = "okay";
1225
1226	bluetooth {
1227		compatible = "brcm,bcm4345c5";
1228		clocks = <&rtc_hym8563>;
1229		clock-names = "lpo";
1230		device-wakeup-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
1231		interrupt-parent = <&gpio3>;
1232		interrupts = <RK_PB0 IRQ_TYPE_EDGE_FALLING>;
1233		pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_l>;
1234		pinctrl-names = "default";
1235		shutdown-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
1236	};
1237};
1238