2 * Copyright (c) 2018 The Linux Foundation. All rights reserved.
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24 struct ath10k_snoc_drv_priv
{
25 enum ath10k_hw_rev hw_rev
;
35 struct ath10k_snoc_pipe
{
36 struct ath10k_ce_pipe
*ce_hdl
;
38 struct ath10k
*hif_ce_state
;
42 struct ath10k_snoc
*ar_snoc
;
45 struct ath10k_snoc_target_info
{
52 struct ath10k_snoc_ce_irq
{
56 struct ath10k_wcn3990_vreg_info
{
57 struct regulator
*reg
;
62 unsigned long settle_delay
;
66 struct ath10k_wcn3990_clk_info
{
74 struct platform_device
*dev
;
78 struct ath10k_snoc_target_info target_info
;
80 struct ath10k_snoc_pipe pipe_info
[CE_COUNT_MAX
];
81 struct ath10k_snoc_ce_irq ce_irqs
[CE_COUNT_MAX
];
83 struct timer_list rx_post_retry
;
84 struct ath10k_wcn3990_vreg_info
*vreg
;
85 struct ath10k_wcn3990_clk_info
*clk
;
86 struct ath10k_qmi
*qmi
;
89 static inline struct ath10k_snoc
*ath10k_snoc_priv(struct ath10k
*ar
)
91 return (struct ath10k_snoc
*)ar
->drv_priv
;
94 void ath10k_snoc_write32(struct ath10k
*ar
, u32 offset
, u32 value
);
95 u32
ath10k_snoc_read32(struct ath10k
*ar
, u32 offset
);
96 int ath10k_snoc_fw_indication(struct ath10k
*ar
, u64 type
);