From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2CDD3C88E50 for ; Fri, 11 Sep 2026 09:21:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lhQ0s/YhP1w0rT3tIUApfrO0PRobLOkstDVUOplcnfA=; b=gkB2c3Bddgch1enDZeeT0rnvfQ mlbNaXtxZUGDvHqHISeG+ljix0JkAuvqjphle+h8qJXFHId10QoSvDD1/0LVp7hJxxEe4E5B7WmiT /N6FI64ATPDmftiB3k7XwYYcf4sQvuyxe+7mI47QMWBCLxim7+kbpfo5tXOjlNQZbVIqt/pn6Ga+v MOBhZzBAs6PhKhmpljbJbY61tJKdFVLPgLnWqpXUg1n8+zm3rRt+3f3i3Ek03R97Vj/D4qKzmYOZW bHdJ15uUIpySfvju5FotX3UHMjp7JTVmGBo6uayxi4vPP7GQnRCDQE2vCapELk1ov1b+xc34h2LxH QoSYNxIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x4xRF-0000000GFXM-2nwU; Fri, 11 Sep 2026 09:20:53 +0000 Received: from mail11.truemail.it ([2001:4b7e:0:8::81]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x4xQu-0000000GFJZ-0l0u for linux-arm-kernel@lists.infradead.org; Fri, 11 Sep 2026 09:20:35 +0000 Received: from francesco-nb.. (93-33-8-46.ip42.fastwebnet.it [93.33.8.46]) by mail11.truemail.it (Postfix) with ESMTPA id 60E2522E12; Fri, 11 Sep 2026 11:20:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dolcini.it; s=default; t=1789118430; bh=lhQ0s/YhP1w0rT3tIUApfrO0PRobLOkstDVUOplcnfA=; h=From:To:Subject; b=TIvIlmVCfpqZTKuxrzJLavz0mqniMYEU7Sfo8xGdNYAZEQCVByICFaDLg+CQBwAQ7 bWNxQEAxMxkoE9ynw0nkcjuKeZ/sR4Wzvu5l5nFR01kj/089/ys6mIOKH3BRc0063S JO2jeSB5/0BPjxLksYpFs5jL6uJtvj+G9KXUTaagyZZcO5/FZHt0UdNborw9DEgvyM 6VEFAuj/pcO1dLSB53uSH1Gqs/6tS0Ct3+9iouGYAXCwqZBzHfzmPnzldotMK33dVT nsUJBFTDEeBLlMvhDBEoYF8PPmOqdHjb4go1pAL0M0+e5cxjawyK15J9EJEGK2lcDX lOjBuX4aSCPxg== From: Francesco Dolcini To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Shawn Guo Cc: Francesco Dolcini , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 7/7] arm64: dts: freescale: Add Toradex OSM iMX91 Date: Fri, 11 Sep 2026 11:19:50 +0200 Message-ID: <20260911091952.96233-8-francesco@dolcini.it> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260911091952.96233-1-francesco@dolcini.it> References: <20260911091952.96233-1-francesco@dolcini.it> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260911_022034_096687_ECDD64DF X-CRM114-Status: GOOD ( 12.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Francesco Dolcini Add support for the OSM iMX91 SoM and the development carrier board that can be mated with. Link: https://www.toradex.com/computer-on-modules/osm-arm-family/nxp-imx91 Link: https://www.toradex.com/products/carrier-board/osm-development-board Signed-off-by: Francesco Dolcini --- arch/arm64/boot/dts/freescale/Makefile | 2 + .../dts/freescale/imx91-toradex-osm-dev.dts | 22 ++ .../boot/dts/freescale/imx91-toradex-osm.dtsi | 303 ++++++++++++++++++ 3 files changed, 327 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/imx91-toradex-osm-dev.dts create mode 100644 arch/arm64/boot/dts/freescale/imx91-toradex-osm.dtsi diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 64fa5d0527ff..39686f17891b 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -856,6 +856,8 @@ imx91-phyboard-segin-peb-av-18-dtbs += imx91-phyboard-segin.dtb imx91-phyboard-s dtb-$(CONFIG_ARCH_MXC) += imx91-9x9-qsb-can1.dtb dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin-peb-av-18.dtb +dtb-$(CONFIG_ARCH_MXC) += imx91-toradex-osm-dev.dtb + dtb-$(CONFIG_ARCH_MXC) += imx91-tqma9131-mba91xxca.dtb dtb-$(CONFIG_ARCH_MXC) += imx91-tqma9131-mba93xxca.dtb diff --git a/arch/arm64/boot/dts/freescale/imx91-toradex-osm-dev.dts b/arch/arm64/boot/dts/freescale/imx91-toradex-osm-dev.dts new file mode 100644 index 000000000000..ec5e701fb275 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx91-toradex-osm-dev.dts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT +/* + * Copyright (c) Toradex + * + * Toradex OSM iMX91 SoM on OSM Development carrier board + * + * https://www.toradex.com/computer-on-modules/osm-arm-family/nxp-imx91 + * https://www.toradex.com/products/carrier-board/osm-development-board + */ + +/dts-v1/; + +#include "imx91.dtsi" +#include "imx91-toradex-osm.dtsi" +#include "imx93-imx91-toradex-osm-dev-common.dtsi" + +/ { + model = "Toradex OSM iMX91 on OSM Development Board"; + compatible = "toradex,osm-imx91-dev", + "toradex,osm-imx91", + "fsl,imx91"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx91-toradex-osm.dtsi b/arch/arm64/boot/dts/freescale/imx91-toradex-osm.dtsi new file mode 100644 index 000000000000..9d990937fd8d --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx91-toradex-osm.dtsi @@ -0,0 +1,303 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT +/* + * Copyright (c) Toradex + * + * Toradex OSM iMX91 SoM + * + * https://www.toradex.com/computer-on-modules/osm-arm-family/nxp-imx91 + */ + +#include "imx91-pinfunc.h" +#include "imx93-imx91-toradex-osm-common.dtsi" + +&iomuxc { + /* OSM CAN_A */ + pinctrl_can_a: can1grp { + fsl,pins = , /* OSM AB17 */ + ; /* OSM AC17 */ + }; + + /* OSM CAN_B */ + pinctrl_can_b: can2grp { + fsl,pins = , /* OSM AC19 */ + ; /* OSM AB19 */ + }; + + /* OSM CAM_MCK */ + pinctrl_cam_mck: ccmclk1grp { + fsl,pins = ; /* OSM C2 */ + }; + + /* OSM ETH_A RGMII */ + pinctrl_eth_a: eqosgrp { + fsl,pins = , /* OSM K15 */ + , /* OSM L15 */ + , /* OSM N15 */ + , /* OSM P15 */ + , /* OSM R15 */ + , /* OSM M15 */ + , /* OSM H15 */ + , /* OSM G15 */ + , /* OSM H16 */ + , /* OSM G16 */ + , /* OSM J15 */ + ; /* OSM K16 */ + }; + + /* OSM ETH_MDIO */ + pinctrl_mdio: eqosmdiogrp { + fsl,pins = , /* OSM T16 */ + ; /* OSM T15 */ + }; + + /* OSM ETH_B RGMII */ + pinctrl_eth_b: fecgrp { + fsl,pins = , /* OSM J1 */ + , /* OSM K1 */ + , /* OSM M1 */ + , /* OSM N1 */ + , /* OSM P1 */ + , /* OSM L1 */ + , /* OSM G1 */ + , /* OSM F1 */ + , /* OSM G2 */ + , /* OSM F2 */ + , /* OSM H1 */ + ; /* OSM J2 */ + }; + + /* OSM SPI_B_CS as GPIO */ + pinctrl_spi_b_cs0_gpio: gpio1io11grp { + fsl,pins = ; /* OSM AA23 */ + }; + + /* OSM GPIO_A_0 */ + pinctrl_gpio_a0: gpio2io0grp { + fsl,pins = ; /* OSM D17 */ + }; + + /* OSM GPIO_A_1 */ + pinctrl_gpio_a1: gpio2io1grp { + fsl,pins = ; /* OSM E17 */ + }; + + /* OSM GPIO_A_2 */ + pinctrl_gpio_a2: gpio2io2grp { + fsl,pins = ; /* OSM F17 */ + }; + + /* OSM GPIO_A_3 */ + pinctrl_gpio_a3: gpio2io3grp { + fsl,pins = ; /* OSM G17 */ + }; + + /* OSM SPI_A_CS0 as GPIO */ + pinctrl_spi_a_cs0_gpio: gpio2io12grp { + fsl,pins = ; /* OSM Y15 */ + }; + + /* OSM PWM_0 as GPIO */ + pinctrl_pwm0_gpio: gpio2io21grp { + fsl,pins = ; /* OSM E18 */ + }; + + /* OSM GPIO_A_4 */ + pinctrl_gpio_a4: gpio2io22grp { + fsl,pins = ; /* OSM H17 */ + }; + + /* OSM GPIO_A_5 */ + pinctrl_gpio_a5: gpio2io24grp { + fsl,pins = ; /* OSM J17 */ + }; + + /* On-module CTRL_INT# */ + pinctrl_ctrl_int: gpio3io27grp { + fsl,pins = ; /* CTRL_INT# */ + }; + + /* OSM GPIO_A_6 */ + pinctrl_gpio_a6: gpio4io14grp { + fsl,pins = ; /* OSM K17 */ + }; + + /* OSM GPIO_A_7 */ + pinctrl_gpio_a7: gpio4io15grp { + fsl,pins = ; /* OSM L17 */ + }; + + /* OSM I2C_B as GPIO */ + pinctrl_i2c_b_gpio: lpi2c1gpiogrp { + fsl,pins = , /* OSM AA20 */ + ; /* OSM AA21 */ + }; + + /* OSM I2C_B */ + pinctrl_i2c_b: lpi2c1grp { + fsl,pins = , /* OSM AA20 */ + ; /* OSM AA21 */ + }; + + /* On-module PMIC I2C as GPIO */ + pinctrl_pmic_i2c_gpio: lpi2c2gpiogrp { + fsl,pins = , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ + }; + + /* On-module PMIC I2C */ + pinctrl_pmic_i2c: lpi2c2grp { + fsl,pins = , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ + }; + + /* OSM I2C_A as GPIO */ + pinctrl_i2c_a_gpio: lpi2c3gpiogrp { + fsl,pins = , /* OSM AA16 */ + ; /* OSM AA15 */ + }; + + /* OSM I2C_A */ + pinctrl_i2c_a: lpi2c3grp { + fsl,pins = , /* OSM AA16 */ + ; /* OSM AA15 */ + }; + + /* OSM SPI_B */ + pinctrl_spi_b: lpspi1grp { + fsl,pins = , /* OSM Y22 */ + , /* OSM Y21 */ + ; /* OSM Y23 */ + }; + + /* OSM SPI_A */ + pinctrl_spi_a: lpspi8grp { + fsl,pins = , /* OSM U15 */ + , /* OSM V15 */ + ; /* OSM U16 */ + }; + + /* OSM UART_CON */ + pinctrl_uart_con: lpuart1grp { + fsl,pins = , /* OSM D22 */ + ; /* OSM D23 */ + }; + + /* OSM UART_C */ + pinctrl_uart_c: lpuart2grp { + fsl,pins = , /* OSM A22 */ + ; /* OSM B23 */ + }; + + /* OSM UART_A */ + pinctrl_uart_a: lpuart6grp { + fsl,pins = , /* OSM B13 */ + , /* OSM A14 */ + , /* OSM C14 */ + ; /* OSM C13 */ + }; + + /* OSM UART_B */ + pinctrl_uart_b: lpuart7grp { + fsl,pins = , /* OSM D13 */ + , /* OSM D14 */ + , /* OSM D16 */ + ; /* OSM D15 */ + }; + + /* OSM I2S_A */ + pinctrl_i2s_a: sai3grp { + fsl,pins = , /* OSM W20 */ + , /* OSM W21 */ + , /* OSM V21 */ + ; /* OSM W18 */ + }; + + /* OSM I2S_MCLK */ + pinctrl_i2s_a_mclk: sai3mclkgrp { + fsl,pins = ; /* OSM V18 */ + }; + + /* OSM PWM_0 */ + pinctrl_pwm0: tpm4ch1grp { + fsl,pins = ; /* OSM E18 */ + }; + + /* OSM PWM_1 */ + pinctrl_pwm1: tpm5ch2grp { + fsl,pins = ; /* OSM F18 */ + }; + + /* OSM PWM_2 */ + pinctrl_pwm2: tpm6ch1grp { + fsl,pins = ; /* OSM G18 */ + }; + + /* OSM USB_A_EN */ + pinctrl_usb_a_en: usb1engrp { + fsl,pins = ; /* OSM AC16 */ + }; + + /* OSM USB_A_OC# */ + pinctrl_usb_a_oc: usb1ocgrp { + fsl,pins = ; /* OSM AC15 */ + }; + + /* OSM USB_B_EN */ + pinctrl_usb_b_en: usb2engrp { + fsl,pins = ; /* OSM AC20 */ + }; + + /* On-module eMMC */ + pinctrl_emmc: usdhc1grp { + fsl,pins = , /* eMMC_CLK */ + , /* eMMC_CMD */ + , /* eMMC_DATA0 */ + , /* eMMC_DATA1 */ + , /* eMMC_DATA2 */ + , /* eMMC_DATA3 */ + , /* eMMC_DATA4 */ + , /* eMMC_DATA5 */ + , /* eMMC_DATA6 */ + , /* eMMC_DATA7 */ + ; /* eMMC_STROBE */ + }; + + /* OSM SDIO_A_CD# */ + pinctrl_sdio_a_cd: usdhc2cdgrp { + fsl,pins = ; /* OSM J21 */ + }; + + /* OSM SDIO_A */ + pinctrl_sdio_a: usdhc2grp { + fsl,pins = , /* OSM F21 */ + , /* OSM E20 */ + , /* OSM G20 */ + , /* OSM G21 */ + , /* OSM H20 */ + ; /* OSM H21 */ + }; + + /* OSM SDIO_A_PWR_EN */ + pinctrl_sdio_a_pwr_en: usdhc2pwrgrp { + fsl,pins = ; /* OSM D21 */ + }; + + /* On-module PMIC_SD_2_VSEL */ + pinctrl_sdio_a_vsel: usdhc2vselgrp { + fsl,pins = ; /* PMIC_SD_2_VSEL */ + }; + + /* OSM SDIO_B */ + pinctrl_sdio_b: usdhc3grp { + fsl,pins = , /* OSM K20 */ + , /* OSM K21 */ + , /* OSM L20 */ + , /* OSM L21 */ + , /* OSM M21 */ + ; /* OSM N20 */ + }; + + pinctrl_wdog: wdoggrp { + fsl,pins = ; /* PMIC_WDOG_B */ + }; +}; -- 2.47.3