162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR MIT 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2021-2022 Marek Vasut <marex@denx.de> 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci/dts-v1/; 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include "imx8mm-verdin.dtsi" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci model = "MENLO MX8MM EMBEDDED DEVICE"; 1262306a36Sopenharmony_ci compatible = "menlo,mx8menlo", 1362306a36Sopenharmony_ci "toradex,verdin-imx8mm-nonwifi", 1462306a36Sopenharmony_ci "toradex,verdin-imx8mm", 1562306a36Sopenharmony_ci "fsl,imx8mm"; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci /delete-node/ gpio-keys; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci leds { 2062306a36Sopenharmony_ci compatible = "gpio-leds"; 2162306a36Sopenharmony_ci pinctrl-names = "default"; 2262306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_led>; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci led-1 { 2562306a36Sopenharmony_ci label = "TestLed601"; 2662306a36Sopenharmony_ci gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>; 2762306a36Sopenharmony_ci linux,default-trigger = "mmc0"; 2862306a36Sopenharmony_ci }; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci led-2 { 3162306a36Sopenharmony_ci label = "TestLed602"; 3262306a36Sopenharmony_ci gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; 3362306a36Sopenharmony_ci linux,default-trigger = "heartbeat"; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci }; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci beeper { 3862306a36Sopenharmony_ci compatible = "gpio-beeper"; 3962306a36Sopenharmony_ci pinctrl-names = "default"; 4062306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_beeper>; 4162306a36Sopenharmony_ci gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>; 4262306a36Sopenharmony_ci }; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci /* Fixed clock dedicated to SPI CAN on carrier board */ 4562306a36Sopenharmony_ci clk_xtal20: clk-xtal20 { 4662306a36Sopenharmony_ci compatible = "fixed-clock"; 4762306a36Sopenharmony_ci #clock-cells = <0>; 4862306a36Sopenharmony_ci clock-frequency = <20000000>; 4962306a36Sopenharmony_ci }; 5062306a36Sopenharmony_ci}; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci&ecspi1 { 5362306a36Sopenharmony_ci #address-cells = <1>; 5462306a36Sopenharmony_ci #size-cells = <0>; 5562306a36Sopenharmony_ci pinctrl-names = "default"; 5662306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_ecspi1>; 5762306a36Sopenharmony_ci cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; 5862306a36Sopenharmony_ci status = "okay"; 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci /* CAN controller on the baseboard */ 6162306a36Sopenharmony_ci canfd: can@0 { 6262306a36Sopenharmony_ci compatible = "microchip,mcp2518fd"; 6362306a36Sopenharmony_ci clocks = <&clk_xtal20>; 6462306a36Sopenharmony_ci interrupt-parent = <&gpio1>; 6562306a36Sopenharmony_ci interrupts = <8 IRQ_TYPE_EDGE_FALLING>; 6662306a36Sopenharmony_ci reg = <0>; 6762306a36Sopenharmony_ci spi-max-frequency = <2000000>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci}; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci&ecspi2 { 7362306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_gpio1>; 7462306a36Sopenharmony_ci cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>, <&gpio3 4 GPIO_ACTIVE_LOW>; 7562306a36Sopenharmony_ci status = "okay"; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci spidev@0 { 7862306a36Sopenharmony_ci compatible = "menlo,m53cpld"; 7962306a36Sopenharmony_ci reg = <0>; 8062306a36Sopenharmony_ci spi-max-frequency = <25000000>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci spidev@1 { 8462306a36Sopenharmony_ci compatible = "menlo,m53cpld"; 8562306a36Sopenharmony_ci reg = <1>; 8662306a36Sopenharmony_ci spi-max-frequency = <25000000>; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci}; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciðphy0 { 9262306a36Sopenharmony_ci max-speed = <100>; 9362306a36Sopenharmony_ci}; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci&fec1 { 9662306a36Sopenharmony_ci status = "okay"; 9762306a36Sopenharmony_ci}; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci&flexspi { 10062306a36Sopenharmony_ci status = "okay"; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci flash@0 { 10362306a36Sopenharmony_ci reg = <0>; 10462306a36Sopenharmony_ci #address-cells = <1>; 10562306a36Sopenharmony_ci #size-cells = <1>; 10662306a36Sopenharmony_ci compatible = "jedec,spi-nor"; 10762306a36Sopenharmony_ci spi-max-frequency = <66000000>; 10862306a36Sopenharmony_ci spi-rx-bus-width = <4>; 10962306a36Sopenharmony_ci spi-tx-bus-width = <4>; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci}; 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci&gpio1 { 11462306a36Sopenharmony_ci gpio-line-names = 11562306a36Sopenharmony_ci "", "", "", "", 11662306a36Sopenharmony_ci "", "", "", "", 11762306a36Sopenharmony_ci "", "", "", "", 11862306a36Sopenharmony_ci "", "", "", "", 11962306a36Sopenharmony_ci "", "", "", "", 12062306a36Sopenharmony_ci "", "", "", "", 12162306a36Sopenharmony_ci "", "", "", "", 12262306a36Sopenharmony_ci "", "", "", ""; 12362306a36Sopenharmony_ci}; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci&gpio2 { 12662306a36Sopenharmony_ci gpio-line-names = 12762306a36Sopenharmony_ci "", "", "", "", 12862306a36Sopenharmony_ci "", "", "", "", 12962306a36Sopenharmony_ci "", "", "", "", 13062306a36Sopenharmony_ci "", "", "", "", 13162306a36Sopenharmony_ci "", "", "", "", 13262306a36Sopenharmony_ci "", "", "", "", 13362306a36Sopenharmony_ci "", "", "", "", 13462306a36Sopenharmony_ci "", "", "", ""; 13562306a36Sopenharmony_ci}; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci&gpio3 { 13862306a36Sopenharmony_ci gpio-line-names = 13962306a36Sopenharmony_ci "", "", "", "", 14062306a36Sopenharmony_ci "", "", "", "", 14162306a36Sopenharmony_ci "", "", "", "", 14262306a36Sopenharmony_ci "", "", "", "", 14362306a36Sopenharmony_ci "", "", "", "", 14462306a36Sopenharmony_ci "", "", "DISP_reset", "KBD_intI", 14562306a36Sopenharmony_ci "", "", "", "", 14662306a36Sopenharmony_ci "", "", "", ""; 14762306a36Sopenharmony_ci}; 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci&gpio4 { 15062306a36Sopenharmony_ci /* 15162306a36Sopenharmony_ci * CPLD_D[n] is ARM_CPLD[n] in schematic 15262306a36Sopenharmony_ci * CPLD_int is SA_INTERRUPT in schematic 15362306a36Sopenharmony_ci * CPLD_reset is RESET_SOFT in schematic 15462306a36Sopenharmony_ci */ 15562306a36Sopenharmony_ci gpio-line-names = 15662306a36Sopenharmony_ci "CPLD_D[6]", "CPLD_int", "CPLD_reset", "", 15762306a36Sopenharmony_ci "", "CPLD_D[7]", "", "", 15862306a36Sopenharmony_ci "", "", "", "CPLD_D[5]", 15962306a36Sopenharmony_ci "CPLD_D[4]", "CPLD_D[3]", "CPLD_D[2]", "CPLD_D[1]", 16062306a36Sopenharmony_ci "CPLD_D[0]", "", "", "", 16162306a36Sopenharmony_ci "", "", "", "", 16262306a36Sopenharmony_ci "", "", "", "KBD_intK", 16362306a36Sopenharmony_ci "", "", "", ""; 16462306a36Sopenharmony_ci}; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci&gpio5 { 16762306a36Sopenharmony_ci gpio-line-names = 16862306a36Sopenharmony_ci "", "", "", "", 16962306a36Sopenharmony_ci "", "", "", "", 17062306a36Sopenharmony_ci "", "", "", "", 17162306a36Sopenharmony_ci "", "", "", "", 17262306a36Sopenharmony_ci "", "", "", "", 17362306a36Sopenharmony_ci "", "", "", "", 17462306a36Sopenharmony_ci "", "", "", "", 17562306a36Sopenharmony_ci "", "", "", ""; 17662306a36Sopenharmony_ci}; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci&gpio_expander_21 { 17962306a36Sopenharmony_ci status = "okay"; 18062306a36Sopenharmony_ci}; 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci&hwmon { 18362306a36Sopenharmony_ci status = "okay"; 18462306a36Sopenharmony_ci}; 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci&i2c3 { 18762306a36Sopenharmony_ci status = "okay"; 18862306a36Sopenharmony_ci}; 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci&i2c4 { 19162306a36Sopenharmony_ci /* None of this is present on the SoM. */ 19262306a36Sopenharmony_ci /delete-node/ bridge@2c; 19362306a36Sopenharmony_ci /delete-node/ hdmi@48; 19462306a36Sopenharmony_ci /delete-node/ touch@4a; 19562306a36Sopenharmony_ci /delete-node/ sensor@4f; 19662306a36Sopenharmony_ci /delete-node/ eeprom@50; 19762306a36Sopenharmony_ci /delete-node/ eeprom@57; 19862306a36Sopenharmony_ci}; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci&iomuxc { 20162306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_gpio7>, <&pinctrl_gpio_hog1>, 20262306a36Sopenharmony_ci <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci pinctrl_beeper: beepergrp { 20562306a36Sopenharmony_ci fsl,pins = < 20662306a36Sopenharmony_ci MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x1c4 20762306a36Sopenharmony_ci >; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci pinctrl_ecspi1: ecspi1grp { 21162306a36Sopenharmony_ci fsl,pins = < 21262306a36Sopenharmony_ci MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x4 21362306a36Sopenharmony_ci MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x4 21462306a36Sopenharmony_ci MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x1c4 21562306a36Sopenharmony_ci MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x1c4 21662306a36Sopenharmony_ci >; 21762306a36Sopenharmony_ci }; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci pinctrl_led: ledgrp { 22062306a36Sopenharmony_ci fsl,pins = < 22162306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x1c4 22262306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x1c4 22362306a36Sopenharmony_ci >; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci pinctrl_uart4_rts: uart4rtsgrp { 22762306a36Sopenharmony_ci fsl,pins = < 22862306a36Sopenharmony_ci /* SODIMM 222 */ 22962306a36Sopenharmony_ci MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x184 23062306a36Sopenharmony_ci >; 23162306a36Sopenharmony_ci }; 23262306a36Sopenharmony_ci}; 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci&pinctrl_gpio1 { 23562306a36Sopenharmony_ci fsl,pins = < 23662306a36Sopenharmony_ci /* SODIMM 206 */ 23762306a36Sopenharmony_ci MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4 0x1c4 23862306a36Sopenharmony_ci >; 23962306a36Sopenharmony_ci}; 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci&pinctrl_gpio_hog1 { 24262306a36Sopenharmony_ci fsl,pins = < 24362306a36Sopenharmony_ci /* SODIMM 88 */ 24462306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20 0x1c4 24562306a36Sopenharmony_ci /* CPLD_int */ 24662306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x1c4 24762306a36Sopenharmony_ci /* CPLD_reset */ 24862306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x1c4 24962306a36Sopenharmony_ci /* SODIMM 94 */ 25062306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x1c4 25162306a36Sopenharmony_ci /* SODIMM 96 */ 25262306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x1c4 25362306a36Sopenharmony_ci /* CPLD_D[7] */ 25462306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x184 25562306a36Sopenharmony_ci /* CPLD_D[6] */ 25662306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x184 25762306a36Sopenharmony_ci /* CPLD_D[5] */ 25862306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x184 25962306a36Sopenharmony_ci /* CPLD_D[4] */ 26062306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x184 26162306a36Sopenharmony_ci /* CPLD_D[3] */ 26262306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x184 26362306a36Sopenharmony_ci /* CPLD_D[2] */ 26462306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x184 26562306a36Sopenharmony_ci /* CPLD_D[1] */ 26662306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x184 26762306a36Sopenharmony_ci /* CPLD_D[0] */ 26862306a36Sopenharmony_ci MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x184 26962306a36Sopenharmony_ci /* KBD_intK */ 27062306a36Sopenharmony_ci MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x1c4 27162306a36Sopenharmony_ci /* DISP_reset */ 27262306a36Sopenharmony_ci MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x1c4 27362306a36Sopenharmony_ci /* KBD_intI */ 27462306a36Sopenharmony_ci MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 0x1c4 27562306a36Sopenharmony_ci /* SODIMM 46 */ 27662306a36Sopenharmony_ci MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 0x1c4 27762306a36Sopenharmony_ci >; 27862306a36Sopenharmony_ci}; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci&pinctrl_uart1 { 28162306a36Sopenharmony_ci fsl,pins = < 28262306a36Sopenharmony_ci /* SODIMM 149 */ 28362306a36Sopenharmony_ci MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x1c4 28462306a36Sopenharmony_ci /* SODIMM 147 */ 28562306a36Sopenharmony_ci MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x1c4 28662306a36Sopenharmony_ci /* SODIMM 210 */ 28762306a36Sopenharmony_ci MX8MM_IOMUXC_UART3_RXD_UART1_DTE_RTS_B 0x1c4 28862306a36Sopenharmony_ci /* SODIMM 212 */ 28962306a36Sopenharmony_ci MX8MM_IOMUXC_UART3_TXD_UART1_DTE_CTS_B 0x1c4 29062306a36Sopenharmony_ci >; 29162306a36Sopenharmony_ci}; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci®_usb_otg1_vbus { 29462306a36Sopenharmony_ci /delete-property/ enable-active-high; 29562306a36Sopenharmony_ci gpio = <&gpio1 12 GPIO_ACTIVE_LOW>; 29662306a36Sopenharmony_ci}; 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci®_usb_otg2_vbus { 29962306a36Sopenharmony_ci /delete-property/ enable-active-high; 30062306a36Sopenharmony_ci gpio = <&gpio1 14 GPIO_ACTIVE_LOW>; 30162306a36Sopenharmony_ci}; 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci&sai2 { 30462306a36Sopenharmony_ci status = "disabled"; 30562306a36Sopenharmony_ci}; 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci&uart1 { 30862306a36Sopenharmony_ci uart-has-rtscts; 30962306a36Sopenharmony_ci status = "okay"; 31062306a36Sopenharmony_ci}; 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_ci&uart2 { 31362306a36Sopenharmony_ci status = "okay"; 31462306a36Sopenharmony_ci}; 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci&uart4 { 31762306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_uart4 &pinctrl_uart4_rts>; 31862306a36Sopenharmony_ci linux,rs485-enabled-at-boot-time; 31962306a36Sopenharmony_ci rts-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; 32062306a36Sopenharmony_ci status = "okay"; 32162306a36Sopenharmony_ci}; 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci&usbotg1 { 32462306a36Sopenharmony_ci dr_mode = "peripheral"; 32562306a36Sopenharmony_ci status = "okay"; 32662306a36Sopenharmony_ci}; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci&usbotg2 { 32962306a36Sopenharmony_ci dr_mode = "host"; 33062306a36Sopenharmony_ci status = "okay"; 33162306a36Sopenharmony_ci}; 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ci&usdhc2 { 33462306a36Sopenharmony_ci status = "okay"; 33562306a36Sopenharmony_ci}; 336