1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*5f62a964SEmmanuel Vadot/* 3*5f62a964SEmmanuel Vadot * Copyright (C) 2024 Kontron Electronics GmbH 4*5f62a964SEmmanuel Vadot */ 5*5f62a964SEmmanuel Vadot 6*5f62a964SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 7*5f62a964SEmmanuel Vadot#include "imx8mp-kontron-osm-s.dtsi" 8*5f62a964SEmmanuel Vadot 9*5f62a964SEmmanuel Vadot/ { 10*5f62a964SEmmanuel Vadot model = "Kontron SMARC i.MX8MP"; 11*5f62a964SEmmanuel Vadot compatible = "kontron,imx8mp-smarc", "kontron,imx8mp-osm-s", "fsl,imx8mp"; 12*5f62a964SEmmanuel Vadot 13*5f62a964SEmmanuel Vadot leds { 14*5f62a964SEmmanuel Vadot compatible = "gpio-leds"; 15*5f62a964SEmmanuel Vadot 16*5f62a964SEmmanuel Vadot led1 { 17*5f62a964SEmmanuel Vadot label = "led1"; 18*5f62a964SEmmanuel Vadot gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; 19*5f62a964SEmmanuel Vadot linux,default-trigger = "heartbeat"; 20*5f62a964SEmmanuel Vadot }; 21*5f62a964SEmmanuel Vadot }; 22*5f62a964SEmmanuel Vadot}; 23*5f62a964SEmmanuel Vadot 24*5f62a964SEmmanuel Vadot&ecspi1 { 25*5f62a964SEmmanuel Vadot status = "okay"; 26*5f62a964SEmmanuel Vadot 27*5f62a964SEmmanuel Vadot tpm@0 { 28*5f62a964SEmmanuel Vadot compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; 29*5f62a964SEmmanuel Vadot reg = <0>; 30*5f62a964SEmmanuel Vadot spi-max-frequency = <18500000>; 31*5f62a964SEmmanuel Vadot }; 32*5f62a964SEmmanuel Vadot}; 33*5f62a964SEmmanuel Vadot 34*5f62a964SEmmanuel Vadot&eqos { /* Second ethernet (OSM-S ETH_B) */ 35*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 36*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_eqos_rgmii>; 37*5f62a964SEmmanuel Vadot phy-mode = "rgmii-id"; 38*5f62a964SEmmanuel Vadot phy-handle = <ðphy1>; 39*5f62a964SEmmanuel Vadot 40*5f62a964SEmmanuel Vadot mdio { 41*5f62a964SEmmanuel Vadot compatible = "snps,dwmac-mdio"; 42*5f62a964SEmmanuel Vadot #address-cells = <1>; 43*5f62a964SEmmanuel Vadot #size-cells = <0>; 44*5f62a964SEmmanuel Vadot 45*5f62a964SEmmanuel Vadot ethphy1: ethernet-phy@1 { 46*5f62a964SEmmanuel Vadot compatible = "ethernet-phy-id4f51.e91b"; 47*5f62a964SEmmanuel Vadot reg = <1>; 48*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_ethphy1>; 49*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 50*5f62a964SEmmanuel Vadot reset-assert-us = <10000>; 51*5f62a964SEmmanuel Vadot reset-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; 52*5f62a964SEmmanuel Vadot }; 53*5f62a964SEmmanuel Vadot }; 54*5f62a964SEmmanuel Vadot}; 55*5f62a964SEmmanuel Vadot 56*5f62a964SEmmanuel Vadot&fec { /* First ethernet (OSM-S ETH_A) */ 57*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 58*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_enet_rgmii>; 59*5f62a964SEmmanuel Vadot phy-connection-type = "rgmii-id"; 60*5f62a964SEmmanuel Vadot phy-handle = <ðphy0>; 61*5f62a964SEmmanuel Vadot 62*5f62a964SEmmanuel Vadot mdio { 63*5f62a964SEmmanuel Vadot #address-cells = <1>; 64*5f62a964SEmmanuel Vadot #size-cells = <0>; 65*5f62a964SEmmanuel Vadot 66*5f62a964SEmmanuel Vadot ethphy0: ethernet-phy@1 { 67*5f62a964SEmmanuel Vadot compatible = "ethernet-phy-id4f51.e91b"; 68*5f62a964SEmmanuel Vadot reg = <1>; 69*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_ethphy0>; 70*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 71*5f62a964SEmmanuel Vadot reset-assert-us = <10000>; 72*5f62a964SEmmanuel Vadot reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 73*5f62a964SEmmanuel Vadot }; 74*5f62a964SEmmanuel Vadot }; 75*5f62a964SEmmanuel Vadot}; 76*5f62a964SEmmanuel Vadot 77*5f62a964SEmmanuel Vadot/* 78*5f62a964SEmmanuel Vadot * Rename SoM signals according to SMARC module usage: 79*5f62a964SEmmanuel Vadot * GPIO_A_2 -> GPIO0 80*5f62a964SEmmanuel Vadot * GPIO_A_3 -> GPIO1 81*5f62a964SEmmanuel Vadot * GPIO_A_4 -> GPIO2 82*5f62a964SEmmanuel Vadot * GPIO_A_5 -> GPIO3 83*5f62a964SEmmanuel Vadot * USB_B_EN -> n.a. 84*5f62a964SEmmanuel Vadot * USB_B_ID -> n.a. 85*5f62a964SEmmanuel Vadot * USB_B_OC -> n.a. 86*5f62a964SEmmanuel Vadot */ 87*5f62a964SEmmanuel Vadot&gpio1 { 88*5f62a964SEmmanuel Vadot gpio-line-names = "GPIO_A_0", "GPIO_A_1", "", "", 89*5f62a964SEmmanuel Vadot "", "GPIO0", "GPIO1", "GPIO2", 90*5f62a964SEmmanuel Vadot "GPIO3", "", "USB_A_ID", "", 91*5f62a964SEmmanuel Vadot "USB_A_EN", "USB_A_OC","CAM_MCK", "", 92*5f62a964SEmmanuel Vadot "ETH_B_MDC", "ETH_B_MDIO", "ETH_B_TXD3", "ETH_B_TXD2", 93*5f62a964SEmmanuel Vadot "ETH_B_TXD1", "ETH_B_TXD0", "ETH_B_TX_EN", "ETH_B_TX_CLK", 94*5f62a964SEmmanuel Vadot "ETH_B_RX_DV", "ETH_B_RX_CLK", "ETH_B_RXD0", "ETH_B_RXD1", 95*5f62a964SEmmanuel Vadot "ETH_B_RXD2", "ETH_B_RXD3"; 96*5f62a964SEmmanuel Vadot}; 97*5f62a964SEmmanuel Vadot 98*5f62a964SEmmanuel Vadot/* 99*5f62a964SEmmanuel Vadot * Rename SoM signals according to SMARC module usage: 100*5f62a964SEmmanuel Vadot * SDIO_A_CD -> SDIO_CD 101*5f62a964SEmmanuel Vadot * SDIO_A_CLK -> SDIO_CK 102*5f62a964SEmmanuel Vadot * SDIO_A_CMD -> SDIO_CMD 103*5f62a964SEmmanuel Vadot * SDIO_A_D0 -> SDIO_D0 104*5f62a964SEmmanuel Vadot * SDIO_A_D1 -> SDIO_D1 105*5f62a964SEmmanuel Vadot * SDIO_A_D2 -> SDIO_D2 106*5f62a964SEmmanuel Vadot * SDIO_A_D3 -> SDIO_D3 107*5f62a964SEmmanuel Vadot * SDIO_A_PWR_EN -> SDIO_PWR_EN 108*5f62a964SEmmanuel Vadot * SDIO_A_WP -> SDIO_WP 109*5f62a964SEmmanuel Vadot */ 110*5f62a964SEmmanuel Vadot&gpio2 { 111*5f62a964SEmmanuel Vadot gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", 112*5f62a964SEmmanuel Vadot "SDIO_CD", "SDIO_CK", "SDIO_CMD", "SDIO_D0", 113*5f62a964SEmmanuel Vadot "SDIO_D1", "SDIO_D2", "SDIO_D3", "SDIO_PWR_EN", 114*5f62a964SEmmanuel Vadot "SDIO_WP"; 115*5f62a964SEmmanuel Vadot}; 116*5f62a964SEmmanuel Vadot 117*5f62a964SEmmanuel Vadot/* 118*5f62a964SEmmanuel Vadot * Rename SoM signals according to SMARC module usage: 119*5f62a964SEmmanuel Vadot * PCIE_CLKREQ -> PCIE_A_CKREQ 120*5f62a964SEmmanuel Vadot * PCIE_A_PERST -> PCIE_A_RST 121*5f62a964SEmmanuel Vadot * SDIO_B_D5 -> n.a. 122*5f62a964SEmmanuel Vadot * SDIO_B_D6 -> n.a. 123*5f62a964SEmmanuel Vadot * SDIO_B_D7 -> n.a. 124*5f62a964SEmmanuel Vadot * SPI_A_WP -> n.a. 125*5f62a964SEmmanuel Vadot * SPI_A_HOLD -> n.a. 126*5f62a964SEmmanuel Vadot * UART_B_RTS -> SER2_RTS 127*5f62a964SEmmanuel Vadot * UART_B_CTS -> SER2_CTS 128*5f62a964SEmmanuel Vadot * SDIO_B_D0 -> GPIO8 129*5f62a964SEmmanuel Vadot * SDIO_B_D1 -> GPIO9 130*5f62a964SEmmanuel Vadot * SDIO_B_D2 -> GPIO10 131*5f62a964SEmmanuel Vadot * SDIO_B_D3 -> GPIO11 132*5f62a964SEmmanuel Vadot * SDIO_B_WP -> n.a. 133*5f62a964SEmmanuel Vadot * SDIO_B_D4 -> n.a. 134*5f62a964SEmmanuel Vadot * PCIE_SM_ALERT -> SMB_ALERT 135*5f62a964SEmmanuel Vadot * SDIO_B_CLK -> GPIO6 136*5f62a964SEmmanuel Vadot * SDIO_B_CMD -> GPIO7 137*5f62a964SEmmanuel Vadot * GPIO_B_0 -> LCD0_BKLT_EN 138*5f62a964SEmmanuel Vadot * GPIO_B_1 -> LCD1_BKLT_EN 139*5f62a964SEmmanuel Vadot * BOOT_SEL0 -> BOOT_SEL2 140*5f62a964SEmmanuel Vadot * SDIO_B_CD -> n.a. 141*5f62a964SEmmanuel Vadot * SDIO_B_PWR_EN -> n.a. 142*5f62a964SEmmanuel Vadot * HDMI_CEC -> n.a. 143*5f62a964SEmmanuel Vadot * SDIO_B_PWR_EN -> n.a. 144*5f62a964SEmmanuel Vadot */ 145*5f62a964SEmmanuel Vadot&gpio3 { 146*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_gpio3>, <&pinctrl_gpio3_smarc>; 147*5f62a964SEmmanuel Vadot gpio-line-names = "PCIE_WAKE", "PCIE_A_CKREQ", "PCIE_A_RST", "", 148*5f62a964SEmmanuel Vadot "", "", "", "", 149*5f62a964SEmmanuel Vadot "SER2_RTS", "SER2_CTS", "GPIO8", "GPIO9", 150*5f62a964SEmmanuel Vadot "GPIO10", "GPIO11", "", "", 151*5f62a964SEmmanuel Vadot "SMB_ALERT", "GPIO6", "GPIO7", "LCD0_BKLT_EN", 152*5f62a964SEmmanuel Vadot "LCD1_BKLT_EN", "", "BOOT_SEL2", "BOOT_SEL1", 153*5f62a964SEmmanuel Vadot "", "", "", "", 154*5f62a964SEmmanuel Vadot "", "HDMI_HPD"; 155*5f62a964SEmmanuel Vadot}; 156*5f62a964SEmmanuel Vadot 157*5f62a964SEmmanuel Vadot/* 158*5f62a964SEmmanuel Vadot * Rename SoM signals according to SMARC module usage: 159*5f62a964SEmmanuel Vadot * GPIO_B_5 -> n.a. 160*5f62a964SEmmanuel Vadot * GPIO_B_6 -> n.a. 161*5f62a964SEmmanuel Vadot * GPIO_B_7 -> n.a. 162*5f62a964SEmmanuel Vadot * GPIO_C_0 -> LED 163*5f62a964SEmmanuel Vadot * GPIO_B_3 -> ETH2_INT 164*5f62a964SEmmanuel Vadot * GPIO_B_4 -> USB_HUB_RST 165*5f62a964SEmmanuel Vadot * GPIO_B_2 -> ETH1_INT 166*5f62a964SEmmanuel Vadot * GPIO_A_6 -> GPIO4 167*5f62a964SEmmanuel Vadot * CAN_A_TX -> CAN0_TX 168*5f62a964SEmmanuel Vadot * UART_A_CTS -> SER0_CTS 169*5f62a964SEmmanuel Vadot * UART_A_RTS -> SER0_RTS 170*5f62a964SEmmanuel Vadot * CAN_A_RX -> CAN0_RX 171*5f62a964SEmmanuel Vadot * CAN_B_TX -> CAN1_TX 172*5f62a964SEmmanuel Vadot * CAN_B_RX -> CAN1_RX 173*5f62a964SEmmanuel Vadot * GPIO_A_7 -> TEST 174*5f62a964SEmmanuel Vadot * I2S_A_DATA_IN -> I2S0_SDIN 175*5f62a964SEmmanuel Vadot * I2S_LRCLK -> I2S0_LRCK 176*5f62a964SEmmanuel Vadot */ 177*5f62a964SEmmanuel Vadot&gpio4 { 178*5f62a964SEmmanuel Vadot gpio-line-names = "", "", "", "LED", 179*5f62a964SEmmanuel Vadot "ETH_A_MDC", "ETH_A_MDIO", "ETH_A_RXD0", "ETH_A_RXD1", 180*5f62a964SEmmanuel Vadot "ETH_A_RXD2", "ETH_A_RXD3", "ETH_A_RX_DV", "ETH_A_RX_CLK", 181*5f62a964SEmmanuel Vadot "ETH_A_TXD0", "ETH_A_TXD1", "ETH_A_TXD2", "ETH_A_TXD3", 182*5f62a964SEmmanuel Vadot "ETH_A_TX_EN", "ETH_A_TX_CLK", "ETH2_INT", "USB_HUB_RST", 183*5f62a964SEmmanuel Vadot "ETH1_INT", "GPIO4", "CAN0_TX", "SER0_CTS", 184*5f62a964SEmmanuel Vadot "SER0_RTS", "CAN0_RX", "CAN1_TX", "CAN1_RX", 185*5f62a964SEmmanuel Vadot "TEST", "CARRIER_PWR_EN", "I2S0_SDIN", "I2S0_LRCK"; 186*5f62a964SEmmanuel Vadot}; 187*5f62a964SEmmanuel Vadot 188*5f62a964SEmmanuel Vadot/* 189*5f62a964SEmmanuel Vadot * Rename SoM signals according to SMARC module usage: 190*5f62a964SEmmanuel Vadot * I2S_BITCLK -> I2S0_CK 191*5f62a964SEmmanuel Vadot * I2S_A_DATA_OUT -> I2S0_SDOUT 192*5f62a964SEmmanuel Vadot * I2S_MCLK -> AUDIO_MCK 193*5f62a964SEmmanuel Vadot * PWM_2 -> GPIO5 194*5f62a964SEmmanuel Vadot * PWM_1 -> LCD1_BKLT_PWM 195*5f62a964SEmmanuel Vadot * PWM_0 -> LCD0_BKLT_PWM 196*5f62a964SEmmanuel Vadot * SPI_A_SCK -> SPI0_CK 197*5f62a964SEmmanuel Vadot * SPI_A_SDO -> SPI0_DO 198*5f62a964SEmmanuel Vadot * SPI_A_SDI -> SPI0_DIN 199*5f62a964SEmmanuel Vadot * SPI_A_CS0 -> SPI0_CS0 200*5f62a964SEmmanuel Vadot * SPI_B_SCK -> ESPI_CK 201*5f62a964SEmmanuel Vadot * SPI_B_SDO -> ESPI_IO_0 202*5f62a964SEmmanuel Vadot * SPI_B_SDI -> ESPI_IO_1 203*5f62a964SEmmanuel Vadot * SPI_B_CS0 -> ESPI_CS0 204*5f62a964SEmmanuel Vadot * I2C_A_SCL -> I2C_PM_CK 205*5f62a964SEmmanuel Vadot * I2C_A_SDA -> I2C_PM_DAT 206*5f62a964SEmmanuel Vadot * I2C_B_SCL -> I2C_GP_CK 207*5f62a964SEmmanuel Vadot * I2C_B_SDA -> I2C_GP_DAT 208*5f62a964SEmmanuel Vadot * PCIE_SMCLK -> HDMI_CTRL_CK 209*5f62a964SEmmanuel Vadot * PCIE_SMDAT -> HDMI_CTRL_DAT 210*5f62a964SEmmanuel Vadot * I2C_CAM_SCL -> I2C_CAM1_CK 211*5f62a964SEmmanuel Vadot * I2C_CAM_SDA -> I2C_CAM1_DAT 212*5f62a964SEmmanuel Vadot * UART_A_RX -> SER0_RX 213*5f62a964SEmmanuel Vadot * UART_A_TX -> SER0_TX 214*5f62a964SEmmanuel Vadot * UART_C_RX -> SER3_RX 215*5f62a964SEmmanuel Vadot * UART_C_TX -> SER3_TX 216*5f62a964SEmmanuel Vadot * UART_CON_RX -> SER1_RX 217*5f62a964SEmmanuel Vadot * UART_CON_TX -> SER1_TX 218*5f62a964SEmmanuel Vadot * UART_B_RX -> SER2_RX 219*5f62a964SEmmanuel Vadot * UART_B_TX -> SER2_TX 220*5f62a964SEmmanuel Vadot */ 221*5f62a964SEmmanuel Vadot&gpio5 { 222*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 223*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_gpio5_smarc>; 224*5f62a964SEmmanuel Vadot gpio-line-names = "I2S0_CK", "I2S0_SDOUT", "AUDIO_MCK", "GPIO5", 225*5f62a964SEmmanuel Vadot "LCD1_BKLT_PWM", "LCD0_BKLT_PWM", "SPI0_CK", "SPI0_DO", 226*5f62a964SEmmanuel Vadot "SPI0_DIN", "SPI0_CS0", "ESPI_CK", "ESPI_IO_0", 227*5f62a964SEmmanuel Vadot "ESPI_IO_1", "ESPI_CS0", "I2C_PM_CK", "I2C_PM_DAT", 228*5f62a964SEmmanuel Vadot "I2C_GP_CK", "I2C_GP_DAT", "HDMI_CTRL_CK", "HDMI_CTRL_DAT", 229*5f62a964SEmmanuel Vadot "I2C_CAM1_CK", "I2C_CAM1_DAT", "SER0_RX", "SER0_TX", 230*5f62a964SEmmanuel Vadot "SER3_RX", "SER3_TX", "SER1_RX", "SER1_TX", 231*5f62a964SEmmanuel Vadot "SER2_RX", "SER2_TX"; 232*5f62a964SEmmanuel Vadot}; 233*5f62a964SEmmanuel Vadot 234*5f62a964SEmmanuel Vadot&usb_dwc3_1 { 235*5f62a964SEmmanuel Vadot dr_mode = "host"; 236*5f62a964SEmmanuel Vadot #address-cells = <1>; 237*5f62a964SEmmanuel Vadot #size-cells = <0>; 238*5f62a964SEmmanuel Vadot 239*5f62a964SEmmanuel Vadot usb-hub@1 { 240*5f62a964SEmmanuel Vadot compatible = "usb424,2514"; 241*5f62a964SEmmanuel Vadot reg = <1>; 242*5f62a964SEmmanuel Vadot reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>; 243*5f62a964SEmmanuel Vadot }; 244*5f62a964SEmmanuel Vadot}; 245*5f62a964SEmmanuel Vadot 246*5f62a964SEmmanuel Vadot&usb3_1 { 247*5f62a964SEmmanuel Vadot fsl,disable-port-power-control; 248*5f62a964SEmmanuel Vadot fsl,permanently-attached; 249*5f62a964SEmmanuel Vadot}; 250*5f62a964SEmmanuel Vadot 251*5f62a964SEmmanuel Vadot&iomuxc { 252*5f62a964SEmmanuel Vadot pinctrl_ethphy0: ethphy0grp { 253*5f62a964SEmmanuel Vadot fsl,pins = < 254*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01 0x46 255*5f62a964SEmmanuel Vadot >; 256*5f62a964SEmmanuel Vadot }; 257*5f62a964SEmmanuel Vadot 258*5f62a964SEmmanuel Vadot pinctrl_ethphy1: ethphy1grp { 259*5f62a964SEmmanuel Vadot fsl,pins = < 260*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00 0x46 261*5f62a964SEmmanuel Vadot >; 262*5f62a964SEmmanuel Vadot }; 263*5f62a964SEmmanuel Vadot 264*5f62a964SEmmanuel Vadot pinctrl_gpio3_smarc: gpio3smarcgrp { 265*5f62a964SEmmanuel Vadot fsl,pins = < 266*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_DATA04__GPIO3_IO10 0x1d0 /* SMARC GPIO8 */ 267*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_DATA05__GPIO3_IO11 0x1d0 /* SMARC GPIO9 */ 268*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_DATA06__GPIO3_IO12 0x1d0 /* SMARC GPIO10 */ 269*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_DATA07__GPIO3_IO13 0x1d0 /* SMARC GPIO11 */ 270*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_WE_B__GPIO3_IO17 0x190 /* SMARC GPIO6 */ 271*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_NAND_WP_B__GPIO3_IO18 0x1d0 /* SMARC GPIO7 */ 272*5f62a964SEmmanuel Vadot >; 273*5f62a964SEmmanuel Vadot }; 274*5f62a964SEmmanuel Vadot 275*5f62a964SEmmanuel Vadot pinctrl_gpio5_smarc: gpio5smarcgrp { 276*5f62a964SEmmanuel Vadot fsl,pins = < 277*5f62a964SEmmanuel Vadot MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04 0x1d0 /* SMARC GPIO5 */ 278*5f62a964SEmmanuel Vadot >; 279*5f62a964SEmmanuel Vadot }; 280*5f62a964SEmmanuel Vadot}; 281