blob: 938347704136ac583258e8ed08ae48d41dfe20a9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright 2019 NXP
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/phy/phy-imx8-pcie.h>
9#include "imx8mp.dtsi"
10
11/ {
12 model = "NXP i.MX8MPlus EVK board";
13 compatible = "fsl,imx8mp-evk", "fsl,imx8mp";
14
15 chosen {
16 stdout-path = &uart2;
17 };
18
Tom Rini6b642ac2024-10-01 12:20:28 -060019 backlight_lvds: backlight-lvds {
20 compatible = "pwm-backlight";
21 pwms = <&pwm2 0 100000 0>;
22 brightness-levels = <0 100>;
23 num-interpolated-steps = <100>;
24 default-brightness-level = <100>;
25 power-supply = <&reg_per_12v>;
26 status = "disabled";
27 };
28
Tom Rini53633a82024-02-29 12:33:36 -050029 hdmi-connector {
30 compatible = "hdmi-connector";
31 label = "hdmi";
32 type = "a";
33
34 port {
35 hdmi_connector_in: endpoint {
Tom Rini6bb92fc2024-05-20 09:54:58 -060036 remote-endpoint = <&adv7535_out>;
Tom Rini53633a82024-02-29 12:33:36 -050037 };
38 };
39 };
40
41 gpio-leds {
42 compatible = "gpio-leds";
43 pinctrl-names = "default";
44 pinctrl-0 = <&pinctrl_gpio_led>;
45
46 status {
47 label = "yellow:status";
48 gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
49 default-state = "on";
50 };
51 };
52
53 memory@40000000 {
54 device_type = "memory";
55 reg = <0x0 0x40000000 0 0xc0000000>,
56 <0x1 0x00000000 0 0xc0000000>;
57 };
58
59 pcie0_refclk: pcie0-refclk {
60 compatible = "fixed-clock";
61 #clock-cells = <0>;
62 clock-frequency = <100000000>;
63 };
64
65 reg_audio_pwr: regulator-audio-pwr {
66 compatible = "regulator-fixed";
67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_audio_pwr_reg>;
69 regulator-name = "audio-pwr";
70 regulator-min-microvolt = <3300000>;
71 regulator-max-microvolt = <3300000>;
72 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
73 enable-active-high;
74 };
75
76 reg_can1_stby: regulator-can1-stby {
77 compatible = "regulator-fixed";
78 regulator-name = "can1-stby";
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_flexcan1_reg>;
81 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>;
83 gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
84 enable-active-high;
85 };
86
87 reg_can2_stby: regulator-can2-stby {
88 compatible = "regulator-fixed";
89 regulator-name = "can2-stby";
90 pinctrl-names = "default";
91 pinctrl-0 = <&pinctrl_flexcan2_reg>;
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
95 enable-active-high;
96 };
97
98 reg_pcie0: regulator-pcie {
99 compatible = "regulator-fixed";
100 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_pcie0_reg>;
102 regulator-name = "MPCIE_3V3";
103 regulator-min-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>;
105 gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
106 enable-active-high;
107 };
108
Tom Rini6b642ac2024-10-01 12:20:28 -0600109 reg_per_12v: regulator-per-12v {
110 compatible = "regulator-fixed";
111 regulator-name = "PER_12V";
112 regulator-min-microvolt = <12000000>;
113 regulator-max-microvolt = <12000000>;
114 gpio = <&pca6416 1 GPIO_ACTIVE_HIGH>;
115 enable-active-high;
116 };
117
Tom Rini53633a82024-02-29 12:33:36 -0500118 reg_usdhc2_vmmc: regulator-usdhc2 {
119 compatible = "regulator-fixed";
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
122 regulator-name = "VSD_3V3";
123 regulator-min-microvolt = <3300000>;
124 regulator-max-microvolt = <3300000>;
125 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
126 enable-active-high;
127 };
128
Tom Rini6bb92fc2024-05-20 09:54:58 -0600129 reg_vext_3v3: regulator-vext-3v3 {
130 compatible = "regulator-fixed";
131 regulator-name = "VEXT_3V3";
132 regulator-min-microvolt = <3300000>;
133 regulator-max-microvolt = <3300000>;
134 };
135
Tom Rini6b642ac2024-10-01 12:20:28 -0600136 audio_codec_bt_sco: audio-codec-bt-sco {
137 compatible = "linux,bt-sco";
138 #sound-dai-cells = <1>;
139 };
140
Tom Rini53633a82024-02-29 12:33:36 -0500141 sound {
142 compatible = "simple-audio-card";
143 simple-audio-card,name = "wm8960-audio";
144 simple-audio-card,format = "i2s";
145 simple-audio-card,frame-master = <&cpudai>;
146 simple-audio-card,bitclock-master = <&cpudai>;
147 simple-audio-card,widgets =
148 "Headphone", "Headphone Jack",
149 "Speaker", "External Speaker",
150 "Microphone", "Mic Jack";
151 simple-audio-card,routing =
152 "Headphone Jack", "HP_L",
153 "Headphone Jack", "HP_R",
154 "External Speaker", "SPK_LP",
155 "External Speaker", "SPK_LN",
156 "External Speaker", "SPK_RP",
157 "External Speaker", "SPK_RN",
158 "LINPUT1", "Mic Jack",
159 "LINPUT3", "Mic Jack",
160 "Mic Jack", "MICB";
161
162 cpudai: simple-audio-card,cpu {
163 sound-dai = <&sai3>;
164 };
165
166 simple-audio-card,codec {
167 sound-dai = <&wm8960>;
168 };
169
Tom Rini6b642ac2024-10-01 12:20:28 -0600170 };
171
172 sound-bt-sco {
173 compatible = "simple-audio-card";
174 simple-audio-card,name = "bt-sco-audio";
175 simple-audio-card,format = "dsp_a";
176 simple-audio-card,bitclock-inversion;
177 simple-audio-card,frame-master = <&btcpu>;
178 simple-audio-card,bitclock-master = <&btcpu>;
179
180 btcpu: simple-audio-card,cpu {
181 sound-dai = <&sai2>;
182 dai-tdm-slot-num = <2>;
183 dai-tdm-slot-width = <16>;
184 };
185
186 simple-audio-card,codec {
187 sound-dai = <&audio_codec_bt_sco 1>;
188 };
Tom Rini53633a82024-02-29 12:33:36 -0500189 };
Tom Rini93743d22024-04-01 09:08:13 -0400190
Tom Rini762f85b2024-07-20 11:15:10 -0600191 sound-hdmi {
192 compatible = "fsl,imx-audio-hdmi";
193 model = "audio-hdmi";
194 audio-cpu = <&aud2htx>;
195 hdmi-out;
196 };
197
198 sound-micfil {
199 compatible = "fsl,imx-audio-card";
200 model = "micfil-audio";
201
202 pri-dai-link {
203 link-name = "micfil hifi";
204 format = "i2s";
205
206 cpu {
207 sound-dai = <&micfil>;
208 };
209 };
210 };
211
Tom Rini6b642ac2024-10-01 12:20:28 -0600212 sound-xcvr {
213 compatible = "fsl,imx-audio-card";
214 model = "imx-audio-xcvr";
215
216 pri-dai-link {
217 link-name = "XCVR PCM";
218
219 cpu {
220 sound-dai = <&xcvr>;
221 };
222 };
223 };
224
Tom Rini93743d22024-04-01 09:08:13 -0400225 reserved-memory {
226 #address-cells = <2>;
227 #size-cells = <2>;
228 ranges;
229
230 dsp_vdev0vring0: vdev0vring0@942f0000 {
231 reg = <0 0x942f0000 0 0x8000>;
232 no-map;
233 };
234
235 dsp_vdev0vring1: vdev0vring1@942f8000 {
236 reg = <0 0x942f8000 0 0x8000>;
237 no-map;
238 };
239
240 dsp_vdev0buffer: vdev0buffer@94300000 {
241 compatible = "shared-dma-pool";
242 reg = <0 0x94300000 0 0x100000>;
243 no-map;
244 };
245 };
Tom Rini53633a82024-02-29 12:33:36 -0500246};
247
248&flexspi {
249 pinctrl-names = "default";
250 pinctrl-0 = <&pinctrl_flexspi0>;
251 status = "okay";
252
253 flash@0 {
254 compatible = "jedec,spi-nor";
255 reg = <0>;
256 spi-max-frequency = <80000000>;
257 spi-tx-bus-width = <1>;
258 spi-rx-bus-width = <4>;
259 };
260};
261
262&A53_0 {
263 cpu-supply = <&reg_arm>;
264};
265
266&A53_1 {
267 cpu-supply = <&reg_arm>;
268};
269
270&A53_2 {
271 cpu-supply = <&reg_arm>;
272};
273
274&A53_3 {
275 cpu-supply = <&reg_arm>;
276};
277
Tom Rini762f85b2024-07-20 11:15:10 -0600278&aud2htx {
279 status = "okay";
280};
281
Tom Rini53633a82024-02-29 12:33:36 -0500282&eqos {
283 pinctrl-names = "default";
284 pinctrl-0 = <&pinctrl_eqos>;
285 phy-mode = "rgmii-id";
286 phy-handle = <&ethphy0>;
287 snps,force_thresh_dma_mode;
288 snps,mtl-tx-config = <&mtl_tx_setup>;
289 snps,mtl-rx-config = <&mtl_rx_setup>;
290 status = "okay";
291
292 mdio {
293 compatible = "snps,dwmac-mdio";
294 #address-cells = <1>;
295 #size-cells = <0>;
296
297 ethphy0: ethernet-phy@1 {
298 compatible = "ethernet-phy-ieee802.3-c22";
299 reg = <1>;
300 eee-broken-1000t;
301 reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
302 reset-assert-us = <10000>;
303 reset-deassert-us = <80000>;
304 realtek,clkout-disable;
305 };
306 };
307
308 mtl_tx_setup: tx-queues-config {
309 snps,tx-queues-to-use = <5>;
Tom Rini53633a82024-02-29 12:33:36 -0500310
311 queue0 {
312 snps,dcb-algorithm;
313 snps,priority = <0x1>;
314 };
315
316 queue1 {
317 snps,dcb-algorithm;
318 snps,priority = <0x2>;
319 };
320
321 queue2 {
322 snps,dcb-algorithm;
323 snps,priority = <0x4>;
324 };
325
326 queue3 {
327 snps,dcb-algorithm;
328 snps,priority = <0x8>;
329 };
330
331 queue4 {
332 snps,dcb-algorithm;
333 snps,priority = <0xf0>;
334 };
335 };
336
337 mtl_rx_setup: rx-queues-config {
338 snps,rx-queues-to-use = <5>;
339 snps,rx-sched-sp;
340
341 queue0 {
342 snps,dcb-algorithm;
343 snps,priority = <0x1>;
344 snps,map-to-dma-channel = <0>;
345 };
346
347 queue1 {
348 snps,dcb-algorithm;
349 snps,priority = <0x2>;
350 snps,map-to-dma-channel = <1>;
351 };
352
353 queue2 {
354 snps,dcb-algorithm;
355 snps,priority = <0x4>;
356 snps,map-to-dma-channel = <2>;
357 };
358
359 queue3 {
360 snps,dcb-algorithm;
361 snps,priority = <0x8>;
362 snps,map-to-dma-channel = <3>;
363 };
364
365 queue4 {
366 snps,dcb-algorithm;
367 snps,priority = <0xf0>;
368 snps,map-to-dma-channel = <4>;
369 };
370 };
371};
372
373&fec {
374 pinctrl-names = "default";
375 pinctrl-0 = <&pinctrl_fec>;
376 phy-mode = "rgmii-id";
377 phy-handle = <&ethphy1>;
378 fsl,magic-packet;
379 status = "okay";
380
381 mdio {
382 #address-cells = <1>;
383 #size-cells = <0>;
384
385 ethphy1: ethernet-phy@1 {
386 compatible = "ethernet-phy-ieee802.3-c22";
387 reg = <1>;
388 eee-broken-1000t;
389 reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
390 reset-assert-us = <10000>;
391 reset-deassert-us = <80000>;
392 realtek,clkout-disable;
393 };
394 };
395};
396
397&flexcan1 {
398 pinctrl-names = "default";
399 pinctrl-0 = <&pinctrl_flexcan1>;
400 xceiver-supply = <&reg_can1_stby>;
401 status = "okay";
402};
403
404&flexcan2 {
405 pinctrl-names = "default";
406 pinctrl-0 = <&pinctrl_flexcan2>;
407 xceiver-supply = <&reg_can2_stby>;
408 status = "disabled";/* can2 pin conflict with pdm */
409};
410
411&i2c1 {
412 clock-frequency = <400000>;
413 pinctrl-names = "default";
414 pinctrl-0 = <&pinctrl_i2c1>;
415 status = "okay";
416
417 pmic@25 {
418 compatible = "nxp,pca9450c";
419 reg = <0x25>;
420 pinctrl-names = "default";
421 pinctrl-0 = <&pinctrl_pmic>;
422 interrupt-parent = <&gpio1>;
423 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
424
425 regulators {
426 BUCK1 {
427 regulator-name = "BUCK1";
428 regulator-min-microvolt = <720000>;
429 regulator-max-microvolt = <1000000>;
430 regulator-boot-on;
431 regulator-always-on;
432 regulator-ramp-delay = <3125>;
433 };
434
435 reg_arm: BUCK2 {
436 regulator-name = "BUCK2";
437 regulator-min-microvolt = <720000>;
438 regulator-max-microvolt = <1025000>;
439 regulator-boot-on;
440 regulator-always-on;
441 regulator-ramp-delay = <3125>;
442 nxp,dvs-run-voltage = <950000>;
443 nxp,dvs-standby-voltage = <850000>;
444 };
445
446 BUCK4 {
447 regulator-name = "BUCK4";
448 regulator-min-microvolt = <3000000>;
449 regulator-max-microvolt = <3600000>;
450 regulator-boot-on;
451 regulator-always-on;
452 };
453
Tom Rini6bb92fc2024-05-20 09:54:58 -0600454 reg_buck5: BUCK5 {
Tom Rini53633a82024-02-29 12:33:36 -0500455 regulator-name = "BUCK5";
456 regulator-min-microvolt = <1650000>;
457 regulator-max-microvolt = <1950000>;
458 regulator-boot-on;
459 regulator-always-on;
460 };
461
462 BUCK6 {
463 regulator-name = "BUCK6";
464 regulator-min-microvolt = <1045000>;
465 regulator-max-microvolt = <1155000>;
466 regulator-boot-on;
467 regulator-always-on;
468 };
469
470 LDO1 {
471 regulator-name = "LDO1";
472 regulator-min-microvolt = <1650000>;
473 regulator-max-microvolt = <1950000>;
474 regulator-boot-on;
475 regulator-always-on;
476 };
477
478 LDO3 {
479 regulator-name = "LDO3";
480 regulator-min-microvolt = <1710000>;
481 regulator-max-microvolt = <1890000>;
482 regulator-boot-on;
483 regulator-always-on;
484 };
485
486 LDO5 {
487 regulator-name = "LDO5";
488 regulator-min-microvolt = <1800000>;
489 regulator-max-microvolt = <3300000>;
490 regulator-boot-on;
491 regulator-always-on;
492 };
493 };
494 };
495};
496
497&i2c2 {
498 clock-frequency = <400000>;
499 pinctrl-names = "default";
500 pinctrl-0 = <&pinctrl_i2c2>;
501 status = "okay";
502
503 hdmi@3d {
504 compatible = "adi,adv7535";
Tom Rini6bb92fc2024-05-20 09:54:58 -0600505 reg = <0x3d>;
506 interrupt-parent = <&gpio1>;
507 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
Tom Rini53633a82024-02-29 12:33:36 -0500508 adi,dsi-lanes = <4>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600509 avdd-supply = <&reg_buck5>;
510 dvdd-supply = <&reg_buck5>;
511 pvdd-supply = <&reg_buck5>;
512 a2vdd-supply = <&reg_buck5>;
513 v3p3-supply = <&reg_vext_3v3>;
514 v1p2-supply = <&reg_buck5>;
Tom Rini53633a82024-02-29 12:33:36 -0500515
516 ports {
517 #address-cells = <1>;
518 #size-cells = <0>;
519
520 port@0 {
521 reg = <0>;
522
Tom Rini6bb92fc2024-05-20 09:54:58 -0600523 adv7535_in: endpoint {
Tom Rini53633a82024-02-29 12:33:36 -0500524 remote-endpoint = <&dsi_out>;
525 };
526 };
527
528 port@1 {
529 reg = <1>;
530
Tom Rini6bb92fc2024-05-20 09:54:58 -0600531 adv7535_out: endpoint {
Tom Rini53633a82024-02-29 12:33:36 -0500532 remote-endpoint = <&hdmi_connector_in>;
533 };
534 };
535
536 };
537 };
538};
539
540&i2c3 {
541 clock-frequency = <400000>;
542 pinctrl-names = "default";
543 pinctrl-0 = <&pinctrl_i2c3>;
544 status = "okay";
545
546 wm8960: codec@1a {
547 compatible = "wlf,wm8960";
548 reg = <0x1a>;
549 #sound-dai-cells = <0>;
550 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>;
551 clock-names = "mclk";
552 wlf,shared-lrclk;
553 wlf,hp-cfg = <3 2 3>;
554 wlf,gpio-cfg = <1 3>;
555 SPKVDD1-supply = <&reg_audio_pwr>;
556 };
557
558 pca6416: gpio@20 {
559 compatible = "ti,tca6416";
560 reg = <0x20>;
561 gpio-controller;
562 #gpio-cells = <2>;
563 interrupt-controller;
564 #interrupt-cells = <2>;
565 pinctrl-names = "default";
566 pinctrl-0 = <&pinctrl_pca6416_int>;
567 interrupt-parent = <&gpio1>;
568 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
569 gpio-line-names = "EXT_PWREN1",
570 "EXT_PWREN2",
571 "CAN1/I2C5_SEL",
572 "PDM/CAN2_SEL",
573 "FAN_EN",
574 "PWR_MEAS_IO1",
575 "PWR_MEAS_IO2",
576 "EXP_P0_7",
577 "EXP_P1_0",
578 "EXP_P1_1",
579 "EXP_P1_2",
580 "EXP_P1_3",
581 "EXP_P1_4",
582 "EXP_P1_5",
583 "EXP_P1_6",
584 "EXP_P1_7";
585 };
586};
587
588/* I2C on expansion connector J22. */
589&i2c5 {
590 clock-frequency = <100000>; /* Lower clock speed for external bus. */
591 pinctrl-names = "default";
592 pinctrl-0 = <&pinctrl_i2c5>;
593 status = "disabled"; /* can1 pins conflict with i2c5 */
594
595 /* GPIO 2 of PCA6416 is used to switch between CAN1 and I2C5 functions:
596 * LOW: CAN1 (default, pull-down)
597 * HIGH: I2C5
598 * You need to set it to high to enable I2C5 (for example, add gpio-hog
599 * in pca6416 node).
600 */
601};
602
603&lcdif1 {
604 status = "okay";
605};
606
Tom Rini762f85b2024-07-20 11:15:10 -0600607&micfil {
608 #sound-dai-cells = <0>;
609 pinctrl-names = "default";
610 pinctrl-0 = <&pinctrl_pdm>;
611 assigned-clocks = <&clk IMX8MP_CLK_PDM>;
612 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
613 assigned-clock-rates = <196608000>;
614 status = "okay";
615};
616
Tom Rini53633a82024-02-29 12:33:36 -0500617&mipi_dsi {
618 samsung,esc-clock-frequency = <10000000>;
619 status = "okay";
620
621 ports {
622 port@1 {
623 reg = <1>;
624
625 dsi_out: endpoint {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600626 remote-endpoint = <&adv7535_in>;
Tom Rini53633a82024-02-29 12:33:36 -0500627 data-lanes = <1 2 3 4>;
628 };
629 };
630 };
631};
632
633&pcie_phy {
634 fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
635 clocks = <&pcie0_refclk>;
636 clock-names = "ref";
637 status = "okay";
638};
639
640&pcie {
641 pinctrl-names = "default";
642 pinctrl-0 = <&pinctrl_pcie0>;
643 reset-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
644 vpcie-supply = <&reg_pcie0>;
645 status = "okay";
646};
647
648&pwm1 {
649 pinctrl-names = "default";
650 pinctrl-0 = <&pinctrl_pwm1>;
651 status = "okay";
652};
653
654&pwm2 {
655 pinctrl-names = "default";
656 pinctrl-0 = <&pinctrl_pwm2>;
657 status = "okay";
658};
659
660&pwm4 {
661 pinctrl-names = "default";
662 pinctrl-0 = <&pinctrl_pwm4>;
663 status = "okay";
664};
665
Tom Rini6b642ac2024-10-01 12:20:28 -0600666&sai2 {
667 #sound-dai-cells = <0>;
668 pinctrl-names = "default";
669 pinctrl-0 = <&pinctrl_sai2>;
670 assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
671 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
672 assigned-clock-rates = <12288000>;
673 fsl,sai-mclk-direction-output;
674 status = "okay";
675};
676
Tom Rini53633a82024-02-29 12:33:36 -0500677&sai3 {
678 pinctrl-names = "default";
679 pinctrl-0 = <&pinctrl_sai3>;
680 assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
681 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
682 assigned-clock-rates = <12288000>;
683 fsl,sai-mclk-direction-output;
684 status = "okay";
685};
686
687&snvs_pwrkey {
688 status = "okay";
689};
690
691&uart1 { /* BT */
692 pinctrl-names = "default";
693 pinctrl-0 = <&pinctrl_uart1>;
694 assigned-clocks = <&clk IMX8MP_CLK_UART1>;
695 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
696 uart-has-rtscts;
697 status = "okay";
698};
699
700&uart2 {
701 /* console */
702 pinctrl-names = "default";
703 pinctrl-0 = <&pinctrl_uart2>;
704 status = "okay";
705};
706
707&usb3_phy1 {
708 status = "okay";
709};
710
711&usb3_1 {
712 status = "okay";
713};
714
715&usb_dwc3_1 {
716 pinctrl-names = "default";
717 pinctrl-0 = <&pinctrl_usb1_vbus>;
718 dr_mode = "host";
719 status = "okay";
720};
721
722&uart3 {
723 pinctrl-names = "default";
724 pinctrl-0 = <&pinctrl_uart3>;
725 assigned-clocks = <&clk IMX8MP_CLK_UART3>;
726 assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
727 uart-has-rtscts;
728 status = "okay";
729};
730
731&usdhc2 {
732 assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
733 assigned-clock-rates = <400000000>;
734 pinctrl-names = "default", "state_100mhz", "state_200mhz";
735 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
736 pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
737 pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
738 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
739 vmmc-supply = <&reg_usdhc2_vmmc>;
740 bus-width = <4>;
741 status = "okay";
742};
743
744&usdhc3 {
745 assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
746 assigned-clock-rates = <400000000>;
747 pinctrl-names = "default", "state_100mhz", "state_200mhz";
748 pinctrl-0 = <&pinctrl_usdhc3>;
749 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
750 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
751 bus-width = <8>;
752 non-removable;
753 status = "okay";
754};
755
756&wdog1 {
757 pinctrl-names = "default";
758 pinctrl-0 = <&pinctrl_wdog>;
759 fsl,ext-reset-output;
760 status = "okay";
761};
762
Tom Rini6b642ac2024-10-01 12:20:28 -0600763&xcvr {
764 #sound-dai-cells = <0>;
765 status = "okay";
766};
767
Tom Rini53633a82024-02-29 12:33:36 -0500768&iomuxc {
Tom Rini6b642ac2024-10-01 12:20:28 -0600769 pinctrl-names = "default";
770 pinctrl-0 = <&pinctrl_hog>;
771
Tom Rini53633a82024-02-29 12:33:36 -0500772 pinctrl_audio_pwr_reg: audiopwrreggrp {
773 fsl,pins = <
774 MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0xd6
775 >;
776 };
777
778 pinctrl_eqos: eqosgrp {
779 fsl,pins = <
780 MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
781 MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
782 MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
783 MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
784 MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
785 MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
786 MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
787 MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
788 MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
789 MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
790 MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
791 MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
792 MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
793 MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
794 MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x10
795 >;
796 };
797
798 pinctrl_fec: fecgrp {
799 fsl,pins = <
800 MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x2
801 MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x2
802 MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x90
803 MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x90
804 MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x90
805 MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x90
806 MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x90
807 MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x90
808 MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x16
809 MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x16
810 MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x16
811 MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x16
812 MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x16
813 MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x16
814 MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x10
815 >;
816 };
817
818 pinctrl_flexcan1: flexcan1grp {
819 fsl,pins = <
820 MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
821 MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
822 >;
823 };
824
825 pinctrl_flexcan2: flexcan2grp {
826 fsl,pins = <
827 MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154
828 MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
829 >;
830 };
831
832 pinctrl_flexcan1_reg: flexcan1reggrp {
833 fsl,pins = <
834 MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154 /* CAN1_STBY */
835 >;
836 };
837
838 pinctrl_flexcan2_reg: flexcan2reggrp {
839 fsl,pins = <
840 MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x154 /* CAN2_STBY */
841 >;
842 };
843
844 pinctrl_flexspi0: flexspi0grp {
845 fsl,pins = <
846 MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK 0x1c2
847 MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B 0x82
848 MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00 0x82
849 MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01 0x82
850 MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02 0x82
851 MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03 0x82
852 >;
853 };
854
855 pinctrl_gpio_led: gpioledgrp {
856 fsl,pins = <
857 MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16 0x140
858 >;
859 };
860
Tom Rini6b642ac2024-10-01 12:20:28 -0600861 pinctrl_hog: hoggrp {
862 fsl,pins = <
863 MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD 0x40000010
864 >;
865 };
866
Tom Rini53633a82024-02-29 12:33:36 -0500867 pinctrl_i2c1: i2c1grp {
868 fsl,pins = <
869 MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c2
870 MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c2
871 >;
872 };
873
874 pinctrl_i2c2: i2c2grp {
875 fsl,pins = <
876 MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
877 MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c2
878 >;
879 };
880
881 pinctrl_i2c3: i2c3grp {
882 fsl,pins = <
883 MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c2
884 MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c2
885 >;
886 };
887
888 pinctrl_i2c5: i2c5grp {
889 fsl,pins = <
890 MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA 0x400001c2
891 MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c2
892 >;
893 };
894
895 pinctrl_pcie0: pcie0grp {
896 fsl,pins = <
897 MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B 0x60 /* open drain, pull up */
898 MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x40
899 >;
900 };
901
902 pinctrl_pcie0_reg: pcie0reggrp {
903 fsl,pins = <
904 MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x40
905 >;
906 };
907
Tom Rini762f85b2024-07-20 11:15:10 -0600908 pinctrl_pdm: pdmgrp {
909 fsl,pins = <
910 MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK 0xd6
911 MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00 0xd6
912 MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_PDM_BIT_STREAM01 0xd6
913 MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_PDM_BIT_STREAM02 0xd6
914 MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_PDM_BIT_STREAM03 0xd6
915 >;
916 };
917
Tom Rini53633a82024-02-29 12:33:36 -0500918 pinctrl_pmic: pmicgrp {
919 fsl,pins = <
920 MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x000001c0
921 >;
922 };
923
924 pinctrl_pca6416_int: pca6416_int_grp {
925 fsl,pins = <
926 MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x146 /* Input pull-up. */
927 >;
928 };
929
930 pinctrl_pwm1: pwm1grp {
931 fsl,pins = <
932 MX8MP_IOMUXC_GPIO1_IO01__PWM1_OUT 0x116
933 >;
934 };
935
936 pinctrl_pwm2: pwm2grp {
937 fsl,pins = <
938 MX8MP_IOMUXC_GPIO1_IO11__PWM2_OUT 0x116
939 >;
940 };
941
942 pinctrl_pwm4: pwm4grp {
943 fsl,pins = <
944 MX8MP_IOMUXC_SAI5_RXFS__PWM4_OUT 0x116
945 >;
946 };
947
948 pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
949 fsl,pins = <
950 MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x40
951 >;
952 };
953
954 pinctrl_uart1: uart1grp {
955 fsl,pins = <
956 MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140
957 MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140
958 MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS 0x140
959 MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS 0x140
960 >;
961 };
962
Tom Rini6b642ac2024-10-01 12:20:28 -0600963 pinctrl_sai2: sai2grp {
964 fsl,pins = <
965 MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6
966 MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6
967 MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
968 MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
969 >;
970 };
971
Tom Rini53633a82024-02-29 12:33:36 -0500972 pinctrl_sai3: sai3grp {
973 fsl,pins = <
974 MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xd6
975 MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xd6
976 MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xd6
977 MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xd6
978 MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xd6
979 >;
980 };
981
982 pinctrl_uart2: uart2grp {
983 fsl,pins = <
984 MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x140
985 MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x140
986 >;
987 };
988
989 pinctrl_usb1_vbus: usb1grp {
990 fsl,pins = <
991 MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x10
992 >;
993 };
994
995 pinctrl_uart3: uart3grp {
996 fsl,pins = <
997 MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX 0x140
998 MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX 0x140
999 MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS 0x140
1000 MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
1001 >;
1002 };
1003
1004 pinctrl_usdhc2: usdhc2grp {
1005 fsl,pins = <
1006 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190
1007 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0
1008 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0
1009 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0
1010 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0
1011 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0
1012 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
1013 >;
1014 };
1015
1016 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
1017 fsl,pins = <
1018 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194
1019 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4
1020 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4
1021 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4
1022 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4
1023 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4
1024 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
1025 >;
1026 };
1027
1028 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
1029 fsl,pins = <
1030 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196
1031 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6
1032 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6
1033 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6
1034 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6
1035 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6
1036 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
1037 >;
1038 };
1039
1040 pinctrl_usdhc2_gpio: usdhc2gpiogrp {
1041 fsl,pins = <
1042 MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4
1043 >;
1044 };
1045
1046 pinctrl_usdhc3: usdhc3grp {
1047 fsl,pins = <
1048 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
1049 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0
1050 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0
1051 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0
1052 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0
1053 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0
1054 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0
1055 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0
1056 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0
1057 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0
1058 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190
1059 >;
1060 };
1061
1062 pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
1063 fsl,pins = <
1064 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194
1065 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4
1066 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4
1067 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4
1068 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4
1069 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4
1070 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4
1071 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4
1072 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4
1073 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4
1074 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194
1075 >;
1076 };
1077
1078 pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
1079 fsl,pins = <
1080 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196
1081 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6
1082 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6
1083 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6
1084 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6
1085 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6
1086 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6
1087 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6
1088 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6
1089 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6
1090 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196
1091 >;
1092 };
1093
1094 pinctrl_wdog: wdoggrp {
1095 fsl,pins = <
1096 MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x166
1097 >;
1098 };
1099};