1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 #ifndef __iwl_prph_h__
65 #define __iwl_prph_h__
66 #include <linux/bitfield.h>
67
68
69
70
71
72 #define PRPH_BASE (0x00000)
73 #define PRPH_END (0xFFFFF)
74
75
76 #define APMG_BASE (PRPH_BASE + 0x3000)
77 #define APMG_CLK_CTRL_REG (APMG_BASE + 0x0000)
78 #define APMG_CLK_EN_REG (APMG_BASE + 0x0004)
79 #define APMG_CLK_DIS_REG (APMG_BASE + 0x0008)
80 #define APMG_PS_CTRL_REG (APMG_BASE + 0x000c)
81 #define APMG_PCIDEV_STT_REG (APMG_BASE + 0x0010)
82 #define APMG_RFKILL_REG (APMG_BASE + 0x0014)
83 #define APMG_RTC_INT_STT_REG (APMG_BASE + 0x001c)
84 #define APMG_RTC_INT_MSK_REG (APMG_BASE + 0x0020)
85 #define APMG_DIGITAL_SVR_REG (APMG_BASE + 0x0058)
86 #define APMG_ANALOG_SVR_REG (APMG_BASE + 0x006C)
87
88 #define APMS_CLK_VAL_MRB_FUNC_MODE (0x00000001)
89 #define APMG_CLK_VAL_DMA_CLK_RQT (0x00000200)
90 #define APMG_CLK_VAL_BSM_CLK_RQT (0x00000800)
91
92 #define APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS (0x00400000)
93 #define APMG_PS_CTRL_VAL_RESET_REQ (0x04000000)
94 #define APMG_PS_CTRL_MSK_PWR_SRC (0x03000000)
95 #define APMG_PS_CTRL_VAL_PWR_SRC_VMAIN (0x00000000)
96 #define APMG_PS_CTRL_VAL_PWR_SRC_VAUX (0x02000000)
97 #define APMG_SVR_VOLTAGE_CONFIG_BIT_MSK (0x000001E0)
98 #define APMG_SVR_DIGITAL_VOLTAGE_1_32 (0x00000060)
99
100 #define APMG_PCIDEV_STT_VAL_PERSIST_DIS (0x00000200)
101 #define APMG_PCIDEV_STT_VAL_L1_ACT_DIS (0x00000800)
102 #define APMG_PCIDEV_STT_VAL_WAKE_ME (0x00004000)
103
104 #define APMG_RTC_INT_STT_RFKILL (0x10000000)
105
106
107 #define DEVICE_SYSTEM_TIME_REG 0xA0206C
108
109
110 #define DEVICE_SET_NMI_REG 0x00a01c30
111 #define DEVICE_SET_NMI_VAL_DRV BIT(7)
112
113 #define UREG_NIC_SET_NMI_DRIVER 0x00a05c10
114 #define UREG_NIC_SET_NMI_DRIVER_NMI_FROM_DRIVER_MSK 0xff000000
115
116
117 #define SHR_BASE 0x00a10000
118
119
120 #define SHR_APMG_GP1_REG 0x01dc
121 #define SHR_APMG_GP1_REG_PRPH (SHR_BASE + SHR_APMG_GP1_REG)
122 #define SHR_APMG_GP1_WF_XTAL_LP_EN 0x00000004
123 #define SHR_APMG_GP1_CHICKEN_BIT_SELECT 0x80000000
124
125
126 #define SHR_APMG_DL_CFG_REG 0x01c4
127 #define SHR_APMG_DL_CFG_REG_PRPH (SHR_BASE + SHR_APMG_DL_CFG_REG)
128 #define SHR_APMG_DL_CFG_RTCS_CLK_SELECTOR_MSK 0x000000c0
129 #define SHR_APMG_DL_CFG_RTCS_CLK_INTERNAL_XTAL 0x00000080
130 #define SHR_APMG_DL_CFG_DL_CLOCK_POWER_UP 0x00000100
131
132
133 #define SHR_APMG_XTAL_CFG_REG 0x1c0
134 #define SHR_APMG_XTAL_CFG_XTAL_ON_REQ 0x80000000
135
136
137
138
139
140 #define RELEASE_CPU_RESET (0x300C)
141 #define RELEASE_CPU_RESET_BIT BIT(24)
142
143
144
145
146
147 #define SHR_MISC_WFM_DTS_EN (0x00a10024)
148 #define DTSC_CFG_MODE (0x00a10604)
149 #define DTSC_VREF_AVG (0x00a10648)
150 #define DTSC_VREF5_AVG (0x00a1064c)
151 #define DTSC_CFG_MODE_PERIODIC (0x2)
152 #define DTSC_PTAT_AVG (0x00a10650)
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226 #define SCD_MEM_LOWER_BOUND (0x0000)
227
228
229
230
231
232
233 #define SCD_WIN_SIZE 64
234 #define SCD_FRAME_LIMIT 64
235
236 #define SCD_TXFIFO_POS_TID (0)
237 #define SCD_TXFIFO_POS_RA (4)
238 #define SCD_QUEUE_RA_TID_MAP_RATID_MSK (0x01FF)
239
240
241 #define SCD_QUEUE_STTS_REG_POS_TXF (0)
242 #define SCD_QUEUE_STTS_REG_POS_ACTIVE (3)
243 #define SCD_QUEUE_STTS_REG_POS_WSL (4)
244 #define SCD_QUEUE_STTS_REG_POS_SCD_ACT_EN (19)
245 #define SCD_QUEUE_STTS_REG_MSK (0x017F0000)
246
247 #define SCD_QUEUE_CTX_REG1_CREDIT (0x00FFFF00)
248 #define SCD_QUEUE_CTX_REG1_SUPER_CREDIT (0xFF000000)
249 #define SCD_QUEUE_CTX_REG1_VAL(_n, _v) FIELD_PREP(SCD_QUEUE_CTX_REG1_ ## _n, _v)
250
251 #define SCD_QUEUE_CTX_REG2_WIN_SIZE (0x0000007F)
252 #define SCD_QUEUE_CTX_REG2_FRAME_LIMIT (0x007F0000)
253 #define SCD_QUEUE_CTX_REG2_VAL(_n, _v) FIELD_PREP(SCD_QUEUE_CTX_REG2_ ## _n, _v)
254
255 #define SCD_GP_CTRL_ENABLE_31_QUEUES BIT(0)
256 #define SCD_GP_CTRL_AUTO_ACTIVE_MODE BIT(18)
257
258
259 #define SCD_CONTEXT_MEM_LOWER_BOUND (SCD_MEM_LOWER_BOUND + 0x600)
260 #define SCD_CONTEXT_MEM_UPPER_BOUND (SCD_MEM_LOWER_BOUND + 0x6A0)
261
262
263 #define SCD_TX_STTS_MEM_LOWER_BOUND (SCD_MEM_LOWER_BOUND + 0x6A0)
264 #define SCD_TX_STTS_MEM_UPPER_BOUND (SCD_MEM_LOWER_BOUND + 0x7E0)
265
266
267 #define SCD_TRANS_TBL_MEM_LOWER_BOUND (SCD_MEM_LOWER_BOUND + 0x7E0)
268 #define SCD_TRANS_TBL_MEM_UPPER_BOUND (SCD_MEM_LOWER_BOUND + 0x808)
269
270 #define SCD_CONTEXT_QUEUE_OFFSET(x)\
271 (SCD_CONTEXT_MEM_LOWER_BOUND + ((x) * 8))
272
273 #define SCD_TX_STTS_QUEUE_OFFSET(x)\
274 (SCD_TX_STTS_MEM_LOWER_BOUND + ((x) * 16))
275
276 #define SCD_TRANS_TBL_OFFSET_QUEUE(x) \
277 ((SCD_TRANS_TBL_MEM_LOWER_BOUND + ((x) * 2)) & 0xfffc)
278
279 #define SCD_BASE (PRPH_BASE + 0xa02c00)
280
281 #define SCD_SRAM_BASE_ADDR (SCD_BASE + 0x0)
282 #define SCD_DRAM_BASE_ADDR (SCD_BASE + 0x8)
283 #define SCD_AIT (SCD_BASE + 0x0c)
284 #define SCD_TXFACT (SCD_BASE + 0x10)
285 #define SCD_ACTIVE (SCD_BASE + 0x14)
286 #define SCD_QUEUECHAIN_SEL (SCD_BASE + 0xe8)
287 #define SCD_CHAINEXT_EN (SCD_BASE + 0x244)
288 #define SCD_AGGR_SEL (SCD_BASE + 0x248)
289 #define SCD_INTERRUPT_MASK (SCD_BASE + 0x108)
290 #define SCD_GP_CTRL (SCD_BASE + 0x1a8)
291 #define SCD_EN_CTRL (SCD_BASE + 0x254)
292
293
294
295
296 #define OSC_CLK (0xa04068)
297 #define OSC_CLK_FORCE_CONTROL (0x8)
298
299 #define FH_UCODE_LOAD_STATUS (0x1AF0)
300
301
302
303
304
305
306 #define UREG_UCODE_LOAD_STATUS (0xa05c40)
307 #define UREG_CPU_INIT_RUN (0xa05c44)
308
309 #define LMPM_SECURE_UCODE_LOAD_CPU1_HDR_ADDR (0x1E78)
310 #define LMPM_SECURE_UCODE_LOAD_CPU2_HDR_ADDR (0x1E7C)
311
312 #define LMPM_SECURE_CPU1_HDR_MEM_SPACE (0x420000)
313 #define LMPM_SECURE_CPU2_HDR_MEM_SPACE (0x420400)
314
315 #define LMAC2_PRPH_OFFSET (0x100000)
316
317
318 #define RXF_SIZE_ADDR (0xa00c88)
319 #define RXF_RD_D_SPACE (0xa00c40)
320 #define RXF_RD_WR_PTR (0xa00c50)
321 #define RXF_RD_RD_PTR (0xa00c54)
322 #define RXF_RD_FENCE_PTR (0xa00c4c)
323 #define RXF_SET_FENCE_MODE (0xa00c14)
324 #define RXF_LD_WR2FENCE (0xa00c1c)
325 #define RXF_FIFO_RD_FENCE_INC (0xa00c68)
326 #define RXF_SIZE_BYTE_CND_POS (7)
327 #define RXF_SIZE_BYTE_CNT_MSK (0x3ff << RXF_SIZE_BYTE_CND_POS)
328 #define RXF_DIFF_FROM_PREV (0x200)
329
330 #define RXF_LD_FENCE_OFFSET_ADDR (0xa00c10)
331 #define RXF_FIFO_RD_FENCE_ADDR (0xa00c0c)
332
333
334 #define TXF_FIFO_ITEM_CNT (0xa00438)
335 #define TXF_WR_PTR (0xa00414)
336 #define TXF_RD_PTR (0xa00410)
337 #define TXF_FENCE_PTR (0xa00418)
338 #define TXF_LOCK_FENCE (0xa00424)
339 #define TXF_LARC_NUM (0xa0043c)
340 #define TXF_READ_MODIFY_DATA (0xa00448)
341 #define TXF_READ_MODIFY_ADDR (0xa0044c)
342
343
344 #define TXF_CPU2_FIFO_ITEM_CNT (0xA00538)
345 #define TXF_CPU2_WR_PTR (0xA00514)
346 #define TXF_CPU2_RD_PTR (0xA00510)
347 #define TXF_CPU2_FENCE_PTR (0xA00518)
348 #define TXF_CPU2_LOCK_FENCE (0xA00524)
349 #define TXF_CPU2_NUM (0xA0053C)
350 #define TXF_CPU2_READ_MODIFY_DATA (0xA00548)
351 #define TXF_CPU2_READ_MODIFY_ADDR (0xA0054C)
352
353
354 #define RSP_RADIO_CMD (0xa02804)
355 #define RSP_RADIO_RDDAT (0xa02814)
356 #define RADIO_RSP_ADDR_POS (6)
357 #define RADIO_RSP_RD_CMD (3)
358
359
360 #define MON_BUFF_SAMPLE_CTL (0xa03c00)
361 #define MON_BUFF_BASE_ADDR (0xa03c1c)
362 #define MON_BUFF_END_ADDR (0xa03c40)
363 #define MON_BUFF_WRPTR (0xa03c44)
364 #define MON_BUFF_CYCLE_CNT (0xa03c48)
365
366 #define MON_BUFF_BASE_ADDR_VER2 (0xa03c1c)
367 #define MON_BUFF_END_ADDR_VER2 (0xa03c20)
368 #define MON_BUFF_WRPTR_VER2 (0xa03c24)
369 #define MON_BUFF_CYCLE_CNT_VER2 (0xa03c28)
370 #define MON_BUFF_SHIFT_VER2 (0x8)
371
372 #define DBGC_CUR_DBGBUF_BASE_ADDR_LSB (0xd03c20)
373 #define DBGC_CUR_DBGBUF_BASE_ADDR_MSB (0xd03c24)
374 #define DBGC_CUR_DBGBUF_STATUS (0xd03c1c)
375 #define DBGC_DBGBUF_WRAP_AROUND (0xd03c2c)
376 #define DBGC_CUR_DBGBUF_STATUS_OFFSET_MSK (0x00ffffff)
377
378 #define MON_DMARB_RD_CTL_ADDR (0xa03c60)
379 #define MON_DMARB_RD_DATA_ADDR (0xa03c5c)
380
381 #define DBGC_IN_SAMPLE (0xa03c00)
382 #define DBGC_OUT_CTRL (0xa03c0c)
383
384
385 #define WFPM_PS_CTL_CLR 0xA0300C
386 #define WFMP_MAC_ADDR_0 0xA03080
387 #define WFMP_MAC_ADDR_1 0xA03084
388 #define LMPM_PMG_EN 0xA01CEC
389 #define RADIO_REG_SYS_MANUAL_DFT_0 0xAD4078
390 #define RFIC_REG_RD 0xAD0470
391 #define WFPM_CTRL_REG 0xA03030
392 #define WFPM_GP2 0xA030B4
393 enum {
394 ENABLE_WFPM = BIT(31),
395 WFPM_AUX_CTL_AUX_IF_MAC_OWNER_MSK = 0x80000000,
396 };
397
398 #define CNVI_AUX_MISC_CHIP 0xA200B0
399 #define CNVR_AUX_MISC_CHIP 0xA2B800
400 #define CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM 0xA29890
401 #define CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR 0xA29938
402
403 enum {
404 HW_STEP_LOCATION_BITS = 24,
405 };
406
407 #define AUX_MISC_MASTER1_EN 0xA20818
408 enum aux_misc_master1_en {
409 AUX_MISC_MASTER1_EN_SBE_MSK = 0x1,
410 };
411
412 #define AUX_MISC_MASTER1_SMPHR_STATUS 0xA20800
413 #define RSA_ENABLE 0xA24B08
414 #define PREG_AUX_BUS_WPROT_0 0xA04CC0
415
416
417 #define PREG_PRPH_WPROT_9000 0xA04CE0
418
419 #define PREG_PRPH_WPROT_22000 0xA04D00
420
421 #define SB_CPU_1_STATUS 0xA01E30
422 #define SB_CPU_2_STATUS 0xA01E34
423 #define UMAG_SB_CPU_1_STATUS 0xA038C0
424 #define UMAG_SB_CPU_2_STATUS 0xA038C4
425 #define UMAG_GEN_HW_STATUS 0xA038C8
426
427
428 enum {
429 UMAG_GEN_HW_IS_FPGA = BIT(1),
430 };
431
432
433 #define LMPM_CHICK 0xA01FF8
434 enum {
435 LMPM_CHICK_EXTENDED_ADDR_SPACE = BIT(0),
436 };
437
438
439 #define LMPM_PAGE_PASS_NOTIF 0xA03824
440 enum {
441 LMPM_PAGE_PASS_NOTIF_POS = BIT(20),
442 };
443
444 #define UREG_CHICK (0xA05C00)
445 #define UREG_CHICK_MSI_ENABLE BIT(24)
446 #define UREG_CHICK_MSIX_ENABLE BIT(25)
447
448 #define HPM_DEBUG 0xA03440
449 #define PERSISTENCE_BIT BIT(12)
450 #define PREG_WFPM_ACCESS BIT(12)
451
452 #define HPM_HIPM_GEN_CFG 0xA03458
453 #define HPM_HIPM_GEN_CFG_CR_PG_EN BIT(0)
454 #define HPM_HIPM_GEN_CFG_CR_SLP_EN BIT(1)
455 #define HPM_HIPM_GEN_CFG_CR_FORCE_ACTIVE BIT(10)
456
457 #define UREG_DOORBELL_TO_ISR6 0xA05C04
458 #define UREG_DOORBELL_TO_ISR6_NMI_BIT BIT(0)
459 #define UREG_DOORBELL_TO_ISR6_SUSPEND BIT(18)
460 #define UREG_DOORBELL_TO_ISR6_RESUME BIT(19)
461
462 #define FSEQ_ERROR_CODE 0xA340C8
463 #define FSEQ_TOP_INIT_VERSION 0xA34038
464 #define FSEQ_CNVIO_INIT_VERSION 0xA3403C
465 #define FSEQ_OTP_VERSION 0xA340FC
466 #define FSEQ_TOP_CONTENT_VERSION 0xA340F4
467 #define FSEQ_ALIVE_TOKEN 0xA340F0
468 #define FSEQ_CNVI_ID 0xA3408C
469 #define FSEQ_CNVR_ID 0xA34090
470
471 #define IWL_D3_SLEEP_STATUS_SUSPEND 0xD3
472 #define IWL_D3_SLEEP_STATUS_RESUME 0xD0
473 #endif