From nobody Thu Apr 9 23:27:31 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59B183E51CD for ; Thu, 5 Mar 2026 17:25:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772731502; cv=none; b=RxuZcgJnttH2rgOD9eQg6gH2dAxXMHdlhhZHyhc+WeWR1cj5R6GTKjdqfgLG/6ZWkt1nDoZQjXM8MxViBXYmuWY1y6OzBtFD5IhQQZKQrmKpPLw1imPxECWFg0Jmb4FQMXkyZiyFcI0DzLPohXHIgEvBM5RIzXZFV80D0LQaKOI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772731502; c=relaxed/simple; bh=xRl7hCvbERgFmtx15Ylx3wi3ZjF+EvbTBRHkpaXUVWM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gtn9Yjoq6VIPPeHRNGI7Y6xDjakb6Hyn0Gwbe13Az8rDCKiqo9uflkWr67BbEJFGKMtGebyf0IsLks9yJwdFcC7R/G6LivI3qC9m69CkcV50VQMbSdUAyQh1X2utsQKwMYtI3JIRQmMAbPKDrao0cXQYJExfma0EB7C7QXo3D08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DouakEFA; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DouakEFA" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-483bd7354efso109618835e9.2 for ; Thu, 05 Mar 2026 09:25:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772731499; x=1773336299; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DmMrfremCneDw6tfYwX6DSZjUbNIQEkYQLqM5+X9+98=; b=DouakEFAgwrA05aWzehXCh91NAAOTu1plGGSgtAGG6HcaBELU0xIAvKFHI7ME11NL2 e4i7RU676K2gkLYB8fLiHu/INWcAgqPNyNo3DVUEyAoU7/Pmy+yc0uBugh+TNuLXiOsn 3k2pRWAqWe7Ih1cOSj8ZHNXB91ZduWCEzm3YhaMSo9Xn1U8ENPb/8HLGeO6IkHSncvWp gZInTZvyEDhDn32hOGUvUwADykjNhggovLcAHbxjMFXuuPrrfk6OEEfQi+zpB+5X72/L DabkZbYpbXbJZ+mosgX5Vu7kBx6DHn4ByWF+yYiWHgAxunR2xyk5CrgWEvZX4FWBaw62 xqHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772731499; x=1773336299; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DmMrfremCneDw6tfYwX6DSZjUbNIQEkYQLqM5+X9+98=; b=ePhxJLjxYO5SwM2F5QOk+Z1c8eC9QYP38S3WeQWMiGFocH68+I7eai6tDcNY7EPHql 5KjlCe77+inwFyj6nAN1BvHZRfa5ujirvkgrMBReI3tb4nRW9cySBL7VDNyFpwegbqXF AYmDMjM3hjO6+q3Pza56buxXs+MlyUNINx1sGvOFznFOLBGxy+4k+KfLY9F0PX1pSkXs 6Pr6856SCRjrmPx530z6YmYJhW8Lj3wpvSeQ8wu77BlKRdHUrPHj1ASLVIkWfmTRjoRh 9CDjK1GVH5/Jaq+3fh3F6D082mFC/teRR1cLnhWmyIKRwyFlRLvSP1un07mFhfH7h38I aH6Q== X-Forwarded-Encrypted: i=1; AJvYcCX42XKhGXVBzBg9PV9tsRvTqpnv+dEPPgpZc6tTY7O0di2w+mM9NvMO0qMkG5p+OxriNvXncqMNRBE6uOU=@vger.kernel.org X-Gm-Message-State: AOJu0YzR3IzlNWP6DwLwXqj+xOJztW79d8TTCvXf36bl3/dHfigL6lxy xTVY4rCb8UxIUExbqx/x4EogmyR0fU1C2xYcY7xGM0OlmnwnCizq7NyG X-Gm-Gg: ATEYQzwAdJVjg7QYSXeKmGgQKd92dp5IgX9hx5q32hbaclKxl2TX9H6ADO/1T9Rkp3M r11YvGNELJvvKfPZGp2Ub3FFJW09cOcEfh/DAa2bGpHwdwVyj3PS8IWMxG2xluJdsusmnNqy+xa LfOH38vSpPoD1c45Eyz5KXGWDkrG01qs85AVzhBY5hrJSpchAz0jg72wtzygzPZfLFTW5YPzYb3 lUPlXc+qkmbX+J5lPQ5CapXFQD/rYonuZsmuADTmI8u+Frp5fbFdctRxFjZW6WkrK+Z4aD599VH C6qod4MFDErlnvUN0U90gxjBKcKc8rdjsZkS0u/AMfhFyREDxl08pfiQqh5ANMS3ebDBUGhYN3B UnQu2BkYr1FKU/cKLb51lR72UQB+lAasg8G+pw2jRuAMSwqREdmGN+wuOXsxLCrJPOR80kyEe89 l8nlYo+9wUba5v2QU7o2gLFskSpVIl3bXderqh/UAc3QnrGHPDJjdtmQQJK7LxzSBtxs1wI5H6S uBq9JUJNl4y+DY5qJvDF90tcQo= X-Received: by 2002:a05:600c:3b29:b0:483:afbb:a077 with SMTP id 5b1f17b1804b1-4851983a5c5mr113990515e9.1.1772731498597; Thu, 05 Mar 2026 09:24:58 -0800 (PST) Received: from ernest.hoecke-nb (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4851fafe4c9sm67153495e9.15.2026.03.05.09.24.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 09:24:58 -0800 (PST) From: Ernest Van Hoecke Date: Thu, 05 Mar 2026 18:24:31 +0100 Subject: [PATCH 3/6] arm64: dts: freescale: imx95-verdin: Add Dahlia carrier board Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260305-verdin-imx95-upstream-frank-li-base-v1-3-823fad02def9@toradex.com> References: <20260305-verdin-imx95-upstream-frank-li-base-v1-0-823fad02def9@toradex.com> In-Reply-To: <20260305-verdin-imx95-upstream-frank-li-base-v1-0-823fad02def9@toradex.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: Ernest Van Hoecke , Emanuele Ghidoli , Francesco Dolcini , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org X-Mailer: b4 0.13.0 From: Ernest Van Hoecke Add support for the Verdin i.MX95 mated with the Verdin Dahlia carrier board. Link: https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx= 95 Link: https://www.toradex.com/de/products/carrier-board/dahlia-carrier-boar= d-kit Signed-off-by: Ernest Van Hoecke --- arch/arm64/boot/dts/freescale/Makefile | 2 + .../boot/dts/freescale/imx95-verdin-dahlia.dtsi | 270 +++++++++++++++++= ++++ .../dts/freescale/imx95-verdin-nonwifi-dahlia.dts | 21 ++ .../dts/freescale/imx95-verdin-wifi-dahlia.dts | 21 ++ 4 files changed, 314 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/f= reescale/Makefile index 12cbb60cb0cd..952268856cac 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -452,7 +452,9 @@ dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-19x19-evk-sof.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-toradex-smarc-dev.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-tqma9596sa-mb-smarc-2.dtb +dtb-$(CONFIG_ARCH_MXC) +=3D imx95-verdin-nonwifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-verdin-nonwifi-dev.dtb +dtb-$(CONFIG_ARCH_MXC) +=3D imx95-verdin-wifi-dahlia.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx95-verdin-wifi-dev.dtb =20 imx95-15x15-evk-pcie0-ep-dtbs =3D imx95-15x15-evk.dtb imx-pcie0-ep.dtbo diff --git a/arch/arm64/boot/dts/freescale/imx95-verdin-dahlia.dtsi b/arch/= arm64/boot/dts/freescale/imx95-verdin-dahlia.dtsi new file mode 100644 index 000000000000..fa77f6af5c58 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-verdin-dahlia.dtsi @@ -0,0 +1,270 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * Common dtsi for Verdin iMX95 SoM on Dahlia carrier board + * + * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95 + * https://www.toradex.com/products/carrier-board/dahlia-carrier-board-kit + */ + +/ { + aliases { + eeprom1 =3D &carrier_eeprom; + }; + + reg_1v8_sw: regulator-1v8-sw { + compatible =3D "regulator-fixed"; + regulator-max-microvolt =3D <1800000>; + regulator-min-microvolt =3D <1800000>; + regulator-name =3D "On-carrier +V1.8_SW"; + }; + + sound { + compatible =3D "simple-audio-card"; + simple-audio-card,bitclock-master =3D <&codec_dai>; + simple-audio-card,format =3D "i2s"; + simple-audio-card,frame-master =3D <&codec_dai>; + simple-audio-card,mclk-fs =3D <256>; + simple-audio-card,name =3D "verdin-wm8904"; + simple-audio-card,routing =3D + "Headphone Jack", "HPOUTL", + "Headphone Jack", "HPOUTR", + "IN2L", "Line In Jack", + "IN2R", "Line In Jack", + "Microphone Jack", "MICBIAS", + "IN1L", "Microphone Jack"; + simple-audio-card,widgets =3D + "Microphone", "Microphone Jack", + "Headphone", "Headphone Jack", + "Line", "Line In Jack"; + + codec_dai: simple-audio-card,codec { + sound-dai =3D <&wm8904_1a>; + }; + + simple-audio-card,cpu { + sound-dai =3D <&sai3>; + }; + }; + + reg_usb_hub: regulator-usb-hub { + compatible =3D "regulator-fixed"; + /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ + gpios =3D <&gpio1 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-name =3D "HUB_PWR_EN"; + }; + + reg_pcie: regulator-pcie { + compatible =3D "regulator-fixed"; + /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ + gpios =3D <&gpio1 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-name =3D "PCIE_1_PWR_EN"; + }; +}; + +/* Verdin ADC_1, ADC_2, ADC_3 and ADC_4 */ +&adc1 { + status =3D "okay"; +}; + +/* Verdin ETH_1 (On-module PHY) */ +&enetc_port0 { + status =3D "okay"; +}; + +/* Verdin CAN_1 */ +&flexcan1 { + status =3D "okay"; +}; + +/* Verdin CAN_2 */ +&flexcan2 { + status =3D "okay"; +}; + +/* Verdin QSPI_1 */ +&flexspi1 { + status =3D "okay"; +}; + +&gpio1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_ctrl_sleep_moci>; +}; + +&gpio2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio1>, + <&pinctrl_gpio2>, + <&pinctrl_gpio3>; +}; + +&gpio3 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio6>; +}; + +&gpio4 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio5>; +}; + +&gpio5 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_gpio4>; +}; + +/* Verdin I2C_3_HDMI */ +&i3c2 { + status =3D "okay"; +}; + +/* Verdin I2C_2_DSI */ +&lpi2c3 { + status =3D "okay"; +}; + +/* Verdin I2C_1 */ +&lpi2c4 { + status =3D "okay"; + + wm8904_1a: audio-codec@1a { + compatible =3D "wlf,wm8904"; + reg =3D <0x1a>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pinctrl_sai3_mclk>; + clocks =3D <&scmi_clk IMX95_CLK_SAI3>; + clock-names =3D "mclk"; + #sound-dai-cells =3D <0>; + AVDD-supply =3D <®_1v8_sw>; + CPVDD-supply =3D <®_1v8_sw>; + DBVDD-supply =3D <®_1v8_sw>; + DCVDD-supply =3D <®_1v8_sw>; + MICVDD-supply =3D <®_1v8_sw>; + }; + + /* Current measurement into module VCC */ + hwmon@40 { + compatible =3D "ti,ina219"; + reg =3D <0x40>; + shunt-resistor =3D <10000>; + }; + + temperature-sensor@4f { + compatible =3D "ti,tmp75c"; + reg =3D <0x4f>; + }; + + carrier_eeprom: eeprom@57 { + compatible =3D "st,24c02", "atmel,24c02"; + reg =3D <0x57>; + pagesize =3D <16>; + }; +}; + +/* Verdin I2C_4_CSI */ +&lpi2c5 { + status =3D "okay"; +}; + +/* Verdin UART_3, used as the Linux console */ +&lpuart1 { + status =3D "okay"; +}; + +/* Verdin UART_4 */ +&lpuart2 { + status =3D "okay"; +}; + +/* Verdin UART_1 */ +&lpuart7 { + status =3D "okay"; +}; + +/* Verdin UART_2 */ +&lpuart8 { + status =3D "okay"; +}; + +/* Verdin PCIE_1 */ +&pcie0 { + vpcie-supply =3D <®_pcie>; + + status =3D "okay"; +}; + +/* We support turning off sleep moci on Dahlia */ +®_force_sleep_moci { + status =3D "disabled"; +}; + +/* Verdin I2S_1 */ +&sai3 { + status =3D "okay"; +}; + +/* Verdin PWM_1 */ +&tpm4 { + status =3D "okay"; +}; + +/* Verdin PWM_2 */ +&tpm5 { + status =3D "okay"; +}; + +/* Verdin PWM_3_DSI */ +&tpm6 { + status =3D "okay"; +}; + +/* Verdin USB_1 */ +&usb2 { + status =3D "okay"; +}; + +/* Verdin USB_2 */ +&usb3 { + fsl,permanently-attached; + + status =3D "okay"; +}; + +&usb3_dwc3 { + #address-cells =3D <1>; + #size-cells =3D <0>; + + usb_hub_3_0: usb-hub@1 { + compatible =3D "usb424,5744"; + reg =3D <1>; + peer-hub =3D <&usb_hub_2_0>; + vdd-supply =3D <®_usb_hub>; + }; + + usb_hub_2_0: usb-hub@2 { + compatible =3D "usb424,2744"; + reg =3D <2>; + peer-hub =3D <&usb_hub_3_0>; + vdd-supply =3D <®_usb_hub>; + }; +}; + +&usb3_phy { + status =3D "okay"; +}; + +/* Verdin SD_1 */ +&usdhc2 { + status =3D "okay"; +}; + +/* Verdin CTRL_WAKE1_MICO# */ +&verdin_gpio_keys { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dts = b/arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dts new file mode 100644 index 000000000000..16975ae12fcb --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95 + * https://www.toradex.com/products/carrier-board/dahlia-carrier-board-kit + */ + +/dts-v1/; + +#include "imx95-verdin.dtsi" +#include "imx95-verdin-nonwifi.dtsi" +#include "imx95-verdin-dahlia.dtsi" + +/ { + model =3D "Toradex Verdin iMX95 on Dahlia Board"; + compatible =3D "toradex,verdin-imx95-nonwifi-dahlia", + "toradex,verdin-imx95-nonwifi", + "toradex,verdin-imx95", + "fsl,imx95"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dts b/a= rch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dts new file mode 100644 index 000000000000..bafbe1179ec8 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx95 + * https://www.toradex.com/products/carrier-board/dahlia-carrier-board-kit + */ + +/dts-v1/; + +#include "imx95-verdin.dtsi" +#include "imx95-verdin-wifi.dtsi" +#include "imx95-verdin-dahlia.dtsi" + +/ { + model =3D "Toradex Verdin iMX95 WB on Dahlia Board"; + compatible =3D "toradex,verdin-imx95-wifi-dahlia", + "toradex,verdin-imx95-wifi", + "toradex,verdin-imx95", + "fsl,imx95"; +}; --=20 2.43.0