blob: fb81bd8ba035165525337a35acfe67f155bb7e46 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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>;
Tom Rini762f85b2024-07-20 11:15:10 -060025 pwms = <&pwm1 0 5000000 0>;
Tom Rini53633a82024-02-29 12:33:36 -050026 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
Tom Rini9c8af152024-12-24 12:03:04 -0600114 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
Tom Rini53633a82024-02-29 12:33:36 -0500124 sound-spdif {
125 compatible = "fsl,imx-audio-spdif";
126 model = "imx-spdif";
Tom Rini9c8af152024-12-24 12:03:04 -0600127 audio-cpu = <&spdif>;
128 audio-codec = <&spdif_out>, <&spdif_in>;
Tom Rini53633a82024-02-29 12:33:36 -0500129 };
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 {
Tom Rini53633a82024-02-29 12:33:36 -0500304 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
Tom Rini844493d2025-01-26 16:17:47 -0600549 pinctrl_wifi_npd: wifinpdgrp {
Tom Rini53633a82024-02-29 12:33:36 -0500550 fsl,pins = <
551 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b8b0
552 >;
553 };
554};