xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/rk3036-echo.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 *  a) This file is free software; you can redistribute it and/or
8 *     modify it under the terms of the GNU General Public License as
9 *     published by the Free Software Foundation; either version 2 of the
10 *     License, or (at your option) any later version.
11 *
12 *     This file is distributed in the hope that it will be useful,
13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *     GNU General Public License for more details.
16 *
17 *  Or, alternatively,
18 *
19 *  b) Permission is hereby granted, free of charge, to any person
20 *     obtaining a copy of this software and associated documentation
21 *     files (the "Software"), to deal in the Software without
22 *     restriction, including without limitation the rights to use,
23 *     copy, modify, merge, publish, distribute, sublicense, and/or
24 *     sell copies of the Software, and to permit persons to whom the
25 *     Software is furnished to do so, subject to the following
26 *     conditions:
27 *
28 *     The above copyright notice and this permission notice shall be
29 *     included in all copies or substantial portions of the Software.
30 *
31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 *     OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42
43#include "rk3036.dtsi"
44
45/ {
46	model = "Rockchip RK3036 Echo";
47	compatible = "rockchip,rk3036-echo", "rockchip,rk3036";
48
49	fiq-debugger {
50		compatible = "rockchip,fiq-debugger";
51		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
52		rockchip,serial-id = <2>;
53		rockchip,wake-irq = <0>;
54		/* If enable uart uses irq instead of fiq */
55		rockchip,irq-mode-enable = <0>;
56		/* Only 115200 and 1500000 */
57		rockchip,baudrate = <115200>;
58		pinctrl-names = "default";
59		pinctrl-0 = <&uart2_xfer>;
60		status = "okay";
61	};
62
63	chosen {
64		bootargs = "earlycon=uart8250,mmio32,0x20068000";
65	};
66
67	/* rk805 pmic sleep/poweroff */
68	gpio_poweroff {
69		compatible = "gpio-poweroff";
70		gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
71		status = "okay";
72	};
73
74	rotary {
75		compatible = "rotary-encoder";
76		gpios = <&gpio2 17 GPIO_ACTIVE_LOW>,
77				<&gpio2 16 GPIO_ACTIVE_LOW>;
78		linux,axis = <0>; /* REL_X */
79		rotary-encoder,relative-axis;
80	};
81
82	sdio_pwrseq: sdio-pwrseq {
83		compatible = "mmc-pwrseq-simple";
84		pinctrl-names = "default";
85		pinctrl-0 = <&bt_wake_h>;
86
87		/*
88		 * On the module itself this is one of these (depending
89		 * on the actual card populated):
90		 * - SDIO_RESET_L_WL_REG_ON
91		 * - SDIO_RESET_L_WL_RST
92		 * - SDIO_RESET_L_BT_EN
93		 */
94		reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* WL_REG_ON */
95	};
96
97	wireless-bluetooth {
98		compatible = "bluetooth-platdata";
99		uart_rts_gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
100		pinctrl-names = "default", "rts_gpio";
101		pinctrl-0 = <&uart0_rts>;
102		pinctrl-1 = <&uart0_gpios>;
103		BT,reset_gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>;
104		BT,wake_gpio = <&gpio2 8 GPIO_ACTIVE_HIGH>;
105		BT,wake_host_irq = <&gpio0 20 GPIO_ACTIVE_LOW>;
106		status = "okay";
107	};
108
109	wireless-wlan {
110		compatible = "wlan-platdata";
111		rockchip,grf = <&grf>;
112		wifi_chip_type = "ap6212";
113		WIFI,host_wake_irq = <&gpio0 27 GPIO_ACTIVE_HIGH>;
114		status = "okay";
115	};
116
117	gpio_keys {
118		compatible = "gpio-keys";
119		#address-cells = <1>;
120		#size-cells = <0>;
121
122		pinctrl-names = "default";
123		pinctrl-0 = <&pwr_key>;
124
125		power_key: power-key {
126			label = "GPIO Key Power";
127			gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
128			linux,code = <207>;
129			debounce-interval = <100>;
130			wakeup-source;
131		};
132	};
133
134	xin32k: xin32k {
135		compatible = "fixed-clock";
136		clock-frequency = <32768>;
137		clock-output-names = "xin32k";
138		#clock-cells = <0>;
139	};
140};
141
142&acodec {
143	status = "okay";
144};
145
146&cpu0 {
147	cpu-supply = <&vdd_cpu>;
148};
149
150&cpu0_opp_table {
151	/delete-node/ opp-408000000;
152	/delete-node/ opp-600000000;
153};
154
155&emmc {
156	no-sdio;
157	no-sd;
158	status = "okay";
159};
160
161&gpu {
162	status = "okay";
163	mali-supply = <&vdd_gpu>;
164};
165
166&hdmi {
167	status = "okay";
168};
169
170&hevc {
171	status = "okay";
172};
173
174&hevc_mmu {
175	status = "okay";
176};
177
178&i2c1 {
179	clock-frequency = <400000>;
180
181	status = "okay";
182
183	rk805: rk805@18 {
184		compatible = "rockchip,rk805";
185		status = "okay";
186		reg = <0x18>;
187		interrupt-parent = <&gpio0>;
188		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
189		spinctrl-names = "default";
190		pinctrl-0 = <&pmic_int>;
191		rockchip,system-power-controller;
192		wakeup-source;
193		gpio-controller;
194		#gpio-cells = <2>;
195		#clock-cells = <1>;
196		clock-output-names = "rk805-clkout1", "rk805-clkout2";
197
198		rtc {
199			status = "okay";
200		};
201
202		pwrkey {
203			status = "okay";
204		};
205
206		gpio {
207			status = "okay";
208		};
209
210		regulators {
211			vdd_cpu: DCDC_REG1 {
212				regulator-name = "vdd_gpu";
213				regulator-min-microvolt = <1100000>;
214				regulator-max-microvolt = <1350000>;
215				regulator-initial-mode = <0x1>;
216				regulator-ramp-delay = <12500>;
217				regulator-boot-on;
218				regulator-always-on;
219				regulator-state-mem {
220					regulator-off-in-suspend;
221				};
222			};
223
224			vdd_gpu: DCDC_REG2 {
225				regulator-name = "vdd_gpu";
226				regulator-min-microvolt = <712500>;
227				regulator-max-microvolt = <1450000>;
228				regulator-initial-mode = <0x1>;
229				regulator-ramp-delay = <12500>;
230				regulator-boot-on;
231				regulator-always-on;
232				regulator-state-mem {
233					regulator-mode = <0x2>;
234					regulator-on-in-suspend;
235					regulator-suspend-microvolt = <1000000>;
236				};
237			};
238
239			vcc_ddr: DCDC_REG3 {
240				regulator-name = "vcc_ddr";
241				regulator-boot-on;
242				regulator-always-on;
243				regulator-state-mem {
244					regulator-mode = <0x2>;
245					regulator-on-in-suspend;
246				};
247			};
248
249			vcc_io: DCDC_REG1 {
250				regulator-name = "vcc_io";
251				regulator-min-microvolt = <3300000>;
252				regulator-max-microvolt = <3300000>;
253				regulator-initial-mode = <0x1>;
254				regulator-boot-on;
255				regulator-always-on;
256				regulator-state-mem {
257					regulator-mode = <0x2>;
258					regulator-on-in-suspend;
259					regulator-suspend-microvolt = <3300000>;
260				};
261			};
262
263			vcca_33: LDO_REG1 {
264				regulator-name = "vcca_33";
265				regulator-min-microvolt = <3300000>;
266				regulator-max-microvolt = <3300000>;
267				regulator-initial-state = <3>;
268				regulator-boot-on;
269				regulator-always-on;
270				regulator-state-mem {
271					regulator-on-in-suspend;
272					regulator-suspend-microvolt = <3300000>;
273				};
274			};
275
276			vcc_18: LDO_REG2 {
277				regulator-name = "vcc_18";
278				regulator-min-microvolt = <1800000>;
279				regulator-max-microvolt = <1800000>;
280				regulator-boot-on;
281				regulator-always-on;
282				regulator-state-mem {
283					regulator-on-in-suspend;
284					regulator-suspend-microvolt = <1800000>;
285				};
286			};
287
288			vdd10_pmu: LDO_REG3 {
289				regulator-name = "vdd10_pmu";
290				regulator-min-microvolt = <1100000>;
291				regulator-max-microvolt = <1100000>;
292				regulator-boot-on;
293				regulator-always-on;
294				regulator-state-mem {
295					regulator-on-in-suspend;
296					regulator-suspend-microvolt = <1100000>;
297				};
298			};
299		};
300	};
301};
302
303&i2c2 {
304	status = "okay";
305	cx20810: cx20810@35 {
306		compatible = "conexant,cx20810";
307		reg = <0x35>;
308		reset-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
309		status = "okay";
310	};
311
312	is31fl3236: led-controller@3c {
313		compatible = "issi,is31fl3236";
314		reg = <0x3c>;
315		#address-cells = <1>;
316		#size-cells = <0>;
317		reset-gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
318		status = "okay";
319
320		led1: led@1 {
321			label = "led1";
322			reg = <1>;
323			led-max-microamp = <10000>;
324			linux,default-trigger = "timer";
325			linux,default-trigger-delay-ms = <0>;
326			linux,blink-delay-on-ms = <100>;
327			linux,blink-delay-off-ms = <1200>;
328		};
329
330		led2: led@2 {
331			label = "led2";
332			reg = <2>;
333			led-max-microamp = <10000>;
334			linux,default-trigger = "timer";
335			linux,default-trigger-delay-ms = <0>;
336			linux,blink-delay-on-ms = <100>;
337			linux,blink-delay-off-ms = <1200>;
338		};
339
340		led3: led@3 {
341			label = "led3";
342			reg = <3>;
343			led-max-microamp = <10000>;
344			linux,default-trigger = "default-on";
345		};
346
347		led4: led@4 {
348			label = "led4";
349			reg = <4>;
350			led-max-microamp = <10000>;
351			linux,default-trigger = "timer";
352			linux,default-trigger-delay-ms = <100>;
353			linux,blink-delay-on-ms = <100>;
354			linux,blink-delay-off-ms = <1200>;
355		};
356
357		led5: led@5 {
358			label = "led5";
359			reg = <5>;
360			led-max-microamp = <10000>;
361			linux,default-trigger = "timer";
362			linux,default-trigger-delay-ms = <100>;
363			linux,blink-delay-on-ms = <100>;
364			linux,blink-delay-off-ms = <1200>;
365		};
366
367		led6: led@6 {
368			label = "led6";
369			reg = <6>;
370			led-max-microamp = <10000>;
371			linux,default-trigger = "default-on";
372		};
373
374		led7: led@7 {
375			label = "led7";
376			reg = <7>;
377			led-max-microamp = <10000>;
378			linux,default-trigger = "timer";
379			linux,default-trigger-delay-ms = <200>;
380			linux,blink-delay-on-ms = <100>;
381			linux,blink-delay-off-ms = <1200>;
382		};
383
384		led8: led@8 {
385			label = "led8";
386			reg = <8>;
387			led-max-microamp = <10000>;
388			linux,default-trigger = "timer";
389			linux,default-trigger-delay-ms = <200>;
390			linux,blink-delay-on-ms = <100>;
391			linux,blink-delay-off-ms = <1200>;
392		};
393
394		led9: led@9 {
395			label = "led9";
396			reg = <9>;
397			led-max-microamp = <10000>;
398			linux,default-trigger = "default-on";
399		};
400
401		led10: led@10 {
402			label = "led10";
403			reg = <10>;
404			led-max-microamp = <10000>;
405			linux,default-trigger = "timer";
406			linux,default-trigger-delay-ms = <300>;
407			linux,blink-delay-on-ms = <100>;
408			linux,blink-delay-off-ms = <1200>;
409		};
410
411		led11: led@11 {
412			label = "led11";
413			reg = <11>;
414			led-max-microamp = <10000>;
415			linux,default-trigger = "timer";
416			linux,default-trigger-delay-ms = <300>;
417			linux,blink-delay-on-ms = <100>;
418			linux,blink-delay-off-ms = <1200>;
419		};
420
421		led12: led@12 {
422			label = "led12";
423			reg = <12>;
424			led-max-microamp = <10000>;
425			linux,default-trigger = "default-on";
426		};
427
428		led13: led@13 {
429			label = "led13";
430			reg = <13>;
431			led-max-microamp = <10000>;
432			linux,default-trigger = "timer";
433			linux,default-trigger-delay-ms = <400>;
434			linux,blink-delay-on-ms = <100>;
435			linux,blink-delay-off-ms = <1200>;
436		};
437
438		led14: led@14 {
439			label = "led14";
440			reg = <14>;
441			led-max-microamp = <10000>;
442			linux,default-trigger = "timer";
443			linux,default-trigger-delay-ms = <400>;
444			linux,blink-delay-on-ms = <100>;
445			linux,blink-delay-off-ms = <1200>;
446		};
447
448		led15: led@15 {
449			label = "led15";
450			reg = <15>;
451			led-max-microamp = <10000>;
452			linux,default-trigger = "default-on";
453		};
454
455		led16: led@16 {
456			label = "led16";
457			reg = <16>;
458			led-max-microamp = <10000>;
459			linux,default-trigger = "timer";
460			linux,default-trigger-delay-ms = <500>;
461			linux,blink-delay-on-ms = <100>;
462			linux,blink-delay-off-ms = <1200>;
463		};
464
465		led17: led@17 {
466			label = "led17";
467			reg = <17>;
468			led-max-microamp = <10000>;
469			linux,default-trigger = "timer";
470			linux,default-trigger-delay-ms = <500>;
471			linux,blink-delay-on-ms = <100>;
472			linux,blink-delay-off-ms = <1200>;
473		};
474
475		led18: led@18 {
476			label = "led18";
477			reg = <18>;
478			led-max-microamp = <10000>;
479			linux,default-trigger = "default-on";
480		};
481
482		led19: led@19 {
483			label = "led19";
484			reg = <19>;
485			led-max-microamp = <10000>;
486			linux,default-trigger = "timer";
487			linux,default-trigger-delay-ms = <600>;
488			linux,blink-delay-on-ms = <100>;
489			linux,blink-delay-off-ms = <1200>;
490		};
491
492		led20: led@20 {
493			label = "led20";
494			reg = <20>;
495			led-max-microamp = <10000>;
496			linux,default-trigger = "timer";
497			linux,default-trigger-delay-ms = <600>;
498			linux,blink-delay-on-ms = <100>;
499			linux,blink-delay-off-ms = <1200>;
500		};
501
502		led21: led@21 {
503			label = "led21";
504			reg = <21>;
505			led-max-microamp = <10000>;
506			linux,default-trigger = "default-on";
507		};
508
509		led22: led@22 {
510			label = "led22";
511			reg = <22>;
512			led-max-microamp = <10000>;
513			linux,default-trigger = "timer";
514			linux,default-trigger-delay-ms = <700>;
515			linux,blink-delay-on-ms = <100>;
516			linux,blink-delay-off-ms = <1200>;
517		};
518
519		led23: led@23 {
520			label = "led23";
521			reg = <23>;
522			led-max-microamp = <10000>;
523			linux,default-trigger = "timer";
524			linux,default-trigger-delay-ms = <700>;
525			linux,blink-delay-on-ms = <100>;
526			linux,blink-delay-off-ms = <1200>;
527		};
528
529		led124: led@24 {
530			label = "led24";
531			reg = <24>;
532			led-max-microamp = <10000>;
533			linux,default-trigger = "default-on";
534		};
535
536		led25: led@25 {
537			label = "led25";
538			reg = <25>;
539			led-max-microamp = <10000>;
540			linux,default-trigger = "timer";
541			linux,default-trigger-delay-ms = <800>;
542			linux,blink-delay-on-ms = <100>;
543			linux,blink-delay-off-ms = <1200>;
544		};
545
546		led26: led@26 {
547			label = "led26";
548			reg = <26>;
549			led-max-microamp = <10000>;
550			linux,default-trigger = "timer";
551			linux,default-trigger-delay-ms = <800>;
552			linux,blink-delay-on-ms = <100>;
553			linux,blink-delay-off-ms = <1200>;
554		};
555
556		led27: led@27 {
557			label = "led27";
558			reg = <27>;
559			led-max-microamp = <10000>;
560			linux,default-trigger = "default-on";
561		};
562
563		led28: led@28 {
564			label = "led28";
565			reg = <28>;
566			led-max-microamp = <10000>;
567			linux,default-trigger = "timer";
568			linux,default-trigger-delay-ms = <900>;
569			linux,blink-delay-on-ms = <100>;
570			linux,blink-delay-off-ms = <1200>;
571		};
572
573		led29: led@29 {
574			label = "led29";
575			reg = <29>;
576			led-max-microamp = <10000>;
577			linux,default-trigger = "timer";
578			linux,default-trigger-delay-ms = <900>;
579			linux,blink-delay-on-ms = <100>;
580			linux,blink-delay-off-ms = <1200>;
581		};
582
583		led30: led@30 {
584			label = "led30";
585			reg = <30>;
586			led-max-microamp = <10000>;
587			linux,default-trigger = "default-on";
588		};
589
590		led31: led@31 {
591			label = "led31";
592			reg = <31>;
593			led-max-microamp = <10000>;
594			linux,default-trigger = "timer";
595			linux,default-trigger-delay-ms = <1000>;
596			linux,blink-delay-on-ms = <100>;
597			linux,blink-delay-off-ms = <1200>;
598		};
599
600		led32: led@32 {
601			label = "led32";
602			reg = <32>;
603			led-max-microamp = <10000>;
604			linux,default-trigger = "timer";
605			linux,default-trigger-delay-ms = <1000>;
606			linux,blink-delay-on-ms = <100>;
607			linux,blink-delay-off-ms = <1200>;
608		};
609
610		led33: led@33 {
611			label = "led33";
612			reg = <33>;
613			led-max-microamp = <10000>;
614			linux,default-trigger = "default-on";
615		};
616
617		led34: led@34 {
618			label = "led34";
619			reg = <34>;
620			led-max-microamp = <10000>;
621			linux,default-trigger = "timer";
622			linux,default-trigger-delay-ms = <1100>;
623			linux,blink-delay-on-ms = <100>;
624			linux,blink-delay-off-ms = <1200>;
625		};
626
627		led35: led@35 {
628			label = "led35";
629			reg = <35>;
630			led-max-microamp = <10000>;
631			linux,default-trigger = "timer";
632			linux,default-trigger-delay-ms = <1100>;
633			linux,blink-delay-on-ms = <100>;
634			linux,blink-delay-off-ms = <1200>;
635		};
636
637		led36: led@36 {
638			label = "led36";
639			reg = <36>;
640			led-max-microamp = <10000>;
641			linux,default-trigger = "default-on";
642		};
643	};
644};
645
646&i2s {
647	#sound-dai-cells = <0>;
648	pinctrl-0 = <&i2s_sclk
649		     &i2s_lrclktx
650		     &i2s_sdo
651		     &i2s_sdi>;
652	status = "okay";
653};
654
655&mpp_srv {
656	status = "okay";
657};
658
659&sdio {
660	status = "okay";
661
662	bus-width = <4>;
663	cap-sd-highspeed;
664	cap-sdio-irq;
665	default-sample-phase = <90>;
666	keep-power-in-suspend;
667	mmc-pwrseq = <&sdio_pwrseq>;
668	non-removable;
669	num-slots = <1>;
670	pinctrl-names = "default";
671	pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
672	sd-uhs-sdr12;
673	sd-uhs-sdr25;
674	sd-uhs-sdr50;
675	sd-uhs-sdr104;
676	no-sd;
677	no-mmc;
678};
679
680&sdmmc {
681	bus-width = <4>;
682	cap-mmc-highspeed;
683	cap-sd-highspeed;
684	card-detect-delay = <200>;
685	disable-wp;
686	num-slots = <1>;
687	pinctrl-names = "default";
688	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
689};
690
691&uart0 {
692	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>;
693	status = "okay";
694};
695
696&uart2 {
697	status = "disabled";
698};
699
700&usb_host {
701	status = "okay";
702};
703
704&usb_otg {
705	status = "okay";
706};
707
708&vdpu {
709	status = "okay";
710};
711
712&vpu_mmu {
713	status = "okay";
714};
715
716&vop {
717	status = "okay";
718};
719
720&vop_mmu {
721	status = "okay";
722};
723
724&wdt {
725	status = "okay";
726};
727
728&pinctrl {
729	pmic {
730		pmic_int: pmic-int {
731			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_default>;
732		};
733	};
734
735	keys {
736		pwr_key: pwr-key {
737			rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_default>;
738		};
739	};
740
741	sdio {
742		bt_wake_h: bt-wake-h {
743			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
744		};
745	};
746
747	sdmmc {
748		sdmmc_pwr: sdmmc-pwr {
749			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
750		};
751	};
752
753	sleep {
754		global_pwroff: global-pwroff {
755			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
756		};
757	};
758
759	wireless-bluetooth {
760		uart0_gpios: uart0-gpios {
761			rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
762		};
763	};
764};
765