| // SPDX-License-Identifier: GPL-2.0+ OR MIT | 
 | /* | 
 |  * Copyright (C) 2022 Kontron Electronics GmbH | 
 |  */ | 
 |  | 
 | /dts-v1/; | 
 |  | 
 | #include "imx8mm-kontron-osm-s.dtsi" | 
 |  | 
 | / { | 
 | 	model = "Kontron BL i.MX8MM OSM-S (N802X S)"; | 
 | 	compatible = "kontron,imx8mm-bl-osm-s", "kontron,imx8mm-osm-s", "fsl,imx8mm"; | 
 |  | 
 | 	aliases { | 
 | 		ethernet1 = &usbnet; | 
 | 	}; | 
 |  | 
 | 	/* fixed crystal dedicated to mcp2542fd */ | 
 | 	osc_can: clock-osc-can { | 
 | 		compatible = "fixed-clock"; | 
 | 		#clock-cells = <0>; | 
 | 		clock-frequency = <40000000>; | 
 | 		clock-output-names = "osc-can"; | 
 | 	}; | 
 |  | 
 | 	leds { | 
 | 		compatible = "gpio-leds"; | 
 |  | 
 | 		led1 { | 
 | 			label = "led1"; | 
 | 			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; | 
 | 			linux,default-trigger = "heartbeat"; | 
 | 		}; | 
 |  | 
 | 		led2 { | 
 | 			label = "led2"; | 
 | 			gpios = <&gpio3 8 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		led3 { | 
 | 			label = "led3"; | 
 | 			gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	pwm-beeper { | 
 | 		compatible = "pwm-beeper"; | 
 | 		pwms = <&pwm2 0 5000 0>; | 
 | 	}; | 
 |  | 
 | 	reg_rst_eth2: regulator-rst-eth2 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; | 
 | 		enable-active-high; | 
 | 		regulator-always-on; | 
 | 		regulator-name = "rst-usb-eth2"; | 
 | 	}; | 
 |  | 
 | 	reg_vdd_5v: regulator-5v { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-always-on; | 
 | 		regulator-min-microvolt = <5000000>; | 
 | 		regulator-max-microvolt = <5000000>; | 
 | 		regulator-name = "vdd-5v"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &ecspi2 { | 
 | 	status = "okay"; | 
 |  | 
 | 	can@0 { | 
 | 		compatible = "microchip,mcp251xfd"; | 
 | 		reg = <0>; | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&pinctrl_can>; | 
 | 		clocks = <&osc_can>; | 
 | 		interrupts-extended = <&gpio5 1 IRQ_TYPE_LEVEL_LOW>; | 
 | 		/* | 
 | 		 * Limit the SPI clock to 15 MHz to prevent issues | 
 | 		 * with corrupted data due to chip errata. | 
 | 		 */ | 
 | 		spi-max-frequency = <15000000>; | 
 | 		vdd-supply = <®_vdd_3v3>; | 
 | 		xceiver-supply = <®_vdd_5v>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &ecspi3 { | 
 | 	status = "okay"; | 
 |  | 
 | 	eeram@0 { | 
 | 		compatible = "microchip,48l640"; | 
 | 		reg = <0>; | 
 | 		spi-max-frequency = <20000000>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &fec1 { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_enet_rgmii>; | 
 | 	phy-connection-type = "rgmii-id"; | 
 | 	phy-handle = <ðphy>; | 
 | 	status = "okay"; | 
 |  | 
 | 	mdio { | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		ethphy: ethernet-phy@0 { | 
 | 			compatible = "ethernet-phy-id4f51.e91b"; | 
 | 			reg = <0>; | 
 | 			reset-assert-us = <10000>; | 
 | 			reset-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | /* | 
 |  * Rename SoM signals according to board usage: | 
 |  *   GPIO_B_0      -> DIO1_OUT | 
 |  *   GPIO_B_1      -> DIO2_OUT | 
 |  */ | 
 | &gpio1 { | 
 | 	gpio-line-names = "", "GPIO_A_0", "", "GPIO_A_1", | 
 | 			  "", "GPIO_A_2", "GPIO_A_3", "GPIO_A_4", | 
 | 			  "GPIO_A_5", "GPIO_A_6", "GPIO_A_7", "DIO1_OUT", | 
 | 			  "DIO2_OUT", "USB_A_OC#", "CAM_MCK", "USB_B_OC#", | 
 | 			  "ETH_MDC", "ETH_MDIO", "ETH_A_(S)(R)(G)MII_TXD3", | 
 | 			  "ETH_A_(S)(R)(G)MII_TXD2", "ETH_A_(S)(R)(G)MII_TXD1", | 
 | 			  "ETH_A_(S)(R)(G)MII_TXD0", "ETH_A_(R)(G)MII_TX_EN(_ER)", | 
 | 			  "ETH_A_(R)(G)MII_TX_CLK", "ETH_A_(R)(G)MII_RX_DV(_ER)", | 
 | 			  "ETH_A_(R)(G)MII_RX_CLK", "ETH_A_(S)(R)(G)MII_RXD0", | 
 | 			  "ETH_A_(S)(R)(G)MII_RXD1", "ETH_A_(R)(G)MII_RXD2", | 
 | 			  "ETH_A_(R)(G)MII_RXD3"; | 
 | }; | 
 |  | 
 | /* | 
 |  * Rename SoM signals according to board usage: | 
 |  *   GPIO_B_2      -> DIO3_OUT | 
 |  *   GPIO_B_3      -> DIO4_OUT | 
 |  */ | 
 | &gpio3 { | 
 | 	gpio-line-names = "GPIO_C_5", "GPIO_C_4", "SDIO_B_CD#", "SDIO_B_D5", | 
 | 			  "SDIO_B_D6", "SDIO_B_D7", "GPIO_C_0", "GPIO_C_1", | 
 | 			  "GPIO_C_2", "GPIO_C_3", "SDIO_B_D0", "SDIO_B_D1", | 
 | 			  "SDIO_B_D2", "SDIO_B_D3", "", "SDIO_B_D4", | 
 | 			  "CARRIER_PWR_EN", "SDIO_B_CLK", "SDIO_B_CMD", "DIO3_OUT", | 
 | 			  "USB_B_EN", "DIO4_OUT", "PCIe_CLKREQ#", "PCIe_A_PERST#", | 
 | 			  "PCIe_WAKE#", "USB_A_EN"; | 
 | }; | 
 |  | 
 | /* | 
 |  * Rename SoM signals according to board usage: | 
 |  *   GPIO_B_4      -> DIO1_IN | 
 |  *   GPIO_B_5      -> DIO2_IN | 
 |  *   GPIO_B_6      -> DIO3_IN | 
 |  *   GPIO_B_7      -> DIO4_IN | 
 |  */ | 
 | &gpio4 { | 
 | 	gpio-line-names = "GPIO_C_7", "", "I2S_A_DATA_IN", "I2S_B_DATA_IN", | 
 | 			  "DIO1_IN", "BOOT_SEL0#", "BOOT_SEL1#", "", | 
 | 			  "", "", "I2S_LRCLK", "I2S_BITCLK", | 
 | 			  "I2S_A_DATA_OUT", "I2S_B_DATA_OUT", "DIO2_IN", "DIO3_IN", | 
 | 			  "DIO4_IN", "SPI_A_/WP_(IO2)", "SPI_A_/HOLD_(IO3)", "GPIO_C_6", | 
 | 			  "I2S_MCLK", "UART_A_TX", "UART_A_RX", "UART_A_CTS", | 
 | 			  "UART_A_RTS", "", "", "", | 
 | 			  "PCIe_SM_ALERT", "UART_B_RTS", "UART_B_CTS", "UART_B_RX"; | 
 | }; | 
 |  | 
 | &i2c3 { | 
 | 	status = "okay"; | 
 |  | 
 | 	usb-hub@2c { | 
 | 		compatible = "microchip,usb2514b"; | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&pinctrl_usb_hub>; | 
 | 		reg = <0x2c>; | 
 | 		non-removable-ports = <0>, <3>; | 
 | 		reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &pwm2 { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | ®_usb2_vbus { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | ®_usdhc2_vcc { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | ®_usdhc3_vcc { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | &uart1 { | 
 | 	uart-has-rtscts; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &uart2 { | 
 | 	linux,rs485-enabled-at-boot-time; | 
 | 	uart-has-rtscts; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &usbotg1 { | 
 | 	dr_mode = "otg"; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &usbotg2 { | 
 | 	dr_mode = "host"; | 
 | 	disable-over-current; | 
 | 	#address-cells = <1>; | 
 | 	#size-cells = <0>; | 
 | 	status = "okay"; | 
 |  | 
 | 	/* VBUS is controlled by the hub */ | 
 | 	/delete-property/ vbus-supply; | 
 |  | 
 | 	usb1@1 { | 
 | 		compatible = "usb424,2514"; | 
 | 		reg = <1>; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		usbnet: ethernet@1 { | 
 | 			compatible = "usbb95,772b"; | 
 | 			reg = <1>; | 
 | 			local-mac-address = [ 00 00 00 00 00 00 ]; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &usdhc2 { | 
 | 	vmmc-supply = <®_vdd_3v3>; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &iomuxc { | 
 | 	pinctrl_can: cangrp { | 
 | 		fsl,pins = < | 
 | 			MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1			0x19  /* SDIO_B_PWR_EN */ | 
 | 		>; | 
 | 	}; | 
 |  | 
 | 	pinctrl_usb_hub: usbhubgrp { | 
 | 		fsl,pins = < | 
 | 			MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2		0x19 /* SDIO_B_WP */ | 
 | 		>; | 
 | 	}; | 
 | }; |