Re: [PATCH v1 2/3] ARM: dts: imx7d: add Variscite VAR-SOM-MX7 support

Frank Li <[email protected]>
Newsgroups dev.linux.lists.imx,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree
Message-ID <aohdM1PmiT4loOz0@SMW015318>
On Fri, Aug 21, 2026 at 12:41:07PM +0000, [email protected] wrote:
> Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider:
> - [High] The Ethernet PHY reset pin for `ethphy1` is muxed on the `fec2` node instead of `fec1`, causing PHY detection to fail during MDIO bus probe.
> - [Medium] Use of `IRQ_TYPE_NONE` (0) for touchscreen controller interrupts.
> - [Low] Duplicate `assigned-clock-rates` property in the `&sai1` node.
> - [Low] Attempting to delete a non-existent child node `bcrmf@1` instead of `wifi@1`.
> - [Low] Missing required `color` property in the GPIO LED definition.
> - [Low] Use of deprecated `reset-gpio` property instead of `reset-gpios` in the PCIe node.
> --
>
> --- Patch [2]: [PATCH v1 2/3] ARM: dts: imx7d: add Variscite VAR-SOM-MX7 support ---
> commit 910d1859fce3905900b424cb29918719c63275b0
> Author: Stefano Radaelli <[email protected]>
>
> ARM: dts: imx7d: add Variscite VAR-SOM-MX7 support
>
> This commit adds device tree support for the Variscite VAR-SOM-MX7 system on
> module. It provides the common SoM description along with configurations for
> eMMC, NAND, WM8731 audio codec, and the V2 hardware revision.
>
> Link: https://variscite.com/system-on-module-som/i-mx-7/var-som-mx7/
>
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi
> > index 0000000000000..82814535fb93e 100644
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-mx7customboard.dtsi
> > @@ -0,0 +1,378 @@
> [ ... ]
> > +	leds {
> > +		compatible = "gpio-leds";
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&pinctrl_gpio_leds>;
> > +
> > +		led-d10 {
> > +			function = LED_FUNCTION_STATUS;
> > +			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
> > +			linux,default-trigger = "heartbeat";
> > +		};
> > +	};
>
> [Severity: Low]
> Does this led-d10 node also need a color property? When function is
> specified, modern LED bindings generally require the color property to form
> sysfs directories in the format color:function.
>
> [ ... ]
> > +&i2c4 {
> > +	clock-frequency = <100000>;
> > +	pinctrl-names = "default", "gpio";
> > +	pinctrl-0 = <&pinctrl_i2c4>;
> > +	pinctrl-1 = <&pinctrl_i2c4_gpio>;
> > +	scl-gpios = <&gpio4 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> > +	sda-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> > +	status = "okay";
> > +
> > +	ft5x06_ts: touchscreen@38 {
> > +		compatible = "edt,edt-ft5206";
> > +		reg = <0x38>;
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&pinctrl_touch>;
> > +		interrupt-parent = <&gpio2>;
> > +		interrupts = <30 0>;
>
> [Severity: Medium]
> Is it intentional to use 0 (IRQ_TYPE_NONE) for the touchscreen interrupt
> trigger type here? This can cause the interrupt to be unconfigured or
> incorrectly configured by default, which may lead to missed touch events or
> an interrupt storm.
>
> [ ... ]
> > +&pcie {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_pcie>;
> > +	reset-gpio = <&gpio2 31 GPIO_ACTIVE_LOW>;
>
> [Severity: Low]
> Could this use the standard reset-gpios property instead? The reset-gpio
> property is deprecated, and dtbs_check validation may emit warnings for it.

Yes, please add reset-gpios under pci port (&pcie0_port0) for new dts.

>
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi
> > index 0000000000000..724aa6fb36de2 100644
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-v2.dtsi
> > @@ -0,0 +1,64 @@
> [ ... ]
> > +/* WiFi */
> > +&usdhc2 {
> > +	mmc-pwrseq = <&wifi_pwrseq>;
> > +	/delete-node/ bcrmf@1;
> > +};
>
> [Severity: Low]
> Is there a typo in the node name here? The node defined in the base dtsi is
> wifi@1 (with the label brcmf). Trying to delete bcrmf@1 will cause the
> device tree compiler to fail since the node doesn't exist.

Now don't prefer delete-node.

>
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi
> > index 0000000000000..5fab164a64820 100644
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som-wm8731.dtsi
> > @@ -0,0 +1,65 @@
> [ ... ]
> > +&sai1 {
> > +	assigned-clock-rates = <0>, <36864000>;
> > +	assigned-clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_SRC>,
> > +			  <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>;
> > +	assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>;
> > +	assigned-clock-rates = <0>, <12288000>;
>
> [Severity: Low]
> Does this node intend to duplicate the assigned-clock-rates property? The
> second definition (<0>, <12288000>) will silently overwrite the first one
> (<0>, <36864000>), which will cause DTC to emit a duplicate property warning
> and the intended 36.864MHz clock rate configuration to be lost.

Yes, please fix it.


>
> > +	/delete-property/ fsl,sai-mclk-direction-output;
> > +};
> > diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi b/arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi
> > index 0000000000000..cbd6252bd18f3 100644
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nxp/imx/imx7d-var-som.dtsi
> > @@ -0,0 +1,633 @@
> [ ... ]
> > +&ecspi1 {
> > +	pinctrl-names = "default", "sleep";
> > +	pinctrl-0 = <&pinctrl_ecspi1>;
> > +	pinctrl-1 = <&pinctrl_ecspi1_sleep>;
> > +	cs-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
> > +	status = "okay";
> > +
> > +	/* Resistive touch controller */
> > +	ads7846_ts: ads7846@0 {
> > +		reg = <0>;
> > +		compatible = "ti,ads7846";
> > +		pinctrl-names ="default";
> > +		pinctrl-0 = <&pinctrl_restouch>;
> > +		interrupt-parent = <&gpio1>;
> > +		interrupts = <9 0>;
>
> [Severity: Medium]
> Is it intentional to use 0 (IRQ_TYPE_NONE) for this touch controller interrupt
> trigger type? This might result in the interrupt being unconfigured by default.

why type is NONE?

Frank
>
> [ ... ]
> > +&fec1 {
> > +	pinctrl-names = "default","sleep";
> > +	pinctrl-0 = <&pinctrl_enet1>, <&pinctrl_enet1_rst>;
> [ ... ]
> > +	mdio {
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +
> > +		ethphy0: ethernet-phy@0 {
> > +			compatible = "ethernet-phy-ieee802.3-c22";
> > +			reg = <0>;
> > +			reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
> > +			reset-assert-us = <20000>;
> > +			reset-deassert-us = <80000>;
> > +			vddio-supply = <&reg_phy_vddio>;
> > +		};
> > +
> > +		ethphy1: ethernet-phy@1 {
> > +			compatible = "ethernet-phy-ieee802.3-c22";
> > +			reg = <1>;
> > +			reset-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;
> > +			reset-assert-us = <20000>;
> > +			reset-deassert-us = <80000>;
> > +			vddio-supply = <&reg_phy_vddio>;
> > +		};
> > +	};
> > +};
> > +
> > +&fec2 {
> > +	pinctrl-names = "default","sleep";
> > +	pinctrl-0 = <&pinctrl_enet2>, <&pinctrl_enet2_rst>;
>
> [Severity: High]
> Does ethphy1 fail to reset during the MDIO bus probe on fec1?
>
> Since ethphy1 is a child of the fec1 MDIO bus, fec1 will attempt to toggle
> its reset GPIO (&gpio4 3) when it probes. However, the pinctrl for this GPIO
> (&pinctrl_enet2_rst) is attached to fec2 instead of fec1. Since fec2 has
> not probed yet, the reset pin may not be muxed properly, preventing the reset
> toggle from reaching the PHY and causing detection to fail.
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.