xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3308-ai-va-v10.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
9*4882a593Smuzhiyun#include "rk3308.dtsi"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	model = "Rockchip RK3308 voice assistant v10 board";
13*4882a593Smuzhiyun	compatible = "rockchip,rk3308-ai-va-v10", "rockchip,rk3308";
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	chosen {
16*4882a593Smuzhiyun		bootargs = "earlycon=uart8250,mmio32,0xff0c0000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=squashfs rootwait snd_aloop.index=7 snd_aloop.use_raw_jiffies=1";
17*4882a593Smuzhiyun	};
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	adc-keys0 {
20*4882a593Smuzhiyun		compatible = "adc-keys";
21*4882a593Smuzhiyun		io-channels = <&saradc 0>;
22*4882a593Smuzhiyun		io-channel-names = "buttons";
23*4882a593Smuzhiyun		poll-interval = <100>;
24*4882a593Smuzhiyun		keyup-threshold-microvolt = <1800000>;
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun		func-key {
27*4882a593Smuzhiyun			linux,code = <KEY_FN>;
28*4882a593Smuzhiyun			label = "function";
29*4882a593Smuzhiyun			press-threshold-microvolt = <17000>;
30*4882a593Smuzhiyun		};
31*4882a593Smuzhiyun	};
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	adc-keys1 {
34*4882a593Smuzhiyun		compatible = "adc-keys";
35*4882a593Smuzhiyun		io-channels = <&saradc 1>;
36*4882a593Smuzhiyun		io-channel-names = "buttons";
37*4882a593Smuzhiyun		poll-interval = <100>;
38*4882a593Smuzhiyun		keyup-threshold-microvolt = <1800000>;
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun		play-key {
41*4882a593Smuzhiyun			linux,code = <KEY_PLAY>;
42*4882a593Smuzhiyun			label = "play";
43*4882a593Smuzhiyun			press-threshold-microvolt = <625000>;
44*4882a593Smuzhiyun		};
45*4882a593Smuzhiyun	};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	gpio-keys {
48*4882a593Smuzhiyun		compatible = "gpio-keys";
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		pinctrl-names = "default";
51*4882a593Smuzhiyun		pinctrl-0 = <&mic_mute>;
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun		mute {
54*4882a593Smuzhiyun			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
55*4882a593Smuzhiyun			linux,code = <KEY_MICMUTE>;
56*4882a593Smuzhiyun			label = "GPIO Mic Mute";
57*4882a593Smuzhiyun			debounce-interval = <100>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun	};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	rotary {
62*4882a593Smuzhiyun		compatible = "rotary-encoder";
63*4882a593Smuzhiyun		pinctrl-names = "default";
64*4882a593Smuzhiyun		pinctrl-0 = <&rotary_gpio>;
65*4882a593Smuzhiyun		gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>,
66*4882a593Smuzhiyun			<&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;
67*4882a593Smuzhiyun		linux,axis = <0>; /* REL_X */
68*4882a593Smuzhiyun		rotary-encoder,relative-axis;
69*4882a593Smuzhiyun	};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	sdio_pwrseq: sdio-pwrseq {
72*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
73*4882a593Smuzhiyun		pinctrl-names = "default";
74*4882a593Smuzhiyun		pinctrl-0 = <&wifi_enable_h>;
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		/*
77*4882a593Smuzhiyun		 * On the module itself this is one of these (depending
78*4882a593Smuzhiyun		 * on the actual card populated):
79*4882a593Smuzhiyun		 * - SDIO_RESET_L_WL_REG_ON
80*4882a593Smuzhiyun		 * - PDN (power down when low)
81*4882a593Smuzhiyun		 */
82*4882a593Smuzhiyun		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
83*4882a593Smuzhiyun	};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	sound {
86*4882a593Smuzhiyun		compatible = "simple-audio-card";
87*4882a593Smuzhiyun		simple-audio-card,format = "i2s";
88*4882a593Smuzhiyun		simple-audio-card,mclk-fs = <256>;
89*4882a593Smuzhiyun		simple-audio-card,name = "i2s_8ch_0";
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		simple-audio-card,dai-link@0 {
92*4882a593Smuzhiyun			format = "i2s";
93*4882a593Smuzhiyun			cpu {
94*4882a593Smuzhiyun				sound-dai = <&i2s_8ch_0>;
95*4882a593Smuzhiyun			};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun			codec {
98*4882a593Smuzhiyun				sound-dai = <&dummy_codec>;
99*4882a593Smuzhiyun			};
100*4882a593Smuzhiyun		};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun		simple-audio-card,dai-link@1 {
103*4882a593Smuzhiyun			format = "i2s";
104*4882a593Smuzhiyun			cpu {
105*4882a593Smuzhiyun				sound-dai = <&i2s_8ch_0>;
106*4882a593Smuzhiyun			};
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun			codec {
109*4882a593Smuzhiyun				sound-dai = <&tas5711>;
110*4882a593Smuzhiyun			};
111*4882a593Smuzhiyun		};
112*4882a593Smuzhiyun	};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	dummy_codec: dummy-codec {
115*4882a593Smuzhiyun		compatible = "rockchip,dummy-codec";
116*4882a593Smuzhiyun		#sound-dai-cells = <0>;
117*4882a593Smuzhiyun	};
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun	vdd_log: vdd_core: vdd-core {
120*4882a593Smuzhiyun		compatible = "pwm-regulator";
121*4882a593Smuzhiyun		pwms = <&pwm0 0 5000 1>;
122*4882a593Smuzhiyun		regulator-name = "vdd_core";
123*4882a593Smuzhiyun		regulator-min-microvolt = <827000>;
124*4882a593Smuzhiyun		regulator-max-microvolt = <1340000>;
125*4882a593Smuzhiyun		regulator-init-microvolt = <1015000>;
126*4882a593Smuzhiyun		regulator-always-on;
127*4882a593Smuzhiyun		regulator-boot-on;
128*4882a593Smuzhiyun		regulator-settling-time-up-us = <250>;
129*4882a593Smuzhiyun		status = "okay";
130*4882a593Smuzhiyun	};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun	vdd_1v0: vdd-1v0 {
133*4882a593Smuzhiyun		compatible = "regulator-fixed";
134*4882a593Smuzhiyun		regulator-name = "vdd_1v0";
135*4882a593Smuzhiyun		regulator-always-on;
136*4882a593Smuzhiyun		regulator-boot-on;
137*4882a593Smuzhiyun		regulator-min-microvolt = <1000000>;
138*4882a593Smuzhiyun		regulator-max-microvolt = <1000000>;
139*4882a593Smuzhiyun	};
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun	vccio_sdio: vcc_1v8: vcc-1v8 {
142*4882a593Smuzhiyun		compatible = "regulator-fixed";
143*4882a593Smuzhiyun		regulator-name = "vcc_1v8";
144*4882a593Smuzhiyun		regulator-always-on;
145*4882a593Smuzhiyun		regulator-boot-on;
146*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
147*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
148*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
149*4882a593Smuzhiyun	};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun	vcc_1v8_codec: vcc-1v8-codec {
152*4882a593Smuzhiyun		compatible = "regulator-fixed";
153*4882a593Smuzhiyun		regulator-name = "vcc_1v8_codec";
154*4882a593Smuzhiyun		regulator-always-on;
155*4882a593Smuzhiyun		regulator-boot-on;
156*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
157*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
158*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
159*4882a593Smuzhiyun	};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun	vcc_ddr: vcc-ddr {
162*4882a593Smuzhiyun		compatible = "regulator-fixed";
163*4882a593Smuzhiyun		regulator-name = "vcc_ddr";
164*4882a593Smuzhiyun		regulator-always-on;
165*4882a593Smuzhiyun		regulator-boot-on;
166*4882a593Smuzhiyun		regulator-min-microvolt = <1500000>;
167*4882a593Smuzhiyun		regulator-max-microvolt = <1500000>;
168*4882a593Smuzhiyun	};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun	vcc_3v3_codec: vcc_io: vcc-io {
171*4882a593Smuzhiyun		compatible = "regulator-fixed";
172*4882a593Smuzhiyun		regulator-name = "vcc_io";
173*4882a593Smuzhiyun		regulator-always-on;
174*4882a593Smuzhiyun		regulator-boot-on;
175*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
176*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
177*4882a593Smuzhiyun	};
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun	vccio_flash: vccio-flash {
180*4882a593Smuzhiyun		compatible = "regulator-fixed";
181*4882a593Smuzhiyun		regulator-name = "vccio_flash";
182*4882a593Smuzhiyun		regulator-always-on;
183*4882a593Smuzhiyun		regulator-boot-on;
184*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
185*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
186*4882a593Smuzhiyun	};
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun	wireless-bluetooth {
189*4882a593Smuzhiyun		compatible = "bluetooth-platdata";
190*4882a593Smuzhiyun		uart_rts_gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
191*4882a593Smuzhiyun		pinctrl-names = "default", "rts_gpio";
192*4882a593Smuzhiyun		pinctrl-0 = <&uart4_rts>;
193*4882a593Smuzhiyun		pinctrl-1 = <&uart4_rts_pin>;
194*4882a593Smuzhiyun		BT,power_gpio    = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
195*4882a593Smuzhiyun		BT,wake_host_irq = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
196*4882a593Smuzhiyun		status = "okay";
197*4882a593Smuzhiyun	};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun	wireless-wlan {
200*4882a593Smuzhiyun		compatible = "wlan-platdata";
201*4882a593Smuzhiyun		rockchip,grf = <&grf>;
202*4882a593Smuzhiyun		pinctrl-names = "default";
203*4882a593Smuzhiyun		pinctrl-0 = <&wifi_wake_host>, <&rtc_32k>;
204*4882a593Smuzhiyun		wifi_chip_type = "ap6255";
205*4882a593Smuzhiyun		WIFI,host_wake_irq = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
206*4882a593Smuzhiyun		status = "okay";
207*4882a593Smuzhiyun	};
208*4882a593Smuzhiyun};
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun&cpu0 {
211*4882a593Smuzhiyun	cpu-supply = <&vdd_core>;
212*4882a593Smuzhiyun};
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun&dmc {
215*4882a593Smuzhiyun	center-supply = <&vdd_core>;
216*4882a593Smuzhiyun	status = "okay";
217*4882a593Smuzhiyun};
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun&emmc {
220*4882a593Smuzhiyun	bus-width = <8>;
221*4882a593Smuzhiyun	cap-mmc-highspeed;
222*4882a593Smuzhiyun	mmc-hs200-1_8v;
223*4882a593Smuzhiyun	no-sdio;
224*4882a593Smuzhiyun	no-sd;
225*4882a593Smuzhiyun	disable-wp;
226*4882a593Smuzhiyun	non-removable;
227*4882a593Smuzhiyun	num-slots = <1>;
228*4882a593Smuzhiyun	status = "okay";
229*4882a593Smuzhiyun};
230*4882a593Smuzhiyun
231*4882a593Smuzhiyun&fiq_debugger {
232*4882a593Smuzhiyun	status = "okay";
233*4882a593Smuzhiyun};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun&io_domains {
236*4882a593Smuzhiyun	status = "okay";
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun	vccio0-supply = <&vcc_io>;
239*4882a593Smuzhiyun	vccio1-supply = <&vcc_io>;
240*4882a593Smuzhiyun	vccio2-supply = <&vcc_1v8>;
241*4882a593Smuzhiyun	vccio3-supply = <&vccio_flash>;
242*4882a593Smuzhiyun	vccio4-supply = <&vccio_sdio>;
243*4882a593Smuzhiyun	vccio5-supply = <&vcc_io>;
244*4882a593Smuzhiyun};
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun&i2c1 {
247*4882a593Smuzhiyun	clock-frequency = <400000>;
248*4882a593Smuzhiyun	status = "okay";
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun	is31fl3236: led-controller@3c {
251*4882a593Smuzhiyun		compatible = "issi,is31fl3236";
252*4882a593Smuzhiyun		reg = <0x3c>;
253*4882a593Smuzhiyun		#address-cells = <1>;
254*4882a593Smuzhiyun		#size-cells = <0>;
255*4882a593Smuzhiyun		reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
256*4882a593Smuzhiyun		status = "okay";
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun		led1: led@1 {
259*4882a593Smuzhiyun			label = "led1";
260*4882a593Smuzhiyun			reg = <1>;
261*4882a593Smuzhiyun			led-max-microamp = <10000>;
262*4882a593Smuzhiyun			linux,default-trigger = "timer";
263*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <0>;
264*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
265*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
266*4882a593Smuzhiyun		};
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun		led2: led@2 {
269*4882a593Smuzhiyun			label = "led2";
270*4882a593Smuzhiyun			reg = <2>;
271*4882a593Smuzhiyun			led-max-microamp = <10000>;
272*4882a593Smuzhiyun			linux,default-trigger = "timer";
273*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <0>;
274*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
275*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
276*4882a593Smuzhiyun		};
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun		led3: led@3 {
279*4882a593Smuzhiyun			label = "led3";
280*4882a593Smuzhiyun			reg = <3>;
281*4882a593Smuzhiyun			led-max-microamp = <10000>;
282*4882a593Smuzhiyun			linux,default-trigger = "default-on";
283*4882a593Smuzhiyun		};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun		led4: led@4 {
286*4882a593Smuzhiyun			label = "led4";
287*4882a593Smuzhiyun			reg = <4>;
288*4882a593Smuzhiyun			led-max-microamp = <10000>;
289*4882a593Smuzhiyun			linux,default-trigger = "timer";
290*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <100>;
291*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
292*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
293*4882a593Smuzhiyun		};
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun		led5: led@5 {
296*4882a593Smuzhiyun			label = "led5";
297*4882a593Smuzhiyun			reg = <5>;
298*4882a593Smuzhiyun			led-max-microamp = <10000>;
299*4882a593Smuzhiyun			linux,default-trigger = "timer";
300*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <100>;
301*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
302*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
303*4882a593Smuzhiyun		};
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun		led6: led@6 {
306*4882a593Smuzhiyun			label = "led6";
307*4882a593Smuzhiyun			reg = <6>;
308*4882a593Smuzhiyun			led-max-microamp = <10000>;
309*4882a593Smuzhiyun			linux,default-trigger = "default-on";
310*4882a593Smuzhiyun		};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun		led7: led@7 {
313*4882a593Smuzhiyun			label = "led7";
314*4882a593Smuzhiyun			reg = <7>;
315*4882a593Smuzhiyun			led-max-microamp = <10000>;
316*4882a593Smuzhiyun			linux,default-trigger = "timer";
317*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <200>;
318*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
319*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
320*4882a593Smuzhiyun		};
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun		led8: led@8 {
323*4882a593Smuzhiyun			label = "led8";
324*4882a593Smuzhiyun			reg = <8>;
325*4882a593Smuzhiyun			led-max-microamp = <10000>;
326*4882a593Smuzhiyun			linux,default-trigger = "timer";
327*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <200>;
328*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
329*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
330*4882a593Smuzhiyun		};
331*4882a593Smuzhiyun
332*4882a593Smuzhiyun		led9: led@9 {
333*4882a593Smuzhiyun			label = "led9";
334*4882a593Smuzhiyun			reg = <9>;
335*4882a593Smuzhiyun			led-max-microamp = <10000>;
336*4882a593Smuzhiyun			linux,default-trigger = "default-on";
337*4882a593Smuzhiyun		};
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun		led10: led@10 {
340*4882a593Smuzhiyun			label = "led10";
341*4882a593Smuzhiyun			reg = <10>;
342*4882a593Smuzhiyun			led-max-microamp = <10000>;
343*4882a593Smuzhiyun			linux,default-trigger = "timer";
344*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <300>;
345*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
346*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
347*4882a593Smuzhiyun		};
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun		led11: led@11 {
350*4882a593Smuzhiyun			label = "led11";
351*4882a593Smuzhiyun			reg = <11>;
352*4882a593Smuzhiyun			led-max-microamp = <10000>;
353*4882a593Smuzhiyun			linux,default-trigger = "timer";
354*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <300>;
355*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
356*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
357*4882a593Smuzhiyun		};
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun		led12: led@12 {
360*4882a593Smuzhiyun			label = "led12";
361*4882a593Smuzhiyun			reg = <12>;
362*4882a593Smuzhiyun			led-max-microamp = <10000>;
363*4882a593Smuzhiyun			linux,default-trigger = "default-on";
364*4882a593Smuzhiyun		};
365*4882a593Smuzhiyun
366*4882a593Smuzhiyun		led13: led@13 {
367*4882a593Smuzhiyun			label = "led13";
368*4882a593Smuzhiyun			reg = <13>;
369*4882a593Smuzhiyun			led-max-microamp = <10000>;
370*4882a593Smuzhiyun			linux,default-trigger = "timer";
371*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <400>;
372*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
373*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
374*4882a593Smuzhiyun		};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun		led14: led@14 {
377*4882a593Smuzhiyun			label = "led14";
378*4882a593Smuzhiyun			reg = <14>;
379*4882a593Smuzhiyun			led-max-microamp = <10000>;
380*4882a593Smuzhiyun			linux,default-trigger = "timer";
381*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <400>;
382*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
383*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
384*4882a593Smuzhiyun		};
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun		led15: led@15 {
387*4882a593Smuzhiyun			label = "led15";
388*4882a593Smuzhiyun			reg = <15>;
389*4882a593Smuzhiyun			led-max-microamp = <10000>;
390*4882a593Smuzhiyun			linux,default-trigger = "default-on";
391*4882a593Smuzhiyun		};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun		led16: led@16 {
394*4882a593Smuzhiyun			label = "led16";
395*4882a593Smuzhiyun			reg = <16>;
396*4882a593Smuzhiyun			led-max-microamp = <10000>;
397*4882a593Smuzhiyun			linux,default-trigger = "timer";
398*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <500>;
399*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
400*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
401*4882a593Smuzhiyun		};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun		led17: led@17 {
404*4882a593Smuzhiyun			label = "led17";
405*4882a593Smuzhiyun			reg = <17>;
406*4882a593Smuzhiyun			led-max-microamp = <10000>;
407*4882a593Smuzhiyun			linux,default-trigger = "timer";
408*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <500>;
409*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
410*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
411*4882a593Smuzhiyun		};
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun		led18: led@18 {
414*4882a593Smuzhiyun			label = "led18";
415*4882a593Smuzhiyun			reg = <18>;
416*4882a593Smuzhiyun			led-max-microamp = <10000>;
417*4882a593Smuzhiyun			linux,default-trigger = "default-on";
418*4882a593Smuzhiyun		};
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun		led19: led@19 {
421*4882a593Smuzhiyun			label = "led19";
422*4882a593Smuzhiyun			reg = <19>;
423*4882a593Smuzhiyun			led-max-microamp = <10000>;
424*4882a593Smuzhiyun			linux,default-trigger = "timer";
425*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <600>;
426*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
427*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
428*4882a593Smuzhiyun		};
429*4882a593Smuzhiyun
430*4882a593Smuzhiyun		led20: led@20 {
431*4882a593Smuzhiyun			label = "led20";
432*4882a593Smuzhiyun			reg = <20>;
433*4882a593Smuzhiyun			led-max-microamp = <10000>;
434*4882a593Smuzhiyun			linux,default-trigger = "timer";
435*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <600>;
436*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
437*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
438*4882a593Smuzhiyun		};
439*4882a593Smuzhiyun
440*4882a593Smuzhiyun		led21: led@21 {
441*4882a593Smuzhiyun			label = "led21";
442*4882a593Smuzhiyun			reg = <21>;
443*4882a593Smuzhiyun			led-max-microamp = <10000>;
444*4882a593Smuzhiyun			linux,default-trigger = "default-on";
445*4882a593Smuzhiyun		};
446*4882a593Smuzhiyun
447*4882a593Smuzhiyun		led22: led@22 {
448*4882a593Smuzhiyun			label = "led22";
449*4882a593Smuzhiyun			reg = <22>;
450*4882a593Smuzhiyun			led-max-microamp = <10000>;
451*4882a593Smuzhiyun			linux,default-trigger = "timer";
452*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <700>;
453*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
454*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
455*4882a593Smuzhiyun		};
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun		led23: led@23 {
458*4882a593Smuzhiyun			label = "led23";
459*4882a593Smuzhiyun			reg = <23>;
460*4882a593Smuzhiyun			led-max-microamp = <10000>;
461*4882a593Smuzhiyun			linux,default-trigger = "timer";
462*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <700>;
463*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
464*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
465*4882a593Smuzhiyun		};
466*4882a593Smuzhiyun
467*4882a593Smuzhiyun		led124: led@24 {
468*4882a593Smuzhiyun			label = "led24";
469*4882a593Smuzhiyun			reg = <24>;
470*4882a593Smuzhiyun			led-max-microamp = <10000>;
471*4882a593Smuzhiyun			linux,default-trigger = "default-on";
472*4882a593Smuzhiyun		};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun		led25: led@25 {
475*4882a593Smuzhiyun			label = "led25";
476*4882a593Smuzhiyun			reg = <25>;
477*4882a593Smuzhiyun			led-max-microamp = <10000>;
478*4882a593Smuzhiyun			linux,default-trigger = "timer";
479*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <800>;
480*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
481*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
482*4882a593Smuzhiyun		};
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun		led26: led@26 {
485*4882a593Smuzhiyun			label = "led26";
486*4882a593Smuzhiyun			reg = <26>;
487*4882a593Smuzhiyun			led-max-microamp = <10000>;
488*4882a593Smuzhiyun			linux,default-trigger = "timer";
489*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <800>;
490*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
491*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
492*4882a593Smuzhiyun		};
493*4882a593Smuzhiyun
494*4882a593Smuzhiyun		led27: led@27 {
495*4882a593Smuzhiyun			label = "led27";
496*4882a593Smuzhiyun			reg = <27>;
497*4882a593Smuzhiyun			led-max-microamp = <10000>;
498*4882a593Smuzhiyun			linux,default-trigger = "default-on";
499*4882a593Smuzhiyun		};
500*4882a593Smuzhiyun
501*4882a593Smuzhiyun		led28: led@28 {
502*4882a593Smuzhiyun			label = "led28";
503*4882a593Smuzhiyun			reg = <28>;
504*4882a593Smuzhiyun			led-max-microamp = <10000>;
505*4882a593Smuzhiyun			linux,default-trigger = "timer";
506*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <900>;
507*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
508*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
509*4882a593Smuzhiyun		};
510*4882a593Smuzhiyun
511*4882a593Smuzhiyun		led29: led@29 {
512*4882a593Smuzhiyun			label = "led29";
513*4882a593Smuzhiyun			reg = <29>;
514*4882a593Smuzhiyun			led-max-microamp = <10000>;
515*4882a593Smuzhiyun			linux,default-trigger = "timer";
516*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <900>;
517*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
518*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
519*4882a593Smuzhiyun		};
520*4882a593Smuzhiyun
521*4882a593Smuzhiyun		led30: led@30 {
522*4882a593Smuzhiyun			label = "led30";
523*4882a593Smuzhiyun			reg = <30>;
524*4882a593Smuzhiyun			led-max-microamp = <10000>;
525*4882a593Smuzhiyun			linux,default-trigger = "default-on";
526*4882a593Smuzhiyun		};
527*4882a593Smuzhiyun
528*4882a593Smuzhiyun		led31: led@31 {
529*4882a593Smuzhiyun			label = "led31";
530*4882a593Smuzhiyun			reg = <31>;
531*4882a593Smuzhiyun			led-max-microamp = <10000>;
532*4882a593Smuzhiyun			linux,default-trigger = "timer";
533*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <1000>;
534*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
535*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
536*4882a593Smuzhiyun		};
537*4882a593Smuzhiyun
538*4882a593Smuzhiyun		led32: led@32 {
539*4882a593Smuzhiyun			label = "led32";
540*4882a593Smuzhiyun			reg = <32>;
541*4882a593Smuzhiyun			led-max-microamp = <10000>;
542*4882a593Smuzhiyun			linux,default-trigger = "timer";
543*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <1000>;
544*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
545*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
546*4882a593Smuzhiyun		};
547*4882a593Smuzhiyun
548*4882a593Smuzhiyun		led33: led@33 {
549*4882a593Smuzhiyun			label = "led33";
550*4882a593Smuzhiyun			reg = <33>;
551*4882a593Smuzhiyun			led-max-microamp = <10000>;
552*4882a593Smuzhiyun			linux,default-trigger = "default-on";
553*4882a593Smuzhiyun		};
554*4882a593Smuzhiyun
555*4882a593Smuzhiyun		led34: led@34 {
556*4882a593Smuzhiyun			label = "led34";
557*4882a593Smuzhiyun			reg = <34>;
558*4882a593Smuzhiyun			led-max-microamp = <10000>;
559*4882a593Smuzhiyun			linux,default-trigger = "timer";
560*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <1100>;
561*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
562*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
563*4882a593Smuzhiyun		};
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun		led35: led@35 {
566*4882a593Smuzhiyun			label = "led35";
567*4882a593Smuzhiyun			reg = <35>;
568*4882a593Smuzhiyun			led-max-microamp = <10000>;
569*4882a593Smuzhiyun			linux,default-trigger = "timer";
570*4882a593Smuzhiyun			linux,default-trigger-delay-ms = <1100>;
571*4882a593Smuzhiyun			linux,blink-delay-on-ms = <100>;
572*4882a593Smuzhiyun			linux,blink-delay-off-ms = <1200>;
573*4882a593Smuzhiyun		};
574*4882a593Smuzhiyun
575*4882a593Smuzhiyun		led36: led@36 {
576*4882a593Smuzhiyun			label = "led36";
577*4882a593Smuzhiyun			reg = <36>;
578*4882a593Smuzhiyun			led-max-microamp = <10000>;
579*4882a593Smuzhiyun			linux,default-trigger = "default-on";
580*4882a593Smuzhiyun		};
581*4882a593Smuzhiyun	};
582*4882a593Smuzhiyun
583*4882a593Smuzhiyun	tas5711: tas5711@1b {
584*4882a593Smuzhiyun		#sound-dai-cells = <0>;
585*4882a593Smuzhiyun		compatible = "ti,tas5711";
586*4882a593Smuzhiyun		reg = <0x1b>;
587*4882a593Smuzhiyun		clocks = <&cru SCLK_I2S0_8CH_TX_OUT>;
588*4882a593Smuzhiyun		clock-names = "mclk";
589*4882a593Smuzhiyun		pinctrl-names = "default";
590*4882a593Smuzhiyun		pinctrl-0 = <&i2s_8ch_0_mclk>;
591*4882a593Smuzhiyun		pdn-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
592*4882a593Smuzhiyun		reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
593*4882a593Smuzhiyun	};
594*4882a593Smuzhiyun};
595*4882a593Smuzhiyun
596*4882a593Smuzhiyun&i2s_8ch_0 {
597*4882a593Smuzhiyun	status = "okay";
598*4882a593Smuzhiyun	assigned-clocks = <&cru SCLK_I2S0_8CH_RX>;
599*4882a593Smuzhiyun	assigned-clock-parents = <&cru SCLK_I2S0_8CH_TX_MUX>;
600*4882a593Smuzhiyun	rockchip,clk-trcm = <1>;
601*4882a593Smuzhiyun	#sound-dai-cells = <0>;
602*4882a593Smuzhiyun};
603*4882a593Smuzhiyun
604*4882a593Smuzhiyun&pinctrl {
605*4882a593Smuzhiyun	buttons {
606*4882a593Smuzhiyun		mic_mute: mic-mute {
607*4882a593Smuzhiyun			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
608*4882a593Smuzhiyun		};
609*4882a593Smuzhiyun	};
610*4882a593Smuzhiyun	rotary {
611*4882a593Smuzhiyun		rotary_gpio: rotary-gpio {
612*4882a593Smuzhiyun			rockchip,pins =
613*4882a593Smuzhiyun				<2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>,
614*4882a593Smuzhiyun				<2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
615*4882a593Smuzhiyun		};
616*4882a593Smuzhiyun	};
617*4882a593Smuzhiyun	sdio-pwrseq {
618*4882a593Smuzhiyun		wifi_enable_h: wifi-enable-h {
619*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
620*4882a593Smuzhiyun		};
621*4882a593Smuzhiyun	};
622*4882a593Smuzhiyun
623*4882a593Smuzhiyun	wireless-wlan {
624*4882a593Smuzhiyun		wifi_wake_host: wifi-wake-host {
625*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
626*4882a593Smuzhiyun		};
627*4882a593Smuzhiyun	};
628*4882a593Smuzhiyun};
629*4882a593Smuzhiyun
630*4882a593Smuzhiyun&pwm0 {
631*4882a593Smuzhiyun	status = "okay";
632*4882a593Smuzhiyun	pinctrl-names = "active";
633*4882a593Smuzhiyun	pinctrl-0 = <&pwm0_pin_pull_down>;
634*4882a593Smuzhiyun};
635*4882a593Smuzhiyun
636*4882a593Smuzhiyun&rockchip_suspend {
637*4882a593Smuzhiyun	rockchip,pwm-regulator-config = <
638*4882a593Smuzhiyun		(0
639*4882a593Smuzhiyun		| RKPM_PWM_REGULATOR
640*4882a593Smuzhiyun		)
641*4882a593Smuzhiyun	>;
642*4882a593Smuzhiyun
643*4882a593Smuzhiyun	status = "okay";
644*4882a593Smuzhiyun};
645*4882a593Smuzhiyun
646*4882a593Smuzhiyun&saradc {
647*4882a593Smuzhiyun	status = "okay";
648*4882a593Smuzhiyun	vref-supply = <&vcc_1v8>;
649*4882a593Smuzhiyun};
650*4882a593Smuzhiyun
651*4882a593Smuzhiyun&sdio {
652*4882a593Smuzhiyun	bus-width = <4>;
653*4882a593Smuzhiyun	cap-sd-highspeed;
654*4882a593Smuzhiyun	no-sd;
655*4882a593Smuzhiyun	no-mmc;
656*4882a593Smuzhiyun	ignore-pm-notify;
657*4882a593Smuzhiyun	keep-power-in-suspend;
658*4882a593Smuzhiyun	non-removable;
659*4882a593Smuzhiyun	mmc-pwrseq = <&sdio_pwrseq>;
660*4882a593Smuzhiyun	sd-uhs-sdr104;
661*4882a593Smuzhiyun	status = "okay";
662*4882a593Smuzhiyun};
663*4882a593Smuzhiyun
664*4882a593Smuzhiyun&tsadc {
665*4882a593Smuzhiyun	rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
666*4882a593Smuzhiyun	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
667*4882a593Smuzhiyun	status = "okay";
668*4882a593Smuzhiyun};
669*4882a593Smuzhiyun
670*4882a593Smuzhiyun&uart4 {
671*4882a593Smuzhiyun	pinctrl-names = "default";
672*4882a593Smuzhiyun	pinctrl-0 = <&uart4_xfer &uart4_cts>;
673*4882a593Smuzhiyun	status = "okay";
674*4882a593Smuzhiyun};
675*4882a593Smuzhiyun
676*4882a593Smuzhiyun&u2phy {
677*4882a593Smuzhiyun	status = "okay";
678*4882a593Smuzhiyun
679*4882a593Smuzhiyun	u2phy_otg: otg-port {
680*4882a593Smuzhiyun		status = "okay";
681*4882a593Smuzhiyun	};
682*4882a593Smuzhiyun};
683*4882a593Smuzhiyun
684*4882a593Smuzhiyun&usb20_otg {
685*4882a593Smuzhiyun	status = "okay";
686*4882a593Smuzhiyun};
687