xref: /linux/arch/arm/boot/dts/nxp/imx/imx6q-prti6q.dts (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) 2014 Protonic Holland
4 */
5
6/dts-v1/;
7#include "imx6q.dtsi"
8#include "imx6qdl-prti6q.dtsi"
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/sound/fsl-imx-audmux.h>
11
12/ {
13	model = "Protonic PRTI6Q board";
14	compatible = "prt,prti6q", "fsl,imx6q";
15
16	memory@10000000 {
17		device_type = "memory";
18		reg = <0x10000000 0xf0000000>;
19	};
20
21	backlight_lcd: backlight-lcd {
22		compatible = "pwm-backlight";
23		pinctrl-names = "default";
24		pinctrl-0 = <&pinctrl_backlight>;
25		pwms = <&pwm1 0 5000000 0>;
26		brightness-levels = <0 16 64 255>;
27		num-interpolated-steps = <16>;
28		default-brightness-level = <1>;
29		power-supply = <&reg_3v3>;
30		enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
31	};
32
33	can_osc: can-osc {
34		compatible = "fixed-clock";
35		#clock-cells = <0>;
36		clock-frequency = <25000000>;
37	};
38
39	leds {
40		compatible = "gpio-leds";
41		pinctrl-names = "default";
42		pinctrl-0 = <&pinctrl_leds>;
43
44		led-debug0 {
45			function = LED_FUNCTION_STATUS;
46			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
47			linux,default-trigger = "heartbeat";
48		};
49
50		led-debug1 {
51			function = LED_FUNCTION_SD;
52			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
53			linux,default-trigger = "disk-activity";
54		};
55	};
56
57	panel {
58		compatible = "kyo,tcg121xglp";
59		backlight = <&backlight_lcd>;
60
61		port {
62			panel_in: endpoint {
63				remote-endpoint = <&lvds0_out>;
64			};
65		};
66	};
67
68	reg_1v8: regulator-1v8 {
69		compatible = "regulator-fixed";
70		regulator-name = "1v8";
71		regulator-min-microvolt = <1800000>;
72		regulator-max-microvolt = <1800000>;
73	};
74
75	reg_wifi: regulator-wifi {
76		compatible = "regulator-fixed";
77		pinctrl-names = "default";
78		pinctrl-0 = <&pinctrl_wifi_npd>;
79		enable-active-high;
80		gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
81		regulator-max-microvolt = <1800000>;
82		regulator-min-microvolt = <1800000>;
83		regulator-name = "regulator-WL12xx";
84		startup-delay-us = <70000>;
85	};
86
87	sound {
88		compatible = "simple-audio-card";
89		simple-audio-card,name = "prti6q-sgtl5000";
90		simple-audio-card,format = "i2s";
91		simple-audio-card,widgets =
92			"Microphone", "Microphone Jack",
93			"Line", "Line In Jack",
94			"Headphone", "Headphone Jack",
95			"Speaker", "External Speaker";
96		simple-audio-card,routing =
97			"MIC_IN", "Microphone Jack",
98			"LINE_IN", "Line In Jack",
99			"Headphone Jack", "HP_OUT",
100			"External Speaker", "LINE_OUT";
101
102		simple-audio-card,cpu {
103			sound-dai = <&ssi1>;
104			system-clock-frequency = <0>;
105		};
106
107		simple-audio-card,codec {
108			sound-dai = <&sgtl5000>;
109			bitclock-master;
110			frame-master;
111		};
112	};
113
114	spdif_out: spdif-out {
115		compatible = "linux,spdif-dit";
116		#sound-dai-cells = <0>;
117	};
118
119	spdif_in: spdif-in {
120		compatible = "linux,spdif-dir";
121		#sound-dai-cells = <0>;
122	};
123
124	sound-spdif {
125		compatible = "fsl,imx-audio-spdif";
126		model = "imx-spdif";
127		audio-cpu = <&spdif>;
128		audio-codec = <&spdif_out>, <&spdif_in>;
129	};
130};
131
132&audmux {
133	pinctrl-names = "default";
134	pinctrl-0 = <&pinctrl_audmux>;
135	status = "okay";
136
137	mux-ssi1 {
138		fsl,audmux-port = <0>;
139		fsl,port-config = <
140			IMX_AUDMUX_V2_PTCR_SYN		0
141			IMX_AUDMUX_V2_PTCR_TFSEL(2)	0
142			IMX_AUDMUX_V2_PTCR_TCSEL(2)	0
143			IMX_AUDMUX_V2_PTCR_TFSDIR	0
144			IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2)
145		>;
146	};
147
148	mux-pins3 {
149		fsl,audmux-port = <2>;
150		fsl,port-config = <
151			IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0)
152			0		       IMX_AUDMUX_V2_PDCR_TXRXEN
153		>;
154	};
155};
156
157&can1 {
158	pinctrl-names = "default";
159	pinctrl-0 = <&pinctrl_can1>;
160	status = "okay";
161};
162
163&can2 {
164	pinctrl-names = "default";
165	pinctrl-0 = <&pinctrl_can2>;
166	status = "okay";
167};
168
169&ecspi1 {
170	cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
171	pinctrl-names = "default";
172	pinctrl-0 = <&pinctrl_ecspi1>;
173	status = "okay";
174
175	flash@0 {
176		compatible = "jedec,spi-nor";
177		reg = <0>;
178		spi-max-frequency = <20000000>;
179	};
180};
181
182&ecspi2 {
183	cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>, <&gpio4 25 GPIO_ACTIVE_LOW>;
184	pinctrl-names = "default";
185	pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>;
186	status = "okay";
187
188	can@0 {
189		compatible = "microchip,mcp2515";
190		reg = <0>;
191		pinctrl-names = "default";
192		pinctrl-0 = <&pinctrl_can3>;
193		clocks = <&can_osc>;
194		interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
195		spi-max-frequency = <5000000>;
196	};
197
198	adc@1 {
199		compatible = "ti,adc128s052";
200		reg = <1>;
201		spi-max-frequency = <2000000>;
202		vref-supply = <&reg_3v3>;
203	};
204};
205
206&ecspi3 {
207	cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
208	pinctrl-names = "default";
209	pinctrl-0 = <&pinctrl_ecspi3>;
210	status = "okay";
211};
212
213&fec {
214	pinctrl-names = "default";
215	pinctrl-0 = <&pinctrl_enet>;
216	phy-mode = "rgmii-id";
217	phy-handle = <&rgmii_phy>;
218	status = "okay";
219
220	mdio {
221		#address-cells = <1>;
222		#size-cells = <0>;
223
224		/* Microchip KSZ9031RNX PHY */
225		rgmii_phy: ethernet-phy@0 {
226			reg = <0>;
227			interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
228			reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
229			reset-assert-us = <10000>;
230			reset-deassert-us = <300>;
231		};
232	};
233};
234
235&hdmi {
236	pinctrl-names = "default";
237	pinctrl-0 = <&pinctrl_hdmi>;
238	ddc-i2c-bus = <&i2c2>;
239	status = "okay";
240};
241
242&i2c1 {
243	sgtl5000: audio-codec@a {
244		compatible = "fsl,sgtl5000";
245		reg = <0xa>;
246		#sound-dai-cells = <0>;
247		clocks = <&clks 201>;
248		VDDA-supply = <&reg_3v3>;
249		VDDIO-supply = <&reg_3v3>;
250		VDDD-supply = <&reg_1v8>;
251	};
252};
253
254/* DDC */
255&i2c2 {
256	clock-frequency = <100000>;
257	pinctrl-names = "default";
258	pinctrl-0 = <&pinctrl_i2c2>;
259	status = "okay";
260};
261
262&i2c3 {
263	adc@49 {
264		compatible = "ti,ads1015";
265		reg = <0x49>;
266		#address-cells = <1>;
267		#size-cells = <0>;
268
269		/* can2_l */
270		channel@4 {
271			reg = <4>;
272			ti,gain = <3>;
273			ti,datarate = <3>;
274		};
275
276		/* can2_h */
277		channel@5 {
278			reg = <5>;
279			ti,gain = <3>;
280			ti,datarate = <3>;
281		};
282
283		/* can1_l */
284		channel@6 {
285			reg = <6>;
286			ti,gain = <3>;
287			ti,datarate = <3>;
288		};
289
290		/* can1_h */
291		channel@7 {
292			reg = <7>;
293			ti,gain = <3>;
294			ti,datarate = <3>;
295		};
296	};
297};
298
299&pcie {
300	status = "okay";
301};
302
303&pwm1 {
304	pinctrl-names = "default";
305	pinctrl-0 = <&pinctrl_pwm1>;
306	status = "okay";
307};
308
309&ldb {
310	status = "okay";
311
312	lvds-channel@0 {
313		status = "okay";
314
315		port@4 {
316			reg = <4>;
317
318			lvds0_out: endpoint {
319				remote-endpoint = <&panel_in>;
320			};
321		};
322	};
323};
324
325&sata {
326	status = "okay";
327};
328
329&snvs_poweroff {
330	status = "okay";
331};
332
333&spdif {
334	pinctrl-names = "default";
335	pinctrl-0 = <&pinctrl_spdif>;
336	status = "okay";
337};
338
339&ssi1 {
340	#sound-dai-cells = <0>;
341	fsl,mode = "ac97-slave";
342	status = "okay";
343};
344
345&uart2 {
346	pinctrl-names = "default";
347	pinctrl-0 = <&pinctrl_uart2>;
348	status = "okay";
349};
350
351&uart5 {
352	pinctrl-names = "default";
353	pinctrl-0 = <&pinctrl_uart5>;
354	status = "okay";
355};
356
357&usbotg {
358	pinctrl-0 = <&pinctrl_usbotg &pinctrl_usbotg_id>;
359};
360
361&usdhc2 {
362	pinctrl-names = "default";
363	pinctrl-0 = <&pinctrl_usdhc2>;
364	non-removable;
365	vmmc-supply = <&reg_wifi>;
366	cap-power-off-card;
367	keep-power-in-suspend;
368	status = "okay";
369
370	#address-cells = <1>;
371	#size-cells = <0>;
372	wifi@2 {
373		compatible = "ti,wl1271";
374		reg = <2>;
375		pinctrl-names = "default";
376		pinctrl-0 = <&pinctrl_wifi>;
377		interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>;
378		ref-clock-frequency = <38400000>;
379		tcxo-clock-frequency = <19200000>;
380	};
381};
382
383&iomuxc {
384	pinctrl_audmux: audmuxgrp {
385		fsl,pins = <
386			MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1		0x030b0
387			MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
388			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
389			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
390			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
391		>;
392	};
393
394	pinctrl_backlight: backlightgrp {
395		fsl,pins = <
396			MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28	0x1b0b0
397		>;
398	};
399
400	pinctrl_can2: can2grp {
401		fsl,pins = <
402			MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX	0x1b008
403			MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX	0x1b008
404		>;
405	};
406
407	pinctrl_can3: can3grp {
408		fsl,pins = <
409			MX6QDL_PAD_EIM_D20__GPIO3_IO20		0x1b0b1
410		>;
411	};
412
413	pinctrl_ecspi1: ecspi1grp {
414		fsl,pins = <
415			MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
416			MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
417			MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
418			/* CS */
419			MX6QDL_PAD_EIM_D19__GPIO3_IO19		0x000b1
420		>;
421	};
422
423	pinctrl_ecspi2: ecspi2grp {
424		fsl,pins = <
425			MX6QDL_PAD_EIM_OE__ECSPI2_MISO		0x100b1
426			MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK		0x100b1
427			MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI		0x100b1
428			MX6QDL_PAD_EIM_RW__GPIO2_IO26		0x000b1
429		>;
430	};
431
432	pinctrl_ecspi2_cs: ecspi2csgrp {
433		fsl,pins = <
434			/* ADC128S022 CS */
435			MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25	0x1b0b1
436		>;
437	};
438
439	pinctrl_ecspi3: ecspi3grp {
440		fsl,pins = <
441			MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK	0x100b1
442			MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI	0x100b1
443			MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO	0x100b1
444			MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24	0x000b1
445		>;
446	};
447
448	pinctrl_enet: enetgrp {
449		fsl,pins = <
450			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
451			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
452			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
453			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
454			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
455			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
456			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x10030
457			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x10030
458			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x10030
459			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x10030
460			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x10030
461			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x10030
462			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x10030
463			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x10030
464			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x10030
465
466			/* Phy reset */
467			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x1b0b0
468			MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28	0x1b0b1
469		>;
470	};
471
472	pinctrl_hdmi: hdmigrp {
473		fsl,pins = <
474			/* NOTE: DDC is done via I2C2, so DON'T
475			 * configure DDC pins for HDMI!
476			 */
477			MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE	0x1f8b0
478		>;
479	};
480
481	/* DDC */
482	pinctrl_i2c2: i2c2grp {
483		fsl,pins = <
484			MX6QDL_PAD_KEY_COL3__I2C2_SCL	0x4001b8b1
485			MX6QDL_PAD_KEY_ROW3__I2C2_SDA	0x4001b8b1
486		>;
487	};
488
489	pinctrl_leds: ledsgrp {
490		fsl,pins = <
491			MX6QDL_PAD_GPIO_8__GPIO1_IO08		0x1b0b0
492			MX6QDL_PAD_GPIO_9__GPIO1_IO09		0x1b0b0
493		>;
494	};
495
496	pinctrl_pwm1: pwm1grp {
497		fsl,pins = <
498			MX6QDL_PAD_DISP0_DAT8__PWM1_OUT		0x1b0b0
499		>;
500	};
501
502	pinctrl_spdif: spdifgrp {
503		fsl,pins = <
504			MX6QDL_PAD_GPIO_16__SPDIF_IN		0x1b0b0
505			MX6QDL_PAD_GPIO_19__SPDIF_OUT		0x1b0b0
506		>;
507	};
508
509	pinctrl_uart2: uart2grp {
510		fsl,pins = <
511			MX6QDL_PAD_EIM_D26__UART2_RX_DATA	0x1b0b1
512			MX6QDL_PAD_EIM_D27__UART2_TX_DATA	0x1b0b1
513			MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B	0x1b0b1
514			MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B	0x1b0b1
515		>;
516	};
517
518	pinctrl_uart5: uart5grp {
519		fsl,pins = <
520			MX6QDL_PAD_KEY_COL1__UART5_TX_DATA	0x1b0b1
521			MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA	0x1b0b1
522		>;
523	};
524
525	pinctrl_usbotg_id: usbotgidgrp {
526		fsl,pins = <
527			MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x1f058
528		>;
529	};
530
531	pinctrl_usdhc2: usdhc2grp {
532		fsl,pins = <
533			MX6QDL_PAD_SD2_CMD__SD2_CMD		0x170b9
534			MX6QDL_PAD_SD2_CLK__SD2_CLK		0x100b9
535			MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x170b9
536			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x170b9
537			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x170b9
538			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x170b9
539		>;
540	};
541
542	pinctrl_wifi: wifigrp {
543		fsl,pins = <
544			/* WL12xx IRQ */
545			MX6QDL_PAD_ENET_TXD0__GPIO1_IO30	0x10880
546		>;
547	};
548
549	pinctrl_wifi_npd: wifinpd {
550		fsl,pins = <
551			MX6QDL_PAD_ENET_RXD1__GPIO1_IO26	0x1b8b0
552		>;
553	};
554};
555