Re: [PATCH 0/3] power: sequencing: pcie-m2: Enable USB/UART BT coexistence on Hamoa EVK
From: Dmitry Baryshkov
Date: Thu Jul 09 2026 - 03:49:55 EST
On Thu, Jul 09, 2026 at 12:59:39PM +0530, Wei Deng wrote:
> M.2 combo chips expose Wi-Fi over PCIe and Bluetooth over either UART
> or USB, depending on the card variant. Both variants share the same PCIe
> device ID but use different sub-system IDs. The current driver uses bare
> PCI_DEVICE() matches that cover all sub-system IDs, so both variants
> trigger UART serdev creation — wrong for USB-only BT cards.
>
> This series fixes USB/UART BT coexistence by:
>
> 1. Narrowing WCN6855 and WCN7851 table entries to UART-only sub-system
> IDs so USB variants no longer trigger UART serdev creation.
>
> 2. Deasserting W_DISABLE2# for any PCIe device detected under the
> connector that does not match a UART BT entry, allowing the BT
> subsystem to power up and the USB BT interface to enumerate.
>
> 3. Describing the PCIe M.2 Key E connector on the Hamoa IoT EVK,
> adding w-disable2-gpios for software control of W_DISABLE2#.
>
> Validated on Hamoa IoT EVK (IQ-X7181-EVK) with multiple M.2 cards:
> UART BT (WCN6855, WCN7851, QCC2072) and USB BT (WCN6855, WCN7851)
> all work correctly.
>
> Signed-off-by: Wei Deng <wei.deng@xxxxxxxxxxxxxxxx>
> ---
> Wei Deng (3):
> arm64: dts: qcom: hamoa-iot-evk: Describe the PCIe M.2 Key E connector
> power: sequencing: pcie-m2: Match WCN6855 and WCN7851 UART BT variants by subdevice ID
> power: sequencing: pcie-m2: Deassert W_DISABLE2# when no UART serdev is created
What are the dependencies between patches?
>
> arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 129 ++++++++++-------------------
> arch/arm64/boot/dts/qcom/hamoa.dtsi | 1 +
> drivers/power/sequencing/pwrseq-pcie-m2.c | 39 ++++++---
> 3 files changed, 74 insertions(+), 95 deletions(-)
> ---
> base-commit: b9810cd75b9fb56a3425d391cba3f608502bd474
> change-id: 20260709-fix-hamoa-m2-w-disable2-0fe775072c74
>
> Best regards,
> --
> Wei Deng <wei.deng@xxxxxxxxxxxxxxxx>
>
--
With best wishes
Dmitry