1/*
2 * Copyright (C) 2016-2017 Zodiac Inflight Innovations
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 *  a) This file is free software; you can redistribute it and/or
10 *     modify it under the terms of the GNU General Public License
11 *     version 2 as published by the Free Software Foundation.
12 *
13 *     This file is distributed in the hope that it will be useful,
14 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *     GNU General Public License for more details.
17 *
18 * Or, alternatively,
19 *
20 *  b) Permission is hereby granted, free of charge, to any person
21 *     obtaining a copy of this software and associated documentation
22 *     files (the "Software"), to deal in the Software without
23 *     restriction, including without limitation the rights to use,
24 *     copy, modify, merge, publish, distribute, sublicense, and/or
25 *     sell copies of the Software, and to permit persons to whom the
26 *     Software is furnished to do so, subject to the following
27 *     conditions:
28 *
29 *     The above copyright notice and this permission notice shall be
30 *     included in all copies or substantial portions of the Software.
31 *
32 *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND,
33 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 *     OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42#include <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/sound/fsl-imx-audmux.h>
44
45/ {
46	chosen {
47		stdout-path = &uart1;
48	};
49
50	aliases {
51		mdio-gpio0 = &mdio1;
52		rtc0 = &ds1341;
53	};
54
55	mdio1: mdio {
56		compatible = "virtual,mdio-gpio";
57		#address-cells = <1>;
58		#size-cells = <0>;
59		pinctrl-names = "default";
60		pinctrl-0 = <&pinctrl_mdio1>;
61		gpios = <&gpio6 5 GPIO_ACTIVE_HIGH
62		         &gpio6 4 GPIO_ACTIVE_HIGH>;
63
64		phy: ethernet-phy@0 {
65			pinctrl-0 = <&pinctrl_rmii_phy_irq>;
66			pinctrl-names = "default";
67			reg = <0>;
68			interrupt-parent = <&gpio3>;
69			interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
70		};
71	};
72
73	reg_28p0v: regulator-28p0v {
74		compatible = "regulator-fixed";
75		regulator-name = "28V_IN";
76		regulator-min-microvolt = <28000000>;
77		regulator-max-microvolt = <28000000>;
78		regulator-always-on;
79	};
80
81	reg_12p0v: regulator-12p0v {
82		compatible = "regulator-fixed";
83		vin-supply = <&reg_28p0v>;
84		regulator-name = "12V_MAIN";
85		regulator-min-microvolt = <12000000>;
86		regulator-max-microvolt = <12000000>;
87		regulator-always-on;
88	};
89
90	reg_5p0v_main: regulator-5p0v-main {
91		compatible = "regulator-fixed";
92		vin-supply = <&reg_12p0v>;
93		regulator-name = "5V_MAIN";
94		regulator-min-microvolt = <5000000>;
95		regulator-max-microvolt = <5000000>;
96		regulator-always-on;
97	};
98
99	reg_5p0v_user_usb: regulator-5p0v-user-usb {
100		compatible = "regulator-fixed";
101		pinctrl-names = "default";
102		pinctrl-0 = <&pinctrl_reg_user_usb>;
103		vin-supply = <&reg_5p0v_main>;
104		regulator-name = "5V_USER_USB";
105		regulator-min-microvolt = <5000000>;
106		regulator-max-microvolt = <5000000>;
107		gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
108		startup-delay-us = <1000>;
109	};
110
111	reg_3p3v_pmic: regulator-3p3v-pmic {
112		compatible = "regulator-fixed";
113		vin-supply = <&reg_12p0v>;
114		regulator-name = "PMIC_3V3";
115		regulator-min-microvolt = <3300000>;
116		regulator-max-microvolt = <3300000>;
117		regulator-always-on;
118	};
119
120	reg_3p3v: regulator-3p3v {
121		compatible = "regulator-fixed";
122		vin-supply = <&reg_3p3v_pmic>;
123		regulator-name = "GEN_3V3";
124		regulator-min-microvolt = <3300000>;
125		regulator-max-microvolt = <3300000>;
126		regulator-always-on;
127	};
128
129	reg_3p3v_sd: regulator-3p3v-sd {
130		compatible = "regulator-fixed";
131		pinctrl-names = "default";
132		pinctrl-0 = <&pinctrl_reg_3p3v_sd>;
133		vin-supply = <&reg_3p3v>;
134		regulator-name = "3V3_SD";
135		regulator-min-microvolt = <3300000>;
136		regulator-max-microvolt = <3300000>;
137		gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
138		startup-delay-us = <1000>;
139		enable-active-high;
140		regulator-always-on;
141	};
142
143	reg_3p3v_display: regulator-3p3v-display {
144		compatible = "regulator-fixed";
145		vin-supply = <&reg_12p0v>;
146		regulator-name = "3V3_DISPLAY";
147		regulator-min-microvolt = <3300000>;
148		regulator-max-microvolt = <3300000>;
149		regulator-always-on;
150	};
151
152	reg_3p3v_ssd: regulator-3p3v-ssd {
153		compatible = "regulator-fixed";
154		vin-supply = <&reg_12p0v>;
155		regulator-name = "3V3_SSD";
156		regulator-min-microvolt = <3300000>;
157		regulator-max-microvolt = <3300000>;
158		regulator-always-on;
159	};
160
161	sound1 {
162		compatible = "simple-audio-card";
163		simple-audio-card,name = "Front";
164		simple-audio-card,format = "i2s";
165		simple-audio-card,bitclock-master = <&sound1_codec>;
166		simple-audio-card,frame-master = <&sound1_codec>;
167		simple-audio-card,widgets =
168			"Headphone", "Headphone Jack";
169		simple-audio-card,routing =
170			"Headphone Jack", "HPLEFT",
171			"Headphone Jack", "HPRIGHT",
172			"LEFTIN", "HPL",
173			"RIGHTIN", "HPR";
174		simple-audio-card,aux-devs = <&hpa1>;
175
176		sound1_cpu: simple-audio-card,cpu {
177			sound-dai = <&ssi2>;
178		};
179
180		sound1_codec: simple-audio-card,codec {
181			sound-dai = <&codec1>;
182			clocks = <&cs2000>;
183		};
184	};
185
186	sound2 {
187		compatible = "simple-audio-card";
188		simple-audio-card,name = "Back";
189		simple-audio-card,format = "i2s";
190		simple-audio-card,bitclock-master = <&sound2_codec>;
191		simple-audio-card,frame-master = <&sound2_codec>;
192		simple-audio-card,widgets =
193			"Headphone", "Headphone Jack";
194		simple-audio-card,routing =
195			"Headphone Jack", "HPLEFT",
196			"Headphone Jack", "HPRIGHT",
197			"LEFTIN", "HPL",
198			"RIGHTIN", "HPR";
199		simple-audio-card,aux-devs = <&hpa2>;
200
201		sound2_cpu: simple-audio-card,cpu {
202			sound-dai = <&ssi1>;
203		};
204
205		sound2_codec: simple-audio-card,codec {
206			sound-dai = <&codec2>;
207			clocks = <&cs2000>;
208		};
209	};
210
211	panel {
212		power-supply = <&reg_3p3v_display>;
213		status = "disabled";
214
215		port {
216			panel_in: endpoint {
217				remote-endpoint = <&lvds0_out>;
218			};
219		};
220	};
221
222	disp0: disp0 {
223		#address-cells = <1>;
224		#size-cells = <0>;
225		compatible = "fsl,imx-parallel-display";
226		pinctrl-names = "default";
227		pinctrl-0 = <&pinctrl_disp0>;
228		status = "disabled";
229
230		port@0 {
231			reg = <0>;
232
233			disp0_in_0: endpoint {
234				remote-endpoint = <&ipu1_di0_disp0>;
235			};
236		};
237
238		port@1 {
239			reg = <1>;
240
241			disp0_out: endpoint {
242				remote-endpoint = <&tc358767_in>;
243			};
244		};
245	};
246
247	cs2000_ref: cs2000-ref {
248		compatible = "fixed-clock";
249		#clock-cells = <0>;
250		clock-frequency = <24576000>;
251	};
252
253	cs2000_in_dummy: cs2000-in-dummy {
254		compatible = "fixed-clock";
255		#clock-cells = <0>;
256		clock-frequency = <0>;
257	};
258
259	edp_refclk: edp-refclk {
260		compatible = "fixed-clock";
261		#clock-cells = <0>;
262		clock-frequency = <19200000>;
263	};
264};
265
266&cpu0 {
267	fsl,soc-operating-points = <
268		/* ARM kHz  SOC-PU uV */
269		1200000 1300000
270		996000	1275000
271		852000	1275000
272		792000	1200000
273		396000	1200000
274	>;
275};
276
277&reg_arm {
278	vin-supply = <&sw1a_reg>;
279};
280
281&reg_pu {
282	vin-supply = <&sw1c_reg>;
283};
284
285&reg_soc {
286	vin-supply = <&sw1c_reg>;
287};
288
289&ldb {
290	lvds-channel@0 {
291		port@4 {
292			reg = <4>;
293
294			lvds0_out: endpoint {
295				remote-endpoint = <&panel_in>;
296			};
297		};
298	};
299};
300
301&uart1 {
302	pinctrl-names = "default";
303	pinctrl-0 = <&pinctrl_uart1>;
304	status = "okay";
305};
306
307&uart3 {
308	pinctrl-names = "default";
309	pinctrl-0 = <&pinctrl_uart3>;
310	uart-has-rtscts;
311	linux,rs485-enabled-at-boot-time;
312	status = "okay";
313};
314
315&uart4 {
316	pinctrl-names = "default";
317	pinctrl-0 = <&pinctrl_uart4>;
318	status = "okay";
319
320	rave-sp {
321		compatible = "zii,rave-sp-rdu2";
322		current-speed = <1000000>;
323		#address-cells = <1>;
324		#size-cells = <1>;
325
326		watchdog {
327			compatible = "zii,rave-sp-watchdog";
328		};
329
330		backlight {
331			compatible = "zii,rave-sp-backlight";
332		};
333
334		pwrbutton {
335			compatible = "zii,rave-sp-pwrbutton";
336		};
337
338		eeprom@a3 {
339			compatible = "zii,rave-sp-eeprom";
340			reg = <0xa3 0x4000>;
341			#address-cells = <1>;
342			#size-cells = <1>;
343			zii,eeprom-name = "dds-eeprom";
344		};
345
346		eeprom@a4 {
347			compatible = "zii,rave-sp-eeprom";
348			reg = <0xa4 0x4000>;
349			#address-cells = <1>;
350			#size-cells = <1>;
351			zii,eeprom-name = "main-eeprom";
352		};
353	};
354};
355
356&ecspi1 {
357	pinctrl-names = "default";
358	pinctrl-0 = <&pinctrl_ecspi1>;
359	cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
360	status = "okay";
361
362	flash@0 {
363		compatible = "st,m25p128", "jedec,spi-nor";
364		spi-max-frequency = <20000000>;
365		reg = <0>;
366	};
367};
368
369&i2c1 {
370	pinctrl-names = "default";
371	pinctrl-0 = <&pinctrl_i2c1>;
372	clock-frequency = <100000>;
373	status = "okay";
374
375	codec2: codec@18 {
376		compatible = "ti,tlv320dac3100";
377		pinctrl-names = "default";
378		pinctrl-0 = <&pinctrl_codec2>;
379		reg = <0x18>;
380		#sound-dai-cells = <0>;
381		HPVDD-supply = <&reg_3p3v>;
382		SPRVDD-supply = <&reg_3p3v>;
383		SPLVDD-supply = <&reg_3p3v>;
384		AVDD-supply = <&reg_3p3v>;
385		IOVDD-supply = <&reg_3p3v>;
386		DVDD-supply = <&vgen4_reg>;
387		gpio-reset = <&gpio1 2 GPIO_ACTIVE_HIGH>;
388	};
389
390	accel@1c {
391		pinctrl-names = "default";
392		pinctrl-0 = <&pinctrl_accel>;
393		compatible = "fsl,mma8451";
394		reg = <0x1c>;
395		interrupt-parent = <&gpio1>;
396		interrupt-names = "int1", "int2";
397		interrupts = <18 IRQ_TYPE_LEVEL_LOW>, <20 IRQ_TYPE_LEVEL_LOW>;
398	};
399
400	hpa2: amp@60 {
401		compatible = "ti,tpa6130a2";
402		pinctrl-names = "default";
403		pinctrl-0 = <&pinctrl_tpa2>;
404		reg = <0x60>;
405		power-gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
406		Vdd-supply = <&reg_5p0v_main>;
407	};
408
409	edp-bridge@68 {
410		compatible = "toshiba,tc358767";
411		pinctrl-names = "default";
412		pinctrl-0 = <&pinctrl_tc358767>;
413		reg = <0x68>;
414		shutdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
415		clock-names = "ref";
416		clocks = <&edp_refclk>;
417		status = "disabled";
418
419		ports {
420			#address-cells = <1>;
421			#size-cells = <0>;
422
423			port@1 {
424				reg = <1>;
425
426				tc358767_in: endpoint {
427					remote-endpoint = <&disp0_out>;
428				};
429			};
430		};
431	};
432};
433
434&i2c2 {
435	pinctrl-names = "default";
436	pinctrl-0 = <&pinctrl_i2c2>;
437	clock-frequency = <100000>;
438	status = "okay";
439
440	pmic@8 {
441		compatible = "fsl,pfuze100";
442		pinctrl-names = "default";
443		pinctrl-0 = <&pinctrl_pfuze100_irq>;
444		reg = <0x08>;
445		interrupt-parent = <&gpio7>;
446		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
447
448		regulators {
449			sw1a_reg: sw1ab {
450				regulator-min-microvolt = <300000>;
451				regulator-max-microvolt = <1875000>;
452				regulator-boot-on;
453				regulator-always-on;
454				regulator-ramp-delay = <6250>;
455			};
456
457			sw1c_reg: sw1c {
458				regulator-min-microvolt = <300000>;
459				regulator-max-microvolt = <1875000>;
460				regulator-boot-on;
461				regulator-always-on;
462				regulator-ramp-delay = <6250>;
463			};
464
465			sw2_reg: sw2 {
466				regulator-min-microvolt = <800000>;
467				regulator-max-microvolt = <3000000>;
468				regulator-boot-on;
469				regulator-always-on;
470			};
471
472			sw3a_reg: sw3a {
473				regulator-min-microvolt = <400000>;
474				regulator-max-microvolt = <1500000>;
475				regulator-boot-on;
476				regulator-always-on;
477			};
478
479			sw3b_reg: sw3b {
480				regulator-min-microvolt = <400000>;
481				regulator-max-microvolt = <1500000>;
482				regulator-boot-on;
483				regulator-always-on;
484			};
485
486			sw4_reg: sw4 {
487				regulator-min-microvolt = <800000>;
488				regulator-max-microvolt = <1800000>;
489				regulator-boot-on;
490				regulator-always-on;
491			};
492
493			snvs_reg: vsnvs {
494				regulator-min-microvolt = <1000000>;
495				regulator-max-microvolt = <3000000>;
496				regulator-boot-on;
497				regulator-always-on;
498			};
499
500			vref_reg: vrefddr {
501				regulator-boot-on;
502				regulator-always-on;
503			};
504
505			vgen2_reg: vgen2 {
506				regulator-min-microvolt = <1000000>;
507				regulator-max-microvolt = <1500000>;
508				regulator-always-on;
509			};
510
511			vgen4_reg: vgen4 {
512				regulator-min-microvolt = <1200000>;
513				regulator-max-microvolt = <1800000>;
514				regulator-always-on;
515			};
516
517			vgen5_reg: vgen5 {
518				regulator-min-microvolt = <1800000>;
519				regulator-max-microvolt = <2500000>;
520				regulator-always-on;
521			};
522
523			vgen6_reg: vgen6 {
524				regulator-min-microvolt = <1800000>;
525				regulator-max-microvolt = <2800000>;
526				regulator-always-on;
527			};
528		};
529	};
530
531	temp-sense@48 {
532		compatible = "national,lm75";
533		reg = <0x48>;
534	};
535
536	cs2000: clkgen@4e {
537		compatible = "cirrus,cs2000-cp";
538		reg = <0x4e>;
539		#clock-cells = <0>;
540		clock-names = "clk_in", "ref_clk";
541		clocks = <&cs2000_in_dummy>, <&cs2000_ref>;
542		assigned-clocks = <&cs2000>;
543		assigned-clock-rates = <24000000>;
544	};
545
546	eeprom@54 {
547		compatible = "atmel,24c128";
548		reg = <0x54>;
549	};
550
551	ds1341: rtc@68 {
552		compatible = "dallas,ds1341";
553		reg = <0x68>;
554	};
555};
556
557&i2c3 {
558	pinctrl-names = "default";
559	pinctrl-0 = <&pinctrl_i2c3>;
560	clock-frequency = <400000>;
561	status = "okay";
562
563	codec1: codec@18 {
564		compatible = "ti,tlv320dac3100";
565		pinctrl-names = "default";
566		pinctrl-0 = <&pinctrl_codec1>;
567		reg = <0x18>;
568		#sound-dai-cells = <0>;
569		HPVDD-supply = <&reg_3p3v>;
570		SPRVDD-supply = <&reg_3p3v>;
571		SPLVDD-supply = <&reg_3p3v>;
572		AVDD-supply = <&reg_3p3v>;
573		IOVDD-supply = <&reg_3p3v>;
574		DVDD-supply = <&vgen4_reg>;
575		gpio-reset = <&gpio1 0 GPIO_ACTIVE_HIGH>;
576	};
577
578	touchscreen@20 {
579		compatible = "syna,rmi4-i2c";
580		pinctrl-names = "default";
581		pinctrl-0 = <&pinctrl_ts>;
582		reg = <0x20>;
583		interrupt-parent = <&gpio1>;
584		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
585		vdd-supply = <&reg_5p0v_main>;
586		vio-supply = <&reg_3p3v>;
587
588		#address-cells = <1>;
589		#size-cells = <0>;
590
591		rmi4-f01@1 {
592			reg = <0x1>;
593			syna,nosleep-mode = <2>;
594		};
595
596		rmi4-f11@11 {
597			reg = <0x11>;
598			touchscreen-inverted-x;
599			touchscreen-swapped-x-y;
600			syna,sensor-type = <1>;
601		};
602
603		rmi4-f12@12 {
604			reg = <0x12>;
605			touchscreen-inverted-x;
606			touchscreen-swapped-x-y;
607			syna,sensor-type = <1>;
608		};
609	};
610
611	touchscreen@2a {
612		compatible = "eeti,egalax_ts";
613		pinctrl-names = "default";
614		pinctrl-0 = <&pinctrl_ts>;
615		reg = <0x2a>;
616		interrupt-parent = <&gpio1>;
617		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
618		wakeup-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
619		status = "disabled";
620	};
621
622	hpa1: amp@60 {
623		compatible = "ti,tpa6130a2";
624		pinctrl-names = "default";
625		pinctrl-0 = <&pinctrl_tpa1>;
626		reg = <0x60>;
627		power-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
628		Vdd-supply = <&reg_5p0v_main>;
629	};
630};
631
632&ipu1_di0_disp0 {
633	remote-endpoint = <&disp0_in_0>;
634};
635
636&pcie {
637	pinctrl-names = "default";
638	pinctrl-0 = <&pinctrl_pcie>;
639	reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
640	status = "okay";
641
642	host@0 {
643		reg = <0 0 0 0 0>;
644
645		#address-cells = <3>;
646		#size-cells = <2>;
647
648		i210: i210@0 {
649			reg = <0 0 0 0 0>;
650		};
651	};
652};
653
654&usdhc2 {
655	pinctrl-names = "default";
656	pinctrl-0 = <&pinctrl_usdhc2>;
657	bus-width = <4>;
658	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
659	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
660	vmmc-supply = <&reg_3p3v_sd>;
661	vqmmc-supply = <&reg_3p3v>;
662	no-1-8-v;
663	no-sdio;
664	status = "okay";
665};
666
667&usdhc3 {
668	pinctrl-names = "default";
669	pinctrl-0 = <&pinctrl_usdhc3>;
670	bus-width = <4>;
671	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
672	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
673	vmmc-supply = <&reg_3p3v_sd>;
674	vqmmc-supply = <&reg_3p3v>;
675	no-1-8-v;
676	no-sdio;
677	status = "okay";
678};
679
680&usdhc4 {
681	pinctrl-names = "default";
682	pinctrl-0 = <&pinctrl_usdhc4>;
683	bus-width = <8>;
684	vmmc-supply = <&reg_3p3v>;
685	vqmmc-supply = <&reg_3p3v>;
686	no-1-8-v;
687	non-removable;
688	no-sdio;
689	no-sd;
690	status = "okay";
691};
692
693&sata {
694	target-supply = <&reg_3p3v_ssd>;
695	status = "okay";
696};
697
698&fec {
699	pinctrl-names = "default";
700	pinctrl-0 = <&pinctrl_enet>;
701	phy-mode = "rmii";
702	phy-handle = <&phy>;
703	phy-reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
704	phy-reset-duration = <100>;
705	phy-supply = <&reg_3p3v>;
706	status = "okay";
707
708	mdio {
709		#address-cells = <1>;
710		#size-cells = <0>;
711		status = "okay";
712
713		switch: switch@0 {
714			compatible = "marvell,mv88e6085";
715			pinctrl-0 = <&pinctrl_switch_irq>;
716			pinctrl-names = "default";
717			reg = <0>;
718			dsa,member = <0 0>;
719			eeprom-length = <512>;
720			interrupt-parent = <&gpio6>;
721			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
722			interrupt-controller;
723			#interrupt-cells = <2>;
724
725			ports {
726				#address-cells = <1>;
727				#size-cells = <0>;
728
729				port@0 {
730					reg = <0>;
731					label = "gigabit_proc";
732					phy-handle = <&switchphy0>;
733				};
734
735				port@1 {
736					reg = <1>;
737					label = "netaux";
738					phy-handle = <&switchphy1>;
739				};
740
741				port@2 {
742					reg = <2>;
743					label = "cpu";
744					ethernet = <&fec>;
745
746					fixed-link {
747						speed = <100>;
748						full-duplex;
749					};
750				};
751
752				port@3 {
753					reg = <3>;
754					label = "netright";
755					phy-handle = <&switchphy3>;
756				};
757
758				port@4 {
759					reg = <4>;
760					label = "netleft";
761					phy-handle = <&switchphy4>;
762				};
763			};
764
765			mdio {
766				#address-cells = <1>;
767				#size-cells = <0>;
768
769				switchphy0: switchphy@0 {
770					reg = <0>;
771					interrupt-parent = <&switch>;
772					interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
773				};
774
775				switchphy1: switchphy@1 {
776					reg = <1>;
777					interrupt-parent = <&switch>;
778					interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
779				};
780
781				switchphy2: switchphy@2 {
782					reg = <2>;
783					interrupt-parent = <&switch>;
784					interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
785				};
786
787				switchphy3: switchphy@3 {
788					reg = <3>;
789					interrupt-parent = <&switch>;
790					interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
791				};
792
793				switchphy4: switchphy@4 {
794					reg = <4>;
795					interrupt-parent = <&switch>;
796					interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
797				};
798			};
799		};
800	};
801};
802
803&usbh1 {
804	vbus-supply = <&reg_5p0v_main>;
805	disable-over-current;
806	status = "okay";
807};
808
809&usbotg {
810	vbus-supply = <&reg_5p0v_user_usb>;
811	disable-over-current;
812	dr_mode = "host";
813	status = "okay";
814};
815
816&ssi1 {
817	status = "okay";
818};
819
820&ssi2 {
821	status = "okay";
822};
823
824&audmux {
825	pinctrl-names = "default";
826	pinctrl-0 = <&pinctrl_audmux>;
827	status = "okay";
828
829	ssi1 {
830		fsl,audmux-port = <0>;
831		fsl,port-config = <
832			(IMX_AUDMUX_V2_PTCR_SYN |
833			 IMX_AUDMUX_V2_PTCR_TFSEL(2) |
834			 IMX_AUDMUX_V2_PTCR_TCSEL(2) |
835			 IMX_AUDMUX_V2_PTCR_TFSDIR |
836			 IMX_AUDMUX_V2_PTCR_TCLKDIR)
837			IMX_AUDMUX_V2_PDCR_RXDSEL(2)
838		>;
839	};
840
841	aud3 {
842		fsl,audmux-port = <2>;
843		fsl,port-config = <
844			IMX_AUDMUX_V2_PTCR_SYN
845			IMX_AUDMUX_V2_PDCR_RXDSEL(0)
846		>;
847	};
848
849	ssi2 {
850		fsl,audmux-port = <1>;
851		fsl,port-config = <
852			(IMX_AUDMUX_V2_PTCR_SYN |
853			 IMX_AUDMUX_V2_PTCR_TFSEL(4) |
854			 IMX_AUDMUX_V2_PTCR_TCSEL(4) |
855			 IMX_AUDMUX_V2_PTCR_TFSDIR |
856			 IMX_AUDMUX_V2_PTCR_TCLKDIR)
857			IMX_AUDMUX_V2_PDCR_RXDSEL(4)
858		>;
859	};
860
861	aud5 {
862		fsl,audmux-port = <4>;
863		fsl,port-config = <
864			IMX_AUDMUX_V2_PTCR_SYN
865			IMX_AUDMUX_V2_PDCR_RXDSEL(1)
866		>;
867	};
868};
869
870&wdog1 {
871	status = "disabled";
872};
873
874&iomuxc {
875	pinctrl_accel: accelgrp {
876		fsl,pins = <
877			MX6QDL_PAD_SD1_CMD__GPIO1_IO18		0x4001b000
878			MX6QDL_PAD_SD1_CLK__GPIO1_IO20		0x4001b000
879		>;
880	};
881
882	pinctrl_audmux: audmuxgrp {
883		fsl,pins = <
884			MX6QDL_PAD_KEY_COL0__AUD5_TXC		0x130b0
885			MX6QDL_PAD_KEY_ROW0__AUD5_TXD		0x130b0
886			MX6QDL_PAD_KEY_COL1__AUD5_TXFS		0x130b0
887			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
888			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x130b0
889			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
890		>;
891	};
892
893	pinctrl_codec1: dac1grp {
894		fsl,pins = <
895			MX6QDL_PAD_GPIO_0__GPIO1_IO00		0x40000038
896		>;
897	};
898
899	pinctrl_codec2: dac2grp {
900		fsl,pins = <
901			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x40000038
902		>;
903	};
904
905	pinctrl_disp0: disp0grp {
906		fsl,pins = <
907			MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x100f9
908			MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15       0x100f9
909			MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02        0x100f9
910			MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03        0x100f9
911			MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00   0x100f9
912			MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01   0x100f9
913			MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02   0x100f9
914			MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03   0x100f9
915			MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04   0x100f9
916			MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05   0x100f9
917			MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06   0x100f9
918			MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07   0x100f9
919			MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08   0x100f9
920			MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09   0x100f9
921			MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10  0x100f9
922			MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11  0x100f9
923			MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12  0x100f9
924			MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13  0x100f9
925			MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14  0x100f9
926			MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15  0x100f9
927			MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16  0x100f9
928			MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17  0x100f9
929			MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18  0x100f9
930			MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19  0x100f9
931			MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20  0x100f9
932			MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21  0x100f9
933			MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22  0x100f9
934			MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23  0x100f9
935		>;
936	};
937
938	pinctrl_ecspi1: ecspi1grp {
939		fsl,pins = <
940			MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
941			MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
942			MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
943			MX6QDL_PAD_EIM_EB2__GPIO2_IO30		0x1b0b1
944		>;
945	};
946
947	pinctrl_enet: enetgrp {
948		fsl,pins = <
949			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x000b1
950			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x100b1
951			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN	0x100f5
952			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN	0x100f5
953			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0	0x100c0
954			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1	0x100c0
955			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0	0x100f5
956			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1	0x100f5
957			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x40010040
958			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER	0x100b0
959			MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23	0x1b0b0
960		>;
961	};
962
963	pinctrl_i2c1: i2c1grp {
964		fsl,pins = <
965			MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
966			MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
967		>;
968	};
969
970	pinctrl_i2c2: i2c2grp {
971		fsl,pins = <
972			MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
973			MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
974		>;
975	};
976
977	pinctrl_i2c3: i2c3grp {
978		fsl,pins = <
979			MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
980			MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1
981		>;
982	};
983
984	pinctrl_mdio1: bitbangmdiogrp {
985		fsl,pins = <
986			/* Bitbang MDIO for DEB Switch */
987			MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05	0x4001b030
988			MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04	0x40018830
989		>;
990	};
991
992	pinctrl_pcie: pciegrp {
993		fsl,pins = <
994			MX6QDL_PAD_GPIO_17__GPIO7_IO12		0x10038
995		>;
996	};
997
998	pinctrl_pfuze100_irq: pfuze100grp {
999		fsl,pins = <
1000			MX6QDL_PAD_GPIO_18__GPIO7_IO13		0x40010000
1001		>;
1002	};
1003
1004	pinctrl_reg_3p3v_sd: mmcsupply1grp {
1005		fsl,pins = <
1006			MX6QDL_PAD_SD3_RST__GPIO7_IO08		0x858
1007		>;
1008	};
1009
1010	pinctrl_reg_user_usb: usbotggrp {
1011		fsl,pins = <
1012			MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x40000038
1013		>;
1014	};
1015
1016	pinctrl_rmii_phy_irq: phygrp {
1017		fsl,pins = <
1018			MX6QDL_PAD_EIM_D30__GPIO3_IO30		0x40010000
1019		>;
1020	};
1021
1022	pinctrl_switch_irq: switchgrp {
1023		fsl,pins = <
1024			MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03	0x4001b000
1025		>;
1026	};
1027
1028	pinctrl_tc358767: tc358767grp {
1029		fsl,pins = <
1030			MX6QDL_PAD_GPIO_9__GPIO1_IO09		0x10
1031		>;
1032	};
1033
1034	pinctrl_tpa1: tpa6130-1grp {
1035		fsl,pins = <
1036			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x40000038
1037		>;
1038	};
1039
1040	pinctrl_tpa2: tpa6130-2grp {
1041		fsl,pins = <
1042			MX6QDL_PAD_GPIO_5__GPIO1_IO05		0x40000038
1043		>;
1044	};
1045
1046	pinctrl_ts: tsgrp {
1047		fsl,pins = <
1048			MX6QDL_PAD_GPIO_8__GPIO1_IO08		0x1b0b0
1049			MX6QDL_PAD_GPIO_7__GPIO1_IO07		0x1b0b0
1050		>;
1051	};
1052
1053	pinctrl_uart1: uart1grp {
1054		fsl,pins = <
1055			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
1056			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
1057		>;
1058	};
1059
1060	pinctrl_uart3: uart3grp {
1061		fsl,pins = <
1062			MX6QDL_PAD_EIM_D24__UART3_TX_DATA	0x1b0b1
1063			MX6QDL_PAD_EIM_D25__UART3_RX_DATA	0x1b0b1
1064			MX6QDL_PAD_EIM_D31__UART3_RTS_B		0x1b0b1
1065		>;
1066	};
1067
1068	pinctrl_uart4: uart4grp {
1069		fsl,pins = <
1070			MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA	0x1b0b1
1071			MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA	0x1b0b1
1072		>;
1073	};
1074
1075	pinctrl_usdhc2: usdhc2grp {
1076		fsl,pins = <
1077			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x10059
1078			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10069
1079			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
1080			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
1081			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
1082			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
1083			MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x40010040
1084			MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x40010040
1085		>;
1086	};
1087
1088	pinctrl_usdhc3: usdhc3grp {
1089		fsl,pins = <
1090			MX6QDL_PAD_SD3_CMD__SD3_CMD		0x10059
1091			MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10069
1092			MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
1093			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
1094			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
1095			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
1096			MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x40010040
1097			MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x40010040
1098
1099		>;
1100	};
1101
1102	pinctrl_usdhc4: usdhc4grp {
1103		fsl,pins = <
1104			MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
1105			MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
1106			MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
1107			MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
1108			MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
1109			MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
1110			MX6QDL_PAD_SD4_DAT4__SD4_DATA4		0x17059
1111			MX6QDL_PAD_SD4_DAT5__SD4_DATA5		0x17059
1112			MX6QDL_PAD_SD4_DAT6__SD4_DATA6		0x17059
1113			MX6QDL_PAD_SD4_DAT7__SD4_DATA7		0x17059
1114			MX6QDL_PAD_NANDF_ALE__SD4_RESET		0x1b0b1
1115		>;
1116	};
1117};
1118