From nobody Fri Apr 3 03:02:31 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (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 1EF643F9F4C for ; Wed, 25 Mar 2026 14:46:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774450000; cv=none; b=LEiMC0tAkc+2ARVUyGEzVhlVl5BOSUODBEpzobPeLrJBdbtzQUZbgr8CGblQ2sfOJUi+pX4jGU1LXVi+xKpJumZTRPEPSLvlDRcyZ3vp90E831HrhOQH+OVGOXKzPFMG4XnDHjoj2+80XfWCFCX7hkfc/OHXd57fdPt28kEI8aA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774450000; c=relaxed/simple; bh=0M8bC8s4CQRoL47kiXxXJsMthW3oUTt23PyDFJOgaNw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Y+kH6ZY8qP5tQlPJpkVJjghmz6kPJtD1J2NH9vGqu02eWsV6ivhID55G9zKDuoZvILHE2UUlG4eHmgadZ5Zy+Fl4Jqk1ObD5uieTL8IUNW8AQK+vMqTcCYh4bfX7083K3DWnA7zxwQd9Va+v03nGDo4M6eSexAXnr6VevBi9/jw= 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=VjDFqywM; arc=none smtp.client-ip=209.85.221.44 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="VjDFqywM" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-439b9b190easo1976141f8f.2 for ; Wed, 25 Mar 2026 07:46:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774449994; x=1775054794; 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=K56QdSgJZYNMBcYP6tlC/3xyKloobCMQ/93giVqKRL4=; b=VjDFqywMr8XK/Csu50MvpVEd+c8IafE0k3DTHvlTT7AgP7lNYbXcK2tGKsc8RIxsqe zOwsCgPlLSTpw7NQuhHLl8PO6GC2Xzh2ffehK03KpYd/zrYL86hxDPS5CVxsa8zg+MUj GmN4LWwFSmhJ+vs2DsQpefM9RYytQ5P1JkrsFnK6nXBRfmSofxoZLII0UKlz1cvTuE7y VuKw+EM0a+ccnAeT44m7H7hrV4iD37Wx9j2ZeIDucu8buq+BerWLwrrrK/izLnISdYu3 61s2mBOGp3/IR3bup9vi1FG/s/b52kg3pf+yvNU8PTHuWjE1QaP0PjpVA973Sc1hMxkT 04Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774449994; x=1775054794; 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=K56QdSgJZYNMBcYP6tlC/3xyKloobCMQ/93giVqKRL4=; b=puK9PyZb5ONOfmeFmeHReJFpCw69azAWQyt6ICGbZJyH6+3Y9Ge1xEtySaXSQu7vjm FQcGzDLbhT1NCVM+9NduYUdbR7+SlTGsineJC2pQU7ahLiLsswzPbHdKVHaqVU81npcz CQ8rRoENcv2rnuLZ6itKGBQfqwhmzAqa4y/2dSnwMtTf18CRF7nHSksi5aiS0tNLFvdQ jgm+UFmwO7htXadJxIQMc6T8z9hEBclH2xVEMnsd1Sj8a9aDqPd8b3HK9+LZkvcXZ531 8tvQc9wUcWRPwihrI0AoAypaMQV64BWVz1e0kvFwiMLaD4d9PkxaNI4wtvaYXdmQkei+ 84DA== X-Forwarded-Encrypted: i=1; AJvYcCURMjVXyMvCiLw/E05leJ7YcIgQDMJ8CnY6CzXVtvyM3W7D0xzKaTd1oXagHNLQIM994zNFXVQn1+8TkAM=@vger.kernel.org X-Gm-Message-State: AOJu0YyiOBmO8ODNEFm7kn8ULslVbIFFWjRxPpXjqtzzVN6RTEK6WQRg A4cGWExq5QCkJg69oy88TG8w2foc/Sg5yZujGfQwAPXoUvz1CR9NyFof X-Gm-Gg: ATEYQzxHx7WfSYbLhORaDTzNv/G6Groz+2ZRfzEeINA5FEhgDoOEb3IFc2fnfnyHdRd sF65vrzFowcAFR/jg2q75rmcQfK7+6KgG03wMrTLRMG0Dz7qMXRGv07g/PDuwFmzKZCeLpP4w0u Bceg+8RRz6jn1kgkzNFH2BWNkKeNx3HqJfdWhJuu431nnsv6nZUqiUzyr2tHQQxDy7DJND//nju froaNEYgzjIaI/MdbGo6LT8s817aKEfDgaaTkEZdK1R0C00weXQoUSARS5C72QtctrNKpRqdJHA dOTBrmTUiIO3guDZNCRi2OJ/gKMctFfS0rl5B5E8dcTMQP+G78nCOSWStCW0bY6E7Nk+fpOB5NT shDA+SlL/ZUw9gYjHZnzAB+PWysZAkBaGlhdbYDeVkHy/EGZQNrRSlJyfOb9t46DkvzfROyh6sY dkKZ4udRLsW0+vS3FMlcEJQrauxdhAtaWyhodq+9ZEyPQYxhT94kyzlQV5bvpm5xyGul/RpLte4 wSa1r6nGAvLJfFSnBTFWCGDOe0X72D1LapWJw== X-Received: by 2002:a5d:5270:0:b0:43b:88e9:588 with SMTP id ffacd0b85a97d-43b88e9083amr4001503f8f.37.1774449994187; Wed, 25 Mar 2026 07:46:34 -0700 (PDT) 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 ffacd0b85a97d-43b9192e305sm304592f8f.8.2026.03.25.07.46.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 07:46:33 -0700 (PDT) From: Ernest Van Hoecke Date: Wed, 25 Mar 2026 15:46:04 +0100 Subject: [PATCH v3 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: <20260325-verdin-imx95-upstream-frank-li-base-v3-3-b2b5221a8077@toradex.com> References: <20260325-verdin-imx95-upstream-frank-li-base-v3-0-b2b5221a8077@toradex.com> In-Reply-To: <20260325-verdin-imx95-upstream-frank-li-base-v3-0-b2b5221a8077@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/products/carrier-board/dahlia-carrier-board-k= it Signed-off-by: Ernest Van Hoecke --- v3: Rebased v2: Reordered nodes alphanumerically by node name v1: https://lore.kernel.org/all/20260305-verdin-imx95-upstream-frank-li-bas= e-v1-3-823fad02def9@toradex.com/ --- 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 c46059cd2331..bcf54b4ed66c 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -497,7 +497,9 @@ 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-var-dart-sonata.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..889b71aa3de0 --- /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"; + }; + + 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"; + }; + + 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"; + }; + + 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>; + }; + }; +}; + +/* 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