• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0
2//
3// Copyright (C) 2019 Logic PD, Inc.
4
5/ {
6	keyboard {
7		compatible = "gpio-keys";
8
9		btn0 {
10			gpios = <&pcf8575 0 GPIO_ACTIVE_LOW>;
11			label = "btn0";
12			linux,code = <KEY_WAKEUP>;
13			debounce-interval = <10>;
14			wakeup-source;
15		};
16
17		btn1 {
18			gpios = <&pcf8575 1 GPIO_ACTIVE_LOW>;
19			label = "btn1";
20			linux,code = <KEY_WAKEUP>;
21			debounce-interval = <10>;
22			wakeup-source;
23		};
24
25		btn2 {
26			gpios = <&pcf8575 2 GPIO_ACTIVE_LOW>;
27			label = "btn2";
28			linux,code = <KEY_WAKEUP>;
29			debounce-interval = <10>;
30			wakeup-source;
31		};
32
33		btn3 {
34			gpios = <&pcf8575 3 GPIO_ACTIVE_LOW>;
35			label = "btn3";
36			linux,code = <KEY_WAKEUP>;
37			debounce-interval = <10>;
38			wakeup-source;
39		};
40
41	};
42
43	leds {
44		compatible = "gpio-leds";
45
46		gen-led0 {
47			label = "led0";
48			pinctrl-names = "default";
49			pinctrl-0 = <&pinctrl_led0>;
50			gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
51			linux,default-trigger = "cpu0";
52		};
53
54		gen-led1 {
55			label = "led1";
56			gpios = <&pcf8575 8 GPIO_ACTIVE_HIGH>;
57		};
58
59		gen-led2 {
60			label = "led2";
61			gpios = <&pcf8575 9 GPIO_ACTIVE_HIGH>;
62			linux,default-trigger = "heartbeat";
63		};
64
65		gen-led3 {
66			label = "led3";
67			gpios = <&pcf8575 10 GPIO_ACTIVE_HIGH>;
68			linux,default-trigger = "default-on";
69		};
70	};
71
72	reg_usb_otg_vbus: regulator-otg-vbus {
73		pinctrl-names = "default";
74		pinctrl-0 = <&pinctrl_reg_usb_otg>;
75		compatible = "regulator-fixed";
76		regulator-name = "usb_otg_vbus";
77		regulator-min-microvolt = <5000000>;
78		regulator-max-microvolt = <5000000>;
79		gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
80		enable-active-high;
81	};
82
83	reg_usb_h1_vbus: regulator-usb-h1-vbus {
84		pinctrl-names = "default";
85		pinctrl-0 = <&pinctrl_reg_usb_h1_vbus>;
86		compatible = "regulator-fixed";
87		regulator-name = "usb_h1_vbus";
88		regulator-min-microvolt = <5000000>;
89		regulator-max-microvolt = <5000000>;
90		gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
91		startup-delay-us = <70000>;
92		enable-active-high;
93	};
94
95	reg_3v3: regulator-3v3 {
96		pinctrl-names = "default";
97		pinctrl-0 = <&pinctrl_reg_3v3>;
98		compatible = "regulator-fixed";
99		regulator-name = "reg_3v3";
100		regulator-min-microvolt = <3300000>;
101		regulator-max-microvolt = <3300000>;
102		gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
103		startup-delay-us = <70000>;
104		enable-active-high;
105		regulator-always-on;
106	};
107
108	reg_enet: regulator-ethernet {
109		pinctrl-names = "default";
110		pinctrl-0 = <&pinctrl_reg_enet>;
111		compatible = "regulator-fixed";
112		regulator-name = "ethernet-supply";
113		regulator-min-microvolt = <3300000>;
114		regulator-max-microvolt = <3300000>;
115		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
116		startup-delay-us = <70000>;
117		enable-active-high;
118		vin-supply = <&sw4_reg>;
119	};
120
121	reg_audio: regulator-audio {
122		pinctrl-names = "default";
123		pinctrl-0 = <&pinctrl_reg_audio>;
124		compatible = "regulator-fixed";
125		regulator-name = "3v3_aud";
126		regulator-min-microvolt = <3300000>;
127		regulator-max-microvolt = <3300000>;
128		gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
129		enable-active-high;
130		vin-supply = <&reg_3v3>;
131	};
132
133	reg_hdmi: regulator-hdmi {
134		pinctrl-names = "default";
135		pinctrl-0 = <&pinctrl_reg_hdmi>;
136		compatible = "regulator-fixed";
137		regulator-name = "hdmi-supply";
138		regulator-min-microvolt = <3300000>;
139		regulator-max-microvolt = <3300000>;
140		gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
141		enable-active-high;
142		vin-supply = <&reg_3v3>;
143	};
144
145	reg_uart3: regulator-uart3 {
146		pinctrl-names = "default";
147		pinctrl-0 = <&pinctrl_reg_uart3>;
148		compatible = "regulator-fixed";
149		regulator-name = "uart3-supply";
150		gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
151		enable-active-high;
152		regulator-always-on;
153		vin-supply = <&reg_3v3>;
154	};
155
156	reg_1v8: regulator-1v8 {
157		pinctrl-names = "default";
158		pinctrl-0 = <&pinctrl_reg_1v8>;
159		compatible = "regulator-fixed";
160		regulator-name = "1v8-supply";
161		gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
162		enable-active-high;
163		regulator-always-on;
164		vin-supply = <&reg_3v3>;
165	};
166
167	reg_pcie: regulator-pcie {
168		compatible = "regulator-fixed";
169		pinctrl-names = "default";
170		pinctrl-0 = <&pinctrl_reg_pcie>;
171		regulator-name = "mpcie_3v3";
172		regulator-min-microvolt = <3300000>;
173		regulator-max-microvolt = <3300000>;
174		gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
175		enable-active-high;
176	};
177
178	reg_mipi: regulator-mipi {
179		compatible = "regulator-fixed";
180		pinctrl-names = "default";
181		pinctrl-0 = <&pinctrl_reg_mipi>;
182		regulator-name = "mipi_pwr_en";
183		regulator-min-microvolt = <2800000>;
184		regulator-max-microvolt = <2800000>;
185		gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>;
186		enable-active-high;
187	};
188
189	sound {
190		compatible = "fsl,imx-audio-wm8962";
191		model = "wm8962-audio";
192		ssi-controller = <&ssi2>;
193		audio-codec = <&wm8962>;
194		audio-routing =
195			"Headphone Jack", "HPOUTL",
196			"Headphone Jack", "HPOUTR",
197			"Ext Spk", "SPKOUTL",
198			"Ext Spk", "SPKOUTR",
199			"AMIC", "MICBIAS",
200			"IN3R", "AMIC";
201		mux-int-port = <2>;
202		mux-ext-port = <4>;
203	};
204};
205
206&audmux {
207	pinctrl-names = "default";
208	pinctrl-0 = <&pinctrl_audmux>;
209	status = "okay";
210};
211
212&ecspi1 {
213	pinctrl-names = "default";
214	pinctrl-0 = <&pinctrl_ecspi1>;
215	cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
216	status = "disabled";
217};
218
219&fec {
220	pinctrl-names = "default";
221	pinctrl-0 = <&pinctrl_enet>;
222	phy-mode = "rgmii-id";
223	phy-reset-duration = <10>;
224	phy-reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
225	phy-supply = <&reg_enet>;
226	interrupt-parent = <&gpio1>;
227	interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
228	status = "okay";
229};
230
231&i2c1 {
232	pinctrl-names = "default";
233	pinctrl-0 = <&pinctrl_i2c1>;
234	clock-frequency = <400000>;
235	status = "okay";
236
237	wm8962: audio-codec@1a {
238		compatible = "wlf,wm8962";
239		reg = <0x1a>;
240		clocks = <&clks IMX6QDL_CLK_CKO>;
241		clock-names = "xclk";
242		DCVDD-supply = <&reg_audio>;
243		DBVDD-supply = <&reg_audio>;
244		AVDD-supply = <&reg_audio>;
245		CPVDD-supply = <&reg_audio>;
246		MICVDD-supply = <&reg_audio>;
247		PLLVDD-supply = <&reg_audio>;
248		SPKVDD1-supply = <&reg_audio>;
249		SPKVDD2-supply = <&reg_audio>;
250		gpio-cfg = <
251			0x0000 /* 0:Default */
252			0x0000 /* 1:Default */
253			0x0000 /* 2:FN_DMICCLK */
254			0x0000 /* 3:Default */
255			0x0000 /* 4:FN_DMICCDAT */
256			0x0000 /* 5:Default */
257		>;
258	};
259};
260
261&i2c3 {
262	ov5640: camera@10 {
263		compatible = "ovti,ov5640";
264		pinctrl-names = "default";
265		pinctrl-0 = <&pinctrl_ov5640>;
266		reg = <0x10>;
267		clocks = <&clks IMX6QDL_CLK_CKO>;
268		clock-names = "xclk";
269		DOVDD-supply = <&reg_mipi>;
270		AVDD-supply = <&reg_mipi>;
271		DVDD-supply = <&reg_mipi>;
272		reset-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
273		powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
274
275		port {
276			ov5640_to_mipi_csi2: endpoint {
277				remote-endpoint = <&mipi_csi2_in>;
278				clock-lanes = <0>;
279				data-lanes = <1 2>;
280			};
281		};
282	};
283
284	pcf8575: gpio@20 {
285		pinctrl-names = "default";
286		pinctrl-0 = <&pinctrl_pcf8574>;
287		compatible = "nxp,pcf8575";
288		reg = <0x20>;
289		interrupt-parent = <&gpio6>;
290		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
291		gpio-controller;
292		#gpio-cells = <2>;
293		interrupt-controller;
294		#interrupt-cells = <2>;
295		lines-initial-states = <0x0710>;
296		wakeup-source;
297	};
298};
299
300&ipu1_csi1_from_mipi_vc1 {
301	clock-lanes = <0>;
302	data-lanes = <1 2>;
303};
304
305&mipi_csi {
306	status = "okay";
307
308	port@0 {
309		reg = <0>;
310
311		mipi_csi2_in: endpoint {
312			remote-endpoint = <&ov5640_to_mipi_csi2>;
313			clock-lanes = <0>;
314			data-lanes = <1 2>;
315		};
316	};
317};
318
319&pcie {
320	pinctrl-names = "default";
321	pinctrl-0 = <&pinctrl_pcie>;
322	reset-gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
323	vpcie-supply = <&reg_pcie>;
324	status = "okay";
325};
326
327&pwm3 {
328	pinctrl-names = "default";
329	pinctrl-0 = <&pinctrl_pwm3>;
330};
331
332&snvs_pwrkey {
333	status = "okay";
334};
335
336&ssi2 {
337	status = "okay";
338};
339
340&uart3 {
341	pinctrl-names = "default";
342	pinctrl-0 = <&pinctrl_uart3>;
343	status = "okay";
344};
345
346&usbh1 {
347	vbus-supply = <&reg_usb_h1_vbus>;
348	status = "okay";
349};
350
351&usbotg {
352	vbus-supply = <&reg_usb_otg_vbus>;
353	pinctrl-names = "default";
354	pinctrl-0 = <&pinctrl_usbotg>;
355	disable-over-current;
356	dr_mode = "otg";
357	status = "okay";
358};
359
360&usdhc2 {
361	pinctrl-names = "default";
362	pinctrl-0 = <&pinctrl_usdhc2>;
363	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
364	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
365	vmmc-supply = <&reg_3v3>;
366	no-1-8-v;
367	keep-power-in-suspend;
368	cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
369	status = "okay";
370};
371
372&iomuxc {
373	pinctrl_audmux: audmuxgrp {
374		fsl,pins = <
375			MX6QDL_PAD_DISP0_DAT20__AUD4_TXC  0x130b0
376			MX6QDL_PAD_DISP0_DAT21__AUD4_TXD  0x110b0
377			MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0
378			MX6QDL_PAD_DISP0_DAT23__AUD4_RXD  0x130b0
379		>;
380	};
381
382	pinctrl_ecspi1: ecspi1grp {
383		fsl,pins = <
384			MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK	0x100b1
385			MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI	0x100b1
386			MX6QDL_PAD_KEY_COL1__ECSPI1_MISO	0x100b1
387			MX6QDL_PAD_KEY_ROW1__GPIO4_IO09		0x1b0b0
388		>;
389	};
390
391	pinctrl_enet: enetgrp {
392		fsl,pins = <
393			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b8b0
394			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
395			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
396			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
397			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
398			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
399			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
400			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x100b0
401			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
402			MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
403			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
404			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x13030
405			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x13030
406			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
407			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
408			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x13030
409			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x1b0b0	/* ENET_INT */
410			MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24	0x1b0b0	/* ETHR_nRST */
411		>;
412	};
413
414	pinctrl_i2c1: i2c1grp {
415		fsl,pins = <
416			MX6QDL_PAD_EIM_D21__I2C1_SCL	0x4001b8b1
417			MX6QDL_PAD_EIM_D28__I2C1_SDA	0x4001b8b1
418		>;
419	};
420
421	pinctrl_led0: led0grp {
422	    fsl,pins = <
423		MX6QDL_PAD_ENET_TXD0__GPIO1_IO30	0x1b0b0
424	    >;
425	};
426
427	pinctrl_ov5640: ov5640grp {
428		fsl,pins = <
429			MX6QDL_PAD_EIM_D26__GPIO3_IO26	0x1b0b1
430			MX6QDL_PAD_EIM_D27__GPIO3_IO27	0x1b0b1
431		>;
432	};
433
434	pinctrl_pcf8574: pcf8575grp {
435		fsl,pins = <
436			MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b0
437		>;
438	};
439
440	pinctrl_pcie: pciegrp {
441		fsl,pins = <
442			MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0
443			MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0
444		>;
445	};
446
447	pinctrl_pwm3: pwm3grp {
448	    fsl,pins = <
449		MX6QDL_PAD_SD4_DAT1__PWM3_OUT		0x1b0b1
450	    >;
451	};
452
453	pinctrl_reg_1v8: reg1v8grp {
454	    fsl,pins = <
455		MX6QDL_PAD_EIM_D30__GPIO3_IO30		0x1b0b0
456	    >;
457	};
458
459	pinctrl_reg_3v3: reg3v3grp {
460	    fsl,pins = <
461		MX6QDL_PAD_ENET_RXD1__GPIO1_IO26	0x1b0b0
462	    >;
463	};
464
465	pinctrl_reg_audio: reg-audiogrp {
466		fsl,pins = <
467			MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
468		>;
469	};
470
471	pinctrl_reg_enet: reg-enetgrp {
472		fsl,pins = <
473			MX6QDL_PAD_EIM_D31__GPIO3_IO31	0x1b0b0
474		>;
475	};
476
477	pinctrl_reg_hdmi: reg-hdmigrp {
478		fsl,pins = <
479			MX6QDL_PAD_EIM_D20__GPIO3_IO20	0x1b0b0
480		>;
481	};
482
483	pinctrl_reg_mipi: reg-mipigrp {
484		fsl,pins = <MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b1>;
485	};
486
487	pinctrl_reg_pcie: reg-pciegrp {
488		fsl,pins = <
489			MX6QDL_PAD_GPIO_2__GPIO1_IO02	0x1b0b0
490			>;
491	};
492
493	pinctrl_reg_uart3: reguart3grp {
494	    fsl,pins = <
495		MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28	0x1b0b0
496	    >;
497	};
498
499	pinctrl_reg_usb_h1_vbus: usbh1grp {
500		fsl,pins = <
501			MX6QDL_PAD_GPIO_17__GPIO7_IO12		0x1b0b0
502		>;
503	};
504
505	pinctrl_reg_usb_otg: reg-usb-otggrp {
506		fsl,pins = <
507			MX6QDL_PAD_KEY_ROW4__GPIO4_IO15		0x1b0b0
508		>;
509	};
510
511	pinctrl_uart3: uart3grp {
512		fsl,pins = <
513			MX6QDL_PAD_EIM_D23__UART3_CTS_B		0x1b0b1
514			MX6QDL_PAD_EIM_D24__UART3_TX_DATA	0x1b0b1
515			MX6QDL_PAD_EIM_D25__UART3_RX_DATA	0x1b0b1
516			MX6QDL_PAD_EIM_EB3__UART3_RTS_B		0x1b0b1
517		>;
518	};
519
520	pinctrl_usbotg: usbotggrp {
521		fsl,pins = <
522			MX6QDL_PAD_GPIO_1__USB_OTG_ID	0xd17059
523		>;
524	};
525
526	pinctrl_usdhc2: usdhc2grp {
527		fsl,pins = <
528			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x1b0b0	/* CD */
529			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17069
530			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10069
531			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17069
532			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17069
533			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17069
534			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17069
535		>;
536	};
537
538	pinctrl_usdhc2_100mhz: h100-usdhc2-100mhz {
539		fsl,pins = <
540			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x1b0b0	/* CD */
541			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x170b9
542			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x100b9
543			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x170b9
544			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x170b9
545			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x170b9
546			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x170b9
547		>;
548	};
549
550	pinctrl_usdhc2_200mhz: h100-usdhc2-200mhz {
551		fsl,pins = <
552			MX6QDL_PAD_GPIO_4__GPIO1_IO04		0x1b0b0	/* CD */
553			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x170f9
554			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x100f9
555			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x170f9
556			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x170f9
557			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x170f9
558			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x170f9
559		>;
560	};
561
562};
563