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