1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 #include <dt-bindings/phy/phy-imx8-pcie.h>
12 model = "NXP i.MX8MPlus EVK board";
13 compatible = "fsl,imx8mp-evk", "fsl,imx8mp";
20 compatible = "gpio-leds";
21 pinctrl-names = "default";
22 pinctrl-0 = <&pinctrl_gpio_led>;
25 label = "yellow:status";
26 gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
32 device_type = "memory";
33 reg = <0x0 0x40000000 0 0xc0000000>,
34 <0x1 0x00000000 0 0xc0000000>;
37 pcie0_refclk: pcie0-refclk {
38 compatible = "fixed-clock";
40 clock-frequency = <100000000>;
43 reg_can1_stby: regulator-can1-stby {
44 compatible = "regulator-fixed";
45 regulator-name = "can1-stby";
46 pinctrl-names = "default";
47 pinctrl-0 = <&pinctrl_flexcan1_reg>;
48 regulator-min-microvolt = <3300000>;
49 regulator-max-microvolt = <3300000>;
50 gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
54 reg_can2_stby: regulator-can2-stby {
55 compatible = "regulator-fixed";
56 regulator-name = "can2-stby";
57 pinctrl-names = "default";
58 pinctrl-0 = <&pinctrl_flexcan2_reg>;
59 regulator-min-microvolt = <3300000>;
60 regulator-max-microvolt = <3300000>;
61 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
65 reg_pcie0: regulator-pcie {
66 compatible = "regulator-fixed";
67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_pcie0_reg>;
69 regulator-name = "MPCIE_3V3";
70 regulator-min-microvolt = <3300000>;
71 regulator-max-microvolt = <3300000>;
72 gpio = <&gpio2 6 GPIO_ACTIVE_HIGH>;
76 reg_usdhc2_vmmc: regulator-usdhc2 {
77 compatible = "regulator-fixed";
78 pinctrl-names = "default";
79 pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
80 regulator-name = "VSD_3V3";
81 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>;
83 gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
89 cpu-supply = <®_arm>;
93 cpu-supply = <®_arm>;
97 cpu-supply = <®_arm>;
101 cpu-supply = <®_arm>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_eqos>;
107 phy-mode = "rgmii-id";
108 phy-handle = <ðphy0>;
109 snps,force_thresh_dma_mode;
110 snps,mtl-tx-config = <&mtl_tx_setup>;
111 snps,mtl-rx-config = <&mtl_rx_setup>;
115 compatible = "snps,dwmac-mdio";
116 #address-cells = <1>;
119 ethphy0: ethernet-phy@1 {
120 compatible = "ethernet-phy-ieee802.3-c22";
123 reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
124 reset-assert-us = <10000>;
125 reset-deassert-us = <80000>;
126 realtek,clkout-disable;
130 mtl_tx_setup: tx-queues-config {
131 snps,tx-queues-to-use = <5>;
136 snps,priority = <0x1>;
141 snps,priority = <0x2>;
146 snps,priority = <0x4>;
151 snps,priority = <0x8>;
156 snps,priority = <0xf0>;
160 mtl_rx_setup: rx-queues-config {
161 snps,rx-queues-to-use = <5>;
166 snps,priority = <0x1>;
167 snps,map-to-dma-channel = <0>;
172 snps,priority = <0x2>;
173 snps,map-to-dma-channel = <1>;
178 snps,priority = <0x4>;
179 snps,map-to-dma-channel = <2>;
184 snps,priority = <0x8>;
185 snps,map-to-dma-channel = <3>;
190 snps,priority = <0xf0>;
191 snps,map-to-dma-channel = <4>;
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_fec>;
199 phy-mode = "rgmii-id";
200 phy-handle = <ðphy1>;
205 #address-cells = <1>;
208 ethphy1: ethernet-phy@1 {
209 compatible = "ethernet-phy-ieee802.3-c22";
212 reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
213 reset-assert-us = <10000>;
214 reset-deassert-us = <80000>;
215 realtek,clkout-disable;
221 pinctrl-names = "default";
222 pinctrl-0 = <&pinctrl_flexcan1>;
223 xceiver-supply = <®_can1_stby>;
228 pinctrl-names = "default";
229 pinctrl-0 = <&pinctrl_flexcan2>;
230 xceiver-supply = <®_can2_stby>;
231 status = "disabled";/* can2 pin conflict with pdm */
235 clock-frequency = <400000>;
236 pinctrl-names = "default";
237 pinctrl-0 = <&pinctrl_i2c1>;
241 compatible = "nxp,pca9450c";
243 pinctrl-names = "default";
244 pinctrl-0 = <&pinctrl_pmic>;
245 interrupt-parent = <&gpio1>;
246 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
250 regulator-name = "BUCK1";
251 regulator-min-microvolt = <720000>;
252 regulator-max-microvolt = <1000000>;
255 regulator-ramp-delay = <3125>;
259 regulator-name = "BUCK2";
260 regulator-min-microvolt = <720000>;
261 regulator-max-microvolt = <1025000>;
264 regulator-ramp-delay = <3125>;
265 nxp,dvs-run-voltage = <950000>;
266 nxp,dvs-standby-voltage = <850000>;
270 regulator-name = "BUCK4";
271 regulator-min-microvolt = <3000000>;
272 regulator-max-microvolt = <3600000>;
278 regulator-name = "BUCK5";
279 regulator-min-microvolt = <1650000>;
280 regulator-max-microvolt = <1950000>;
286 regulator-name = "BUCK6";
287 regulator-min-microvolt = <1045000>;
288 regulator-max-microvolt = <1155000>;
294 regulator-name = "LDO1";
295 regulator-min-microvolt = <1650000>;
296 regulator-max-microvolt = <1950000>;
302 regulator-name = "LDO3";
303 regulator-min-microvolt = <1710000>;
304 regulator-max-microvolt = <1890000>;
310 regulator-name = "LDO5";
311 regulator-min-microvolt = <1800000>;
312 regulator-max-microvolt = <3300000>;
321 clock-frequency = <400000>;
322 pinctrl-names = "default";
323 pinctrl-0 = <&pinctrl_i2c3>;
327 compatible = "ti,tca6416";
331 interrupt-controller;
332 #interrupt-cells = <2>;
333 pinctrl-names = "default";
334 pinctrl-0 = <&pinctrl_pca6416_int>;
335 interrupt-parent = <&gpio1>;
336 interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
337 gpio-line-names = "EXT_PWREN1",
356 /* I2C on expansion connector J22. */
358 clock-frequency = <100000>; /* Lower clock speed for external bus. */
359 pinctrl-names = "default";
360 pinctrl-0 = <&pinctrl_i2c5>;
361 status = "disabled"; /* can1 pins conflict with i2c5 */
363 /* GPIO 2 of PCA6416 is used to switch between CAN1 and I2C5 functions:
364 * LOW: CAN1 (default, pull-down)
366 * You need to set it to high to enable I2C5 (for example, add gpio-hog
372 fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
373 clocks = <&pcie0_refclk>;
379 pinctrl-names = "default";
380 pinctrl-0 = <&pinctrl_pcie0>;
381 reset-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
382 clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
383 <&clk IMX8MP_CLK_PCIE_ROOT>,
384 <&clk IMX8MP_CLK_HSIO_AXI>;
385 clock-names = "pcie", "pcie_aux", "pcie_bus";
386 assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;
387 assigned-clock-rates = <10000000>;
388 assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;
389 vpcie-supply = <®_pcie0>;
399 pinctrl-names = "default";
400 pinctrl-0 = <&pinctrl_uart2>;
413 pinctrl-names = "default";
414 pinctrl-0 = <&pinctrl_usb1_vbus>;
420 assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
421 assigned-clock-rates = <400000000>;
422 pinctrl-names = "default", "state_100mhz", "state_200mhz";
423 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
424 pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
425 pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
426 cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
427 vmmc-supply = <®_usdhc2_vmmc>;
433 assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
434 assigned-clock-rates = <400000000>;
435 pinctrl-names = "default", "state_100mhz", "state_200mhz";
436 pinctrl-0 = <&pinctrl_usdhc3>;
437 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
438 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
445 pinctrl-names = "default";
446 pinctrl-0 = <&pinctrl_wdog>;
447 fsl,ext-reset-output;
452 pinctrl_eqos: eqosgrp {
454 MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
455 MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
456 MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
457 MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
458 MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
459 MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
460 MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
461 MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
462 MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
463 MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
464 MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
465 MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
466 MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
467 MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
468 MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22 0x10
472 pinctrl_fec: fecgrp {
474 MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x2
475 MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x2
476 MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x90
477 MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x90
478 MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x90
479 MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x90
480 MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x90
481 MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x90
482 MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x16
483 MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x16
484 MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x16
485 MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x16
486 MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x16
487 MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x16
488 MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02 0x10
492 pinctrl_flexcan1: flexcan1grp {
494 MX8MP_IOMUXC_SPDIF_RX__CAN1_RX 0x154
495 MX8MP_IOMUXC_SPDIF_TX__CAN1_TX 0x154
499 pinctrl_flexcan2: flexcan2grp {
501 MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154
502 MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154
506 pinctrl_flexcan1_reg: flexcan1reggrp {
508 MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05 0x154 /* CAN1_STBY */
512 pinctrl_flexcan2_reg: flexcan2reggrp {
514 MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27 0x154 /* CAN2_STBY */
518 pinctrl_gpio_led: gpioledgrp {
520 MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16 0x140
524 pinctrl_i2c1: i2c1grp {
526 MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c2
527 MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c2
531 pinctrl_i2c3: i2c3grp {
533 MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c2
534 MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c2
538 pinctrl_i2c5: i2c5grp {
540 MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA 0x400001c2
541 MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL 0x400001c2
545 pinctrl_pcie0: pcie0grp {
547 MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B 0x61 /* open drain, pull up */
548 MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07 0x41
552 pinctrl_pcie0_reg: pcie0reggrp {
554 MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06 0x41
558 pinctrl_pmic: pmicgrp {
560 MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x000001c0
564 pinctrl_pca6416_int: pca6416_int_grp {
566 MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x146 /* Input pull-up. */
570 pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
572 MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19 0x40
576 pinctrl_uart2: uart2grp {
578 MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x140
579 MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x140
583 pinctrl_usb1_vbus: usb1grp {
585 MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x10
589 pinctrl_usdhc2: usdhc2grp {
591 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x190
592 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d0
593 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d0
594 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d0
595 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d0
596 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d0
597 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
601 pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
603 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x194
604 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d4
605 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d4
606 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d4
607 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d4
608 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d4
609 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
613 pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
615 MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK 0x196
616 MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD 0x1d6
617 MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0 0x1d6
618 MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1 0x1d6
619 MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2 0x1d6
620 MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3 0x1d6
621 MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc0
625 pinctrl_usdhc2_gpio: usdhc2gpiogrp {
627 MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12 0x1c4
631 pinctrl_usdhc3: usdhc3grp {
633 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
634 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0
635 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0
636 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0
637 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0
638 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0
639 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0
640 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0
641 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0
642 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0
643 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190
647 pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
649 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194
650 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4
651 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4
652 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4
653 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4
654 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4
655 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4
656 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4
657 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4
658 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4
659 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194
663 pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
665 MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196
666 MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6
667 MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6
668 MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6
669 MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6
670 MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6
671 MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6
672 MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6
673 MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6
674 MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6
675 MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196
679 pinctrl_wdog: wdoggrp {
681 MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x166