mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

QCN9274 can support single-PHY or split-PHY architecture. Currently, only the single-PHY architecture is supported in ath12k. The split-PHY QCN9274 requires different AMSS firmware binary "amss_dualmac.bin". Hence, add support to read board id from OTP. Based on board id decide whether single-mac / dual-mac firmware needs to be downloaded to the target. Also, update HW param max_radios to support split-PHY in QCN9274. Also, add new Firmware IE for firmware_N.bin "ATH11K_FW_IE_AMSS_DUALMAC_IMAGE" to support dualmac QCN9274. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00188-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Signed-off-by: Ganesh Babu Jothiram <quic_gjothira@quicinc.com> Co-developed-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://msgid.link/20240129065724.2310207-13-quic_rajkbhag@quicinc.com
33 lines
781 B
C
33 lines
781 B
C
/* SPDX-License-Identifier: BSD-3-Clause-Clear */
|
|
/*
|
|
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef ATH12K_FW_H
|
|
#define ATH12K_FW_H
|
|
|
|
#define ATH12K_FW_API2_FILE "firmware-2.bin"
|
|
#define ATH12K_FIRMWARE_MAGIC "QCOM-ATH12K-FW"
|
|
|
|
enum ath12k_fw_ie_type {
|
|
ATH12K_FW_IE_TIMESTAMP = 0,
|
|
ATH12K_FW_IE_FEATURES = 1,
|
|
ATH12K_FW_IE_AMSS_IMAGE = 2,
|
|
ATH12K_FW_IE_M3_IMAGE = 3,
|
|
ATH12K_FW_IE_AMSS_DUALMAC_IMAGE = 4,
|
|
};
|
|
|
|
enum ath12k_fw_features {
|
|
/* The firmware supports setting the QRTR id via register
|
|
* PCIE_LOCAL_REG_QRTR_NODE_ID
|
|
*/
|
|
ATH12K_FW_FEATURE_MULTI_QRTR_ID = 0,
|
|
|
|
/* keep last */
|
|
ATH12K_FW_FEATURE_COUNT,
|
|
};
|
|
|
|
void ath12k_fw_map(struct ath12k_base *ab);
|
|
void ath12k_fw_unmap(struct ath12k_base *ab);
|
|
|
|
#endif /* ATH12K_FW_H */
|