xref: /freebsd/sys/contrib/dev/athk/ath12k/fw.h (revision a96550206e4bde15bf615ff2127b80404a7ec41f)
1*a9655020SBjoern A. Zeeb /* SPDX-License-Identifier: BSD-3-Clause-Clear */
2*a9655020SBjoern A. Zeeb /*
3*a9655020SBjoern A. Zeeb  * Copyright (c) 2022-2025 Qualcomm Innovation Center, Inc. All rights reserved.
4*a9655020SBjoern A. Zeeb  */
5*a9655020SBjoern A. Zeeb 
6*a9655020SBjoern A. Zeeb #ifndef ATH12K_FW_H
7*a9655020SBjoern A. Zeeb #define ATH12K_FW_H
8*a9655020SBjoern A. Zeeb 
9*a9655020SBjoern A. Zeeb #define ATH12K_FW_API2_FILE		"firmware-2.bin"
10*a9655020SBjoern A. Zeeb #define ATH12K_FIRMWARE_MAGIC		"QCOM-ATH12K-FW"
11*a9655020SBjoern A. Zeeb 
12*a9655020SBjoern A. Zeeb enum ath12k_fw_ie_type {
13*a9655020SBjoern A. Zeeb 	ATH12K_FW_IE_TIMESTAMP = 0,
14*a9655020SBjoern A. Zeeb 	ATH12K_FW_IE_FEATURES = 1,
15*a9655020SBjoern A. Zeeb 	ATH12K_FW_IE_AMSS_IMAGE = 2,
16*a9655020SBjoern A. Zeeb 	ATH12K_FW_IE_M3_IMAGE = 3,
17*a9655020SBjoern A. Zeeb 	ATH12K_FW_IE_AMSS_DUALMAC_IMAGE = 4,
18*a9655020SBjoern A. Zeeb };
19*a9655020SBjoern A. Zeeb 
20*a9655020SBjoern A. Zeeb enum ath12k_fw_features {
21*a9655020SBjoern A. Zeeb 	/* The firmware supports setting the QRTR id via register
22*a9655020SBjoern A. Zeeb 	 * PCIE_LOCAL_REG_QRTR_NODE_ID
23*a9655020SBjoern A. Zeeb 	 */
24*a9655020SBjoern A. Zeeb 	ATH12K_FW_FEATURE_MULTI_QRTR_ID = 0,
25*a9655020SBjoern A. Zeeb 
26*a9655020SBjoern A. Zeeb 	/* The firmware supports MLO capability */
27*a9655020SBjoern A. Zeeb 	ATH12K_FW_FEATURE_MLO,
28*a9655020SBjoern A. Zeeb 
29*a9655020SBjoern A. Zeeb 	/* keep last */
30*a9655020SBjoern A. Zeeb 	ATH12K_FW_FEATURE_COUNT,
31*a9655020SBjoern A. Zeeb };
32*a9655020SBjoern A. Zeeb 
33*a9655020SBjoern A. Zeeb void ath12k_fw_map(struct ath12k_base *ab);
34*a9655020SBjoern A. Zeeb void ath12k_fw_unmap(struct ath12k_base *ab);
35*a9655020SBjoern A. Zeeb bool ath12k_fw_feature_supported(struct ath12k_base *ab, enum ath12k_fw_features feat);
36*a9655020SBjoern A. Zeeb 
37*a9655020SBjoern A. Zeeb #endif /* ATH12K_FW_H */
38