| // SPDX-License-Identifier: GPL-2.0+ OR MIT |
| /* |
| * Copyright 2021-2022 Marek Vasut <marex@denx.de> |
| */ |
| |
| /dts-v1/; |
| |
| #include "imx8mm-verdin.dtsi" |
| |
| / { |
| model = "MENLO MX8MM EMBEDDED DEVICE"; |
| compatible = "menlo,mx8menlo", |
| "toradex,verdin-imx8mm", |
| "fsl,imx8mm"; |
| |
| /delete-node/ gpio-keys; |
| |
| leds { |
| compatible = "gpio-leds"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_led>; |
| |
| user1 { |
| label = "TestLed601"; |
| gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "mmc0"; |
| }; |
| |
| user2 { |
| label = "TestLed602"; |
| gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "heartbeat"; |
| }; |
| }; |
| |
| beeper { |
| compatible = "gpio-beeper"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_beeper>; |
| gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| /* Fixed clock dedicated to SPI CAN on carrier board */ |
| clk_xtal20: clk-xtal20 { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <20000000>; |
| }; |
| }; |
| |
| &ecspi1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_ecspi1>; |
| cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| |
| /* CAN controller on the baseboard */ |
| canfd: can@0 { |
| compatible = "microchip,mcp2518fd"; |
| clocks = <&clk_xtal20>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <8 IRQ_TYPE_EDGE_FALLING>; |
| reg = <0>; |
| spi-max-frequency = <2000000>; |
| }; |
| |
| }; |
| |
| &ecspi2 { |
| pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_gpio1>; |
| cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>, <&gpio3 4 GPIO_ACTIVE_LOW>; |
| status = "okay"; |
| |
| spidev@0 { |
| compatible = "menlo,m53cpld"; |
| reg = <0>; |
| spi-max-frequency = <25000000>; |
| }; |
| |
| spidev@1 { |
| compatible = "menlo,m53cpld"; |
| reg = <1>; |
| spi-max-frequency = <25000000>; |
| }; |
| |
| }; |
| |
| ðphy0 { |
| max-speed = <100>; |
| }; |
| |
| &fec1 { |
| status = "okay"; |
| }; |
| |
| &flexspi { |
| status = "okay"; |
| |
| flash@0 { |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "jedec,spi-nor"; |
| spi-max-frequency = <66000000>; |
| spi-rx-bus-width = <4>; |
| spi-tx-bus-width = <4>; |
| }; |
| }; |
| |
| &gpio1 { |
| gpio-line-names = |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", ""; |
| }; |
| |
| &gpio2 { |
| gpio-line-names = |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", ""; |
| }; |
| |
| &gpio3 { |
| gpio-line-names = |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "DISP_reset", "KBD_intI", |
| "", "", "", "", |
| "", "", "", ""; |
| }; |
| |
| &gpio4 { |
| /* |
| * CPLD_D[n] is ARM_CPLD[n] in schematic |
| * CPLD_int is SA_INTERRUPT in schematic |
| * CPLD_reset is RESET_SOFT in schematic |
| */ |
| gpio-line-names = |
| "CPLD_D[1]", "CPLD_int", "CPLD_reset", "", |
| "", "CPLD_D[0]", "", "", |
| "", "", "", "CPLD_D[2]", |
| "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]", "CPLD_D[6]", |
| "CPLD_D[7]", "", "", "", |
| "", "", "", "", |
| "", "", "", "KBD_intK", |
| "", "", "", ""; |
| }; |
| |
| &gpio5 { |
| gpio-line-names = |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", "", |
| "", "", "", ""; |
| }; |
| |
| &gpio_expander_21 { |
| status = "okay"; |
| }; |
| |
| &hwmon { |
| status = "okay"; |
| }; |
| |
| &i2c3 { |
| status = "okay"; |
| }; |
| |
| &i2c4 { |
| /* None of this is present on the SoM. */ |
| /delete-node/ bridge@2c; |
| /delete-node/ hdmi@48; |
| /delete-node/ touch@4a; |
| /delete-node/ sensor@4f; |
| /delete-node/ eeprom@50; |
| /delete-node/ eeprom@57; |
| }; |
| |
| &iomuxc { |
| pinctrl-0 = <&pinctrl_gpio7>, <&pinctrl_gpio_hog1>, |
| <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>; |
| |
| pinctrl_beeper: beepergrp { |
| fsl,pins = < |
| MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x1c4 |
| >; |
| }; |
| |
| pinctrl_ecspi1: ecspi1grp { |
| fsl,pins = < |
| MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x4 |
| MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x4 |
| MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x1c4 |
| MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x1c4 |
| >; |
| }; |
| |
| pinctrl_led: ledgrp { |
| fsl,pins = < |
| MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x1c4 |
| MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x1c4 |
| >; |
| }; |
| |
| pinctrl_uart4_rts: uart4rtsgrp { |
| fsl,pins = < |
| /* SODIMM 222 */ |
| MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x184 |
| >; |
| }; |
| }; |
| |
| &pinctrl_gpio1 { |
| fsl,pins = < |
| /* SODIMM 206 */ |
| MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4 0x1c4 |
| >; |
| }; |
| |
| &pinctrl_gpio_hog1 { |
| fsl,pins = < |
| /* SODIMM 88 */ |
| MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20 0x1c4 |
| /* CPLD_int */ |
| MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x1c4 |
| /* CPLD_reset */ |
| MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x1c4 |
| /* SODIMM 94 */ |
| MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x1c4 |
| /* SODIMM 96 */ |
| MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x1c4 |
| /* CPLD_D[7] */ |
| MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x1c4 |
| /* CPLD_D[6] */ |
| MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x1c4 |
| /* CPLD_D[5] */ |
| MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x1c4 |
| /* CPLD_D[4] */ |
| MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x1c4 |
| /* CPLD_D[3] */ |
| MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x1c4 |
| /* CPLD_D[2] */ |
| MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x1c4 |
| /* CPLD_D[1] */ |
| MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x1c4 |
| /* CPLD_D[0] */ |
| MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x1c4 |
| /* KBD_intK */ |
| MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x1c4 |
| /* DISP_reset */ |
| MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x1c4 |
| /* KBD_intI */ |
| MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 0x1c4 |
| /* SODIMM 46 */ |
| MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 0x1c4 |
| >; |
| }; |
| |
| &pinctrl_uart1 { |
| fsl,pins = < |
| /* SODIMM 149 */ |
| MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x1c4 |
| /* SODIMM 147 */ |
| MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x1c4 |
| /* SODIMM 210 */ |
| MX8MM_IOMUXC_UART3_RXD_UART1_DTE_RTS_B 0x1c4 |
| /* SODIMM 212 */ |
| MX8MM_IOMUXC_UART3_TXD_UART1_DTE_CTS_B 0x1c4 |
| >; |
| }; |
| |
| ®_usb_otg1_vbus { |
| /delete-property/ enable-active-high; |
| gpio = <&gpio1 12 GPIO_ACTIVE_LOW>; |
| }; |
| |
| ®_usb_otg2_vbus { |
| /delete-property/ enable-active-high; |
| gpio = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| }; |
| |
| &sai2 { |
| status = "disabled"; |
| }; |
| |
| &uart1 { |
| uart-has-rtscts; |
| status = "okay"; |
| }; |
| |
| &uart2 { |
| status = "okay"; |
| }; |
| |
| &uart4 { |
| pinctrl-0 = <&pinctrl_uart4 &pinctrl_uart4_rts>; |
| linux,rs485-enabled-at-boot-time; |
| rts-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| status = "okay"; |
| }; |
| |
| &usbotg1 { |
| dr_mode = "peripheral"; |
| status = "okay"; |
| }; |
| |
| &usbotg2 { |
| dr_mode = "host"; |
| status = "okay"; |
| }; |
| |
| &usdhc2 { |
| status = "okay"; |
| }; |