From nobody Tue Apr 7 14:41:27 2026 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) (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 91AEE387572 for ; Fri, 13 Mar 2026 08:58:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773392294; cv=none; b=YcvGzjKOCiDEOdBiTlQFUrkOxlAa4XNgYytyyDrvGwNQieLJmwX/zja53MUefKL2HATfuAyZgN5kk9k0WBK/UwqlubsNkXM1mz8bt3vNMtTcihBbWvDnA28FwSX/qDl82jBYfzH5MoScb1Wz7DkDAzcM1L1izizlBEHqC0U7FiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773392294; c=relaxed/simple; bh=w228hThsiVYRbscFhzc+2oD7eXBShJY24ORQ9uW9AFQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l2sFWMh0yE5GwctD/pQzZ6IUzsK0yUO44GY01Vy0ozgmJ4rwWUGQZYk71RklYqZblbZLgnP6cJMLFpMXoPIyByKX9pr10f+Fv3Eih6pYaXIsD5QZYMZpr6XAPkzCqHyMLB1noEftx0DkEu38Ojlm0cqdwL4Sq2H6AnRgz3nll+g= 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=HPElquvu; arc=none smtp.client-ip=209.85.221.52 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="HPElquvu" Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-439cb5af25bso2057107f8f.1 for ; Fri, 13 Mar 2026 01:58:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773392286; x=1773997086; 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=wn/UD6BZCdexx1c4zCWwh2htyXc5RV8C9vfJwOLQF/M=; b=HPElquvuePcTDCgoaMqfoYRZNIpcibvQd9SdJxdreJ5uC39s+UjWC7Tx10oqyw6X9f PDQIDGc99vJL5JHlWMoWOTcCpsfznrt2qNlASlao54t3b8YqCRvCzmSmaIiZA9RphdP/ H9L4ccIdOVrzmM2B9Qm0Tk3vMQ4kSM4gTS5C7xwCtD4oCGKd71qSfqu7J/3elCKCjfj2 wi8lARcM7l5lxX5+N7JXCEMySvj/++Jo74xDpv2CL7sBkxtyR3fpOheNCfkAvgDl4rNI Y3JcmZn5U0wO2N8luDJWLJGxDuPQcttwMHK5L/McTKeKMRvJS4oiSByLholchfngzbPf oV8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773392286; x=1773997086; 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=wn/UD6BZCdexx1c4zCWwh2htyXc5RV8C9vfJwOLQF/M=; b=aAYnTYtmi5t0NNliSgFW37ndx+VP5PAoHxvoCTWIfGGySCDrnw4ntJ53wyloFxdfc5 eFGvZXhObTzWS8b4qxLI3gyE1I99KrkKZdb8nSl3vNIHaL+nqxlcjMswjP/ZyLynntZa 8hs8teB1z6SAyqeGqm1QTf1Kd0eI+5yLOlMVLOSzPAmhrU/jYJ03SOtlbPfBOte+nFQA DaEEIbhwf0ivcwAnWV9NJmaqkRXhKGJQkGX739sLfgjI3us2GccDN/M4QQnwEMJJ46Dv mwKrmLLtpj9nSKRjOO7vO/1mO6N10mxlRNfsY7mzKBzCzYRTS9F3XdpPjbqbFu3v0P/V RD9w== X-Forwarded-Encrypted: i=1; AJvYcCV2U85XhE4ycxqQEje17dhjjwEG4CuExeW4FXc7GJ0We7VUnZsCOR2oJ9CB0iEa3F4TiHQq4EVDyYMCiH4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy40UPBpjK1X1dg2VcxsVtF6vxBECi4i3JrGvF/Sw6ZV0zO7m6W RB+EYE1n7OANtvhHOxsRwX8HoG2iMeA+VFnjur287RV0M40xWOR+dPZn X-Gm-Gg: ATEYQzwxiIaqDiW9HKcR1AcG7W/45dw1yJDRu0ypp9rfwMjlrYs7xJdk3DMneQ4pN8L L8XkBS5WmNXb8tm0oWN5uFIoG7Gm/rMQBHftQmRcoCZmpikJs2hl0/aMUXHYrxZcSosBCsM07f9 +CRcqmZYD3b6KZ4f0H5pL9ASIqs7kYE3bAMP5SlMXpQhI2sSW/FRPPsiWlJ8Dn3YwzPyYjl68vi /LaBAsqKN1hGsO3V+kvzm78pFmKPDtnx8zAZuhQB6grRrQJUSZHgnec3V3awOr2rRvXyBSldVD8 Btdp5uYURTgL4hDSHYjEP7zFXimCtncKGn+R3ijJnqXl0raQg69+KfAYcsn4ntSN1zMbFi9HDAz iEIugS8iza7nBHWvLWWIKZ65Oi7DMkGir2gmTMJfbKbLbEtxn+g8SSU5MM7cM5U4ZOhvR9OVRE+ zyrB+ZPcZcleMW6kS7ql/MNkHJnn1k56MKy/3rrTDHls03y7stAeGjc17HuR14leVwyxT7em4w5 aL6s9xXYakTOq33Pyd9XYbIXFc= X-Received: by 2002:a05:6000:1ac8:b0:435:94c1:3714 with SMTP id ffacd0b85a97d-43a04d130e8mr5113241f8f.0.1773392285759; Fri, 13 Mar 2026 01:58:05 -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-43a03cfd18fsm7663718f8f.36.2026.03.13.01.58.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 01:58:05 -0700 (PDT) From: Ernest Van Hoecke Date: Fri, 13 Mar 2026 09:57:44 +0100 Subject: [PATCH v2 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: <20260313-verdin-imx95-upstream-frank-li-base-v2-3-bd488be7c699@toradex.com> References: <20260313-verdin-imx95-upstream-frank-li-base-v2-0-bd488be7c699@toradex.com> In-Reply-To: <20260313-verdin-imx95-upstream-frank-li-base-v2-0-bd488be7c699@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 --- 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 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..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