ahb.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. #include "core.h"
  9. #define ATH11K_AHB_RECOVERY_TIMEOUT (3 * HZ)
  10. #define ATH11K_AHB_SMP2P_SMEM_MSG GENMASK(15, 0)
  11. #define ATH11K_AHB_SMP2P_SMEM_SEQ_NO GENMASK(31, 16)
  12. #define ATH11K_AHB_SMP2P_SMEM_VALUE_MASK 0xFFFFFFFF
  13. enum ath11k_ahb_smp2p_msg_id {
  14. ATH11K_AHB_POWER_SAVE_ENTER = 1,
  15. ATH11K_AHB_POWER_SAVE_EXIT,
  16. };
  17. struct ath11k_base;
  18. struct ath11k_ahb {
  19. struct rproc *tgt_rproc;
  20. struct {
  21. struct device *dev;
  22. struct iommu_domain *iommu_domain;
  23. dma_addr_t msa_paddr;
  24. u32 msa_size;
  25. dma_addr_t ce_paddr;
  26. u32 ce_size;
  27. bool use_tz;
  28. } fw;
  29. struct {
  30. unsigned short seq_no;
  31. unsigned int smem_bit;
  32. struct qcom_smem_state *smem_state;
  33. } smp2p_info;
  34. };
  35. static inline struct ath11k_ahb *ath11k_ahb_priv(struct ath11k_base *ab)
  36. {
  37. return (struct ath11k_ahb *)ab->drv_priv;
  38. }
  39. #endif