xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v12.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */
6
7/dts-v1/;
8#include <dt-bindings/display/drm_mipi_dsi.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/sensor-dev.h>
13#include "rk3326.dtsi"
14#include "rk3326-863-cif-sensor.dtsi"
15#include "px30-android.dtsi"
16
17/ {
18	model = "Rockchip rk3326 ai voice assistant evb v12 board";
19	compatible = "rockchip,rk3326-evb-ai-va-v12", "rockchip,rk3326";
20
21	adc-keys {
22		compatible = "adc-keys";
23		io-channels = <&saradc 2>;
24		io-channel-names = "buttons";
25		poll-interval = <100>;
26		keyup-threshold-microvolt = <1800000>;
27
28		mute-key {
29			linux,code = <KEY_MUTE>;
30			label = "mute";
31			press-threshold-microvolt = <1119000>;
32		};
33
34		mode-key {
35			linux,code = <KEY_MODE>;
36			label = "mode";
37			press-threshold-microvolt = <892000>;
38		};
39
40		media-key {
41			linux,code = <KEY_MEDIA>;
42			label = "media";
43			press-threshold-microvolt = <616000>;
44		};
45
46		vol-down-key {
47			linux,code = <KEY_VOLUMEDOWN>;
48			label = "volume down";
49			press-threshold-microvolt = <300000>;
50		};
51
52		vol-up-key {
53			linux,code = <KEY_VOLUMEUP>;
54			label = "volume up";
55			press-threshold-microvolt = <15000>;
56		};
57	};
58
59	backlight: backlight {
60		compatible = "pwm-backlight";
61		pwms = <&pwm1 0 25000 0>;
62		brightness-levels = <
63			  0   1   2   3   4   5   6   7
64			  8   9  10  11  12  13  14  15
65			 16  17  18  19  20  21  22  23
66			 24  25  26  27  28  29  30  31
67			 32  33  34  35  36  37  38  39
68			 40  41  42  43  44  45  46  47
69			 48  49  50  51  52  53  54  55
70			 56  57  58  59  60  61  62  63
71			 64  65  66  67  68  69  70  71
72			 72  73  74  75  76  77  78  79
73			 80  81  82  83  84  85  86  87
74			 88  89  90  91  92  93  94  95
75			 96  97  98  99 100 101 102 103
76			104 105 106 107 108 109 110 111
77			112 113 114 115 116 117 118 119
78			120 121 122 123 124 125 126 127
79			128 129 130 131 132 133 134 135
80			136 137 138 139 140 141 142 143
81			144 145 146 147 148 149 150 151
82			152 153 154 155 156 157 158 159
83			160 161 162 163 164 165 166 167
84			168 169 170 171 172 173 174 175
85			176 177 178 179 180 181 182 183
86			184 185 186 187 188 189 190 191
87			192 193 194 195 196 197 198 199
88			200 201 202 203 204 205 206 207
89			208 209 210 211 212 213 214 215
90			216 217 218 219 220 221 222 223
91			224 225 226 227 228 229 230 231
92			232 233 234 235 236 237 238 239
93			240 241 242 243 244 245 246 247
94			248 249 250 251 252 253 254 255>;
95		default-brightness-level = <200>;
96	};
97
98	rk809-sound {
99		compatible = "simple-audio-card";
100		simple-audio-card,name = "rockchip,rk809-codec";
101		simple-audio-card,mclk-fs = <256>;
102		simple-audio-card,widgets =
103			"Microphone", "Mic Jack",
104			"Headphone", "Headphone Jack";
105		simple-audio-card,routing =
106			"Mic Jack", "MICBIAS1",
107			"IN1P", "Mic Jack",
108			"Headphone Jack", "HPOL",
109			"Headphone Jack", "HPOR";
110		simple-audio-card,dai-link@0 {
111			format = "i2s";
112			cpu {
113				sound-dai = <&i2s1_2ch>;
114			};
115			codec {
116				sound-dai = <&rk809_codec 0>;
117			};
118		};
119		simple-audio-card,dai-link@1 {
120			format = "pdm";
121			cpu {
122				sound-dai = <&pdm>;
123			};
124			codec {
125				sound-dai = <&rk809_codec 1>;
126			};
127		};
128	};
129
130	bt-sound {
131		compatible = "simple-audio-card";
132		simple-audio-card,format = "dsp_a";
133		simple-audio-card,bitclock-inversion = <1>;
134		simple-audio-card,mclk-fs = <256>;
135		simple-audio-card,name = "rockchip,bt";
136		simple-audio-card,cpu {
137			sound-dai = <&i2s2_2ch>;
138		};
139		simple-audio-card,codec {
140			sound-dai = <&bt_sco>;
141		};
142	};
143
144	bt_sco: bt-sco {
145		compatible = "delta,dfbmcs320";
146		#sound-dai-cells = <0>;
147		status = "okay";
148	};
149
150	rk_headset: rk-headset {
151		compatible = "rockchip_headset";
152		headset_gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
153		pinctrl-names = "default";
154		pinctrl-0 = <&hp_det>;
155		io-channels = <&saradc 1>;
156	};
157
158	sdio_pwrseq: sdio-pwrseq {
159		compatible = "mmc-pwrseq-simple";
160		clocks = <&rk809 1>;
161		clock-names = "ext_clock";
162		pinctrl-names = "default";
163		pinctrl-0 = <&wifi_enable_h>;
164
165		/*
166		 * On the module itself this is one of these (depending
167		 * on the actual card populated):
168		 * - SDIO_RESET_L_WL_REG_ON
169		 * - PDN (power down when low)
170		 */
171		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */
172	};
173
174	test-power {
175		status = "okay";
176	};
177
178	vcc5v0_sys: vccsys {
179		compatible = "regulator-fixed";
180		regulator-name = "vcc5v0_sys";
181		regulator-always-on;
182		regulator-boot-on;
183		regulator-min-microvolt = <5000000>;
184		regulator-max-microvolt = <5000000>;
185	};
186
187	wireless-wlan {
188		compatible = "wlan-platdata";
189		wifi_chip_type = "AP6256";
190		WIFI,host_wake_irq = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
191		status = "okay";
192	};
193
194	wireless-bluetooth {
195		compatible = "bluetooth-platdata";
196		clocks = <&rk809 1>;
197		clock-names = "ext_clock";
198		uart_rts_gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>;
199		pinctrl-names = "default","rts_gpio";
200		pinctrl-0 = <&uart1_rts>;
201		pinctrl-1 = <&uart1_rts_gpio>;
202		BT,reset_gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
203		BT,wake_gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
204		BT,wake_host_irq = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
205		status = "okay";
206	};
207};
208
209&bus_apll {
210	bus-supply = <&vdd_logic>;
211	status = "okay";
212};
213
214&cpu0 {
215	cpu-supply = <&vdd_arm>;
216};
217
218&dfi {
219	status = "okay";
220};
221
222&display_subsystem {
223	status = "okay";
224};
225
226&dmc {
227	center-supply = <&vdd_logic>;
228	status = "okay";
229};
230
231&dsi {
232	status = "okay";
233
234	panel@0 {
235		compatible = "sitronix,st7703", "simple-panel-dsi";
236		reg = <0>;
237		backlight = <&backlight>;
238		enable-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
239		prepare-delay-ms = <2>;
240		reset-delay-ms = <1>;
241		init-delay-ms = <20>;
242		enable-delay-ms = <120>;
243		disable-delay-ms = <50>;
244		unprepare-delay-ms = <40>;
245
246		width-mm = <68>;
247		height-mm = <121>;
248
249		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
250			      MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
251		dsi,format = <MIPI_DSI_FMT_RGB888>;
252		dsi,lanes = <4>;
253
254		panel-init-sequence = [
255			05 fa 01 11
256			39 00 04 b9 f1 12 83
257			39 00 1c ba 33 81 05 f9 0e 0e 00 00 00
258				 00 00 00 00 00 44 25 00 91 0a
259				 00 00 02 4f 01 00 00 37
260			15 00 02 b8 25
261			39 00 04 bf 02 11 00
262			39 00 0b b3 0c 10 0a 50 03 ff 00 00 00
263				 00
264			39 00 0a c0 73 73 50 50 00 00 08 70 00
265			15 00 02 bc 46
266			15 00 02 cc 0b
267			15 00 02 b4 80
268			39 00 04 b2 c8 12 30
269			39 00 0f e3 07 07 0b 0b 03 0b 00 00 00
270				 00 ff 00 c0 10
271			39 00 0d c1 53 00 1e 1e 77 e1 cc dd 67
272				 77 33 33
273			39 00 07 c6 00 00 ff ff 01 ff
274			39 00 03 b5 09 09
275			39 00 03 b6 87 95
276			39 00 40 e9 c2 10 05 05 10 05 a0 12 31
277				 23 3f 81 0a a0 37 18 00 80 01
278				 00 00 00 00 80 01 00 00 00 48
279				 f8 86 42 08 88 88 80 88 88 88
280				 58 f8 87 53 18 88 88 81 88 88
281				 88 00 00 00 01 00 00 00 00 00
282				 00 00 00 00
283			39 00 3e ea 00 1a 00 00 00 00 02 00 00
284				 00 00 00 1f 88 81 35 78 88 88
285				 85 88 88 88 0f 88 80 24 68 88
286				 88 84 88 88 88 23 10 00 00 1c
287				 00 00 00 00 00 00 00 00 00 00
288				 00 00 00 00 00 30 05 a0 00 00
289				 00 00
290			39 00 23 e0 00 06 08 2a 31 3f 38 36 07
291				 0c 0d 11 13 12 13 11 18 00 06
292				 08 2a 31 3f 38 36 07 0c 0d 11
293				 13 12 13 11 18
294			05 32 01 29
295		];
296
297		panel-exit-sequence = [
298			05 00 01 28
299			05 00 01 10
300		];
301
302		display-timings {
303			native-mode = <&timing0>;
304
305			timing0: timing0 {
306				clock-frequency = <66000000>;
307				hactive = <720>;
308				vactive = <1280>;
309				hfront-porch = <40>;
310				hsync-len = <10>;
311				hback-porch = <40>;
312				vfront-porch = <22>;
313				vsync-len = <4>;
314				vback-porch = <11>;
315				hsync-active = <0>;
316				vsync-active = <0>;
317				de-active = <0>;
318				pixelclk-active = <0>;
319			};
320		};
321
322		ports {
323			#address-cells = <1>;
324			#size-cells = <0>;
325
326			port@0 {
327				reg = <0>;
328				panel_in_dsi: endpoint {
329					remote-endpoint = <&dsi_out_panel>;
330				};
331			};
332		};
333	};
334
335	ports {
336		#address-cells = <1>;
337		#size-cells = <0>;
338
339		port@1 {
340			reg = <1>;
341			dsi_out_panel: endpoint {
342				remote-endpoint = <&panel_in_dsi>;
343			};
344		};
345	};
346};
347
348&dsi_in_vopb {
349	status = "okay";
350};
351
352&dsi_in_vopl {
353	status = "disabled";
354};
355
356&route_dsi {
357	connect = <&vopb_out_dsi>;
358	status = "okay";
359};
360
361&emmc {
362	bus-width = <8>;
363	cap-mmc-highspeed;
364	mmc-hs200-1_8v;
365	no-sdio;
366	no-sd;
367	disable-wp;
368	non-removable;
369	num-slots = <1>;
370	status = "okay";
371};
372
373&gpu {
374	mali-supply = <&vdd_logic>;
375	status = "okay";
376};
377
378&i2c0 {
379	status = "okay";
380	clock-frequency = <400000>;
381	i2c-scl-rising-time-ns = <280>;
382	i2c-scl-falling-time-ns = <16>;
383
384	rk809: pmic@20 {
385		compatible = "rockchip,rk809";
386		reg = <0x20>;
387		interrupt-parent = <&gpio0>;
388		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
389		pinctrl-names = "default", "pmic-sleep",
390				"pmic-power-off", "pmic-reset";
391		pinctrl-0 = <&pmic_int>;
392		pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;
393		pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;
394		pinctrl-3 = <&soc_slppin_rst>, <&rk817_slppin_rst>;
395		rockchip,system-power-controller;
396		wakeup-source;
397		#clock-cells = <1>;
398		clock-output-names = "rk808-clkout1", "rk808-clkout2";
399		//fb-inner-reg-idxs = <2>;
400		/* 1: rst regs (default in codes), 0: rst the pmic */
401		pmic-reset-func = <1>;
402
403		vcc1-supply = <&vcc5v0_sys>;
404		vcc2-supply = <&vcc5v0_sys>;
405		vcc3-supply = <&vcc5v0_sys>;
406		vcc4-supply = <&vcc5v0_sys>;
407		vcc5-supply = <&vcc3v3_sys>;
408		vcc6-supply = <&vcc3v3_sys>;
409		vcc7-supply = <&vcc3v3_sys>;
410		vcc8-supply = <&vcc3v3_sys>;
411		vcc9-supply = <&vcc5v0_sys>;
412
413		pwrkey {
414			status = "okay";
415		};
416
417		pinctrl_rk8xx: pinctrl_rk8xx {
418			gpio-controller;
419			#gpio-cells = <2>;
420
421			rk817_slppin_null: rk817_slppin_null {
422				pins = "gpio_slp";
423				function = "pin_fun0";
424			};
425
426			rk817_slppin_slp: rk817_slppin_slp {
427				pins = "gpio_slp";
428				function = "pin_fun1";
429			};
430
431			rk817_slppin_pwrdn: rk817_slppin_pwrdn {
432				pins = "gpio_slp";
433				function = "pin_fun2";
434			};
435
436			rk817_slppin_rst: rk817_slppin_rst {
437				pins = "gpio_slp";
438				function = "pin_fun3";
439			};
440		};
441
442		regulators {
443			vdd_logic: DCDC_REG1 {
444				regulator-always-on;
445				regulator-boot-on;
446				regulator-min-microvolt = <850000>;
447				regulator-max-microvolt = <1350000>;
448				regulator-ramp-delay = <6001>;
449				regulator-initial-mode = <0x2>;
450				regulator-name = "vdd_logic";
451				regulator-state-mem {
452					regulator-on-in-suspend;
453					regulator-suspend-microvolt = <950000>;
454				};
455			};
456
457			vdd_arm: DCDC_REG2 {
458				regulator-always-on;
459				regulator-boot-on;
460				regulator-min-microvolt = <850000>;
461				regulator-max-microvolt = <1350000>;
462				regulator-ramp-delay = <6001>;
463				regulator-initial-mode = <0x2>;
464				regulator-name = "vdd_arm";
465				regulator-state-mem {
466					regulator-off-in-suspend;
467					regulator-suspend-microvolt = <950000>;
468				};
469			};
470
471			vcc_ddr: DCDC_REG3 {
472				regulator-always-on;
473				regulator-boot-on;
474				regulator-initial-mode = <0x2>;
475				regulator-name = "vcc_ddr";
476				regulator-state-mem {
477					regulator-on-in-suspend;
478				};
479			};
480
481			vcc_3v0: DCDC_REG4 {
482				regulator-always-on;
483				regulator-boot-on;
484				regulator-min-microvolt = <3000000>;
485				regulator-max-microvolt = <3000000>;
486				regulator-initial-mode = <0x2>;
487				regulator-name = "vcc_3v0";
488				regulator-state-mem {
489					regulator-off-in-suspend;
490					regulator-suspend-microvolt = <3000000>;
491				};
492			};
493
494			vcc_1v0: LDO_REG1 {
495				regulator-always-on;
496				regulator-boot-on;
497				regulator-min-microvolt = <1000000>;
498				regulator-max-microvolt = <1000000>;
499				regulator-name = "vcc_1v0";
500				regulator-state-mem {
501					regulator-on-in-suspend;
502					regulator-suspend-microvolt = <1000000>;
503				};
504			};
505
506			vcc1v8_soc: LDO_REG2 {
507				regulator-always-on;
508				regulator-boot-on;
509				regulator-min-microvolt = <1800000>;
510				regulator-max-microvolt = <1800000>;
511
512				regulator-name = "vcc1v8_soc";
513				regulator-state-mem {
514					regulator-on-in-suspend;
515					regulator-suspend-microvolt = <1800000>;
516				};
517			};
518
519			vdd1v0_soc: LDO_REG3 {
520				regulator-always-on;
521				regulator-boot-on;
522				regulator-min-microvolt = <1000000>;
523				regulator-max-microvolt = <1000000>;
524
525				regulator-name = "vcc1v0_soc";
526				regulator-state-mem {
527					regulator-on-in-suspend;
528					regulator-suspend-microvolt = <1000000>;
529				};
530			};
531
532			vcc3v0_pmu: LDO_REG4 {
533				regulator-always-on;
534				regulator-boot-on;
535				regulator-min-microvolt = <3000000>;
536				regulator-max-microvolt = <3000000>;
537
538				regulator-name = "vcc3v0_pmu";
539				regulator-state-mem {
540					regulator-on-in-suspend;
541					regulator-suspend-microvolt = <3000000>;
542
543				};
544			};
545
546			vccio_sd: LDO_REG5 {
547				regulator-always-on;
548				regulator-boot-on;
549				regulator-min-microvolt = <1800000>;
550				regulator-max-microvolt = <3300000>;
551
552				regulator-name = "vccio_sd";
553				regulator-state-mem {
554					regulator-on-in-suspend;
555					regulator-suspend-microvolt = <3300000>;
556				};
557			};
558
559			vcc_sd: LDO_REG6 {
560				regulator-min-microvolt = <3300000>;
561				regulator-max-microvolt = <3300000>;
562
563				regulator-name = "vcc_sd";
564				regulator-state-mem {
565					regulator-on-in-suspend;
566					regulator-suspend-microvolt = <3300000>;
567
568				};
569			};
570
571			vcc2v8_dvp: LDO_REG7 {
572				regulator-always-on;
573				regulator-boot-on;
574				regulator-min-microvolt = <2800000>;
575				regulator-max-microvolt = <2800000>;
576
577				regulator-name = "vcc2v8_dvp";
578				regulator-state-mem {
579					regulator-off-in-suspend;
580					regulator-suspend-microvolt = <2800000>;
581				};
582			};
583
584			vcc1v8_dvp: LDO_REG8 {
585				regulator-always-on;
586				regulator-boot-on;
587				regulator-min-microvolt = <1800000>;
588				regulator-max-microvolt = <1800000>;
589
590				regulator-name = "vcc1v8_dvp";
591				regulator-state-mem {
592					regulator-on-in-suspend;
593					regulator-suspend-microvolt = <1800000>;
594				};
595			};
596
597			vdd1v5_dvp: LDO_REG9 {
598				regulator-always-on;
599				regulator-boot-on;
600				regulator-min-microvolt = <1500000>;
601				regulator-max-microvolt = <1500000>;
602
603				regulator-name = "vdd1v5_dvp";
604				regulator-state-mem {
605					regulator-off-in-suspend;
606					regulator-suspend-microvolt = <1500000>;
607				};
608			};
609
610			vcc3v3_sys: DCDC_REG5 {
611				regulator-always-on;
612				regulator-boot-on;
613				regulator-min-microvolt = <3300000>;
614				regulator-max-microvolt = <3300000>;
615				regulator-name = "vcc3v3_sys";
616				regulator-state-mem {
617					regulator-on-in-suspend;
618					regulator-suspend-microvolt = <3300000>;
619				};
620			};
621
622			vcc5v0_host: SWITCH_REG1 {
623				regulator-name = "vcc5v0_host";
624			};
625
626			vcc3v3_lcd: SWITCH_REG2 {
627				regulator-boot-on;
628				regulator-name = "vcc3v3_lcd";
629			};
630		};
631
632		rk809_codec: codec {
633			#sound-dai-cells = <1>;
634			compatible = "rockchip,rk809-codec", "rockchip,rk817-codec";
635			clocks = <&cru SCLK_I2S1_OUT>;
636			clock-names = "mclk";
637			pinctrl-names = "default";
638			pinctrl-0 = <&i2s1_2ch_mclk>;
639			pdmdata-out-enable;
640			use-ext-amplifier;
641			adc-for-loopback;
642			spk-ctl-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
643			hp-volume = <20>;
644			spk-volume = <20>;
645		};
646	};
647};
648
649&i2c1 {
650	status = "okay";
651	clock-frequency = <400000>;
652	i2c-scl-rising-time-ns = <275>;
653	i2c-scl-falling-time-ns = <16>;
654
655	gt1x: gt1x@14 {
656	      compatible = "goodix,gt1x";
657	      reg = <0x14>;
658	      goodix,rst-gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
659	      goodix,irq-gpio = <&gpio0 RK_PB3 IRQ_TYPE_LEVEL_LOW>;
660	};
661
662	is31fl3236: led-controller@3c {
663		compatible = "issi,is31fl3236";
664		reg = <0x3c>;
665		#address-cells = <1>;
666		#size-cells = <0>;
667		reset-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
668		status = "okay";
669
670		led1: led@1 {
671			label = "led1";
672			reg = <1>;
673			led-max-microamp = <10000>;
674			linux,default-trigger = "timer";
675			linux,default-trigger-delay-ms = <0>;
676			linux,blink-delay-on-ms = <100>;
677			linux,blink-delay-off-ms = <1200>;
678		};
679
680		led2: led@2 {
681			label = "led2";
682			reg = <2>;
683			led-max-microamp = <10000>;
684			linux,default-trigger = "timer";
685			linux,default-trigger-delay-ms = <0>;
686			linux,blink-delay-on-ms = <100>;
687			linux,blink-delay-off-ms = <1200>;
688		};
689
690		led3: led@3 {
691			label = "led3";
692			reg = <3>;
693			led-max-microamp = <10000>;
694			linux,default-trigger = "default-on";
695		};
696
697		led4: led@4 {
698			label = "led4";
699			reg = <4>;
700			led-max-microamp = <10000>;
701			linux,default-trigger = "timer";
702			linux,default-trigger-delay-ms = <100>;
703			linux,blink-delay-on-ms = <100>;
704			linux,blink-delay-off-ms = <1200>;
705		};
706
707		led5: led@5 {
708			label = "led5";
709			reg = <5>;
710			led-max-microamp = <10000>;
711			linux,default-trigger = "timer";
712			linux,default-trigger-delay-ms = <100>;
713			linux,blink-delay-on-ms = <100>;
714			linux,blink-delay-off-ms = <1200>;
715		};
716
717		led6: led@6 {
718			label = "led6";
719			reg = <6>;
720			led-max-microamp = <10000>;
721			linux,default-trigger = "default-on";
722		};
723
724		led7: led@7 {
725			label = "led7";
726			reg = <7>;
727			led-max-microamp = <10000>;
728			linux,default-trigger = "timer";
729			linux,default-trigger-delay-ms = <200>;
730			linux,blink-delay-on-ms = <100>;
731			linux,blink-delay-off-ms = <1200>;
732		};
733
734		led8: led@8 {
735			label = "led8";
736			reg = <8>;
737			led-max-microamp = <10000>;
738			linux,default-trigger = "timer";
739			linux,default-trigger-delay-ms = <200>;
740			linux,blink-delay-on-ms = <100>;
741			linux,blink-delay-off-ms = <1200>;
742		};
743
744		led9: led@9 {
745			label = "led9";
746			reg = <9>;
747			led-max-microamp = <10000>;
748			linux,default-trigger = "default-on";
749		};
750
751		led10: led@10 {
752			label = "led10";
753			reg = <10>;
754			led-max-microamp = <10000>;
755			linux,default-trigger = "timer";
756			linux,default-trigger-delay-ms = <300>;
757			linux,blink-delay-on-ms = <100>;
758			linux,blink-delay-off-ms = <1200>;
759		};
760
761		led11: led@11 {
762			label = "led11";
763			reg = <11>;
764			led-max-microamp = <10000>;
765			linux,default-trigger = "timer";
766			linux,default-trigger-delay-ms = <300>;
767			linux,blink-delay-on-ms = <100>;
768			linux,blink-delay-off-ms = <1200>;
769		};
770
771		led12: led@12 {
772			label = "led12";
773			reg = <12>;
774			led-max-microamp = <10000>;
775			linux,default-trigger = "default-on";
776		};
777
778		led13: led@13 {
779			label = "led13";
780			reg = <13>;
781			led-max-microamp = <10000>;
782			linux,default-trigger = "timer";
783			linux,default-trigger-delay-ms = <400>;
784			linux,blink-delay-on-ms = <100>;
785			linux,blink-delay-off-ms = <1200>;
786		};
787
788		led14: led@14 {
789			label = "led14";
790			reg = <14>;
791			led-max-microamp = <10000>;
792			linux,default-trigger = "timer";
793			linux,default-trigger-delay-ms = <400>;
794			linux,blink-delay-on-ms = <100>;
795			linux,blink-delay-off-ms = <1200>;
796		};
797
798		led15: led@15 {
799			label = "led15";
800			reg = <15>;
801			led-max-microamp = <10000>;
802			linux,default-trigger = "default-on";
803		};
804
805		led16: led@16 {
806			label = "led16";
807			reg = <16>;
808			led-max-microamp = <10000>;
809			linux,default-trigger = "timer";
810			linux,default-trigger-delay-ms = <500>;
811			linux,blink-delay-on-ms = <100>;
812			linux,blink-delay-off-ms = <1200>;
813		};
814
815		led17: led@17 {
816			label = "led17";
817			reg = <17>;
818			led-max-microamp = <10000>;
819			linux,default-trigger = "timer";
820			linux,default-trigger-delay-ms = <500>;
821			linux,blink-delay-on-ms = <100>;
822			linux,blink-delay-off-ms = <1200>;
823		};
824
825		led18: led@18 {
826			label = "led18";
827			reg = <18>;
828			led-max-microamp = <10000>;
829			linux,default-trigger = "default-on";
830		};
831
832		led19: led@19 {
833			label = "led19";
834			reg = <19>;
835			led-max-microamp = <10000>;
836			linux,default-trigger = "timer";
837			linux,default-trigger-delay-ms = <600>;
838			linux,blink-delay-on-ms = <100>;
839			linux,blink-delay-off-ms = <1200>;
840		};
841
842		led20: led@20 {
843			label = "led20";
844			reg = <20>;
845			led-max-microamp = <10000>;
846			linux,default-trigger = "timer";
847			linux,default-trigger-delay-ms = <600>;
848			linux,blink-delay-on-ms = <100>;
849			linux,blink-delay-off-ms = <1200>;
850		};
851
852		led21: led@21 {
853			label = "led21";
854			reg = <21>;
855			led-max-microamp = <10000>;
856			linux,default-trigger = "default-on";
857		};
858
859		led22: led@22 {
860			label = "led22";
861			reg = <22>;
862			led-max-microamp = <10000>;
863			linux,default-trigger = "timer";
864			linux,default-trigger-delay-ms = <700>;
865			linux,blink-delay-on-ms = <100>;
866			linux,blink-delay-off-ms = <1200>;
867		};
868
869		led23: led@23 {
870			label = "led23";
871			reg = <23>;
872			led-max-microamp = <10000>;
873			linux,default-trigger = "timer";
874			linux,default-trigger-delay-ms = <700>;
875			linux,blink-delay-on-ms = <100>;
876			linux,blink-delay-off-ms = <1200>;
877		};
878
879		led124: led@24 {
880			label = "led24";
881			reg = <24>;
882			led-max-microamp = <10000>;
883			linux,default-trigger = "default-on";
884		};
885
886		led25: led@25 {
887			label = "led25";
888			reg = <25>;
889			led-max-microamp = <10000>;
890			linux,default-trigger = "timer";
891			linux,default-trigger-delay-ms = <800>;
892			linux,blink-delay-on-ms = <100>;
893			linux,blink-delay-off-ms = <1200>;
894		};
895
896		led26: led@26 {
897			label = "led26";
898			reg = <26>;
899			led-max-microamp = <10000>;
900			linux,default-trigger = "timer";
901			linux,default-trigger-delay-ms = <800>;
902			linux,blink-delay-on-ms = <100>;
903			linux,blink-delay-off-ms = <1200>;
904		};
905
906		led27: led@27 {
907			label = "led27";
908			reg = <27>;
909			led-max-microamp = <10000>;
910			linux,default-trigger = "default-on";
911		};
912
913		led28: led@28 {
914			label = "led28";
915			reg = <28>;
916			led-max-microamp = <10000>;
917			linux,default-trigger = "timer";
918			linux,default-trigger-delay-ms = <900>;
919			linux,blink-delay-on-ms = <100>;
920			linux,blink-delay-off-ms = <1200>;
921		};
922
923		led29: led@29 {
924			label = "led29";
925			reg = <29>;
926			led-max-microamp = <10000>;
927			linux,default-trigger = "timer";
928			linux,default-trigger-delay-ms = <900>;
929			linux,blink-delay-on-ms = <100>;
930			linux,blink-delay-off-ms = <1200>;
931		};
932
933		led30: led@30 {
934			label = "led30";
935			reg = <30>;
936			led-max-microamp = <10000>;
937			linux,default-trigger = "default-on";
938		};
939
940		led31: led@31 {
941			label = "led31";
942			reg = <31>;
943			led-max-microamp = <10000>;
944			linux,default-trigger = "timer";
945			linux,default-trigger-delay-ms = <1000>;
946			linux,blink-delay-on-ms = <100>;
947			linux,blink-delay-off-ms = <1200>;
948		};
949
950		led32: led@32 {
951			label = "led32";
952			reg = <32>;
953			led-max-microamp = <10000>;
954			linux,default-trigger = "timer";
955			linux,default-trigger-delay-ms = <1000>;
956			linux,blink-delay-on-ms = <100>;
957			linux,blink-delay-off-ms = <1200>;
958		};
959
960		led33: led@33 {
961			label = "led33";
962			reg = <33>;
963			led-max-microamp = <10000>;
964			linux,default-trigger = "default-on";
965		};
966
967		led34: led@34 {
968			label = "led34";
969			reg = <34>;
970			led-max-microamp = <10000>;
971			linux,default-trigger = "timer";
972			linux,default-trigger-delay-ms = <1100>;
973			linux,blink-delay-on-ms = <100>;
974			linux,blink-delay-off-ms = <1200>;
975		};
976
977		led35: led@35 {
978			label = "led35";
979			reg = <35>;
980			led-max-microamp = <10000>;
981			linux,default-trigger = "timer";
982			linux,default-trigger-delay-ms = <1100>;
983			linux,blink-delay-on-ms = <100>;
984			linux,blink-delay-off-ms = <1200>;
985		};
986
987		led36: led@36 {
988			label = "led36";
989			reg = <36>;
990			led-max-microamp = <10000>;
991			linux,default-trigger = "default-on";
992		};
993	};
994
995	ls_stk3410: light@48 {
996		compatible = "ls_stk3410";
997		status = "okay";
998		reg = <0x48>;
999		type = <SENSOR_TYPE_LIGHT>;
1000		irq_enable = <0>;
1001		als_threshold_high = <100>;
1002		als_threshold_low = <10>;
1003		als_ctrl_gain = <2>; /* 0:x1 1:x4 2:x16 3:x64 */
1004		poll_delay_ms = <100>;
1005	};
1006
1007	ps_stk3410: proximity@48 {
1008		compatible = "ps_stk3410";
1009		status = "okay";
1010		reg = <0x48>;
1011		type = <SENSOR_TYPE_PROXIMITY>;
1012		//pinctrl-names = "default";
1013		//pinctrl-0 = <&gpio2_c3>;
1014		//irq-gpio = <&gpio0 RK_PB7 IRQ_TYPE_LEVEL_LOW>;
1015		//irq_enable = <1>;
1016		ps_threshold_high = <0x200>;
1017		ps_threshold_low = <0x100>;
1018		ps_ctrl_gain = <3>; /* 0:x1 1:x4 2:x16 3:x64 */
1019		ps_led_current = <3>; /* 0:12.5mA 1:25mA 2:50mA 3:100mA */
1020		poll_delay_ms = <100>;
1021	};
1022
1023};
1024
1025&i2c2 {
1026	status = "okay";
1027
1028	clock-frequency = <100000>;
1029
1030	/* These are relatively safe rise/fall times; TODO: measure */
1031	i2c-scl-falling-time-ns = <50>;
1032	i2c-scl-rising-time-ns = <300>;
1033
1034	ov5695: ov5695@36 {
1035		compatible = "ovti,ov5695";
1036		reg = <0x36>;
1037		clocks = <&cru SCLK_CIF_OUT>;
1038		clock-names = "xvclk";
1039		/*reset-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>;*/
1040		pwdn-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>;
1041		//pinctrl-names = "default";
1042		//pinctrl-0 = <&cif_clkout_m0>;
1043		rockchip,camera-module-index = <0>;
1044		rockchip,camera-module-facing = "back";
1045		rockchip,camera-module-name = "TongJu";
1046		rockchip,camera-module-lens-name = "CHT842-MD";
1047		port {
1048			ov5695_out: endpoint {
1049				remote-endpoint = <&mipi_in>;
1050				data-lanes = <1 2>;
1051			};
1052		};
1053	};
1054};
1055
1056&i2s1_2ch {
1057	status = "okay";
1058	#sound-dai-cells = <0>;
1059	pinctrl-0 = <&i2s1_2ch_sclk
1060		     &i2s1_2ch_lrck
1061		     &i2s1_2ch_sdo>;
1062};
1063
1064&i2s2_2ch {
1065	status = "okay";
1066	rockchip,bclk-fs = <64>;
1067	#sound-dai-cells = <0>;
1068};
1069
1070&io_domains {
1071	status = "okay";
1072
1073	vccio1-supply = <&vcc1v8_soc>;
1074	vccio2-supply = <&vccio_sd>;
1075	vccio3-supply = <&vcc1v8_dvp>;
1076	vccio4-supply = <&vcc1v8_soc>;
1077	vccio5-supply = <&vcc_3v0>;
1078};
1079
1080&isp_mmu {
1081	status = "okay";
1082};
1083
1084&nandc0 {
1085	status = "okay";
1086};
1087
1088&pdm {
1089	status = "okay";
1090	#sound-dai-cells = <0>;
1091	pinctrl-names = "default";
1092	pinctrl-0 = <&pdm_clk0m1
1093		&pdm_clk1
1094		&pdm_sdi0m1
1095		&pdm_sdi1
1096		&pdm_sdi2
1097		&pdm_sdi3>;
1098};
1099
1100&pinctrl {
1101	pinctrl-names = "default";
1102	pinctrl-0 = <&tp_int>;
1103
1104	headphone {
1105		hp_det: hp-det {
1106			rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
1107		};
1108	};
1109
1110	pmic {
1111		pmic_int: pmic_int {
1112			rockchip,pins =
1113				<0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
1114		};
1115
1116		soc_slppin_gpio: soc_slppin_gpio {
1117			rockchip,pins =
1118				<0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
1119		};
1120
1121		soc_slppin_slp: soc_slppin_slp {
1122			rockchip,pins =
1123				<0 RK_PA4 1 &pcfg_pull_none>;
1124		};
1125
1126		soc_slppin_rst: soc_slppin_rst {
1127			rockchip,pins =
1128				<0 RK_PA4 2 &pcfg_pull_none>;
1129		};
1130	};
1131
1132	sdio-pwrseq {
1133		wifi_enable_h: wifi-enable-h {
1134			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
1135		};
1136	};
1137
1138	touchscreen-int {
1139		tp_int: tp-int {
1140			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
1141		};
1142	};
1143};
1144
1145&pmu_io_domains {
1146	status = "okay";
1147
1148	pmuio1-supply = <&vcc3v0_pmu>;
1149	pmuio2-supply = <&vcc3v0_pmu>;
1150};
1151
1152&pwm1 {
1153	status = "okay";
1154};
1155
1156&rk_rga {
1157	status = "okay";
1158};
1159
1160&rockchip_suspend {
1161	status = "okay";
1162	rockchip,sleep-debug-en = <1>;
1163};
1164
1165&saradc {
1166	status = "okay";
1167	vref-supply = <&vcc1v8_soc>;
1168};
1169
1170&sdmmc {
1171	bus-width = <4>;
1172	cap-mmc-highspeed;
1173	cap-sd-highspeed;
1174	no-sdio;
1175	no-mmc;
1176	card-detect-delay = <800>;
1177	ignore-pm-notify;
1178	/*cd-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>; [> CD GPIO <]*/
1179	sd-uhs-sdr12;
1180	sd-uhs-sdr25;
1181	sd-uhs-sdr50;
1182	sd-uhs-sdr104;
1183	vqmmc-supply = <&vccio_sd>;
1184	vmmc-supply = <&vcc_sd>;
1185	status = "okay";
1186};
1187
1188&sdio {
1189	bus-width = <4>;
1190	cap-sd-highspeed;
1191	no-sd;
1192	no-mmc;
1193	ignore-pm-notify;
1194	keep-power-in-suspend;
1195	non-removable;
1196	mmc-pwrseq = <&sdio_pwrseq>;
1197	sd-uhs-sdr104;
1198	status = "okay";
1199};
1200
1201&tsadc {
1202	pinctrl-names = "gpio", "otpout";
1203	pinctrl-0 = <&tsadc_otp_gpio>;
1204	pinctrl-1 = <&tsadc_otp_out>;
1205	status = "okay";
1206};
1207
1208&u2phy {
1209	status = "okay";
1210
1211	u2phy_host: host-port {
1212		status = "okay";
1213	};
1214
1215	u2phy_otg: otg-port {
1216		vbus-supply = <&vcc5v0_host>;
1217		status = "okay";
1218	};
1219};
1220
1221&usb20_otg {
1222	status = "okay";
1223};
1224
1225&uart1 {
1226	pinctrl-names = "default";
1227	pinctrl-0 = <&uart1_xfer &uart1_cts>;
1228	status = "okay";
1229};
1230
1231&vopb {
1232	status = "okay";
1233};
1234
1235&vopb_mmu {
1236	status = "okay";
1237};
1238
1239&vopl {
1240	status = "okay";
1241};
1242
1243&vopl_mmu {
1244	status = "okay";
1245};
1246
1247&mpp_srv {
1248	status = "okay";
1249};
1250
1251&vdpu {
1252	status = "okay";
1253};
1254
1255&vepu {
1256	status = "okay";
1257};
1258
1259&vpu_mmu {
1260	status = "okay";
1261};
1262
1263&hevc {
1264	status = "okay";
1265};
1266
1267&hevc_mmu {
1268	status = "okay";
1269};
1270
1271&mipi_dphy_rx0 {
1272	status = "okay";
1273
1274	ports {
1275		#address-cells = <1>;
1276		#size-cells = <0>;
1277
1278		port@0 {
1279			reg = <0>;
1280			#address-cells = <1>;
1281			#size-cells = <0>;
1282
1283			mipi_in: endpoint@1 {
1284				reg = <1>;
1285				remote-endpoint = <&ov5695_out>;
1286				data-lanes = <1 2>;
1287			};
1288		};
1289
1290		port@1 {
1291			reg = <1>;
1292			#address-cells = <1>;
1293			#size-cells = <0>;
1294
1295			dphy_rx_out: endpoint@0 {
1296				reg = <0>;
1297				remote-endpoint = <&isp_mipi_in>;
1298			};
1299		};
1300	};
1301};
1302
1303&rkisp1 {
1304	status = "okay";
1305	pinctrl-names = "default";
1306	pinctrl-0 = <&cif_clkout_m0 &dvp_d0d1_m0 &dvp_d2d9_m0>;
1307	port {
1308		#address-cells = <1>;
1309		#size-cells = <0>;
1310
1311		isp_mipi_in: endpoint@0 {
1312			reg = <0>;
1313			remote-endpoint = <&dphy_rx_out>;
1314		};
1315
1316	};
1317};
1318