xref: /wlan-dirver/qca-wifi-host-cmn/hif/src/sdio/regtable_sdio.h (revision 4865edfd190c086bbe2c69aae12a8226f877b91e)
1 /*
2  * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #ifndef _REGTABLE_SDIO_H_
20 #define _REGTABLE_SDIO_H_
21 
22 #define MISSING  0
23 extern struct hif_sdio_softc *scn;
24 
25 struct targetdef_s {
26 	uint32_t d_RTC_SOC_BASE_ADDRESS;
27 	uint32_t d_RTC_WMAC_BASE_ADDRESS;
28 	uint32_t d_SYSTEM_SLEEP_OFFSET;
29 	uint32_t d_WLAN_SYSTEM_SLEEP_OFFSET;
30 	uint32_t d_WLAN_SYSTEM_SLEEP_DISABLE_LSB;
31 	uint32_t d_WLAN_SYSTEM_SLEEP_DISABLE_MASK;
32 	uint32_t d_CLOCK_CONTROL_OFFSET;
33 	uint32_t d_CLOCK_CONTROL_SI0_CLK_MASK;
34 	uint32_t d_RESET_CONTROL_OFFSET;
35 	uint32_t d_RESET_CONTROL_MBOX_RST_MASK;
36 	uint32_t d_RESET_CONTROL_SI0_RST_MASK;
37 	uint32_t d_WLAN_RESET_CONTROL_OFFSET;
38 	uint32_t d_WLAN_RESET_CONTROL_COLD_RST_MASK;
39 	uint32_t d_WLAN_RESET_CONTROL_WARM_RST_MASK;
40 	uint32_t d_GPIO_BASE_ADDRESS;
41 	uint32_t d_GPIO_PIN0_OFFSET;
42 	uint32_t d_GPIO_PIN1_OFFSET;
43 	uint32_t d_GPIO_PIN0_CONFIG_MASK;
44 	uint32_t d_GPIO_PIN1_CONFIG_MASK;
45 	uint32_t d_SI_CONFIG_BIDIR_OD_DATA_LSB;
46 	uint32_t d_SI_CONFIG_BIDIR_OD_DATA_MASK;
47 	uint32_t d_SI_CONFIG_I2C_LSB;
48 	uint32_t d_SI_CONFIG_I2C_MASK;
49 	uint32_t d_SI_CONFIG_POS_SAMPLE_LSB;
50 	uint32_t d_SI_CONFIG_POS_SAMPLE_MASK;
51 	uint32_t d_SI_CONFIG_INACTIVE_CLK_LSB;
52 	uint32_t d_SI_CONFIG_INACTIVE_CLK_MASK;
53 	uint32_t d_SI_CONFIG_INACTIVE_DATA_LSB;
54 	uint32_t d_SI_CONFIG_INACTIVE_DATA_MASK;
55 	uint32_t d_SI_CONFIG_DIVIDER_LSB;
56 	uint32_t d_SI_CONFIG_DIVIDER_MASK;
57 	uint32_t d_SI_BASE_ADDRESS;
58 	uint32_t d_SI_CONFIG_OFFSET;
59 	uint32_t d_SI_TX_DATA0_OFFSET;
60 	uint32_t d_SI_TX_DATA1_OFFSET;
61 	uint32_t d_SI_RX_DATA0_OFFSET;
62 	uint32_t d_SI_RX_DATA1_OFFSET;
63 	uint32_t d_SI_CS_OFFSET;
64 	uint32_t d_SI_CS_DONE_ERR_MASK;
65 	uint32_t d_SI_CS_DONE_INT_MASK;
66 	uint32_t d_SI_CS_START_LSB;
67 	uint32_t d_SI_CS_START_MASK;
68 	uint32_t d_SI_CS_RX_CNT_LSB;
69 	uint32_t d_SI_CS_RX_CNT_MASK;
70 	uint32_t d_SI_CS_TX_CNT_LSB;
71 	uint32_t d_SI_CS_TX_CNT_MASK;
72 	uint32_t d_BOARD_DATA_SZ;
73 	uint32_t d_BOARD_EXT_DATA_SZ;
74 	uint32_t d_MBOX_BASE_ADDRESS;
75 	uint32_t d_LOCAL_SCRATCH_OFFSET;
76 	uint32_t d_CPU_CLOCK_OFFSET;
77 	uint32_t d_LPO_CAL_OFFSET;
78 	uint32_t d_GPIO_PIN10_OFFSET;
79 	uint32_t d_GPIO_PIN11_OFFSET;
80 	uint32_t d_GPIO_PIN12_OFFSET;
81 	uint32_t d_GPIO_PIN13_OFFSET;
82 	uint32_t d_CLOCK_GPIO_OFFSET;
83 	uint32_t d_CPU_CLOCK_STANDARD_LSB;
84 	uint32_t d_CPU_CLOCK_STANDARD_MASK;
85 	uint32_t d_LPO_CAL_ENABLE_LSB;
86 	uint32_t d_LPO_CAL_ENABLE_MASK;
87 	uint32_t d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB;
88 	uint32_t d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK;
89 	uint32_t d_ANALOG_INTF_BASE_ADDRESS;
90 	uint32_t d_WLAN_MAC_BASE_ADDRESS;
91 	uint32_t d_FW_INDICATOR_ADDRESS;
92 	uint32_t d_DRAM_BASE_ADDRESS;
93 	uint32_t d_SOC_CORE_BASE_ADDRESS;
94 	uint32_t d_CORE_CTRL_ADDRESS;
95 	uint32_t d_MSI_NUM_REQUEST;
96 	uint32_t d_MSI_ASSIGN_FW;
97 	uint32_t d_CORE_CTRL_CPU_INTR_MASK;
98 	uint32_t d_SR_WR_INDEX_ADDRESS;
99 	uint32_t d_DST_WATERMARK_ADDRESS;
100 
101 	/* htt_rx.c */
102 	uint32_t d_RX_MSDU_END_4_FIRST_MSDU_MASK;
103 	uint32_t d_RX_MSDU_END_4_FIRST_MSDU_LSB;
104 	uint32_t d_RX_MPDU_START_0_RETRY_LSB;
105 	uint32_t d_RX_MPDU_START_0_RETRY_MASK;
106 	uint32_t d_RX_MPDU_START_0_SEQ_NUM_MASK;
107 	uint32_t d_RX_MPDU_START_0_SEQ_NUM_LSB;
108 	uint32_t d_RX_MPDU_START_2_PN_47_32_LSB;
109 	uint32_t d_RX_MPDU_START_2_PN_47_32_MASK;
110 	uint32_t d_RX_MPDU_START_2_TID_LSB;
111 	uint32_t d_RX_MPDU_START_2_TID_MASK;
112 	uint32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK;
113 	uint32_t d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB;
114 	uint32_t d_RX_MSDU_END_1_KEY_ID_OCT_MASK;
115 	uint32_t d_RX_MSDU_END_1_KEY_ID_OCT_LSB;
116 	uint32_t d_RX_MSDU_END_4_LAST_MSDU_MASK;
117 	uint32_t d_RX_MSDU_END_4_LAST_MSDU_LSB;
118 	uint32_t d_RX_ATTENTION_0_MCAST_BCAST_MASK;
119 	uint32_t d_RX_ATTENTION_0_MCAST_BCAST_LSB;
120 	uint32_t d_RX_ATTENTION_0_FRAGMENT_MASK;
121 	uint32_t d_RX_ATTENTION_0_FRAGMENT_LSB;
122 	uint32_t d_RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK;
123 	uint32_t d_RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK;
124 	uint32_t d_RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB;
125 	uint32_t d_RX_MSDU_START_0_MSDU_LENGTH_MASK;
126 	uint32_t d_RX_MSDU_START_0_MSDU_LENGTH_LSB;
127 	uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET;
128 	uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_MASK;
129 	uint32_t d_RX_MSDU_START_2_DECAP_FORMAT_LSB;
130 	uint32_t d_RX_MPDU_START_0_ENCRYPTED_MASK;
131 	uint32_t d_RX_MPDU_START_0_ENCRYPTED_LSB;
132 	uint32_t d_RX_ATTENTION_0_MORE_DATA_MASK;
133 	uint32_t d_RX_ATTENTION_0_MSDU_DONE_MASK;
134 	uint32_t d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK;
135 	/* end */
136 
137 	/* PLL start */
138 	uint32_t d_EFUSE_OFFSET;
139 	uint32_t d_EFUSE_XTAL_SEL_MSB;
140 	uint32_t d_EFUSE_XTAL_SEL_LSB;
141 	uint32_t d_EFUSE_XTAL_SEL_MASK;
142 	uint32_t d_BB_PLL_CONFIG_OFFSET;
143 	uint32_t d_BB_PLL_CONFIG_OUTDIV_MSB;
144 	uint32_t d_BB_PLL_CONFIG_OUTDIV_LSB;
145 	uint32_t d_BB_PLL_CONFIG_OUTDIV_MASK;
146 	uint32_t d_BB_PLL_CONFIG_FRAC_MSB;
147 	uint32_t d_BB_PLL_CONFIG_FRAC_LSB;
148 	uint32_t d_BB_PLL_CONFIG_FRAC_MASK;
149 	uint32_t d_WLAN_PLL_SETTLE_TIME_MSB;
150 	uint32_t d_WLAN_PLL_SETTLE_TIME_LSB;
151 	uint32_t d_WLAN_PLL_SETTLE_TIME_MASK;
152 	uint32_t d_WLAN_PLL_SETTLE_OFFSET;
153 	uint32_t d_WLAN_PLL_SETTLE_SW_MASK;
154 	uint32_t d_WLAN_PLL_SETTLE_RSTMASK;
155 	uint32_t d_WLAN_PLL_SETTLE_RESET;
156 	uint32_t d_WLAN_PLL_CONTROL_NOPWD_MSB;
157 	uint32_t d_WLAN_PLL_CONTROL_NOPWD_LSB;
158 	uint32_t d_WLAN_PLL_CONTROL_NOPWD_MASK;
159 	uint32_t d_WLAN_PLL_CONTROL_BYPASS_MSB;
160 	uint32_t d_WLAN_PLL_CONTROL_BYPASS_LSB;
161 	uint32_t d_WLAN_PLL_CONTROL_BYPASS_MASK;
162 	uint32_t d_WLAN_PLL_CONTROL_BYPASS_RESET;
163 	uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_MSB;
164 	uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_LSB;
165 	uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_MASK;
166 	uint32_t d_WLAN_PLL_CONTROL_CLK_SEL_RESET;
167 	uint32_t d_WLAN_PLL_CONTROL_REFDIV_MSB;
168 	uint32_t d_WLAN_PLL_CONTROL_REFDIV_LSB;
169 	uint32_t d_WLAN_PLL_CONTROL_REFDIV_MASK;
170 	uint32_t d_WLAN_PLL_CONTROL_REFDIV_RESET;
171 	uint32_t d_WLAN_PLL_CONTROL_DIV_MSB;
172 	uint32_t d_WLAN_PLL_CONTROL_DIV_LSB;
173 	uint32_t d_WLAN_PLL_CONTROL_DIV_MASK;
174 	uint32_t d_WLAN_PLL_CONTROL_DIV_RESET;
175 	uint32_t d_WLAN_PLL_CONTROL_OFFSET;
176 	uint32_t d_WLAN_PLL_CONTROL_SW_MASK;
177 	uint32_t d_WLAN_PLL_CONTROL_RSTMASK;
178 	uint32_t d_WLAN_PLL_CONTROL_RESET;
179 	uint32_t d_SOC_CORE_CLK_CTRL_OFFSET;
180 	uint32_t d_SOC_CORE_CLK_CTRL_DIV_MSB;
181 	uint32_t d_SOC_CORE_CLK_CTRL_DIV_LSB;
182 	uint32_t d_SOC_CORE_CLK_CTRL_DIV_MASK;
183 	uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_MSB;
184 	uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_LSB;
185 	uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_MASK;
186 	uint32_t d_RTC_SYNC_STATUS_PLL_CHANGING_RESET;
187 	uint32_t d_RTC_SYNC_STATUS_OFFSET;
188 	uint32_t d_SOC_CPU_CLOCK_OFFSET;
189 	uint32_t d_SOC_CPU_CLOCK_STANDARD_MSB;
190 	uint32_t d_SOC_CPU_CLOCK_STANDARD_LSB;
191 	uint32_t d_SOC_CPU_CLOCK_STANDARD_MASK;
192 	/* PLL end */
193 
194 	uint32_t d_SOC_POWER_REG_OFFSET;
195 	uint32_t d_SOC_RESET_CONTROL_ADDRESS;
196 	uint32_t d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK;
197 	uint32_t d_CPU_INTR_ADDRESS;
198 	uint32_t d_SOC_LF_TIMER_CONTROL0_ADDRESS;
199 	uint32_t d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK;
200 
201 	/* chip id start */
202 	uint32_t d_SOC_CHIP_ID_ADDRESS;
203 	uint32_t d_SOC_CHIP_ID_VERSION_MASK;
204 	uint32_t d_SOC_CHIP_ID_VERSION_LSB;
205 	uint32_t d_SOC_CHIP_ID_REVISION_MASK;
206 	uint32_t d_SOC_CHIP_ID_REVISION_LSB;
207 	/* chip id end */
208 
209 	uint32_t d_A_SOC_CORE_SCRATCH_0_ADDRESS;
210 	uint32_t d_A_SOC_CORE_SCRATCH_1_ADDRESS;
211 	uint32_t d_A_SOC_CORE_SCRATCH_2_ADDRESS;
212 	uint32_t d_A_SOC_CORE_SCRATCH_3_ADDRESS;
213 	uint32_t d_A_SOC_CORE_SCRATCH_4_ADDRESS;
214 	uint32_t d_A_SOC_CORE_SCRATCH_5_ADDRESS;
215 	uint32_t d_A_SOC_CORE_SCRATCH_6_ADDRESS;
216 	uint32_t d_A_SOC_CORE_SCRATCH_7_ADDRESS;
217 	uint32_t d_A_SOC_CORE_SPARE_0_REGISTER;
218 	uint32_t d_A_SOC_CORE_SPARE_1_REGISTER;
219 
220 	uint32_t d_WLAN_DEBUG_INPUT_SEL_OFFSET;
221 	uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_MSB;
222 	uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_LSB;
223 	uint32_t d_WLAN_DEBUG_INPUT_SEL_SRC_MASK;
224 	uint32_t d_WLAN_DEBUG_CONTROL_OFFSET;
225 	uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_MSB;
226 	uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_LSB;
227 	uint32_t d_WLAN_DEBUG_CONTROL_ENABLE_MASK;
228 	uint32_t d_WLAN_DEBUG_OUT_OFFSET;
229 	uint32_t d_WLAN_DEBUG_OUT_DATA_MSB;
230 	uint32_t d_WLAN_DEBUG_OUT_DATA_LSB;
231 	uint32_t d_WLAN_DEBUG_OUT_DATA_MASK;
232 	uint32_t d_AMBA_DEBUG_BUS_OFFSET;
233 	uint32_t d_AMBA_DEBUG_BUS_SEL_MSB;
234 	uint32_t d_AMBA_DEBUG_BUS_SEL_LSB;
235 	uint32_t d_AMBA_DEBUG_BUS_SEL_MASK;
236 
237 #ifdef QCA_WIFI_3_0_ADRASTEA
238 	uint32_t d_Q6_ENABLE_REGISTER_0;
239 	uint32_t d_Q6_ENABLE_REGISTER_1;
240 	uint32_t d_Q6_CAUSE_REGISTER_0;
241 	uint32_t d_Q6_CAUSE_REGISTER_1;
242 	uint32_t d_Q6_CLEAR_REGISTER_0;
243 	uint32_t d_Q6_CLEAR_REGISTER_1;
244 #endif
245 };
246 
247 #define A_SOC_CORE_SPARE_0_REGISTER \
248 	(scn->targetdef->d_A_SOC_CORE_SPARE_0_REGISTER)
249 #define A_SOC_CORE_SCRATCH_0_ADDRESS  \
250 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_0_ADDRESS)
251 #define A_SOC_CORE_SCRATCH_1_ADDRESS  \
252 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_1_ADDRESS)
253 #define A_SOC_CORE_SCRATCH_2_ADDRESS  \
254 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_2_ADDRESS)
255 #define A_SOC_CORE_SCRATCH_3_ADDRESS  \
256 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_3_ADDRESS)
257 #define A_SOC_CORE_SCRATCH_4_ADDRESS  \
258 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_4_ADDRESS)
259 #define A_SOC_CORE_SCRATCH_5_ADDRESS  \
260 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_5_ADDRESS)
261 #define A_SOC_CORE_SCRATCH_6_ADDRESS  \
262 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_6_ADDRESS)
263 #define A_SOC_CORE_SCRATCH_7_ADDRESS  \
264 	(scn->targetdef->d_A_SOC_CORE_SCRATCH_7_ADDRESS)
265 #define RTC_SOC_BASE_ADDRESS  (scn->targetdef->d_RTC_SOC_BASE_ADDRESS)
266 #define RTC_WMAC_BASE_ADDRESS (scn->targetdef->d_RTC_WMAC_BASE_ADDRESS)
267 #define SYSTEM_SLEEP_OFFSET   (scn->targetdef->d_SYSTEM_SLEEP_OFFSET)
268 #define WLAN_SYSTEM_SLEEP_OFFSET \
269 	(scn->targetdef->d_WLAN_SYSTEM_SLEEP_OFFSET)
270 #define WLAN_SYSTEM_SLEEP_DISABLE_LSB \
271 	(scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_LSB)
272 #define WLAN_SYSTEM_SLEEP_DISABLE_MASK \
273 	(scn->targetdef->d_WLAN_SYSTEM_SLEEP_DISABLE_MASK)
274 #define CLOCK_CONTROL_OFFSET (scn->targetdef->d_CLOCK_CONTROL_OFFSET)
275 #define CLOCK_CONTROL_SI0_CLK_MASK \
276 	(scn->targetdef->d_CLOCK_CONTROL_SI0_CLK_MASK)
277 #define RESET_CONTROL_OFFSET    (scn->targetdef->d_RESET_CONTROL_OFFSET)
278 #define RESET_CONTROL_MBOX_RST_MASK \
279 	(scn->targetdef->d_RESET_CONTROL_MBOX_RST_MASK)
280 #define RESET_CONTROL_SI0_RST_MASK \
281 	(scn->targetdef->d_RESET_CONTROL_SI0_RST_MASK)
282 #define WLAN_RESET_CONTROL_OFFSET \
283 	(scn->targetdef->d_WLAN_RESET_CONTROL_OFFSET)
284 #define WLAN_RESET_CONTROL_COLD_RST_MASK \
285 	(scn->targetdef->d_WLAN_RESET_CONTROL_COLD_RST_MASK)
286 #define WLAN_RESET_CONTROL_WARM_RST_MASK \
287 	(scn->targetdef->d_WLAN_RESET_CONTROL_WARM_RST_MASK)
288 #define GPIO_BASE_ADDRESS       (scn->targetdef->d_GPIO_BASE_ADDRESS)
289 #define GPIO_PIN0_OFFSET        (scn->targetdef->d_GPIO_PIN0_OFFSET)
290 #define GPIO_PIN1_OFFSET        (scn->targetdef->d_GPIO_PIN1_OFFSET)
291 #define GPIO_PIN0_CONFIG_MASK   (scn->targetdef->d_GPIO_PIN0_CONFIG_MASK)
292 #define GPIO_PIN1_CONFIG_MASK   (scn->targetdef->d_GPIO_PIN1_CONFIG_MASK)
293 #define A_SOC_CORE_SCRATCH_0    (scn->targetdef->d_A_SOC_CORE_SCRATCH_0)
294 #define SI_CONFIG_BIDIR_OD_DATA_LSB \
295 	(scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_LSB)
296 #define SI_CONFIG_BIDIR_OD_DATA_MASK \
297 	(scn->targetdef->d_SI_CONFIG_BIDIR_OD_DATA_MASK)
298 #define SI_CONFIG_I2C_LSB       (scn->targetdef->d_SI_CONFIG_I2C_LSB)
299 #define SI_CONFIG_I2C_MASK \
300 	(scn->targetdef->d_SI_CONFIG_I2C_MASK)
301 #define SI_CONFIG_POS_SAMPLE_LSB \
302 	(scn->targetdef->d_SI_CONFIG_POS_SAMPLE_LSB)
303 #define SI_CONFIG_POS_SAMPLE_MASK \
304 	(scn->targetdef->d_SI_CONFIG_POS_SAMPLE_MASK)
305 #define SI_CONFIG_INACTIVE_CLK_LSB \
306 	(scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_LSB)
307 #define SI_CONFIG_INACTIVE_CLK_MASK \
308 	(scn->targetdef->d_SI_CONFIG_INACTIVE_CLK_MASK)
309 #define SI_CONFIG_INACTIVE_DATA_LSB \
310 	(scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_LSB)
311 #define SI_CONFIG_INACTIVE_DATA_MASK \
312 	(scn->targetdef->d_SI_CONFIG_INACTIVE_DATA_MASK)
313 #define SI_CONFIG_DIVIDER_LSB   (scn->targetdef->d_SI_CONFIG_DIVIDER_LSB)
314 #define SI_CONFIG_DIVIDER_MASK  (scn->targetdef->d_SI_CONFIG_DIVIDER_MASK)
315 #define SI_BASE_ADDRESS         (scn->targetdef->d_SI_BASE_ADDRESS)
316 #define SI_CONFIG_OFFSET        (scn->targetdef->d_SI_CONFIG_OFFSET)
317 #define SI_TX_DATA0_OFFSET      (scn->targetdef->d_SI_TX_DATA0_OFFSET)
318 #define SI_TX_DATA1_OFFSET      (scn->targetdef->d_SI_TX_DATA1_OFFSET)
319 #define SI_RX_DATA0_OFFSET      (scn->targetdef->d_SI_RX_DATA0_OFFSET)
320 #define SI_RX_DATA1_OFFSET      (scn->targetdef->d_SI_RX_DATA1_OFFSET)
321 #define SI_CS_OFFSET            (scn->targetdef->d_SI_CS_OFFSET)
322 #define SI_CS_DONE_ERR_MASK     (scn->targetdef->d_SI_CS_DONE_ERR_MASK)
323 #define SI_CS_DONE_INT_MASK     (scn->targetdef->d_SI_CS_DONE_INT_MASK)
324 #define SI_CS_START_LSB         (scn->targetdef->d_SI_CS_START_LSB)
325 #define SI_CS_START_MASK        (scn->targetdef->d_SI_CS_START_MASK)
326 #define SI_CS_RX_CNT_LSB        (scn->targetdef->d_SI_CS_RX_CNT_LSB)
327 #define SI_CS_RX_CNT_MASK       (scn->targetdef->d_SI_CS_RX_CNT_MASK)
328 #define SI_CS_TX_CNT_LSB        (scn->targetdef->d_SI_CS_TX_CNT_LSB)
329 #define SI_CS_TX_CNT_MASK       (scn->targetdef->d_SI_CS_TX_CNT_MASK)
330 #define EEPROM_SZ               (scn->targetdef->d_BOARD_DATA_SZ)
331 #define EEPROM_EXT_SZ           (scn->targetdef->d_BOARD_EXT_DATA_SZ)
332 #define MBOX_BASE_ADDRESS       (scn->targetdef->d_MBOX_BASE_ADDRESS)
333 #define LOCAL_SCRATCH_OFFSET    (scn->targetdef->d_LOCAL_SCRATCH_OFFSET)
334 #define CPU_CLOCK_OFFSET        (scn->targetdef->d_CPU_CLOCK_OFFSET)
335 #define LPO_CAL_OFFSET          (scn->targetdef->d_LPO_CAL_OFFSET)
336 #define GPIO_PIN10_OFFSET       (scn->targetdef->d_GPIO_PIN10_OFFSET)
337 #define GPIO_PIN11_OFFSET       (scn->targetdef->d_GPIO_PIN11_OFFSET)
338 #define GPIO_PIN12_OFFSET       (scn->targetdef->d_GPIO_PIN12_OFFSET)
339 #define GPIO_PIN13_OFFSET       (scn->targetdef->d_GPIO_PIN13_OFFSET)
340 #define CLOCK_GPIO_OFFSET       (scn->targetdef->d_CLOCK_GPIO_OFFSET)
341 #define CPU_CLOCK_STANDARD_LSB  (scn->targetdef->d_CPU_CLOCK_STANDARD_LSB)
342 #define CPU_CLOCK_STANDARD_MASK (scn->targetdef->d_CPU_CLOCK_STANDARD_MASK)
343 #define LPO_CAL_ENABLE_LSB      (scn->targetdef->d_LPO_CAL_ENABLE_LSB)
344 #define LPO_CAL_ENABLE_MASK     (scn->targetdef->d_LPO_CAL_ENABLE_MASK)
345 #define CLOCK_GPIO_BT_CLK_OUT_EN_LSB \
346 	(scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB)
347 #define CLOCK_GPIO_BT_CLK_OUT_EN_MASK \
348 	(scn->targetdef->d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK)
349 #define ANALOG_INTF_BASE_ADDRESS (scn->targetdef->d_ANALOG_INTF_BASE_ADDRESS)
350 #define WLAN_MAC_BASE_ADDRESS    (scn->targetdef->d_WLAN_MAC_BASE_ADDRESS)
351 #define FW_INDICATOR_ADDRESS     (scn->targetdef->d_FW_INDICATOR_ADDRESS)
352 #define DRAM_BASE_ADDRESS        (scn->targetdef->d_DRAM_BASE_ADDRESS)
353 #define SOC_CORE_BASE_ADDRESS    (scn->targetdef->d_SOC_CORE_BASE_ADDRESS)
354 #define CORE_CTRL_ADDRESS        (scn->targetdef->d_CORE_CTRL_ADDRESS)
355 #define CORE_CTRL_CPU_INTR_MASK  (scn->targetdef->d_CORE_CTRL_CPU_INTR_MASK)
356 #define SOC_RESET_CONTROL_ADDRESS  (scn->targetdef->d_SOC_RESET_CONTROL_ADDRESS)
357 #define SOC_RESET_CONTROL_CPU_WARM_RST_MASK \
358 	(scn->targetdef->d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK)
359 #define CPU_INTR_ADDRESS        (scn->targetdef->d_CPU_INTR_ADDRESS)
360 #define SOC_LF_TIMER_CONTROL0_ADDRESS \
361 	(scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ADDRESS)
362 #define SOC_LF_TIMER_CONTROL0_ENABLE_MASK \
363 	(scn->targetdef->d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK)
364 
365 
366 #define CHIP_ID_ADDRESS           (scn->targetdef->d_SOC_CHIP_ID_ADDRESS)
367 #define SOC_CHIP_ID_REVISION_MASK (scn->targetdef->d_SOC_CHIP_ID_REVISION_MASK)
368 #define SOC_CHIP_ID_REVISION_LSB  (scn->targetdef->d_SOC_CHIP_ID_REVISION_LSB)
369 #define SOC_CHIP_ID_VERSION_MASK  (scn->targetdef->d_SOC_CHIP_ID_VERSION_MASK)
370 #define SOC_CHIP_ID_VERSION_LSB   (scn->targetdef->d_SOC_CHIP_ID_VERSION_LSB)
371 #define CHIP_ID_REVISION_GET(x) \
372 	(((x) & SOC_CHIP_ID_REVISION_MASK) >> SOC_CHIP_ID_REVISION_LSB)
373 #define CHIP_ID_VERSION_GET(x) \
374 	(((x) & SOC_CHIP_ID_VERSION_MASK) >> SOC_CHIP_ID_VERSION_LSB)
375 
376 /* misc */
377 #define SR_WR_INDEX_ADDRESS     (scn->targetdef->d_SR_WR_INDEX_ADDRESS)
378 #define DST_WATERMARK_ADDRESS   (scn->targetdef->d_DST_WATERMARK_ADDRESS)
379 #define SOC_POWER_REG_OFFSET    (scn->targetdef->d_SOC_POWER_REG_OFFSET)
380 /* end */
381 
382 /* htt_rx.c */
383 #define RX_MSDU_END_4_FIRST_MSDU_MASK \
384 	(pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_MASK)
385 #define RX_MSDU_END_4_FIRST_MSDU_LSB \
386 	(pdev->targetdef->d_RX_MSDU_END_4_FIRST_MSDU_LSB)
387 #define RX_MPDU_START_0_RETRY_LSB  \
388 	(pdev->targetdef->d_RX_MPDU_START_0_RETRY_LSB)
389 #define RX_MPDU_START_0_RETRY_MASK  \
390 	(pdev->targetdef->d_RX_MPDU_START_0_RETRY_MASK)
391 #define RX_MPDU_START_0_SEQ_NUM_MASK \
392 	(pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_MASK)
393 #define RX_MPDU_START_0_SEQ_NUM_LSB \
394 	(pdev->targetdef->d_RX_MPDU_START_0_SEQ_NUM_LSB)
395 #define RX_MPDU_START_2_PN_47_32_LSB \
396 	(pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_LSB)
397 #define RX_MPDU_START_2_PN_47_32_MASK \
398 	(pdev->targetdef->d_RX_MPDU_START_2_PN_47_32_MASK)
399 #define RX_MPDU_START_2_TID_LSB  \
400 	(pdev->targetdef->d_RX_MPDU_START_2_TID_LSB)
401 #define RX_MPDU_START_2_TID_MASK  \
402 	(pdev->targetdef->d_RX_MPDU_START_2_TID_MASK)
403 #define RX_MSDU_END_1_KEY_ID_OCT_MASK \
404 	(pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_MASK)
405 #define RX_MSDU_END_1_KEY_ID_OCT_LSB \
406 	(pdev->targetdef->d_RX_MSDU_END_1_KEY_ID_OCT_LSB)
407 #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK \
408 	(pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_MASK)
409 #define RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB \
410 	(pdev->targetdef->d_RX_MSDU_END_1_EXT_WAPI_PN_63_48_LSB)
411 #define RX_MSDU_END_4_LAST_MSDU_MASK \
412 	(pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_MASK)
413 #define RX_MSDU_END_4_LAST_MSDU_LSB \
414 	(pdev->targetdef->d_RX_MSDU_END_4_LAST_MSDU_LSB)
415 #define RX_ATTENTION_0_MCAST_BCAST_MASK \
416 	(pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_MASK)
417 #define RX_ATTENTION_0_MCAST_BCAST_LSB \
418 	(pdev->targetdef->d_RX_ATTENTION_0_MCAST_BCAST_LSB)
419 #define RX_ATTENTION_0_FRAGMENT_MASK \
420 	(pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_MASK)
421 #define RX_ATTENTION_0_FRAGMENT_LSB \
422 	(pdev->targetdef->d_RX_ATTENTION_0_FRAGMENT_LSB)
423 #define RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK \
424 	(pdev->targetdef->d_RX_ATTENTION_0_MPDU_LENGTH_ERR_MASK)
425 #define RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK \
426 	(pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_MASK)
427 #define RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB \
428 	(pdev->targetdef->d_RX_FRAG_INFO_0_RING2_MORE_COUNT_LSB)
429 #define RX_MSDU_START_0_MSDU_LENGTH_MASK \
430 	(pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_MASK)
431 #define RX_MSDU_START_0_MSDU_LENGTH_LSB \
432 	(pdev->targetdef->d_RX_MSDU_START_0_MSDU_LENGTH_LSB)
433 #define RX_MSDU_START_2_DECAP_FORMAT_OFFSET \
434 	(pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_OFFSET)
435 #define RX_MSDU_START_2_DECAP_FORMAT_MASK \
436 	(pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_MASK)
437 #define RX_MSDU_START_2_DECAP_FORMAT_LSB \
438 	(pdev->targetdef->d_RX_MSDU_START_2_DECAP_FORMAT_LSB)
439 #define RX_MPDU_START_0_ENCRYPTED_MASK \
440 	(pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_MASK)
441 #define RX_MPDU_START_0_ENCRYPTED_LSB \
442 	(pdev->targetdef->d_RX_MPDU_START_0_ENCRYPTED_LSB)
443 #define RX_ATTENTION_0_MORE_DATA_MASK \
444 	(pdev->targetdef->d_RX_ATTENTION_0_MORE_DATA_MASK)
445 #define RX_ATTENTION_0_MSDU_DONE_MASK \
446 	(pdev->targetdef->d_RX_ATTENTION_0_MSDU_DONE_MASK)
447 #define RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK \
448 	(pdev->targetdef->d_RX_ATTENTION_0_TCP_UDP_CHKSUM_FAIL_MASK)
449 /* end */
450 
451 /* copy_engine.c */
452 /* end */
453 /* PLL start */
454 #define EFUSE_OFFSET              (scn->targetdef->d_EFUSE_OFFSET)
455 #define EFUSE_XTAL_SEL_MSB        (scn->targetdef->d_EFUSE_XTAL_SEL_MSB)
456 #define EFUSE_XTAL_SEL_LSB        (scn->targetdef->d_EFUSE_XTAL_SEL_LSB)
457 #define EFUSE_XTAL_SEL_MASK       (scn->targetdef->d_EFUSE_XTAL_SEL_MASK)
458 #define BB_PLL_CONFIG_OFFSET      (scn->targetdef->d_BB_PLL_CONFIG_OFFSET)
459 #define BB_PLL_CONFIG_OUTDIV_MSB  (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MSB)
460 #define BB_PLL_CONFIG_OUTDIV_LSB  (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_LSB)
461 #define BB_PLL_CONFIG_OUTDIV_MASK (scn->targetdef->d_BB_PLL_CONFIG_OUTDIV_MASK)
462 #define BB_PLL_CONFIG_FRAC_MSB    (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MSB)
463 #define BB_PLL_CONFIG_FRAC_LSB    (scn->targetdef->d_BB_PLL_CONFIG_FRAC_LSB)
464 #define BB_PLL_CONFIG_FRAC_MASK   (scn->targetdef->d_BB_PLL_CONFIG_FRAC_MASK)
465 #define WLAN_PLL_SETTLE_TIME_MSB  (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MSB)
466 #define WLAN_PLL_SETTLE_TIME_LSB  (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_LSB)
467 #define WLAN_PLL_SETTLE_TIME_MASK (scn->targetdef->d_WLAN_PLL_SETTLE_TIME_MASK)
468 #define WLAN_PLL_SETTLE_OFFSET    (scn->targetdef->d_WLAN_PLL_SETTLE_OFFSET)
469 #define WLAN_PLL_SETTLE_SW_MASK   (scn->targetdef->d_WLAN_PLL_SETTLE_SW_MASK)
470 #define WLAN_PLL_SETTLE_RSTMASK   (scn->targetdef->d_WLAN_PLL_SETTLE_RSTMASK)
471 #define WLAN_PLL_SETTLE_RESET     (scn->targetdef->d_WLAN_PLL_SETTLE_RESET)
472 #define WLAN_PLL_CONTROL_NOPWD_MSB  \
473 	(scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MSB)
474 #define WLAN_PLL_CONTROL_NOPWD_LSB  \
475 	(scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_LSB)
476 #define WLAN_PLL_CONTROL_NOPWD_MASK \
477 	(scn->targetdef->d_WLAN_PLL_CONTROL_NOPWD_MASK)
478 #define WLAN_PLL_CONTROL_BYPASS_MSB \
479 	(scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MSB)
480 #define WLAN_PLL_CONTROL_BYPASS_LSB \
481 	(scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_LSB)
482 #define WLAN_PLL_CONTROL_BYPASS_MASK \
483 	(scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_MASK)
484 #define WLAN_PLL_CONTROL_BYPASS_RESET \
485 	(scn->targetdef->d_WLAN_PLL_CONTROL_BYPASS_RESET)
486 #define WLAN_PLL_CONTROL_CLK_SEL_MSB \
487 	(scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MSB)
488 #define WLAN_PLL_CONTROL_CLK_SEL_LSB \
489 	(scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_LSB)
490 #define WLAN_PLL_CONTROL_CLK_SEL_MASK \
491 	(scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_MASK)
492 #define WLAN_PLL_CONTROL_CLK_SEL_RESET \
493 	(scn->targetdef->d_WLAN_PLL_CONTROL_CLK_SEL_RESET)
494 #define WLAN_PLL_CONTROL_REFDIV_MSB \
495 	(scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MSB)
496 #define WLAN_PLL_CONTROL_REFDIV_LSB \
497 	(scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_LSB)
498 #define WLAN_PLL_CONTROL_REFDIV_MASK \
499 	(scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_MASK)
500 #define WLAN_PLL_CONTROL_REFDIV_RESET \
501 	(scn->targetdef->d_WLAN_PLL_CONTROL_REFDIV_RESET)
502 #define WLAN_PLL_CONTROL_DIV_MSB   (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MSB)
503 #define WLAN_PLL_CONTROL_DIV_LSB   (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_LSB)
504 #define WLAN_PLL_CONTROL_DIV_MASK  (scn->targetdef->d_WLAN_PLL_CONTROL_DIV_MASK)
505 #define WLAN_PLL_CONTROL_DIV_RESET \
506 	(scn->targetdef->d_WLAN_PLL_CONTROL_DIV_RESET)
507 #define WLAN_PLL_CONTROL_OFFSET    (scn->targetdef->d_WLAN_PLL_CONTROL_OFFSET)
508 #define WLAN_PLL_CONTROL_SW_MASK   (scn->targetdef->d_WLAN_PLL_CONTROL_SW_MASK)
509 #define WLAN_PLL_CONTROL_RSTMASK   (scn->targetdef->d_WLAN_PLL_CONTROL_RSTMASK)
510 #define WLAN_PLL_CONTROL_RESET     (scn->targetdef->d_WLAN_PLL_CONTROL_RESET)
511 #define SOC_CORE_CLK_CTRL_OFFSET   (scn->targetdef->d_SOC_CORE_CLK_CTRL_OFFSET)
512 #define SOC_CORE_CLK_CTRL_DIV_MSB  (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MSB)
513 #define SOC_CORE_CLK_CTRL_DIV_LSB  (scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_LSB)
514 #define SOC_CORE_CLK_CTRL_DIV_MASK \
515 	(scn->targetdef->d_SOC_CORE_CLK_CTRL_DIV_MASK)
516 #define RTC_SYNC_STATUS_PLL_CHANGING_MSB \
517 	(scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MSB)
518 #define RTC_SYNC_STATUS_PLL_CHANGING_LSB \
519 	(scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_LSB)
520 #define RTC_SYNC_STATUS_PLL_CHANGING_MASK \
521 	(scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_MASK)
522 #define RTC_SYNC_STATUS_PLL_CHANGING_RESET \
523 	(scn->targetdef->d_RTC_SYNC_STATUS_PLL_CHANGING_RESET)
524 #define RTC_SYNC_STATUS_OFFSET      (scn->targetdef->d_RTC_SYNC_STATUS_OFFSET)
525 #define SOC_CPU_CLOCK_OFFSET        (scn->targetdef->d_SOC_CPU_CLOCK_OFFSET)
526 #define SOC_CPU_CLOCK_STANDARD_MSB \
527 	(scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MSB)
528 #define SOC_CPU_CLOCK_STANDARD_LSB \
529 	(scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_LSB)
530 #define SOC_CPU_CLOCK_STANDARD_MASK \
531 	(scn->targetdef->d_SOC_CPU_CLOCK_STANDARD_MASK)
532 /* PLL end */
533 
534 /* SET macros */
535 #define WLAN_SYSTEM_SLEEP_DISABLE_SET(x) \
536 	(((x) << WLAN_SYSTEM_SLEEP_DISABLE_LSB) & \
537 	    WLAN_SYSTEM_SLEEP_DISABLE_MASK)
538 #define SI_CONFIG_BIDIR_OD_DATA_SET(x) \
539 	(((x) << SI_CONFIG_BIDIR_OD_DATA_LSB) & SI_CONFIG_BIDIR_OD_DATA_MASK)
540 #define SI_CONFIG_I2C_SET(x)  (((x) << SI_CONFIG_I2C_LSB) & SI_CONFIG_I2C_MASK)
541 #define SI_CONFIG_POS_SAMPLE_SET(x) \
542 	(((x) << SI_CONFIG_POS_SAMPLE_LSB) & SI_CONFIG_POS_SAMPLE_MASK)
543 #define SI_CONFIG_INACTIVE_CLK_SET(x) \
544 	(((x) << SI_CONFIG_INACTIVE_CLK_LSB) & SI_CONFIG_INACTIVE_CLK_MASK)
545 #define SI_CONFIG_INACTIVE_DATA_SET(x) \
546 	(((x) << SI_CONFIG_INACTIVE_DATA_LSB) & SI_CONFIG_INACTIVE_DATA_MASK)
547 #define SI_CONFIG_DIVIDER_SET(x) \
548 	(((x) << SI_CONFIG_DIVIDER_LSB) & SI_CONFIG_DIVIDER_MASK)
549 #define SI_CS_START_SET(x)  (((x) << SI_CS_START_LSB) & SI_CS_START_MASK)
550 #define SI_CS_RX_CNT_SET(x) (((x) << SI_CS_RX_CNT_LSB) & SI_CS_RX_CNT_MASK)
551 #define SI_CS_TX_CNT_SET(x) (((x) << SI_CS_TX_CNT_LSB) & SI_CS_TX_CNT_MASK)
552 #define LPO_CAL_ENABLE_SET(x) \
553 	(((x) << LPO_CAL_ENABLE_LSB) & LPO_CAL_ENABLE_MASK)
554 #define CPU_CLOCK_STANDARD_SET(x) \
555 	(((x) << CPU_CLOCK_STANDARD_LSB) & CPU_CLOCK_STANDARD_MASK)
556 #define CLOCK_GPIO_BT_CLK_OUT_EN_SET(x) \
557 	(((x) << CLOCK_GPIO_BT_CLK_OUT_EN_LSB) & CLOCK_GPIO_BT_CLK_OUT_EN_MASK)
558 /* copy_engine.c */
559 /* end */
560 /* PLL start */
561 #define EFUSE_XTAL_SEL_GET(x) \
562 	(((x) & EFUSE_XTAL_SEL_MASK) >> EFUSE_XTAL_SEL_LSB)
563 #define EFUSE_XTAL_SEL_SET(x) \
564 	(((x) << EFUSE_XTAL_SEL_LSB) & EFUSE_XTAL_SEL_MASK)
565 #define BB_PLL_CONFIG_OUTDIV_GET(x) \
566 	(((x) & BB_PLL_CONFIG_OUTDIV_MASK) >> BB_PLL_CONFIG_OUTDIV_LSB)
567 #define BB_PLL_CONFIG_OUTDIV_SET(x) \
568 	(((x) << BB_PLL_CONFIG_OUTDIV_LSB) & BB_PLL_CONFIG_OUTDIV_MASK)
569 #define BB_PLL_CONFIG_FRAC_GET(x) \
570 	(((x) & BB_PLL_CONFIG_FRAC_MASK) >> BB_PLL_CONFIG_FRAC_LSB)
571 #define BB_PLL_CONFIG_FRAC_SET(x) \
572 	(((x) << BB_PLL_CONFIG_FRAC_LSB) & BB_PLL_CONFIG_FRAC_MASK)
573 #define WLAN_PLL_SETTLE_TIME_GET(x) \
574 	(((x) & WLAN_PLL_SETTLE_TIME_MASK) >> WLAN_PLL_SETTLE_TIME_LSB)
575 #define WLAN_PLL_SETTLE_TIME_SET(x) \
576 	(((x) << WLAN_PLL_SETTLE_TIME_LSB) & WLAN_PLL_SETTLE_TIME_MASK)
577 #define WLAN_PLL_CONTROL_NOPWD_GET(x) \
578 	(((x) & WLAN_PLL_CONTROL_NOPWD_MASK) >> WLAN_PLL_CONTROL_NOPWD_LSB)
579 #define WLAN_PLL_CONTROL_NOPWD_SET(x) \
580 	(((x) << WLAN_PLL_CONTROL_NOPWD_LSB) & WLAN_PLL_CONTROL_NOPWD_MASK)
581 #define WLAN_PLL_CONTROL_BYPASS_GET(x) \
582 	(((x) & WLAN_PLL_CONTROL_BYPASS_MASK) >> WLAN_PLL_CONTROL_BYPASS_LSB)
583 #define WLAN_PLL_CONTROL_BYPASS_SET(x) \
584 	(((x) << WLAN_PLL_CONTROL_BYPASS_LSB) & WLAN_PLL_CONTROL_BYPASS_MASK)
585 #define WLAN_PLL_CONTROL_CLK_SEL_GET(x) \
586 	(((x) & WLAN_PLL_CONTROL_CLK_SEL_MASK) >> WLAN_PLL_CONTROL_CLK_SEL_LSB)
587 #define WLAN_PLL_CONTROL_CLK_SEL_SET(x) \
588 	(((x) << WLAN_PLL_CONTROL_CLK_SEL_LSB) & WLAN_PLL_CONTROL_CLK_SEL_MASK)
589 #define WLAN_PLL_CONTROL_REFDIV_GET(x) \
590 	(((x) & WLAN_PLL_CONTROL_REFDIV_MASK) >> WLAN_PLL_CONTROL_REFDIV_LSB)
591 #define WLAN_PLL_CONTROL_REFDIV_SET(x) \
592 	(((x) << WLAN_PLL_CONTROL_REFDIV_LSB) & WLAN_PLL_CONTROL_REFDIV_MASK)
593 #define WLAN_PLL_CONTROL_DIV_GET(x) \
594 	(((x) & WLAN_PLL_CONTROL_DIV_MASK) >> WLAN_PLL_CONTROL_DIV_LSB)
595 #define WLAN_PLL_CONTROL_DIV_SET(x) \
596 	(((x) << WLAN_PLL_CONTROL_DIV_LSB) & WLAN_PLL_CONTROL_DIV_MASK)
597 #define SOC_CORE_CLK_CTRL_DIV_GET(x) \
598 	(((x) & SOC_CORE_CLK_CTRL_DIV_MASK) >> SOC_CORE_CLK_CTRL_DIV_LSB)
599 #define SOC_CORE_CLK_CTRL_DIV_SET(x) \
600 	(((x) << SOC_CORE_CLK_CTRL_DIV_LSB) & SOC_CORE_CLK_CTRL_DIV_MASK)
601 #define RTC_SYNC_STATUS_PLL_CHANGING_GET(x) \
602 	(((x) & RTC_SYNC_STATUS_PLL_CHANGING_MASK) >> \
603 		RTC_SYNC_STATUS_PLL_CHANGING_LSB)
604 #define RTC_SYNC_STATUS_PLL_CHANGING_SET(x) \
605 	(((x) << RTC_SYNC_STATUS_PLL_CHANGING_LSB) & \
606 		RTC_SYNC_STATUS_PLL_CHANGING_MASK)
607 #define SOC_CPU_CLOCK_STANDARD_GET(x) \
608 	(((x) & SOC_CPU_CLOCK_STANDARD_MASK) >> SOC_CPU_CLOCK_STANDARD_LSB)
609 #define SOC_CPU_CLOCK_STANDARD_SET(x) \
610 	(((x) << SOC_CPU_CLOCK_STANDARD_LSB) & SOC_CPU_CLOCK_STANDARD_MASK)
611 /* PLL end */
612 
613 #ifdef QCA_WIFI_3_0_ADRASTEA
614 #define Q6_ENABLE_REGISTER_0 \
615 	(scn->targetdef->d_Q6_ENABLE_REGISTER_0)
616 #define Q6_ENABLE_REGISTER_1 \
617 	(scn->targetdef->d_Q6_ENABLE_REGISTER_1)
618 #define Q6_CAUSE_REGISTER_0 \
619 	(scn->targetdef->d_Q6_CAUSE_REGISTER_0)
620 #define Q6_CAUSE_REGISTER_1 \
621 	(scn->targetdef->d_Q6_CAUSE_REGISTER_1)
622 #define Q6_CLEAR_REGISTER_0 \
623 	(scn->targetdef->d_Q6_CLEAR_REGISTER_0)
624 #define Q6_CLEAR_REGISTER_1 \
625 	(scn->targetdef->d_Q6_CLEAR_REGISTER_1)
626 #endif
627 
628 struct hostdef_s {
629 	uint32_t d_INT_STATUS_ENABLE_ERROR_LSB;
630 	uint32_t d_INT_STATUS_ENABLE_ERROR_MASK;
631 	uint32_t d_INT_STATUS_ENABLE_CPU_LSB;
632 	uint32_t d_INT_STATUS_ENABLE_CPU_MASK;
633 	uint32_t d_INT_STATUS_ENABLE_COUNTER_LSB;
634 	uint32_t d_INT_STATUS_ENABLE_COUNTER_MASK;
635 	uint32_t d_INT_STATUS_ENABLE_MBOX_DATA_LSB;
636 	uint32_t d_INT_STATUS_ENABLE_MBOX_DATA_MASK;
637 	uint32_t d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB;
638 	uint32_t d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK;
639 	uint32_t d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB;
640 	uint32_t d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK;
641 	uint32_t d_COUNTER_INT_STATUS_ENABLE_BIT_LSB;
642 	uint32_t d_COUNTER_INT_STATUS_ENABLE_BIT_MASK;
643 	uint32_t d_INT_STATUS_ENABLE_ADDRESS;
644 	uint32_t d_CPU_INT_STATUS_ENABLE_BIT_LSB;
645 	uint32_t d_CPU_INT_STATUS_ENABLE_BIT_MASK;
646 	uint32_t d_HOST_INT_STATUS_ADDRESS;
647 	uint32_t d_CPU_INT_STATUS_ADDRESS;
648 	uint32_t d_ERROR_INT_STATUS_ADDRESS;
649 	uint32_t d_ERROR_INT_STATUS_WAKEUP_MASK;
650 	uint32_t d_ERROR_INT_STATUS_WAKEUP_LSB;
651 	uint32_t d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK;
652 	uint32_t d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB;
653 	uint32_t d_ERROR_INT_STATUS_TX_OVERFLOW_MASK;
654 	uint32_t d_ERROR_INT_STATUS_TX_OVERFLOW_LSB;
655 	uint32_t d_COUNT_DEC_ADDRESS;
656 	uint32_t d_HOST_INT_STATUS_CPU_MASK;
657 	uint32_t d_HOST_INT_STATUS_CPU_LSB;
658 	uint32_t d_HOST_INT_STATUS_ERROR_MASK;
659 	uint32_t d_HOST_INT_STATUS_ERROR_LSB;
660 	uint32_t d_HOST_INT_STATUS_COUNTER_MASK;
661 	uint32_t d_HOST_INT_STATUS_COUNTER_LSB;
662 	uint32_t d_RX_LOOKAHEAD_VALID_ADDRESS;
663 	uint32_t d_WINDOW_DATA_ADDRESS;
664 	uint32_t d_WINDOW_READ_ADDR_ADDRESS;
665 	uint32_t d_WINDOW_WRITE_ADDR_ADDRESS;
666 	uint32_t d_SOC_GLOBAL_RESET_ADDRESS;
667 	uint32_t d_RTC_STATE_ADDRESS;
668 	uint32_t d_RTC_STATE_COLD_RESET_MASK;
669 	uint32_t d_RTC_STATE_V_MASK;
670 	uint32_t d_RTC_STATE_V_LSB;
671 	uint32_t d_FW_IND_EVENT_PENDING;
672 	uint32_t d_FW_IND_INITIALIZED;
673 	uint32_t d_FW_IND_HELPER;
674 	uint32_t d_RTC_STATE_V_ON;
675 #if defined(SDIO_3_0)
676 	uint32_t d_HOST_INT_STATUS_MBOX_DATA_MASK;
677 	uint32_t d_HOST_INT_STATUS_MBOX_DATA_LSB;
678 #endif
679 	uint32_t d_MSI_MAGIC_ADR_ADDRESS;
680 	uint32_t d_MSI_MAGIC_ADDRESS;
681 	uint32_t d_ENABLE_MSI;
682 	uint32_t d_MUX_ID_MASK;
683 	uint32_t d_TRANSACTION_ID_MASK;
684 	uint32_t d_DESC_DATA_FLAG_MASK;
685 };
686 #define DESC_DATA_FLAG_MASK        (scn->hostdef->d_DESC_DATA_FLAG_MASK)
687 #define MUX_ID_MASK                (scn->hostdef->d_MUX_ID_MASK)
688 #define TRANSACTION_ID_MASK        (scn->hostdef->d_TRANSACTION_ID_MASK)
689 #define ENABLE_MSI                 (scn->hostdef->d_ENABLE_MSI)
690 #define INT_STATUS_ENABLE_ERROR_LSB \
691 	(scn->hostdef->d_INT_STATUS_ENABLE_ERROR_LSB)
692 #define INT_STATUS_ENABLE_ERROR_MASK \
693 	(scn->hostdef->d_INT_STATUS_ENABLE_ERROR_MASK)
694 #define INT_STATUS_ENABLE_CPU_LSB  (scn->hostdef->d_INT_STATUS_ENABLE_CPU_LSB)
695 #define INT_STATUS_ENABLE_CPU_MASK (scn->hostdef->d_INT_STATUS_ENABLE_CPU_MASK)
696 #define INT_STATUS_ENABLE_COUNTER_LSB \
697 	(scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_LSB)
698 #define INT_STATUS_ENABLE_COUNTER_MASK \
699 	(scn->hostdef->d_INT_STATUS_ENABLE_COUNTER_MASK)
700 #define INT_STATUS_ENABLE_MBOX_DATA_LSB \
701 	(scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_LSB)
702 #define INT_STATUS_ENABLE_MBOX_DATA_MASK \
703 	(scn->hostdef->d_INT_STATUS_ENABLE_MBOX_DATA_MASK)
704 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB \
705 	(scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB)
706 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK \
707 	(scn->hostdef->d_ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK)
708 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB \
709 	(scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB)
710 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK \
711 	(scn->hostdef->d_ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK)
712 #define COUNTER_INT_STATUS_ENABLE_BIT_LSB \
713 	(scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_LSB)
714 #define COUNTER_INT_STATUS_ENABLE_BIT_MASK \
715 	(scn->hostdef->d_COUNTER_INT_STATUS_ENABLE_BIT_MASK)
716 #define INT_STATUS_ENABLE_ADDRESS \
717 	(scn->hostdef->d_INT_STATUS_ENABLE_ADDRESS)
718 #define CPU_INT_STATUS_ENABLE_BIT_LSB \
719 	(scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_LSB)
720 #define CPU_INT_STATUS_ENABLE_BIT_MASK \
721 	(scn->hostdef->d_CPU_INT_STATUS_ENABLE_BIT_MASK)
722 #define HOST_INT_STATUS_ADDRESS     (scn->hostdef->d_HOST_INT_STATUS_ADDRESS)
723 #define CPU_INT_STATUS_ADDRESS      (scn->hostdef->d_CPU_INT_STATUS_ADDRESS)
724 #define ERROR_INT_STATUS_ADDRESS    (scn->hostdef->d_ERROR_INT_STATUS_ADDRESS)
725 #define ERROR_INT_STATUS_WAKEUP_MASK \
726 	(scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_MASK)
727 #define ERROR_INT_STATUS_WAKEUP_LSB \
728 	(scn->hostdef->d_ERROR_INT_STATUS_WAKEUP_LSB)
729 #define ERROR_INT_STATUS_RX_UNDERFLOW_MASK \
730 	(scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_MASK)
731 #define ERROR_INT_STATUS_RX_UNDERFLOW_LSB \
732 	(scn->hostdef->d_ERROR_INT_STATUS_RX_UNDERFLOW_LSB)
733 #define ERROR_INT_STATUS_TX_OVERFLOW_MASK \
734 	(scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_MASK)
735 #define ERROR_INT_STATUS_TX_OVERFLOW_LSB \
736 	(scn->hostdef->d_ERROR_INT_STATUS_TX_OVERFLOW_LSB)
737 #define COUNT_DEC_ADDRESS          (scn->hostdef->d_COUNT_DEC_ADDRESS)
738 #define HOST_INT_STATUS_CPU_MASK   (scn->hostdef->d_HOST_INT_STATUS_CPU_MASK)
739 #define HOST_INT_STATUS_CPU_LSB    (scn->hostdef->d_HOST_INT_STATUS_CPU_LSB)
740 #define HOST_INT_STATUS_ERROR_MASK (scn->hostdef->d_HOST_INT_STATUS_ERROR_MASK)
741 #define HOST_INT_STATUS_ERROR_LSB  (scn->hostdef->d_HOST_INT_STATUS_ERROR_LSB)
742 #define HOST_INT_STATUS_COUNTER_MASK \
743 	(scn->hostdef->d_HOST_INT_STATUS_COUNTER_MASK)
744 #define HOST_INT_STATUS_COUNTER_LSB \
745 	(scn->hostdef->d_HOST_INT_STATUS_COUNTER_LSB)
746 #define RX_LOOKAHEAD_VALID_ADDRESS (scn->hostdef->d_RX_LOOKAHEAD_VALID_ADDRESS)
747 #define WINDOW_DATA_ADDRESS        (scn->hostdef->d_WINDOW_DATA_ADDRESS)
748 #define WINDOW_READ_ADDR_ADDRESS   (scn->hostdef->d_WINDOW_READ_ADDR_ADDRESS)
749 #define WINDOW_WRITE_ADDR_ADDRESS  (scn->hostdef->d_WINDOW_WRITE_ADDR_ADDRESS)
750 #define SOC_GLOBAL_RESET_ADDRESS   (scn->hostdef->d_SOC_GLOBAL_RESET_ADDRESS)
751 #define RTC_STATE_ADDRESS          (scn->hostdef->d_RTC_STATE_ADDRESS)
752 #define RTC_STATE_COLD_RESET_MASK  (scn->hostdef->d_RTC_STATE_COLD_RESET_MASK)
753 #define RTC_STATE_V_MASK           (scn->hostdef->d_RTC_STATE_V_MASK)
754 #define RTC_STATE_V_LSB            (scn->hostdef->d_RTC_STATE_V_LSB)
755 #define FW_IND_EVENT_PENDING       (scn->hostdef->d_FW_IND_EVENT_PENDING)
756 #define FW_IND_INITIALIZED         (scn->hostdef->d_FW_IND_INITIALIZED)
757 #define FW_IND_HELPER              (scn->hostdef->d_FW_IND_HELPER)
758 #define RTC_STATE_V_ON             (scn->hostdef->d_RTC_STATE_V_ON)
759 #if defined(SDIO_3_0)
760 #define HOST_INT_STATUS_MBOX_DATA_MASK \
761 	(scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_MASK)
762 #define HOST_INT_STATUS_MBOX_DATA_LSB \
763 	(scn->hostdef->d_HOST_INT_STATUS_MBOX_DATA_LSB)
764 #endif
765 
766 #if !defined(MSI_MAGIC_ADR_ADDRESS)
767 #define MSI_MAGIC_ADR_ADDRESS 0
768 #define MSI_MAGIC_ADDRESS 0
769 #endif
770 
771 /* SET/GET macros */
772 #define INT_STATUS_ENABLE_ERROR_SET(x) \
773 	(((x) << INT_STATUS_ENABLE_ERROR_LSB) & INT_STATUS_ENABLE_ERROR_MASK)
774 #define INT_STATUS_ENABLE_CPU_SET(x) \
775 	(((x) << INT_STATUS_ENABLE_CPU_LSB) & INT_STATUS_ENABLE_CPU_MASK)
776 #define INT_STATUS_ENABLE_COUNTER_SET(x) \
777 	(((x) << INT_STATUS_ENABLE_COUNTER_LSB) & \
778 		INT_STATUS_ENABLE_COUNTER_MASK)
779 #define INT_STATUS_ENABLE_MBOX_DATA_SET(x) \
780 	(((x) << INT_STATUS_ENABLE_MBOX_DATA_LSB) & \
781 	 INT_STATUS_ENABLE_MBOX_DATA_MASK)
782 #define CPU_INT_STATUS_ENABLE_BIT_SET(x) \
783 	(((x) << CPU_INT_STATUS_ENABLE_BIT_LSB) & \
784 		CPU_INT_STATUS_ENABLE_BIT_MASK)
785 #define ERROR_STATUS_ENABLE_RX_UNDERFLOW_SET(x) \
786 	(((x) << ERROR_STATUS_ENABLE_RX_UNDERFLOW_LSB) & \
787 		ERROR_STATUS_ENABLE_RX_UNDERFLOW_MASK)
788 #define ERROR_STATUS_ENABLE_TX_OVERFLOW_SET(x) \
789 	(((x) << ERROR_STATUS_ENABLE_TX_OVERFLOW_LSB) & \
790 		ERROR_STATUS_ENABLE_TX_OVERFLOW_MASK)
791 #define COUNTER_INT_STATUS_ENABLE_BIT_SET(x) \
792 	(((x) << COUNTER_INT_STATUS_ENABLE_BIT_LSB) & \
793 		COUNTER_INT_STATUS_ENABLE_BIT_MASK)
794 #define ERROR_INT_STATUS_WAKEUP_GET(x) \
795 	(((x) & ERROR_INT_STATUS_WAKEUP_MASK) >> \
796 		ERROR_INT_STATUS_WAKEUP_LSB)
797 #define ERROR_INT_STATUS_RX_UNDERFLOW_GET(x) \
798 	(((x) & ERROR_INT_STATUS_RX_UNDERFLOW_MASK) >> \
799 		ERROR_INT_STATUS_RX_UNDERFLOW_LSB)
800 #define ERROR_INT_STATUS_TX_OVERFLOW_GET(x) \
801 	(((x) & ERROR_INT_STATUS_TX_OVERFLOW_MASK) >> \
802 		ERROR_INT_STATUS_TX_OVERFLOW_LSB)
803 #define HOST_INT_STATUS_CPU_GET(x) \
804 	(((x) & HOST_INT_STATUS_CPU_MASK) >> HOST_INT_STATUS_CPU_LSB)
805 #define HOST_INT_STATUS_ERROR_GET(x) \
806 	(((x) & HOST_INT_STATUS_ERROR_MASK) >> HOST_INT_STATUS_ERROR_LSB)
807 #define HOST_INT_STATUS_COUNTER_GET(x) \
808 	(((x) & HOST_INT_STATUS_COUNTER_MASK) >> HOST_INT_STATUS_COUNTER_LSB)
809 #define RTC_STATE_V_GET(x) \
810 	(((x) & RTC_STATE_V_MASK) >> RTC_STATE_V_LSB)
811 #if defined(SDIO_3_0)
812 #define HOST_INT_STATUS_MBOX_DATA_GET(x) \
813 	(((x) & HOST_INT_STATUS_MBOX_DATA_MASK) >> \
814 		HOST_INT_STATUS_MBOX_DATA_LSB)
815 #endif
816 
817 #define INVALID_REG_LOC_DUMMY_DATA 0xAA
818 
819 #define AR6320_CORE_CLK_DIV_ADDR        0x403fa8
820 #define AR6320_CPU_PLL_INIT_DONE_ADDR   0x403fd0
821 #define AR6320_CPU_SPEED_ADDR           0x403fa4
822 #define AR6320V2_CORE_CLK_DIV_ADDR      0x403fd8
823 #define AR6320V2_CPU_PLL_INIT_DONE_ADDR 0x403fd0
824 #define AR6320V2_CPU_SPEED_ADDR         0x403fd4
825 #define AR6320V3_CORE_CLK_DIV_ADDR      0x404028
826 #define AR6320V3_CPU_PLL_INIT_DONE_ADDR 0x404020
827 #define AR6320V3_CPU_SPEED_ADDR         0x404024
828 
829 enum a_refclk_speed_t {
830 	SOC_REFCLK_UNKNOWN = -1, /* Unsupported ref clock -- use PLL Bypass */
831 	SOC_REFCLK_48_MHZ = 0,
832 	SOC_REFCLK_19_2_MHZ = 1,
833 	SOC_REFCLK_24_MHZ = 2,
834 	SOC_REFCLK_26_MHZ = 3,
835 	SOC_REFCLK_37_4_MHZ = 4,
836 	SOC_REFCLK_38_4_MHZ = 5,
837 	SOC_REFCLK_40_MHZ = 6,
838 	SOC_REFCLK_52_MHZ = 7,
839 };
840 
841 #define A_REFCLK_UNKNOWN    SOC_REFCLK_UNKNOWN
842 #define A_REFCLK_48_MHZ     SOC_REFCLK_48_MHZ
843 #define A_REFCLK_19_2_MHZ   SOC_REFCLK_19_2_MHZ
844 #define A_REFCLK_24_MHZ     SOC_REFCLK_24_MHZ
845 #define A_REFCLK_26_MHZ     SOC_REFCLK_26_MHZ
846 #define A_REFCLK_37_4_MHZ   SOC_REFCLK_37_4_MHZ
847 #define A_REFCLK_38_4_MHZ   SOC_REFCLK_38_4_MHZ
848 #define A_REFCLK_40_MHZ     SOC_REFCLK_40_MHZ
849 #define A_REFCLK_52_MHZ     SOC_REFCLK_52_MHZ
850 
851 #define TARGET_CPU_FREQ 176000000
852 
853 struct wlan_pll_s {
854 	uint32_t refdiv;
855 	uint32_t div;
856 	uint32_t rnfrac;
857 	uint32_t outdiv;
858 };
859 
860 struct cmnos_clock_s {
861 	enum a_refclk_speed_t refclk_speed;
862 	uint32_t refclk_hz;
863 	uint32_t pll_settling_time;     /* 50us */
864 	struct wlan_pll_s wlan_pll;
865 };
866 
867 struct tgt_reg_section {
868 	uint32_t start_addr;
869 	uint32_t end_addr;
870 };
871 
872 
873 struct tgt_reg_table {
874 	const struct tgt_reg_section *section;
875 	uint32_t section_size;
876 };
877 #endif /* _REGTABLE_SDIO_H_ */
878