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&ethphy0 {
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&reg_usb_otg1_vbus {
29462306a36Sopenharmony_ci	/delete-property/ enable-active-high;
29562306a36Sopenharmony_ci	gpio = <&gpio1 12 GPIO_ACTIVE_LOW>;
29662306a36Sopenharmony_ci};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci&reg_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