[PATCH 0/3] Bluetooth: qca: enable QCC2072 on RB3 Gen 2 Industrial Mezz reworked for BT over UART
Rahul Samana <[email protected]>
| Newsgroups | org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260723-rb3-industrial-bt-uart-v1-0-3c8e580c09d1@oss.qualcomm.com> |
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. To support this board variant, add QCC2072 support to the Qualcomm Bluetooth UART driver. QCC2072 uses ORN firmware naming, board-id based NVM lookup, and requires the BCS calibration TLV to be combined with the selected NVM before download. The DTS changes also mark the QCS6490 PCIe root port as a PCI bridge so child nodes below the enumerated PCI topology can be matched. This is needed for the M.2 E-key connector graph endpoints used by the BT UART overlay. The series is split as follows: - Patch 1 adds QCC2072 support to the Qualcomm Bluetooth UART driver, including ORN firmware naming, board-id based NVM lookup and BCS calibration TLV download together with the selected NVM. - Patch 2 marks the QCS6490 PCIe root port as a PCI bridge so the PCI subsystem can associate the DT node with the enumerated PCI-to-PCI bridge device used by the M.2 E-key graph. - Patch 3 describes the reworked RB3 Gen 2 Industrial mezzanine BT UART path by adding the M.2 E-key connector graph links from port@0 to PCIe and from port@3 to UART4, and composes this overlay on top of the existing Industrial mezzanine overlay. This series depends on two M.2 power sequencing changes already posted upstream. The Eliza EVK series adds the QCC2072 PCI ID to the M.2 E-key power sequencing driver, which lets the connector power sequence bind to the enumerated QCC2072 WLAN function: https://lore.kernel.org/all/[email protected]/ The Monza wireless series adds the generic hci_qca OF graph handling used by M.2 Bluetooth devices, so the Bluetooth serdev controller can acquire the UART power sequence from the M.2 connector graph instead of carrying a board-specific power-control path in this series: https://lore.kernel.org/all/[email protected]/ Tested on RB3 Gen 2 with the reworked Industrial mezzanine. Bluetooth setup completed successfully over UART4. The QCC2072 NVM and BCS calibration loading path was verified to request board-specific files when available and fall back to the default files otherwise. Signed-off-by: Rahul Samana <[email protected]> --- Rahul Samana (3): Bluetooth: qca: add QCC2072 support arm64: dts: qcom: kodiak: mark PCIe root port as bridge arm64: dts: qcom: rb3gen2: add Industrial BT UART overlay arch/arm64/boot/dts/qcom/Makefile | 2 + arch/arm64/boot/dts/qcom/kodiak.dtsi | 1 + ...s6490-rb3gen2-industrial-mezzanine-bt-uart.dtso | 133 +++++++++++++++++++++ drivers/bluetooth/btqca.c | 70 ++++++++++- drivers/bluetooth/btqca.h | 2 + drivers/bluetooth/hci_qca.c | 24 ++++ 6 files changed, 231 insertions(+), 1 deletion(-) --- base-commit: 248951ddc14de84de3910f9b13f51491a8cd91df change-id: 20260723-rb3-industrial-bt-uart-f98acaffc9f5 Best regards, -- Rahul Samana <[email protected]>