[PATCH ath-next v2 17/17] wifi: ath12k: Add QCN6432 AHB support
Aaradhana Sahu
aaradhana.sahu at oss.qualcomm.com
Thu Oct 15 20:21:54 PDT 2026
Add AHB support for QCN6432 by adding its hardware descriptor and
device-tree compatible entry.
QCN6432 uses a hybrid bus where the CE memory is handled through the
PCI interface. Skip the CE remapping and cleanup in the AHB resource
initialization and deinitialization for hybrid bus devices.
Also add the UserPD mappings required for the QCN6432 devices.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ5332 hw1.0 AHB WLAN.WBE.1.6-01322-QCAHKSWPL_SILICONZ-1
Tested-on: QCN6432 hw1.0 AHB WLAN.WBE.1.6-01322-QCAHKSWPL_SILICONZ-1
Signed-off-by: Aaradhana Sahu <aaradhana.sahu at oss.qualcomm.com>
---
drivers/net/wireless/ath/ath12k/ahb.c | 9 ++++++++-
drivers/net/wireless/ath/ath12k/wifi7/ahb.c | 11 +++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath12k/ahb.c b/drivers/net/wireless/ath/ath12k/ahb.c
index cecafc12e8a8..b55590c64a2c 100644
--- a/drivers/net/wireless/ath/ath12k/ahb.c
+++ b/drivers/net/wireless/ath/ath12k/ahb.c
@@ -1233,6 +1233,9 @@ static int ath12k_ahb_resource_init(struct ath12k_base *ab)
ab->mem_len = resource_size(mem_res);
+ if (ab->hw_params->hybrid_bus_type)
+ return 0;
+
if (ab->hw_params->ce_remap) {
const struct ce_remap *ce_remap = ab->hw_params->ce_remap;
/* CE register space is moved out of WCSS and the space is not
@@ -1289,10 +1292,14 @@ static void ath12k_ahb_resource_deinit(struct ath12k_base *ab)
if (ab->mem)
devm_iounmap(ab->dev, ab->mem);
+ ab->mem = NULL;
+
+ if (ab->hw_params->hybrid_bus_type)
+ return;
+
if (ab->mem_ce)
iounmap(ab->mem_ce);
- ab->mem = NULL;
ab->mem_ce = NULL;
clk_disable_unprepare(ab_ahb->xo_clk);
diff --git a/drivers/net/wireless/ath/ath12k/wifi7/ahb.c b/drivers/net/wireless/ath/ath12k/wifi7/ahb.c
index 889361e637af..ae5380eb6f8f 100644
--- a/drivers/net/wireless/ath/ath12k/wifi7/ahb.c
+++ b/drivers/net/wireless/ath/ath12k/wifi7/ahb.c
@@ -18,6 +18,8 @@
static const struct ath12k_ahb_userpd_map ath12k_wifi7_ahb_userpd_map[] = {
{ .io_start = 0x0c000000, .upd_id = ATH12K_AHB_USERPD_ID_0 },
+ { .io_start = 0x21e00000, .upd_id = ATH12K_AHB_USERPD_ID_1 },
+ { .io_start = 0x19e00000, .upd_id = ATH12K_AHB_USERPD_ID_2 },
};
static const struct ath12k_ahb_desc ath12k_wifi7_ahb_desc[] = {
@@ -33,6 +35,12 @@ static const struct ath12k_ahb_desc ath12k_wifi7_ahb_desc[] = {
.ops = &ath12k_ahb_hif_ops,
.supports_multipd = false,
},
+ [ATH12K_HW_QCN6432_HW10] = {
+ .hw_rev = ATH12K_HW_QCN6432_HW10,
+ .auth_enabled = true,
+ .ops = &ath12k_ahb_hif_ops_qcn6432,
+ .supports_multipd = true,
+ },
};
static const struct of_device_id ath12k_wifi7_ahb_of_match[] = {
@@ -42,6 +50,9 @@ static const struct of_device_id ath12k_wifi7_ahb_of_match[] = {
{ .compatible = "qcom,ipq5424-wifi",
.data = (void *)&ath12k_wifi7_ahb_desc[ATH12K_HW_IPQ5424_HW10],
},
+ { .compatible = "qcom,qcn6432",
+ .data = (void *)&ath12k_wifi7_ahb_desc[ATH12K_HW_QCN6432_HW10],
+ },
{ }
};
--
2.34.1
More information about the ath12k
mailing list