summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchinawrj2026-04-22 12:41:59 +0000
committerRobert Marko2026-04-22 18:41:29 +0000
commit6cbb072b57e9d72d07097902d975f8a13b768e72 (patch)
tree27e514f4eb182a868039feb03931a7157183bb1d
parent0a0ed86b42361e5a28bff92b914af1cfafaa5ab4 (diff)
downloadopenwrt-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.dts8
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 {