From: Frank Li <Frank.li@oss.nxp.com>
To: sashiko-reviews@lists.linux.dev
Cc: Stefano Radaelli <stefano.radaelli21@gmail.com>,
robh@kernel.org, Frank.Li@kernel.org, imx@lists.linux.dev,
devicetree@vger.kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v4 2/3] arm64: dts: freescale: Add support for Variscite VAR-SOM-MX8 QuadMax
Date: Wed, 15 Jul 2026 13:49:32 -0500 [thread overview]
Message-ID: <alfWPKIeGqn_Er5B@SMW015318> (raw)
In-Reply-To: <20260715170007.63B8D1F00A3A@smtp.kernel.org>
On Wed, Jul 15, 2026 at 05:00:06PM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
> - [High] The CMA allocation range starting at 0xC0000000 falls entirely outside the statically defined 1GB memory node bounds.
> - [High] Assigning a 3.3V regulator to the 1.8V WM8904 codec supply pins violates absolute maximum hardware ratings.
> - [Medium] Delegating WiFi/Bluetooth hardware initialization to user space scripts bypasses kernel power management and is a known DT anti-pattern.
> - [Medium] sai7 targets the wrong LPCG clock index (IPG clock instead of MCLK) for its assigned clocks, leading to incorrect audio clock configuration.
> --
>
> --- Patch [2]: [PATCH v4 2/3] arm64: dts: freescale: Add support for Variscite VAR-SOM-MX8 QuadMax ---
> commit 62ffa3edc88c7bf11df029d0ed1df55635d9355b
> Author: Stefano Radaelli <stefano.r@variscite.com>
>
> arm64: dts: freescale: Add support for Variscite VAR-SOM-MX8 QuadMax
>
> This adds device tree support for the Variscite VAR-SOM-MX8 QuadMax system
> on module. It enables module-specific peripherals like the i.MX8 QuadMax MPU,
> LPDDR4 memory, eMMC, Ethernet, WM8904 codec audio, and WIFI6/Bluetooth.
> Carrier board interfaces are left disabled by default.
>
> Link: https://variscite.com/system-on-module-som/i-mx-8/i-mx-8-quadmax-quadplus/var-som-mx8/
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx8qm-var-som.dtsi b/arch/arm64/boot/dts/freescale/imx8qm-var-som.dtsi
> > new file mode 100644
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8qm-var-som.dtsi
> > @@ -0,0 +1,531 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> [ ... ]
> > + memory@80000000 {
> > + device_type = "memory";
> > + reg = <0x00000000 0x80000000 0 0x40000000>;
> > + };
> [ ... ]
> > + reserved-memory {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > + ranges;
> [ ... ]
> > + /* global autoconfigured region for contiguous allocations */
> > + linux,cma {
> > + compatible = "shared-dma-pool";
> > + /* VAR-SOM-MX8QM doesn't have 1GB variant */
> > + alloc-ranges = <0 0xc0000000 0 0x3c000000>;
>
> [Severity: High]
> Does this CMA allocation range fall entirely outside the statically defined
> system RAM?
>
> The memory@80000000 node defined earlier establishes 1GB of memory starting
> at 0x80000000 and ending at 0xC0000000. However, this alloc-ranges property
> starts exactly at 0xC0000000. If the bootloader does not dynamically patch
> the memory node, could this cause CMA initialization to fail or trigger
> panics?
>
> > + size = <0 0x3c000000>;
> > + linux,cma-default;
> > + reusable;
> > + };
> > + };
> [ ... ]
> > +&i2c0 {
> > + clock-frequency = <100000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c0>;
> > + status = "okay";
> > +
> > + wm8904: codec@1a {
> > + compatible = "wlf,wm8904";
> > + reg = <0x1a>;
> [ ... ]
> > + AVDD-supply = <®_audio_supply>;
> > + CPVDD-supply = <®_audio_supply>;
> > + DBVDD-supply = <®_audio_supply>;
> > + DCVDD-supply = <®_audio_supply>;
>
> [Severity: High]
> Does assigning the 3.3V reg_audio_supply to these 1.8V WM8904 domains violate
> the absolute maximum hardware ratings?
>
> The reg_audio_supply is defined as a fixed 3.3V regulator, but the maximum
> voltage for WM8904 AVDD/CPVDD is 2.0V and DCVDD is 1.98V. Does this hardware
> description misrepresent the physical setup, or is the hardware actually
> supplied with 3.3V on these pins?
make sense, reg_audio_supply is virtual power supply, not hardware controler
it. It'd better to fix this
>
> > + MICVDD-supply = <®_audio_supply>;
> [ ... ]
> > +&sai7 {
> > + assigned-clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>,
> > + <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
> > + <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
> > + <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
> > + <&sai7_lpcg 0>;
>
> [Severity: Medium]
> Is sai7 targeting the wrong LPCG clock index here?
>
> This assigns a parent to <&sai7_lpcg 0> (the IPG clock, IMX_LPCG_CLK_0)
> instead of the MCLK (IMX_LPCG_CLK_4). The sai6 node correctly uses
> IMX_LPCG_CLK_4 for reparenting. Does this break the MCLK configuration
> for sai7?
lpcg 0 is wrong, which come from downstream old code. after switch to clock
indice, it should use IMX_LPCG_CLK_0 or IMX_LPCG_CLK_4 according to your
user case.
Frank
>
> > + assigned-clock-parents = <&aud_pll_div1_lpcg 0>;
> > + assigned-clock-rates = <0>, <786432000>, <98304000>, <24576000>, <98304000>;
> > + fsl,sai-asynchronous;
> > + status = "okay";
> > +};
> [ ... ]
> > + pinctrl_wifi: wifigrp {
> > + fsl,pins = <
> > + /* GPIOs used by user space WiFi init */
> > + IMX8QM_SCU_GPIO0_07_SCU_DSC_RTC_CLOCK_OUTPUT_32K 0xc600004c
> > + IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31 0x06000021
> > + IMX8QM_SCU_GPIO0_02_LSIO_GPIO0_IO30 0x00000021
> > + IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x00000021
> > + >;
> > + };
>
> [Severity: Medium]
> Does delegating the WiFi and Bluetooth hardware initialization to user space
> scripts bypass kernel power management?
>
> This pinctrl group explicitly reserves pins to be toggled from user space.
> Should the power sequence be modeled in the device tree via mmc-pwrseq-simple
> or fixed regulators so the kernel can manage power sequencing autonomously
> instead?
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/cover.1784133402.git.stefano.r@variscite.com?part=2
>
next prev parent reply other threads:[~2026-07-15 18:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-15 16:40 [PATCH v4 0/3] Add support for Variscite VAR-SOM-MX8QM and Symphony board Stefano Radaelli
2026-07-15 16:40 ` [PATCH v4 1/3] dt-bindings: arm: fsl: add Variscite VAR-SOM-MX8 QuadMax Boards Stefano Radaelli
2026-07-15 16:40 ` [PATCH v4 2/3] arm64: dts: freescale: Add support for Variscite VAR-SOM-MX8 QuadMax Stefano Radaelli
2026-07-15 17:00 ` sashiko-bot
2026-07-15 18:49 ` Frank Li [this message]
2026-07-15 16:40 ` [PATCH v4 3/3] arm64: dts: imx8qm-var-som: Add support for Variscite Symphony board Stefano Radaelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alfWPKIeGqn_Er5B@SMW015318 \
--to=frank.li@oss.nxp.com \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=imx@lists.linux.dev \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=stefano.radaelli21@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox