diff options
| author | chinawrj | 2026-04-22 12:41:59 +0000 |
|---|---|---|
| committer | Robert Marko | 2026-04-22 18:41:29 +0000 |
| commit | 6cbb072b57e9d72d07097902d975f8a13b768e72 (patch) | |
| tree | 27e514f4eb182a868039feb03931a7157183bb1d | |
| parent | 0a0ed86b42361e5a28bff92b914af1cfafaa5ab4 (diff) | |
| download | openwrt-6cbb072b57e9d72d07097902d975f8a13b768e72.tar.gz | |
qualcommax: ipq50xx: ax6000: enable pcie1 for QCA9887
The Xiaomi AX6000 has three radios:
- IPQ5018 integrated 2.4 GHz (ath11k AHB, wifi0)
- QCN9024 on PCIe0 (ath11k PCI, QCA8074-class 5 GHz)
- QCA9887 on PCIe1 (ath10k, 5 GHz)
The DTS previously kept pcie1 disabled because the controller
could not bring the link up. The real cause was the PERST GPIO
polarity: the stock device-tree uses GPIO_ACTIVE_HIGH on GPIO18
for the QCA9887 card, while OpenWrt had GPIO_ACTIVE_LOW, leaving
the card held in reset.
With the correct polarity the PCIe1 link trains and the QCA9887
enumerates at 01:00.0. ath10k loads firmware-2.bin, registers
phy0 with mac80211, and provides a functional 5 GHz AP.
Tested on a reworked Xiaomi AX6000 with QCA9887 soldered in.
All three radios enumerate, load firmware and beacon
successfully; scan, association and data traffic confirmed on
each radio.
Signed-off-by: chinawrj <chinawrj@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23047
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1bc03924dbb14a4803e1f8369860e7bf23c7dc60)
| -rw-r--r-- | target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts index 4782101483..4bda41ba9d 100644 --- a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts @@ -549,13 +549,9 @@ }; &pcie1 { - /* - * although the pcie1 phy probes successfully, the controller is unable - * to bring it up. So let's disable it until a solution is found. - */ - status = "disabled"; + status = "okay"; - perst-gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + perst-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>; pcie@0 { wifi@0,0 { |