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