From: sashiko-bot@kernel.org
To: "Linghui Wu" <linghui.wu@oss.qualcomm.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v3] arm64: dts: qcom: shikra-iqs: add M.2 Wi-Fi and Bluetooth overlay
Date: Tue, 20 Oct 2026 08:19:09 +0000 [thread overview]
Message-ID: <sashiko-outbox-178516@kernel.org> (raw)
In-Reply-To: <20261020020925.3915548-1-linghui.wu@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] arm64: dts: qcom: unapplied shikra M.2 overlay and missing base DTB targets
- [Medium] arm64: dts: qcom: missing address/size cells and status in i2c3 overlay node
- [Medium] arm64: dts: qcom: shikra-iqs: duplicate m2_keye_3p3 supply on pcie and M.2 connector
--
commit 09177a14c1310eacd965626caf4a52cacd777f25
Author: Linghui Wu <linghui.wu@oss.qualcomm.com>
arm64: dts: qcom: shikra-iqs: add M.2 Wi-Fi and Bluetooth overlay
This patch adds a device tree overlay for M.2 Key-E Wi-Fi and Bluetooth
modules on the Qualcomm Shikra IQS EVK and disables the onboard WCN3988
Wi-Fi and Bluetooth nodes when applied.
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 1c86e7e98f55d..799faa32e2d98 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -339,6 +339,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sdx75-idp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += shikra-cqm-evk.dtb
> dtb-$(CONFIG_ARCH_QCOM) += shikra-cqs-evk.dtb
> dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk-m2-wifi-bt.dtbo
> dtb-$(CONFIG_ARCH_QCOM) += sm4250-oneplus-billie2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm4450-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm6115-fxtec-pro1x.dtb
[Severity: High]
Does adding shikra-iqs-evk-m2-wifi-bt.dtbo directly to dtb-$(CONFIG_ARCH_QCOM)
without a composite -dtbs target cause a Kbuild warning and prevent the base
DTB from being compiled with symbols?
In scripts/Makefile.dtbs, Kbuild checks that every .dtbo in dtb-y is applied
to at least one base .dtb via a -dtbs rule:
scripts/Makefile.dtbs:
applied-dtbo := $(filter %.dtbo, \
$(call real-search, $(call multi-search, $(all-dtb), .dtb, -dtbs), .dtb, -dtbs))
unapplied-dtbo := $(filter-out $(applied-dtbo),$(filter %.dtbo, $(dtb-y)))
$(if $(unapplied-dtbo), $(warning .dtbo is not applied to any base: $(unapplied-dtbo)))
In addition, scripts/Makefile.dtbs only passes -@ to dtc for base DTBs listed
in a composite -dtbs rule (base-dtb-y). Without defining:
shikra-iqs-evk-m2-wifi-bt-dtbs := shikra-iqs-evk.dtb shikra-iqs-evk-m2-wifi-bt.dtbo
dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk-m2-wifi-bt.dtb
shikra-iqs-evk.dtb is compiled without a /__symbols__ node, so the overlay
cannot be applied to it. Furthermore, when attempting to apply this overlay
to shikra-iqs-evk.dtb, the target labels &pcie, &pcie_port0, and &tc9563
referenced below do not exist in shikra.dtsi, shikra-iqs-som.dtsi,
shikra-evk.dtsi, or shikra-iqs-evk.dts, causing fdtoverlay to fail with
FDT_ERR_NOTFOUND. Is this patch depending on unmerged base DTB changes?
> diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk-m2-wifi-bt.dtso b/arch/arm64/boot/dts/qcom/shikra-iqs-evk-m2-wifi-bt.dtso
> new file mode 100644
> index 0000000000000..985c728dd693d
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk-m2-wifi-bt.dtso
> @@ -0,0 +1,105 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> + m2_keye_3p3: regulator-m2-keye-3p3 {
> + compatible = "regulator-fixed";
> + regulator-name = "VREG_3P3_KEYE";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + gpio = <&qps_gpio_expander 6 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + wifi-bt-connector {
> + compatible = "pcie-m2-e-connector";
> +
> + vpcie3v3-supply = <&m2_keye_3p3>;
> + w-disable1-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
> + w-disable2-gpios = <&tlmm 60 GPIO_ACTIVE_LOW>;
[ ... ]
> +&i2c3 {
> + qps_gpio_expander: gpio@3c {
> + compatible = "nxp,pca9534";
> + reg = <0x3c>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + };
> +};
[Severity: Medium]
Should the &i2c3 fragment include #address-cells = <1>, #size-cells = <0>,
and status = "okay"?
When dtc compiles the .dtso plugin in isolation, check_reg_format() and
check_avoid_default_addr_size() in scripts/dtc/checks.c evaluate gpio@3c
against the fragment parent, which defaults to 2 address cells and 1 size
cell when #address-cells and #size-cells are omitted, emitting reg_format
and avoid_default_addr_size warnings on reg = <0x3c>.
Also, in arch/arm64/boot/dts/qcom/shikra.dtsi, i2c3 is defined with
status = "disabled" and is not enabled in the board DTS/DTSI files:
arch/arm64/boot/dts/qcom/shikra.dtsi:
i2c3: i2c@4a8c000 {
compatible = "qcom,geni-i2c";
...
status = "disabled";
};
Without status = "okay" on &i2c3, will qps_gpio_expander and the dependent
m2_keye_3p3 regulator fail to probe?
> +
> +&pcie {
> + iommu-map = <0x0 &apps_smmu 0x0800 0x0 0x1>,
> + <0x100 &apps_smmu 0x0801 0x0 0x1>;
> + vddpe-3v3-supply = <&m2_keye_3p3>;
> +};
[Severity: Medium]
Will assigning &m2_keye_3p3 to both vddpe-3v3-supply on &pcie and
vpcie3v3-supply on wifi-bt-connector cause the PCIe host controller and
the M.2 power sequencer to contend over the 3.3 V regulator?
During qcom_pcie_probe() -> dw_pcie_host_init() -> qcom_pcie_host_init()
in drivers/pci/controller/dwc/pcie-qcom.c:
ret = pcie->cfg->ops->init(pcie);
if (ret)
return ret;
ret = qcom_pcie_phy_power_on(pcie);
if (ret)
goto err_deinit;
if (!pci->suspended) {
ret = pci_pwrctrl_create_devices(pci->dev);
if (ret)
goto err_disable_phy;
}
if (!pp->skip_pwrctrl_off) {
ret = pci_pwrctrl_power_on_devices(pci->dev);
if (ret)
goto err_pwrctrl_destroy;
}
pcie->cfg->ops->init(pcie) enables vddpe-3v3 (&m2_keye_3p3) directly before
pci_pwrctrl_create_devices() and pci_pwrctrl_power_on_devices() run. When
pci_pwrctrl_power_on_devices() returns -EPROBE_DEFER while waiting for
pci-pwrctrl-slot and pwrseq-pcie-m2 to bind, qcom_pcie_host_init() unwinds
through err_deinit and disables &m2_keye_3p3, glitching the 3.3 V rail
before re-probing. Once bound, &pcie also holds a direct enable vote on
&m2_keye_3p3 outside of pwrseq-pcie-m2. Should vddpe-3v3-supply be omitted
from &pcie so that &m2_keye_3p3 is managed solely via vpcie3v3-supply on
wifi-bt-connector?
[ ... ]
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261020020925.3915548-1-linghui.wu@oss.qualcomm.com?part=1
next prev parent reply other threads:[~2026-10-20 8:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 12:29 [PATCH] arm64: dts: qcom: shikra-iqs: add M.2 Wi-Fi and Bluetooth overlay Linghui Wu
2026-10-12 12:44 ` sashiko-bot
2026-10-13 4:55 ` [PATCH v2] " Linghui Wu
2026-10-13 5:04 ` sashiko-bot
2026-10-16 12:37 ` Konrad Dybcio
2026-10-20 2:09 ` [PATCH v3] " Linghui Wu
2026-10-20 8:19 ` sashiko-bot [this message]
2026-10-21 17:18 ` Rob Herring
2026-10-21 23:20 ` Dmitry Baryshkov
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=sashiko-outbox-178516@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linghui.wu@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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