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
65
66#ifndef __iwl_csr_h__
67#define __iwl_csr_h__
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86#define CSR_BASE (0x000)
87
88#define CSR_HW_IF_CONFIG_REG (CSR_BASE+0x000)
89#define CSR_INT_COALESCING (CSR_BASE+0x004)
90#define CSR_INT (CSR_BASE+0x008)
91#define CSR_INT_MASK (CSR_BASE+0x00c)
92#define CSR_FH_INT_STATUS (CSR_BASE+0x010)
93#define CSR_GPIO_IN (CSR_BASE+0x018)
94#define CSR_RESET (CSR_BASE+0x020)
95#define CSR_GP_CNTRL (CSR_BASE+0x024)
96
97
98#define CSR_INT_PERIODIC_REG (CSR_BASE+0x005)
99
100
101
102
103
104
105
106
107
108#define CSR_HW_REV (CSR_BASE+0x028)
109
110
111
112
113
114
115
116
117
118
119#define CSR_HW_RF_ID (CSR_BASE+0x09c)
120
121
122
123
124
125
126
127#define CSR_EEPROM_REG (CSR_BASE+0x02c)
128#define CSR_EEPROM_GP (CSR_BASE+0x030)
129#define CSR_OTP_GP_REG (CSR_BASE+0x034)
130
131#define CSR_GIO_REG (CSR_BASE+0x03C)
132#define CSR_GP_UCODE_REG (CSR_BASE+0x048)
133#define CSR_GP_DRIVER_REG (CSR_BASE+0x050)
134
135
136
137
138
139#define CSR_UCODE_DRV_GP1 (CSR_BASE+0x054)
140#define CSR_UCODE_DRV_GP1_SET (CSR_BASE+0x058)
141#define CSR_UCODE_DRV_GP1_CLR (CSR_BASE+0x05c)
142#define CSR_UCODE_DRV_GP2 (CSR_BASE+0x060)
143
144#define CSR_MBOX_SET_REG (CSR_BASE + 0x88)
145
146#define CSR_LED_REG (CSR_BASE+0x094)
147#define CSR_DRAM_INT_TBL_REG (CSR_BASE+0x0A0)
148#define CSR_MAC_SHADOW_REG_CTRL (CSR_BASE + 0x0A8)
149#define CSR_MAC_SHADOW_REG_CTRL_RX_WAKE BIT(20)
150#define CSR_MAC_SHADOW_REG_CTL2 (CSR_BASE + 0x0AC)
151#define CSR_MAC_SHADOW_REG_CTL2_RX_WAKE 0xFFFF
152
153
154#define CSR_GIO_CHICKEN_BITS (CSR_BASE+0x100)
155
156
157#define CSR_HOST_CHICKEN (CSR_BASE + 0x204)
158#define CSR_HOST_CHICKEN_PM_IDLE_SRC_DIS_SB_PME BIT(19)
159
160
161#define CSR_ANA_PLL_CFG (CSR_BASE+0x20c)
162
163
164
165
166#define CSR_MONITOR_CFG_REG (CSR_BASE+0x214)
167#define CSR_MONITOR_STATUS_REG (CSR_BASE+0x228)
168#define CSR_MONITOR_XTAL_RESOURCES (0x00000010)
169
170
171
172
173
174
175
176
177
178#define CSR_HW_REV_WA_REG (CSR_BASE+0x22C)
179
180#define CSR_DBG_HPET_MEM_REG (CSR_BASE+0x240)
181#define CSR_DBG_LINK_PWR_MGMT_REG (CSR_BASE+0x250)
182
183
184#define CSR_HW_IF_CONFIG_REG_MSK_MAC_DASH (0x00000003)
185#define CSR_HW_IF_CONFIG_REG_MSK_MAC_STEP (0x0000000C)
186#define CSR_HW_IF_CONFIG_REG_MSK_BOARD_VER (0x000000C0)
187#define CSR_HW_IF_CONFIG_REG_BIT_MAC_SI (0x00000100)
188#define CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI (0x00000200)
189#define CSR_HW_IF_CONFIG_REG_MSK_PHY_TYPE (0x00000C00)
190#define CSR_HW_IF_CONFIG_REG_MSK_PHY_DASH (0x00003000)
191#define CSR_HW_IF_CONFIG_REG_MSK_PHY_STEP (0x0000C000)
192
193#define CSR_HW_IF_CONFIG_REG_POS_MAC_DASH (0)
194#define CSR_HW_IF_CONFIG_REG_POS_MAC_STEP (2)
195#define CSR_HW_IF_CONFIG_REG_POS_BOARD_VER (6)
196#define CSR_HW_IF_CONFIG_REG_POS_PHY_TYPE (10)
197#define CSR_HW_IF_CONFIG_REG_POS_PHY_DASH (12)
198#define CSR_HW_IF_CONFIG_REG_POS_PHY_STEP (14)
199
200#define CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A (0x00080000)
201#define CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM (0x00200000)
202#define CSR_HW_IF_CONFIG_REG_BIT_NIC_READY (0x00400000)
203#define CSR_HW_IF_CONFIG_REG_BIT_NIC_PREPARE_DONE (0x02000000)
204#define CSR_HW_IF_CONFIG_REG_PREPARE (0x08000000)
205#define CSR_HW_IF_CONFIG_REG_ENABLE_PME (0x10000000)
206#define CSR_HW_IF_CONFIG_REG_PERSIST_MODE (0x40000000)
207
208#define CSR_MBOX_SET_REG_OS_ALIVE BIT(5)
209
210#define CSR_INT_PERIODIC_DIS (0x00)
211#define CSR_INT_PERIODIC_ENA (0xFF)
212
213
214
215#define CSR_INT_BIT_FH_RX (1 << 31)
216#define CSR_INT_BIT_HW_ERR (1 << 29)
217#define CSR_INT_BIT_RX_PERIODIC (1 << 28)
218#define CSR_INT_BIT_FH_TX (1 << 27)
219#define CSR_INT_BIT_SCD (1 << 26)
220#define CSR_INT_BIT_SW_ERR (1 << 25)
221#define CSR_INT_BIT_RF_KILL (1 << 7)
222#define CSR_INT_BIT_CT_KILL (1 << 6)
223#define CSR_INT_BIT_SW_RX (1 << 3)
224#define CSR_INT_BIT_WAKEUP (1 << 1)
225#define CSR_INT_BIT_ALIVE (1 << 0)
226
227#define CSR_INI_SET_MASK (CSR_INT_BIT_FH_RX | \
228 CSR_INT_BIT_HW_ERR | \
229 CSR_INT_BIT_FH_TX | \
230 CSR_INT_BIT_SW_ERR | \
231 CSR_INT_BIT_RF_KILL | \
232 CSR_INT_BIT_SW_RX | \
233 CSR_INT_BIT_WAKEUP | \
234 CSR_INT_BIT_ALIVE | \
235 CSR_INT_BIT_RX_PERIODIC)
236
237
238#define CSR_FH_INT_BIT_ERR (1 << 31)
239#define CSR_FH_INT_BIT_HI_PRIOR (1 << 30)
240#define CSR_FH_INT_BIT_RX_CHNL1 (1 << 17)
241#define CSR_FH_INT_BIT_RX_CHNL0 (1 << 16)
242#define CSR_FH_INT_BIT_TX_CHNL1 (1 << 1)
243#define CSR_FH_INT_BIT_TX_CHNL0 (1 << 0)
244
245#define CSR_FH_INT_RX_MASK (CSR_FH_INT_BIT_HI_PRIOR | \
246 CSR_FH_INT_BIT_RX_CHNL1 | \
247 CSR_FH_INT_BIT_RX_CHNL0)
248
249#define CSR_FH_INT_TX_MASK (CSR_FH_INT_BIT_TX_CHNL1 | \
250 CSR_FH_INT_BIT_TX_CHNL0)
251
252
253#define CSR_GPIO_IN_BIT_AUX_POWER (0x00000200)
254#define CSR_GPIO_IN_VAL_VAUX_PWR_SRC (0x00000000)
255#define CSR_GPIO_IN_VAL_VMAIN_PWR_SRC (0x00000200)
256
257
258#define CSR_RESET_REG_FLAG_NEVO_RESET (0x00000001)
259#define CSR_RESET_REG_FLAG_FORCE_NMI (0x00000002)
260#define CSR_RESET_REG_FLAG_SW_RESET (0x00000080)
261#define CSR_RESET_REG_FLAG_MASTER_DISABLED (0x00000100)
262#define CSR_RESET_REG_FLAG_STOP_MASTER (0x00000200)
263#define CSR_RESET_LINK_PWR_MGMT_DISABLED (0x80000000)
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304#define CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY (0x00000001)
305#define CSR_GP_CNTRL_REG_FLAG_INIT_DONE (0x00000004)
306#define CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ (0x00000008)
307#define CSR_GP_CNTRL_REG_FLAG_GOING_TO_SLEEP (0x00000010)
308#define CSR_GP_CNTRL_REG_FLAG_XTAL_ON (0x00000400)
309
310#define CSR_GP_CNTRL_REG_VAL_MAC_ACCESS_EN (0x00000001)
311
312#define CSR_GP_CNTRL_REG_MSK_POWER_SAVE_TYPE (0x07000000)
313#define CSR_GP_CNTRL_REG_FLAG_RFKILL_WAKE_L1A_EN (0x04000000)
314#define CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW (0x08000000)
315
316
317
318#define CSR_HW_REV_DASH(_val) (((_val) & 0x0000003) >> 0)
319#define CSR_HW_REV_STEP(_val) (((_val) & 0x000000C) >> 2)
320
321
322#define CSR_HW_RFID_FLAVOR(_val) (((_val) & 0x000000F) >> 0)
323#define CSR_HW_RFID_DASH(_val) (((_val) & 0x00000F0) >> 4)
324#define CSR_HW_RFID_STEP(_val) (((_val) & 0x0000F00) >> 8)
325#define CSR_HW_RFID_TYPE(_val) (((_val) & 0x0FFF000) >> 12)
326
327
328
329
330enum {
331 SILICON_A_STEP = 0,
332 SILICON_B_STEP,
333 SILICON_C_STEP,
334};
335
336
337#define CSR_HW_REV_TYPE_MSK (0x000FFF0)
338#define CSR_HW_REV_TYPE_5300 (0x0000020)
339#define CSR_HW_REV_TYPE_5350 (0x0000030)
340#define CSR_HW_REV_TYPE_5100 (0x0000050)
341#define CSR_HW_REV_TYPE_5150 (0x0000040)
342#define CSR_HW_REV_TYPE_1000 (0x0000060)
343#define CSR_HW_REV_TYPE_6x00 (0x0000070)
344#define CSR_HW_REV_TYPE_6x50 (0x0000080)
345#define CSR_HW_REV_TYPE_6150 (0x0000084)
346#define CSR_HW_REV_TYPE_6x05 (0x00000B0)
347#define CSR_HW_REV_TYPE_6x30 CSR_HW_REV_TYPE_6x05
348#define CSR_HW_REV_TYPE_6x35 CSR_HW_REV_TYPE_6x05
349#define CSR_HW_REV_TYPE_2x30 (0x00000C0)
350#define CSR_HW_REV_TYPE_2x00 (0x0000100)
351#define CSR_HW_REV_TYPE_105 (0x0000110)
352#define CSR_HW_REV_TYPE_135 (0x0000120)
353#define CSR_HW_REV_TYPE_7265D (0x0000210)
354#define CSR_HW_REV_TYPE_NONE (0x00001F0)
355#define CSR_HW_REV_TYPE_QNJ (0x0000360)
356#define CSR_HW_REV_TYPE_HR_CDB (0x0000340)
357
358
359#define CSR_HW_RF_ID_TYPE_JF (0x00105100)
360#define CSR_HW_RF_ID_TYPE_HR (0x0010A000)
361#define CSR_HW_RF_ID_TYPE_HRCDB (0x00109F00)
362
363
364#define CSR_HW_RF_ID_TYPE_CHIP_ID(_val) (((_val) >> 12) & 0xFFF)
365
366
367#define CSR_EEPROM_REG_READ_VALID_MSK (0x00000001)
368#define CSR_EEPROM_REG_BIT_CMD (0x00000002)
369#define CSR_EEPROM_REG_MSK_ADDR (0x0000FFFC)
370#define CSR_EEPROM_REG_MSK_DATA (0xFFFF0000)
371
372
373#define CSR_EEPROM_GP_VALID_MSK (0x00000007)
374#define CSR_EEPROM_GP_IF_OWNER_MSK (0x00000180)
375#define CSR_EEPROM_GP_BAD_SIGNATURE_BOTH_EEP_AND_OTP (0x00000000)
376#define CSR_EEPROM_GP_BAD_SIG_EEP_GOOD_SIG_OTP (0x00000001)
377#define CSR_EEPROM_GP_GOOD_SIG_EEP_LESS_THAN_4K (0x00000002)
378#define CSR_EEPROM_GP_GOOD_SIG_EEP_MORE_THAN_4K (0x00000004)
379
380
381#define CSR_OTP_GP_REG_DEVICE_SELECT (0x00010000)
382#define CSR_OTP_GP_REG_OTP_ACCESS_MODE (0x00020000)
383#define CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK (0x00100000)
384#define CSR_OTP_GP_REG_ECC_UNCORR_STATUS_MSK (0x00200000)
385
386
387#define CSR_GP_REG_POWER_SAVE_STATUS_MSK (0x03000000)
388#define CSR_GP_REG_NO_POWER_SAVE (0x00000000)
389#define CSR_GP_REG_MAC_POWER_SAVE (0x01000000)
390#define CSR_GP_REG_PHY_POWER_SAVE (0x02000000)
391#define CSR_GP_REG_POWER_SAVE_ERROR (0x03000000)
392
393
394
395#define CSR_GIO_REG_VAL_L0S_ENABLED (0x00000002)
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425#define CSR_UCODE_DRV_GP1_BIT_MAC_SLEEP (0x00000001)
426#define CSR_UCODE_SW_BIT_RFKILL (0x00000002)
427#define CSR_UCODE_DRV_GP1_BIT_CMD_BLOCKED (0x00000004)
428#define CSR_UCODE_DRV_GP1_REG_BIT_CT_KILL_EXIT (0x00000008)
429#define CSR_UCODE_DRV_GP1_BIT_D3_CFG_COMPLETE (0x00000020)
430
431
432#define CSR_GP_DRIVER_REG_BIT_RADIO_SKU_MSK (0x00000003)
433#define CSR_GP_DRIVER_REG_BIT_RADIO_SKU_3x3_HYB (0x00000000)
434#define CSR_GP_DRIVER_REG_BIT_RADIO_SKU_2x2_HYB (0x00000001)
435#define CSR_GP_DRIVER_REG_BIT_RADIO_SKU_2x2_IPA (0x00000002)
436#define CSR_GP_DRIVER_REG_BIT_CALIB_VERSION6 (0x00000004)
437#define CSR_GP_DRIVER_REG_BIT_6050_1x2 (0x00000008)
438
439#define CSR_GP_DRIVER_REG_BIT_RADIO_IQ_INVER (0x00000080)
440
441
442#define CSR_GIO_CHICKEN_BITS_REG_BIT_L1A_NO_L0S_RX (0x00800000)
443#define CSR_GIO_CHICKEN_BITS_REG_BIT_DIS_L0S_EXIT_TIMER (0x20000000)
444
445
446#define CSR_LED_BSM_CTRL_MSK (0xFFFFFFDF)
447#define CSR_LED_REG_TURN_ON (0x60)
448#define CSR_LED_REG_TURN_OFF (0x20)
449
450
451#define CSR50_ANA_PLL_CFG_VAL (0x00880300)
452
453
454#define CSR_DBG_HPET_MEM_REG_VAL (0xFFFF0000)
455
456
457#define CSR_DRAM_INT_TBL_ENABLE (1 << 31)
458#define CSR_DRAM_INIT_TBL_WRITE_POINTER (1 << 28)
459#define CSR_DRAM_INIT_TBL_WRAP_CHECK (1 << 27)
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486#define HEEP_CTRL_WRD_PCIEX_CTRL_REG (CSR_BASE+0x0ec)
487#define HEEP_CTRL_WRD_PCIEX_DATA_REG (CSR_BASE+0x0f4)
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504#define HBUS_BASE (0x400)
505
506
507
508
509
510
511
512
513
514
515#define HBUS_TARG_MEM_RADDR (HBUS_BASE+0x00c)
516#define HBUS_TARG_MEM_WADDR (HBUS_BASE+0x010)
517#define HBUS_TARG_MEM_WDAT (HBUS_BASE+0x018)
518#define HBUS_TARG_MEM_RDAT (HBUS_BASE+0x01c)
519
520
521#define HBUS_TARG_MBX_C (HBUS_BASE+0x030)
522#define HBUS_TARG_MBX_C_REG_BIT_CMD_BLOCKED (0x00000004)
523
524
525
526
527
528
529
530
531
532#define HBUS_TARG_PRPH_WADDR (HBUS_BASE+0x044)
533#define HBUS_TARG_PRPH_RADDR (HBUS_BASE+0x048)
534#define HBUS_TARG_PRPH_WDAT (HBUS_BASE+0x04c)
535#define HBUS_TARG_PRPH_RDAT (HBUS_BASE+0x050)
536
537
538#define HBUS_TARG_TEST_REG (HBUS_BASE+0x05c)
539
540
541
542
543
544
545
546
547#define HBUS_TARG_WRPTR (HBUS_BASE+0x060)
548
549
550
551
552
553
554
555
556
557
558
559#define IWL_HOST_INT_TIMEOUT_MAX (0xFF)
560#define IWL_HOST_INT_TIMEOUT_DEF (0x40)
561#define IWL_HOST_INT_TIMEOUT_MIN (0x0)
562#define IWL_HOST_INT_OPER_MODE BIT(31)
563
564
565
566
567
568
569enum dtd_diode_reg {
570 DTS_DIODE_REG_DIG_VAL = 0x000000FF,
571 DTS_DIODE_REG_VREF_LOW = 0x0000FF00,
572 DTS_DIODE_REG_VREF_HIGH = 0x00FF0000,
573 DTS_DIODE_REG_VREF_ID = 0x03000000,
574 DTS_DIODE_REG_PASS_ONCE = 0x80000000,
575 DTS_DIODE_REG_FLAGS_MSK = 0xFF000000,
576
577 DTS_DIODE_REG_FLAGS_VREFS_ID_POS = 0,
578 DTS_DIODE_REG_FLAGS_VREFS_ID = 0x00000003,
579 DTS_DIODE_REG_FLAGS_PASS_ONCE_POS = 7,
580 DTS_DIODE_REG_FLAGS_PASS_ONCE = 0x00000080,
581};
582
583
584
585
586
587#define CSR_MSIX_BASE (0x2000)
588#define CSR_MSIX_FH_INT_CAUSES_AD (CSR_MSIX_BASE + 0x800)
589#define CSR_MSIX_FH_INT_MASK_AD (CSR_MSIX_BASE + 0x804)
590#define CSR_MSIX_HW_INT_CAUSES_AD (CSR_MSIX_BASE + 0x808)
591#define CSR_MSIX_HW_INT_MASK_AD (CSR_MSIX_BASE + 0x80C)
592#define CSR_MSIX_AUTOMASK_ST_AD (CSR_MSIX_BASE + 0x810)
593#define CSR_MSIX_RX_IVAR_AD_REG (CSR_MSIX_BASE + 0x880)
594#define CSR_MSIX_IVAR_AD_REG (CSR_MSIX_BASE + 0x890)
595#define CSR_MSIX_PENDING_PBA_AD (CSR_MSIX_BASE + 0x1000)
596#define CSR_MSIX_RX_IVAR(cause) (CSR_MSIX_RX_IVAR_AD_REG + (cause))
597#define CSR_MSIX_IVAR(cause) (CSR_MSIX_IVAR_AD_REG + (cause))
598
599#define MSIX_FH_INT_CAUSES_Q(q) (q)
600
601
602
603
604enum msix_fh_int_causes {
605 MSIX_FH_INT_CAUSES_Q0 = BIT(0),
606 MSIX_FH_INT_CAUSES_Q1 = BIT(1),
607 MSIX_FH_INT_CAUSES_D2S_CH0_NUM = BIT(16),
608 MSIX_FH_INT_CAUSES_D2S_CH1_NUM = BIT(17),
609 MSIX_FH_INT_CAUSES_S2D = BIT(19),
610 MSIX_FH_INT_CAUSES_FH_ERR = BIT(21),
611};
612
613
614
615
616enum msix_hw_int_causes {
617 MSIX_HW_INT_CAUSES_REG_ALIVE = BIT(0),
618 MSIX_HW_INT_CAUSES_REG_WAKEUP = BIT(1),
619 MSIX_HW_INT_CAUSES_REG_CT_KILL = BIT(6),
620 MSIX_HW_INT_CAUSES_REG_RF_KILL = BIT(7),
621 MSIX_HW_INT_CAUSES_REG_PERIODIC = BIT(8),
622 MSIX_HW_INT_CAUSES_REG_SW_ERR = BIT(25),
623 MSIX_HW_INT_CAUSES_REG_SCD = BIT(26),
624 MSIX_HW_INT_CAUSES_REG_FH_TX = BIT(27),
625 MSIX_HW_INT_CAUSES_REG_HW_ERR = BIT(29),
626 MSIX_HW_INT_CAUSES_REG_HAP = BIT(30),
627};
628
629#define MSIX_MIN_INTERRUPT_VECTORS 2
630#define MSIX_AUTO_CLEAR_CAUSE 0
631#define MSIX_NON_AUTO_CLEAR_CAUSE BIT(7)
632
633
634
635
636
637#define CSR_ADDR_BASE (0x380)
638#define CSR_MAC_ADDR0_OTP (CSR_ADDR_BASE)
639#define CSR_MAC_ADDR1_OTP (CSR_ADDR_BASE + 4)
640#define CSR_MAC_ADDR0_STRAP (CSR_ADDR_BASE + 8)
641#define CSR_MAC_ADDR1_STRAP (CSR_ADDR_BASE + 0xC)
642
643#endif
644