| // 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 */ |
| >; |
| }; |
| }; |