[PATCH v2 0/6] Bluetooth: qca: enable QCC2072 on RB3 Gen 2 Industrial

From: Rahul Samana

Date: Mon Jul 27 2026 - 11:56:34 EST


The RB3 Gen 2 Industrial mezzanine normally uses the M.2 E-key slot for
Bluetooth over USB. This series enables a reworked Industrial mezzanine
variant where the same M.2 E-key Bluetooth path is routed over UART4
instead.

The BT UART overlay is applied on top of the existing Industrial mezzanine
overlay because the reworked board keeps the common Industrial mezzanine
hardware description and only changes the Bluetooth transport routing.

This series continues the QCC2072 enablement work previously posted by
Vivek Sahu and Yepuri Siddu.

Vivek posted the initial QCC2072 binding and driver support up to v5:

https://lore.kernel.org/all/20260218114955.3970974-1-vivek.sahu@xxxxxxxxxxxxxxxx/

Siddu later posted the RB3 Gen 2 Industrial BT-over-UART use case with
QCC2072 driver additions, NVM + BCS calibration handling and a
card-specific DT overlay:

https://lore.kernel.org/all/20260529175342.3363935-1-yepuri.siddu@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20260529175822.3366535-1-yepuri.siddu@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20260529180234.3373056-1-yepuri.siddu@xxxxxxxxxxxxxxxx/
https://lore.kernel.org/all/20260529180431.3373856-1-yepuri.siddu@xxxxxxxxxxxxxxxx/

This revision carries that work forward using the M.2 power sequencing
model.

This series depends on the M.2 Bluetooth pwrseq support from the Monza
wireless series, which adds the hci_qca OF graph handling needed for M.2
Bluetooth devices to acquire the UART power sequence from the M.2 connector
graph:

https://lore.kernel.org/all/20260710-monza-wireless-v3-0-46253587af64@xxxxxxxxxxxxxxxx/

Unlike v1, this revision documents the qcom,qcc2072-bt compatible before
using it from hci_qca or the M.2 pwrseq driver. It also carries the QCC2072
M.2 pwrseq PCI ID in this series, because the earlier standalone dependency
was being dropped due to the missing binding.

The QCC2072 M.2 pwrseq PCI ID was also posted by Krishna Chaitanya Chundru
as part of the Eliza EVK PCIe/M.2 series:

https://lore.kernel.org/all/20260703-eliza_evk-v1-3-7624440bd76d@xxxxxxxxxxxxxxxx/

It is carried here so this series is self-contained after adding the
qcom,qcc2072-bt binding.

Tested on RB3 Gen 2 with the reworked Industrial mezzanine. Bluetooth setup
completed successfully over UART4, hci0 was created, and the runtime
Bluetooth child under UART4 was created with compatible qcom,qcc2072-bt by
the M.2 pwrseq path.

Signed-off-by: Rahul Samana <rahul.samana@xxxxxxxxxxxxxxxx>
---
Changes in v2:
- Document qcom,qcc2072-bt before using it from hci_qca or pwrseq.
- Fix uninitialized QCC2072 BCS calibration filename handling with custom NVM
firmware-name paths.
- Carry the QCC2072 M.2 pwrseq PCI ID in this series.
- Call out the Monza wireless M.2 Bluetooth pwrseq dependency.
- Preserve prior Vivek/Siddu QCC2072 driver enablement lineage.
- Rework the PCI bridge commit message to explain the reason first.
- Add labels for the WCN6750 PMU and M.2 PCI child and patch by label.
- Remove unused overlay labels and the ineffective overlay delete-property.
- Link to v1: https://lore.kernel.org/all/20260723-rb3-industrial-bt-uart-v1-0-3c8e580c09d1@xxxxxxxxxxxxxxxx/

To: Bartosz Golaszewski <brgl@xxxxxxxxxx>
To: Marcel Holtmann <marcel@xxxxxxxxxxxx>
To: Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx>
To: Rob Herring <robh@xxxxxxxxxx>
To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
To: Conor Dooley <conor+dt@xxxxxxxxxx>
To: Balakrishna Godavarthi <quic_bgodavar@xxxxxxxxxxx>
To: Rocky Liao <quic_rjliao@xxxxxxxxxxx>
To: Manivannan Sadhasivam <mani@xxxxxxxxxx>
To: Bjorn Andersson <andersson@xxxxxxxxxx>
To: Konrad Dybcio <konradybcio@xxxxxxxxxx>
Cc: Bartosz Golaszewski <brgl@xxxxxxxx>
Cc: linux-arm-msm@xxxxxxxxxxxxxxx
Cc: linux-bluetooth@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: linux-pm@xxxxxxxxxxxxxxx

---
Krishna Chaitanya Chundru (1):
power: sequencing: pwrseq-pcie-m2: add QCC2072

Rahul Samana (4):
dt-bindings: bluetooth: qca: add QCC2072
arm64: dts: qcom: qcs6490-rb3gen2: label BT PMU and M.2 PCI node
arm64: dts: qcom: kodiak: mark PCIe root port as bridge
arm64: dts: qcom: rb3gen2: add Industrial BT UART overlay

Vivek Sahu (1):
Bluetooth: qca: add QCC2072 support

.../bindings/net/bluetooth/qcom,qcc2072-bt.yaml | 39 +++++++
arch/arm64/boot/dts/qcom/Makefile | 2 +
arch/arm64/boot/dts/qcom/kodiak.dtsi | 1 +
...s6490-rb3gen2-industrial-mezzanine-bt-uart.dtso | 129 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 4 +-
drivers/bluetooth/btqca.c | 72 +++++++++++-
drivers/bluetooth/btqca.h | 2 +
drivers/bluetooth/hci_qca.c | 24 ++++
drivers/power/sequencing/pwrseq-pcie-m2.c | 2 +
9 files changed, 272 insertions(+), 3 deletions(-)
---
base-commit: 248951ddc14de84de3910f9b13f51491a8cd91df
change-id: 20260723-rb3-industrial-bt-uart-f98acaffc9f5

Best regards,
--
Rahul Samana <rahul.samana@xxxxxxxxxxxxxxxx>