lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aVzjQEhpv4fenAWF@shlinux89>
Date: Tue, 6 Jan 2026 18:26:08 +0800
From: Peng Fan <peng.fan@....nxp.com>
To: Stefano Radaelli <stefano.radaelli21@...il.com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
	Stefano Radaelli <stefano.r@...iscite.com>,
	Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
	Sascha Hauer <s.hauer@...gutronix.de>,
	Pengutronix Kernel Team <kernel@...gutronix.de>,
	Fabio Estevam <festevam@...il.com>,
	Alexander Stein <alexander.stein@...tq-group.com>,
	Dario Binacchi <dario.binacchi@...rulasolutions.com>,
	Markus Niebel <Markus.Niebel@...group.com>,
	Primoz Fiser <primoz.fiser@...ik.com>,
	Yannic Moog <y.moog@...tec.de>, Josua Mayer <josua@...id-run.com>,
	Francesco Dolcini <francesco.dolcini@...adex.com>,
	imx@...ts.linux.dev, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v3 2/3] arm64: dts: freescale: Add support for Variscite
 DART-MX95

On Mon, Jan 05, 2026 at 11:24:02AM +0100, Stefano Radaelli wrote:
>From: Stefano Radaelli <stefano.r@...iscite.com>
>
>Add device tree support for the Variscite DART-MX95 system on module.
>This SOM is designed to be used with various carrier boards.
>
>The module includes:
>- NXP i.MX95 MPU processor
>- Up to 16GB of LPDDR5 memory
>- Up to 128GB of eMMC storage memory
>- Integrated 10/100/1000 Mbps Ethernet Transceiver
>- Codec audio WM8904
>- WIFI6 dual-band 802.11ax/ac/a/b/g/n with optional 802.15.4 and Bluetooth
>
>Only SOM-specific peripherals are enabled by default. Carrier board
>specific interfaces are left disabled to be enabled in the respective
>carrier board device trees.
>
>Link: https://variscite.com/system-on-module-som/i-mx-9/i-mx-95/dart-mx95/
>Signed-off-by: Stefano Radaelli <stefano.r@...iscite.com>
>---
>v3:
>- Fix specific node name with generic one
>- Audio regulator cleanup
>
> .../boot/dts/freescale/imx95-var-dart.dtsi    | 461 ++++++++++++++++++
> 1 file changed, 461 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx95-var-dart.dtsi
>
>diff --git a/arch/arm64/boot/dts/freescale/imx95-var-dart.dtsi b/arch/arm64/boot/dts/freescale/imx95-var-dart.dtsi
>new file mode 100644
>index 000000000000..ac9691aa73f3
>--- /dev/null
>+++ b/arch/arm64/boot/dts/freescale/imx95-var-dart.dtsi
>@@ -0,0 +1,461 @@
>+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>+/*
>+ * Common dtsi for Variscite DART-MX95
>+ *
>+ * Link: https://variscite.com/system-on-module-som/i-mx-9/i-mx-95/dart-mx95/
>+ *
>+ * Copyright (C) 2025 Variscite Ltd. - https://www.variscite.com/
>+ *
>+ */
>+
>+/dts-v1/;
>+
>+#include <dt-bindings/leds/common.h>
>+#include <dt-bindings/usb/pd.h>
>+#include "imx95.dtsi"
>+
>+/ {
>+	model = "Variscite DART-MX95 Module";
>+	compatible = "variscite,var-dart-mx95", "fsl,imx95";
>+
>+	memory@...00000 {
>+		device_type = "memory";
>+		reg = <0x0 0x80000000 0 0x80000000>;
>+	};
>+
>+	reg_1p8v: regulator-1p8v {
>+		compatible = "regulator-fixed";
>+		regulator-max-microvolt = <1800000>;
>+		regulator-min-microvolt = <1800000>;
>+		regulator-name = "+V1.8_SW";
>+	};
>+
>+	reg_3p3v: regulator-3p3v {
>+		compatible = "regulator-fixed";
>+		regulator-max-microvolt = <3300000>;
>+		regulator-min-microvolt = <3300000>;
>+		regulator-name = "+V3.3_SW";
>+	};
>+
>+	reg_audio: regulator-audio-vdd {
>+		compatible = "regulator-fixed";
>+		regulator-name = "wm8904_supply";
>+		regulator-min-microvolt = <3300000>;
>+		regulator-max-microvolt = <3300000>;
>+	};
>+
>+	reg_vref_1v8: regulator-adc-vref {
>+		compatible = "regulator-fixed";
>+		regulator-name = "vref_1v8";
>+		regulator-min-microvolt = <1800000>;
>+		regulator-max-microvolt = <1800000>;
>+	};
>+
>+	reserved-memory {
>+		ranges;
>+		#address-cells = <2>;
>+		#size-cells = <2>;
>+
>+		linux_cma: linux,cma {
>+			compatible = "shared-dma-pool";
>+			alloc-ranges = <0 0x80000000 0 0x7F000000>;
>+			reusable;
>+			size = <0 0x3c000000>;
>+			linux,cma-default;
>+		};
>+
>+		vdev0vring0: vdev0vring0@...00000 {
>+			reg = <0 0x88000000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev0vring1: vdev0vring1@...08000 {
>+			reg = <0 0x88008000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev1vring0: vdev1vring0@...10000 {
>+			reg = <0 0x88010000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdev1vring1: vdev1vring1@...18000 {
>+			reg = <0 0x88018000 0 0x8000>;
>+			no-map;
>+		};
>+
>+		vdevbuffer: vdevbuffer@...20000 {
>+			compatible = "shared-dma-pool";
>+			reg = <0 0x88020000 0 0x100000>;
>+			no-map;
>+		};
>+
>+		rsc_table: rsc-table@...20000 {
>+			reg = <0 0x88220000 0 0x1000>;
>+			no-map;
>+		};
>+
>+		vpu_boot: vpu_boot@...00000 {
>+			reg = <0 0xa0000000 0 0x100000>;
>+			no-map;
>+		};

CM7 support still not landed, and VPU support also not ready in upstream.
You may need to drop these reserved nodes.

>+	};
>+
...
>+};
>+
>+&adc1 {
>+	vref-supply = <&reg_vref_1v8>;
>+	status = "okay";
>+};
>+
>+&enetc_port0 {
>+	pinctrl-names = "default";
>+	pinctrl-0 = <&pinctrl_enetc0>;
>+	phy-handle = <&ethphy0>;
>+	/*
>+	 * The required RGMII TX and RX 2ns delays are implemented directly
>+	 * in hardware via passive delay elements on the SOM PCB.
>+	 * No delay configuration is needed in software via PHY driver.
>+	 */
>+	phy-mode = "rgmii";
>+	status = "okay";
>+};
>+
>+&lpi2c8 {
>+	clock-frequency = <400000>;
>+	pinctrl-names = "default","gpio","sleep";
>+	pinctrl-0 = <&pinctrl_lpi2c8>;
>+	pinctrl-1 = <&pinctrl_lpi2c8_gpio>;
>+	pinctrl-2 = <&pinctrl_lpi2c8_gpio>;
>+	scl-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
>+	sda-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;

Per my understanding, GPIO_OPEN_DRAIN is better to be included.

>+
>+&scmi_iomuxc {
>+	pinctrl_bt: btgrp {
>+		fsl,pins = <
>+			IMX95_PAD_CCM_CLKO3__GPIO4_IO_BIT28				0x31e
>+		>;
>+	};
>+
>+	pinctrl_emdio: emdiogrp{
>+		fsl,pins = <
>+			IMX95_PAD_ENET1_MDC__NETCMIX_TOP_NETC_MDC			0x57e
>+			IMX95_PAD_ENET1_MDIO__NETCMIX_TOP_NETC_MDIO			0x97e
>+		>;
>+	};
>+
>+	pinctrl_phy0res: phy0resgrp{
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO36__GPIO5_IO_BIT16				0x31e
>+		>;
>+	};
>+
>+	pinctrl_enetc0: enetc0grp {
>+		fsl,pins = <
>+			IMX95_PAD_ENET1_TD3__NETCMIX_TOP_ETH0_RGMII_TD3			0x57e
>+			IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2			0x57e
>+			IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1			0x57e
>+			IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0			0x57e
>+			IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL		0x57e
>+			IMX95_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK		0x58e
>+			IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL		0x57e
>+			IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK		0x58e
>+			IMX95_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RGMII_RD0			0x57e
>+			IMX95_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RGMII_RD1			0x57e
>+			IMX95_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RGMII_RD2			0x57e
>+			IMX95_PAD_ENET1_RD3__NETCMIX_TOP_ETH0_RGMII_RD3			0x57e
>+		>;
>+	};
>+
>+	pinctrl_lpi2c8: lpi2c8grp {
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO10__LPI2C8_SDA					0x40000b9e
>+			IMX95_PAD_GPIO_IO11__LPI2C8_SCL					0x40000b9e
>+		>;
>+	};
>+
>+	pinctrl_lpi2c8_gpio: lpi2c8gpiogrp {
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO10__GPIO2_IO_BIT10				0x31e
>+			IMX95_PAD_GPIO_IO11__GPIO2_IO_BIT11				0x31e
>+		>;
>+	};
>+
>+	pinctrl_sai3: sai3grp {
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO17__SAI3_MCLK					0x31e
>+			IMX95_PAD_GPIO_IO16__SAI3_TX_BCLK				0x31e
>+			IMX95_PAD_GPIO_IO26__SAI3_TX_SYNC				0x31e
>+			IMX95_PAD_GPIO_IO20__SAI3_RX_DATA_BIT0				0x31e
>+			IMX95_PAD_GPIO_IO21__SAI3_TX_DATA_BIT0				0x31e
>+		>;
>+	};
>+
>+	pinctrl_uart5: uart5grp {
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO00__LPUART5_TX					0x31e
>+			IMX95_PAD_GPIO_IO01__LPUART5_RX					0x31e
>+			IMX95_PAD_GPIO_IO02__LPUART5_CTS_B				0x31e
>+			IMX95_PAD_GPIO_IO03__LPUART5_RTS_B				0x31e
>+		>;
>+	};
>+
>+	pinctrl_usdhc1: usdhc1grp {
>+		fsl,pins = <
>+			IMX95_PAD_SD1_CLK__USDHC1_CLK					0x158e
>+			IMX95_PAD_SD1_CMD__USDHC1_CMD					0x138e
>+			IMX95_PAD_SD1_DATA0__USDHC1_DATA0				0x138e
>+			IMX95_PAD_SD1_DATA1__USDHC1_DATA1				0x138e
>+			IMX95_PAD_SD1_DATA2__USDHC1_DATA2				0x138e
>+			IMX95_PAD_SD1_DATA3__USDHC1_DATA3				0x138e
>+			IMX95_PAD_SD1_DATA4__USDHC1_DATA4				0x138e
>+			IMX95_PAD_SD1_DATA5__USDHC1_DATA5				0x138e
>+			IMX95_PAD_SD1_DATA6__USDHC1_DATA6				0x138e
>+			IMX95_PAD_SD1_DATA7__USDHC1_DATA7				0x138e
>+			IMX95_PAD_SD1_STROBE__USDHC1_STROBE				0x158e
>+		>;
>+	};
>+
>+	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
>+		fsl,pins = <
>+			IMX95_PAD_SD1_CLK__USDHC1_CLK					0x158e
>+			IMX95_PAD_SD1_CMD__USDHC1_CMD					0x138e
>+			IMX95_PAD_SD1_DATA0__USDHC1_DATA0				0x138e
>+			IMX95_PAD_SD1_DATA1__USDHC1_DATA1				0x138e
>+			IMX95_PAD_SD1_DATA2__USDHC1_DATA2				0x138e
>+			IMX95_PAD_SD1_DATA3__USDHC1_DATA3				0x138e
>+			IMX95_PAD_SD1_DATA4__USDHC1_DATA4				0x138e
>+			IMX95_PAD_SD1_DATA5__USDHC1_DATA5				0x138e
>+			IMX95_PAD_SD1_DATA6__USDHC1_DATA6				0x138e
>+			IMX95_PAD_SD1_DATA7__USDHC1_DATA7				0x138e
>+			IMX95_PAD_SD1_STROBE__USDHC1_STROBE				0x158e
>+		>;
>+	};
>+
>+	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
>+		fsl,pins = <
>+			IMX95_PAD_SD1_CLK__USDHC1_CLK					0x15fe
>+			IMX95_PAD_SD1_CMD__USDHC1_CMD					0x13fe
>+			IMX95_PAD_SD1_DATA0__USDHC1_DATA0				0x13fe
>+			IMX95_PAD_SD1_DATA1__USDHC1_DATA1				0x13fe
>+			IMX95_PAD_SD1_DATA2__USDHC1_DATA2				0x13fe
>+			IMX95_PAD_SD1_DATA3__USDHC1_DATA3				0x13fe
>+			IMX95_PAD_SD1_DATA4__USDHC1_DATA4				0x13fe
>+			IMX95_PAD_SD1_DATA5__USDHC1_DATA5				0x13fe
>+			IMX95_PAD_SD1_DATA6__USDHC1_DATA6				0x13fe
>+			IMX95_PAD_SD1_DATA7__USDHC1_DATA7				0x13fe
>+			IMX95_PAD_SD1_STROBE__USDHC1_STROBE				0x15fe
>+		>;
>+	};
>+
>+	pinctrl_usdhc3_gpio: usdhc3gpiogrp {
>+		fsl,pins = <
>+			IMX95_PAD_GPIO_IO27__GPIO2_IO_BIT27				0x31e
>+			IMX95_PAD_CCM_CLKO4__GPIO4_IO_BIT29				0x31e
>+		>;
>+	};
>+
>+	pinctrl_usdhc3: usdhc3grp {
>+		fsl,pins = <
>+			IMX95_PAD_SD3_CLK__USDHC3_CLK					0x158e
>+			IMX95_PAD_SD3_CMD__USDHC3_CMD					0x138e
>+			IMX95_PAD_SD3_DATA0__USDHC3_DATA0				0x138e
>+			IMX95_PAD_SD3_DATA1__USDHC3_DATA1				0x138e
>+			IMX95_PAD_SD3_DATA2__USDHC3_DATA2				0x138e
>+			IMX95_PAD_SD3_DATA3__USDHC3_DATA3				0x138e
>+		>;
>+	};
>+
>+	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
>+		fsl,pins = <
>+			IMX95_PAD_SD3_CLK__USDHC3_CLK					0x158e
>+			IMX95_PAD_SD3_CMD__USDHC3_CMD					0x138e
>+			IMX95_PAD_SD3_DATA0__USDHC3_DATA0				0x138e
>+			IMX95_PAD_SD3_DATA1__USDHC3_DATA1				0x138e
>+			IMX95_PAD_SD3_DATA2__USDHC3_DATA2				0x138e
>+			IMX95_PAD_SD3_DATA3__USDHC3_DATA3				0x138e
>+		>;
>+	};
>+
>+	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
>+		fsl,pins = <
>+			IMX95_PAD_SD3_CLK__USDHC3_CLK					0x15fe
>+			IMX95_PAD_SD3_CMD__USDHC3_CMD					0x13fe
>+			IMX95_PAD_SD3_DATA0__USDHC3_DATA0				0x13fe
>+			IMX95_PAD_SD3_DATA1__USDHC3_DATA1				0x13fe
>+			IMX95_PAD_SD3_DATA2__USDHC3_DATA2				0x13fe
>+			IMX95_PAD_SD3_DATA3__USDHC3_DATA3				0x13fe
>+		>;
>+	};
>+};

Better keep scmi_iomuxc at end of the file.

Regards
Peng

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ