1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2 /* 3 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 4 * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 5 */ 6 #ifndef ATH11K_AHB_H 7 #define ATH11K_AHB_H 8 9 #include "core.h" 10 11 #define ATH11K_AHB_RECOVERY_TIMEOUT (3 * HZ) 12 13 #define ATH11K_AHB_SMP2P_SMEM_MSG GENMASK(15, 0) 14 #define ATH11K_AHB_SMP2P_SMEM_SEQ_NO GENMASK(31, 16) 15 #define ATH11K_AHB_SMP2P_SMEM_VALUE_MASK 0xFFFFFFFF 16 17 enum ath11k_ahb_smp2p_msg_id { 18 ATH11K_AHB_POWER_SAVE_ENTER = 1, 19 ATH11K_AHB_POWER_SAVE_EXIT, 20 }; 21 22 struct ath11k_base; 23 24 struct ath11k_ahb { 25 struct rproc *tgt_rproc; 26 struct { 27 struct device *dev; 28 struct iommu_domain *iommu_domain; 29 dma_addr_t msa_paddr; 30 u32 msa_size; 31 dma_addr_t ce_paddr; 32 u32 ce_size; 33 bool use_tz; 34 } fw; 35 struct { 36 unsigned short seq_no; 37 unsigned int smem_bit; 38 struct qcom_smem_state *smem_state; 39 } smp2p_info; 40 }; 41 42 static inline struct ath11k_ahb *ath11k_ahb_priv(struct ath11k_base *ab) 43 { 44 return (struct ath11k_ahb *)ab->drv_priv; 45 } 46 #endif 47