Re: [PATCH 0/5] Rework M.2 Bluetooth instantiation using the auxiliary bus

From: Sherry Sun

Date: Fri Sep 18 2026 - 05:51:21 EST


On Tue, Sep 15, 2026 at 04:24:01PM +0200, Manivannan Sadhasivam wrote:
Hi,

This series reworks the PCIe M.2 Bluetooth instantiation using the auxiliary
bus.

The Bluetooth interface of the QCA2066, WCN6855, WCN7850 and NXP 88W8987
M.2 modules is accessed over UART, but the modules show up at runtime over
PCIe and are not described in firmware like devicetree. To make the serdev
bus match the Bluetooth driver, the power sequencing driver was creating a
devicetree node at runtime using an of_changeset. But, creating a node just for
driver matching is not recommended as per Krzysztof [1].

So this series reworks the instantiation to use the auxiliary bus instead. The
power sequencing driver still allocates the UART serdev, but now hands it over
through an auxiliary device along with the power sequencing target. So this
series adds auxiliary driver support to hci_qca and btnxpuart drivers binding to
this device and brings up the controller over the existing UART transport.
Finally, it drops the serdev based M.2 code from both BT drivers.

Dependency
==========

This series depends on Monza series from Loic [2] and reuses its
pwrseq_is_controllable() API.

[1] https://lore.kernel.org/linux-pci/768142f0-2638-41f3-a34f-dc80bb99eb7f@xxxxxxxxxx
[2] https://lore.kernel.org/all/20260904-monza-wireless-v6-0-d8c5042b3efd@xxxxxxxxxxxxxxxx


For the NXP 88W8987 M.2 module related changes:
Tested-by: Sherry Sun <sherry.sun@xxxxxxx>

Best Regards
Sherry Sun

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>
---
Manivannan Sadhasivam (5):
Bluetooth: hci_qca: Add auxiliary driver for PCIe M.2 modules
Bluetooth: btnxpuart: Add auxiliary driver for PCIe M.2 modules
power: sequencing: pcie-m2: Create auxiliary device for the M.2 BT interface
Bluetooth: hci_qca: Drop serdev based M.2 power sequencing code
Bluetooth: btnxpuart: Drop serdev based M.2 power sequencing code

MAINTAINERS | 1 +
drivers/bluetooth/Kconfig | 2 +
drivers/bluetooth/btnxpuart.c | 193 +++++++++++++++++++-----------
drivers/bluetooth/hci_qca.c | 138 +++++++++++++++------
drivers/power/sequencing/Kconfig | 2 +-
drivers/power/sequencing/pwrseq-pcie-m2.c | 137 +++++++++++----------
include/linux/pwrseq/pcie-m2-bt.h | 38 ++++++
7 files changed, 343 insertions(+), 168 deletions(-)
---
base-commit: e5e04726cdd043e309677071ab1b65a4b18f422b
change-id: 20260806-pci-m2-bt-rework-78dc2c926f00
prerequisite-message-id: 20260904-monza-wireless-v6-0-d8c5042b3efd@xxxxxxxxxxxxxxxx
prerequisite-patch-id: c4e777757ca9358cc4dd35e23738cd7dc1ead1a0
prerequisite-patch-id: 09600595c2e80b12eda3aae39af192847d0f03d0
prerequisite-patch-id: afe88432c4d459e9094c0e6dd31ebeab6c9f2f08
prerequisite-patch-id: 60fd7b13447ccad7546fa8e5b5609d8f133f788f
prerequisite-patch-id: 61dcbe55fdb6f33a3229c197f16a678785aa16d8
prerequisite-patch-id: 14099e5c573d7c41b899c3f9bb9126aa23f1553e
prerequisite-patch-id: 647ee15b77671054b4bb012afa9ba8694b6c86c5
prerequisite-patch-id: c3a774cae81a6fad287731a38f1b76c7e8babc4c
prerequisite-patch-id: 18b0fa62060a1a2c96e76051944d692699035572
prerequisite-patch-id: df02ab167976ac1f0d5a38c78e559a7372b16c1f
prerequisite-patch-id: 3f2dddd108677252a539cdb1eb661912836289ca

Best regards,
--
மணிவண்ணன் சதாசிவம்