xref: /linux/drivers/net/wireless/ath/ath12k/fw.h (revision a34b0e4e21d6be3c3d620aa7f9dfbf0e9550c19e)
1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
2 /*
3  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4  */
5 
6 #ifndef ATH12K_FW_H
7 #define ATH12K_FW_H
8 
9 #define ATH12K_FW_API2_FILE		"firmware-2.bin"
10 #define ATH12K_FIRMWARE_MAGIC		"QCOM-ATH12K-FW"
11 
12 enum ath12k_fw_ie_type {
13 	ATH12K_FW_IE_TIMESTAMP = 0,
14 	ATH12K_FW_IE_FEATURES = 1,
15 	ATH12K_FW_IE_AMSS_IMAGE = 2,
16 	ATH12K_FW_IE_M3_IMAGE = 3,
17 	ATH12K_FW_IE_AMSS_DUALMAC_IMAGE = 4,
18 	ATH12K_FW_IE_AUX_UC_IMAGE = 5,
19 };
20 
21 enum ath12k_fw_features {
22 	/* The firmware supports setting the QRTR id via register
23 	 * PCIE_LOCAL_REG_QRTR_NODE_ID
24 	 */
25 	ATH12K_FW_FEATURE_MULTI_QRTR_ID = 0,
26 
27 	/* The firmware supports MLO capability */
28 	ATH12K_FW_FEATURE_MLO,
29 
30 	/* keep last */
31 	ATH12K_FW_FEATURE_COUNT,
32 };
33 
34 void ath12k_fw_map(struct ath12k_base *ab);
35 void ath12k_fw_unmap(struct ath12k_base *ab);
36 bool ath12k_fw_feature_supported(struct ath12k_base *ab, enum ath12k_fw_features feat);
37 
38 #endif /* ATH12K_FW_H */
39