0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef RT73USB_H
0015 #define RT73USB_H
0016
0017
0018
0019
0020 #define RF5226 0x0001
0021 #define RF2528 0x0002
0022 #define RF5225 0x0003
0023 #define RF2527 0x0004
0024
0025
0026
0027
0028
0029 #define DEFAULT_RSSI_OFFSET 120
0030
0031
0032
0033
0034 #define CSR_REG_BASE 0x3000
0035 #define CSR_REG_SIZE 0x04b0
0036 #define EEPROM_BASE 0x0000
0037 #define EEPROM_SIZE 0x0100
0038 #define BBP_BASE 0x0000
0039 #define BBP_SIZE 0x0080
0040 #define RF_BASE 0x0004
0041 #define RF_SIZE 0x0010
0042
0043
0044
0045
0046 #define NUM_TX_QUEUES 4
0047
0048
0049
0050
0051
0052
0053
0054
0055 #define MCU_LEDCS_LED_MODE FIELD16(0x001f)
0056 #define MCU_LEDCS_RADIO_STATUS FIELD16(0x0020)
0057 #define MCU_LEDCS_LINK_BG_STATUS FIELD16(0x0040)
0058 #define MCU_LEDCS_LINK_A_STATUS FIELD16(0x0080)
0059 #define MCU_LEDCS_POLARITY_GPIO_0 FIELD16(0x0100)
0060 #define MCU_LEDCS_POLARITY_GPIO_1 FIELD16(0x0200)
0061 #define MCU_LEDCS_POLARITY_GPIO_2 FIELD16(0x0400)
0062 #define MCU_LEDCS_POLARITY_GPIO_3 FIELD16(0x0800)
0063 #define MCU_LEDCS_POLARITY_GPIO_4 FIELD16(0x1000)
0064 #define MCU_LEDCS_POLARITY_ACT FIELD16(0x2000)
0065 #define MCU_LEDCS_POLARITY_READY_BG FIELD16(0x4000)
0066 #define MCU_LEDCS_POLARITY_READY_A FIELD16(0x8000)
0067
0068
0069
0070
0071 #define FIRMWARE_RT2571 "rt73.bin"
0072 #define FIRMWARE_IMAGE_BASE 0x0800
0073
0074
0075
0076
0077
0078
0079
0080 #define SHARED_KEY_TABLE_BASE 0x1000
0081 #define PAIRWISE_KEY_TABLE_BASE 0x1200
0082 #define PAIRWISE_TA_TABLE_BASE 0x1a00
0083
0084 #define SHARED_KEY_ENTRY(__idx) \
0085 ( SHARED_KEY_TABLE_BASE + \
0086 ((__idx) * sizeof(struct hw_key_entry)) )
0087 #define PAIRWISE_KEY_ENTRY(__idx) \
0088 ( PAIRWISE_KEY_TABLE_BASE + \
0089 ((__idx) * sizeof(struct hw_key_entry)) )
0090 #define PAIRWISE_TA_ENTRY(__idx) \
0091 ( PAIRWISE_TA_TABLE_BASE + \
0092 ((__idx) * sizeof(struct hw_pairwise_ta_entry)) )
0093
0094 struct hw_key_entry {
0095 u8 key[16];
0096 u8 tx_mic[8];
0097 u8 rx_mic[8];
0098 } __packed;
0099
0100 struct hw_pairwise_ta_entry {
0101 u8 address[6];
0102 u8 cipher;
0103 u8 reserved;
0104 } __packed;
0105
0106
0107
0108
0109
0110 #define HW_DEBUG_SETTING_BASE 0x2bf0
0111
0112
0113
0114
0115 #define HW_BEACON_BASE0 0x2400
0116 #define HW_BEACON_BASE1 0x2500
0117 #define HW_BEACON_BASE2 0x2600
0118 #define HW_BEACON_BASE3 0x2700
0119
0120 #define HW_BEACON_OFFSET(__index) \
0121 ( HW_BEACON_BASE0 + (__index * 0x0100) )
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131 #define MAC_CSR0 0x3000
0132 #define MAC_CSR0_REVISION FIELD32(0x0000000f)
0133 #define MAC_CSR0_CHIPSET FIELD32(0x000ffff0)
0134
0135
0136
0137
0138
0139
0140
0141 #define MAC_CSR1 0x3004
0142 #define MAC_CSR1_SOFT_RESET FIELD32(0x00000001)
0143 #define MAC_CSR1_BBP_RESET FIELD32(0x00000002)
0144 #define MAC_CSR1_HOST_READY FIELD32(0x00000004)
0145
0146
0147
0148
0149 #define MAC_CSR2 0x3008
0150 #define MAC_CSR2_BYTE0 FIELD32(0x000000ff)
0151 #define MAC_CSR2_BYTE1 FIELD32(0x0000ff00)
0152 #define MAC_CSR2_BYTE2 FIELD32(0x00ff0000)
0153 #define MAC_CSR2_BYTE3 FIELD32(0xff000000)
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163 #define MAC_CSR3 0x300c
0164 #define MAC_CSR3_BYTE4 FIELD32(0x000000ff)
0165 #define MAC_CSR3_BYTE5 FIELD32(0x0000ff00)
0166 #define MAC_CSR3_UNICAST_TO_ME_MASK FIELD32(0x00ff0000)
0167
0168
0169
0170
0171 #define MAC_CSR4 0x3010
0172 #define MAC_CSR4_BYTE0 FIELD32(0x000000ff)
0173 #define MAC_CSR4_BYTE1 FIELD32(0x0000ff00)
0174 #define MAC_CSR4_BYTE2 FIELD32(0x00ff0000)
0175 #define MAC_CSR4_BYTE3 FIELD32(0xff000000)
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188 #define MAC_CSR5 0x3014
0189 #define MAC_CSR5_BYTE4 FIELD32(0x000000ff)
0190 #define MAC_CSR5_BYTE5 FIELD32(0x0000ff00)
0191 #define MAC_CSR5_BSS_ID_MASK FIELD32(0x00ff0000)
0192
0193
0194
0195
0196 #define MAC_CSR6 0x3018
0197 #define MAC_CSR6_MAX_FRAME_UNIT FIELD32(0x00000fff)
0198
0199
0200
0201
0202 #define MAC_CSR7 0x301c
0203
0204
0205
0206
0207
0208 #define MAC_CSR8 0x3020
0209 #define MAC_CSR8_SIFS FIELD32(0x000000ff)
0210 #define MAC_CSR8_SIFS_AFTER_RX_OFDM FIELD32(0x0000ff00)
0211 #define MAC_CSR8_EIFS FIELD32(0xffff0000)
0212
0213
0214
0215
0216
0217
0218
0219
0220 #define MAC_CSR9 0x3024
0221 #define MAC_CSR9_SLOT_TIME FIELD32(0x000000ff)
0222 #define MAC_CSR9_CWMIN FIELD32(0x00000f00)
0223 #define MAC_CSR9_CWMAX FIELD32(0x0000f000)
0224 #define MAC_CSR9_CW_SELECT FIELD32(0x00010000)
0225
0226
0227
0228
0229 #define MAC_CSR10 0x3028
0230
0231
0232
0233
0234
0235
0236
0237 #define MAC_CSR11 0x302c
0238 #define MAC_CSR11_DELAY_AFTER_TBCN FIELD32(0x000000ff)
0239 #define MAC_CSR11_TBCN_BEFORE_WAKEUP FIELD32(0x00007f00)
0240 #define MAC_CSR11_AUTOWAKE FIELD32(0x00008000)
0241 #define MAC_CSR11_WAKEUP_LATENCY FIELD32(0x000f0000)
0242
0243
0244
0245
0246
0247
0248
0249 #define MAC_CSR12 0x3030
0250 #define MAC_CSR12_CURRENT_STATE FIELD32(0x00000001)
0251 #define MAC_CSR12_PUT_TO_SLEEP FIELD32(0x00000002)
0252 #define MAC_CSR12_FORCE_WAKEUP FIELD32(0x00000004)
0253 #define MAC_CSR12_BBP_CURRENT_STATE FIELD32(0x00000008)
0254
0255
0256
0257
0258
0259
0260 #define MAC_CSR13 0x3034
0261 #define MAC_CSR13_VAL0 FIELD32(0x00000001)
0262 #define MAC_CSR13_VAL1 FIELD32(0x00000002)
0263 #define MAC_CSR13_VAL2 FIELD32(0x00000004)
0264 #define MAC_CSR13_VAL3 FIELD32(0x00000008)
0265 #define MAC_CSR13_VAL4 FIELD32(0x00000010)
0266 #define MAC_CSR13_VAL5 FIELD32(0x00000020)
0267 #define MAC_CSR13_VAL6 FIELD32(0x00000040)
0268 #define MAC_CSR13_VAL7 FIELD32(0x00000080)
0269 #define MAC_CSR13_DIR0 FIELD32(0x00000100)
0270 #define MAC_CSR13_DIR1 FIELD32(0x00000200)
0271 #define MAC_CSR13_DIR2 FIELD32(0x00000400)
0272 #define MAC_CSR13_DIR3 FIELD32(0x00000800)
0273 #define MAC_CSR13_DIR4 FIELD32(0x00001000)
0274 #define MAC_CSR13_DIR5 FIELD32(0x00002000)
0275 #define MAC_CSR13_DIR6 FIELD32(0x00004000)
0276 #define MAC_CSR13_DIR7 FIELD32(0x00008000)
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286 #define MAC_CSR14 0x3038
0287 #define MAC_CSR14_ON_PERIOD FIELD32(0x000000ff)
0288 #define MAC_CSR14_OFF_PERIOD FIELD32(0x0000ff00)
0289 #define MAC_CSR14_HW_LED FIELD32(0x00010000)
0290 #define MAC_CSR14_SW_LED FIELD32(0x00020000)
0291 #define MAC_CSR14_HW_LED_POLARITY FIELD32(0x00040000)
0292 #define MAC_CSR14_SW_LED2 FIELD32(0x00080000)
0293
0294
0295
0296
0297 #define MAC_CSR15 0x303c
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319 #define TXRX_CSR0 0x3040
0320 #define TXRX_CSR0_RX_ACK_TIMEOUT FIELD32(0x000001ff)
0321 #define TXRX_CSR0_TSF_OFFSET FIELD32(0x00007e00)
0322 #define TXRX_CSR0_AUTO_TX_SEQ FIELD32(0x00008000)
0323 #define TXRX_CSR0_DISABLE_RX FIELD32(0x00010000)
0324 #define TXRX_CSR0_DROP_CRC FIELD32(0x00020000)
0325 #define TXRX_CSR0_DROP_PHYSICAL FIELD32(0x00040000)
0326 #define TXRX_CSR0_DROP_CONTROL FIELD32(0x00080000)
0327 #define TXRX_CSR0_DROP_NOT_TO_ME FIELD32(0x00100000)
0328 #define TXRX_CSR0_DROP_TO_DS FIELD32(0x00200000)
0329 #define TXRX_CSR0_DROP_VERSION_ERROR FIELD32(0x00400000)
0330 #define TXRX_CSR0_DROP_MULTICAST FIELD32(0x00800000)
0331 #define TXRX_CSR0_DROP_BROADCAST FIELD32(0x01000000)
0332 #define TXRX_CSR0_DROP_ACK_CTS FIELD32(0x02000000)
0333 #define TXRX_CSR0_TX_WITHOUT_WAITING FIELD32(0x04000000)
0334
0335
0336
0337
0338 #define TXRX_CSR1 0x3044
0339 #define TXRX_CSR1_BBP_ID0 FIELD32(0x0000007f)
0340 #define TXRX_CSR1_BBP_ID0_VALID FIELD32(0x00000080)
0341 #define TXRX_CSR1_BBP_ID1 FIELD32(0x00007f00)
0342 #define TXRX_CSR1_BBP_ID1_VALID FIELD32(0x00008000)
0343 #define TXRX_CSR1_BBP_ID2 FIELD32(0x007f0000)
0344 #define TXRX_CSR1_BBP_ID2_VALID FIELD32(0x00800000)
0345 #define TXRX_CSR1_BBP_ID3 FIELD32(0x7f000000)
0346 #define TXRX_CSR1_BBP_ID3_VALID FIELD32(0x80000000)
0347
0348
0349
0350
0351 #define TXRX_CSR2 0x3048
0352 #define TXRX_CSR2_BBP_ID0 FIELD32(0x0000007f)
0353 #define TXRX_CSR2_BBP_ID0_VALID FIELD32(0x00000080)
0354 #define TXRX_CSR2_BBP_ID1 FIELD32(0x00007f00)
0355 #define TXRX_CSR2_BBP_ID1_VALID FIELD32(0x00008000)
0356 #define TXRX_CSR2_BBP_ID2 FIELD32(0x007f0000)
0357 #define TXRX_CSR2_BBP_ID2_VALID FIELD32(0x00800000)
0358 #define TXRX_CSR2_BBP_ID3 FIELD32(0x7f000000)
0359 #define TXRX_CSR2_BBP_ID3_VALID FIELD32(0x80000000)
0360
0361
0362
0363
0364 #define TXRX_CSR3 0x304c
0365 #define TXRX_CSR3_BBP_ID0 FIELD32(0x0000007f)
0366 #define TXRX_CSR3_BBP_ID0_VALID FIELD32(0x00000080)
0367 #define TXRX_CSR3_BBP_ID1 FIELD32(0x00007f00)
0368 #define TXRX_CSR3_BBP_ID1_VALID FIELD32(0x00008000)
0369 #define TXRX_CSR3_BBP_ID2 FIELD32(0x007f0000)
0370 #define TXRX_CSR3_BBP_ID2_VALID FIELD32(0x00800000)
0371 #define TXRX_CSR3_BBP_ID3 FIELD32(0x7f000000)
0372 #define TXRX_CSR3_BBP_ID3_VALID FIELD32(0x80000000)
0373
0374
0375
0376
0377
0378
0379
0380
0381 #define TXRX_CSR4 0x3050
0382 #define TXRX_CSR4_TX_ACK_TIMEOUT FIELD32(0x000000ff)
0383 #define TXRX_CSR4_CNTL_ACK_POLICY FIELD32(0x00000700)
0384 #define TXRX_CSR4_ACK_CTS_PSM FIELD32(0x00010000)
0385 #define TXRX_CSR4_AUTORESPOND_ENABLE FIELD32(0x00020000)
0386 #define TXRX_CSR4_AUTORESPOND_PREAMBLE FIELD32(0x00040000)
0387 #define TXRX_CSR4_OFDM_TX_RATE_DOWN FIELD32(0x00080000)
0388 #define TXRX_CSR4_OFDM_TX_RATE_STEP FIELD32(0x00300000)
0389 #define TXRX_CSR4_OFDM_TX_FALLBACK_CCK FIELD32(0x00400000)
0390 #define TXRX_CSR4_LONG_RETRY_LIMIT FIELD32(0x0f000000)
0391 #define TXRX_CSR4_SHORT_RETRY_LIMIT FIELD32(0xf0000000)
0392
0393
0394
0395
0396 #define TXRX_CSR5 0x3054
0397
0398
0399
0400
0401 #define TXRX_CSR6 0x3058
0402
0403
0404
0405
0406 #define TXRX_CSR7 0x305c
0407 #define TXRX_CSR7_ACK_CTS_6MBS FIELD32(0x000000ff)
0408 #define TXRX_CSR7_ACK_CTS_9MBS FIELD32(0x0000ff00)
0409 #define TXRX_CSR7_ACK_CTS_12MBS FIELD32(0x00ff0000)
0410 #define TXRX_CSR7_ACK_CTS_18MBS FIELD32(0xff000000)
0411
0412
0413
0414
0415 #define TXRX_CSR8 0x3060
0416 #define TXRX_CSR8_ACK_CTS_24MBS FIELD32(0x000000ff)
0417 #define TXRX_CSR8_ACK_CTS_36MBS FIELD32(0x0000ff00)
0418 #define TXRX_CSR8_ACK_CTS_48MBS FIELD32(0x00ff0000)
0419 #define TXRX_CSR8_ACK_CTS_54MBS FIELD32(0xff000000)
0420
0421
0422
0423
0424
0425
0426
0427
0428 #define TXRX_CSR9 0x3064
0429 #define TXRX_CSR9_BEACON_INTERVAL FIELD32(0x0000ffff)
0430 #define TXRX_CSR9_TSF_TICKING FIELD32(0x00010000)
0431 #define TXRX_CSR9_TSF_SYNC FIELD32(0x00060000)
0432 #define TXRX_CSR9_TBTT_ENABLE FIELD32(0x00080000)
0433 #define TXRX_CSR9_BEACON_GEN FIELD32(0x00100000)
0434 #define TXRX_CSR9_TIMESTAMP_COMPENSATE FIELD32(0xff000000)
0435
0436
0437
0438
0439 #define TXRX_CSR10 0x3068
0440
0441
0442
0443
0444 #define TXRX_CSR11 0x306c
0445
0446
0447
0448
0449 #define TXRX_CSR12 0x3070
0450 #define TXRX_CSR12_LOW_TSFTIMER FIELD32(0xffffffff)
0451
0452
0453
0454
0455 #define TXRX_CSR13 0x3074
0456 #define TXRX_CSR13_HIGH_TSFTIMER FIELD32(0xffffffff)
0457
0458
0459
0460
0461 #define TXRX_CSR14 0x3078
0462
0463
0464
0465
0466 #define TXRX_CSR15 0x307c
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476 #define PHY_CSR0 0x3080
0477 #define PHY_CSR0_PA_PE_BG FIELD32(0x00010000)
0478 #define PHY_CSR0_PA_PE_A FIELD32(0x00020000)
0479
0480
0481
0482
0483 #define PHY_CSR1 0x3084
0484 #define PHY_CSR1_RF_RPI FIELD32(0x00010000)
0485
0486
0487
0488
0489 #define PHY_CSR2 0x3088
0490
0491
0492
0493
0494
0495
0496
0497
0498 #define PHY_CSR3 0x308c
0499 #define PHY_CSR3_VALUE FIELD32(0x000000ff)
0500 #define PHY_CSR3_REGNUM FIELD32(0x00007f00)
0501 #define PHY_CSR3_READ_CONTROL FIELD32(0x00008000)
0502 #define PHY_CSR3_BUSY FIELD32(0x00010000)
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512 #define PHY_CSR4 0x3090
0513 #define PHY_CSR4_VALUE FIELD32(0x00ffffff)
0514 #define PHY_CSR4_NUMBER_OF_BITS FIELD32(0x1f000000)
0515 #define PHY_CSR4_IF_SELECT FIELD32(0x20000000)
0516 #define PHY_CSR4_PLL_LD FIELD32(0x40000000)
0517 #define PHY_CSR4_BUSY FIELD32(0x80000000)
0518
0519
0520
0521
0522 #define PHY_CSR5 0x3094
0523 #define PHY_CSR5_IQ_FLIP FIELD32(0x00000004)
0524
0525
0526
0527
0528 #define PHY_CSR6 0x3098
0529 #define PHY_CSR6_IQ_FLIP FIELD32(0x00000004)
0530
0531
0532
0533
0534 #define PHY_CSR7 0x309c
0535
0536
0537
0538
0539
0540
0541
0542
0543 #define SEC_CSR0 0x30a0
0544 #define SEC_CSR0_BSS0_KEY0_VALID FIELD32(0x00000001)
0545 #define SEC_CSR0_BSS0_KEY1_VALID FIELD32(0x00000002)
0546 #define SEC_CSR0_BSS0_KEY2_VALID FIELD32(0x00000004)
0547 #define SEC_CSR0_BSS0_KEY3_VALID FIELD32(0x00000008)
0548 #define SEC_CSR0_BSS1_KEY0_VALID FIELD32(0x00000010)
0549 #define SEC_CSR0_BSS1_KEY1_VALID FIELD32(0x00000020)
0550 #define SEC_CSR0_BSS1_KEY2_VALID FIELD32(0x00000040)
0551 #define SEC_CSR0_BSS1_KEY3_VALID FIELD32(0x00000080)
0552 #define SEC_CSR0_BSS2_KEY0_VALID FIELD32(0x00000100)
0553 #define SEC_CSR0_BSS2_KEY1_VALID FIELD32(0x00000200)
0554 #define SEC_CSR0_BSS2_KEY2_VALID FIELD32(0x00000400)
0555 #define SEC_CSR0_BSS2_KEY3_VALID FIELD32(0x00000800)
0556 #define SEC_CSR0_BSS3_KEY0_VALID FIELD32(0x00001000)
0557 #define SEC_CSR0_BSS3_KEY1_VALID FIELD32(0x00002000)
0558 #define SEC_CSR0_BSS3_KEY2_VALID FIELD32(0x00004000)
0559 #define SEC_CSR0_BSS3_KEY3_VALID FIELD32(0x00008000)
0560
0561
0562
0563
0564 #define SEC_CSR1 0x30a4
0565 #define SEC_CSR1_BSS0_KEY0_CIPHER_ALG FIELD32(0x00000007)
0566 #define SEC_CSR1_BSS0_KEY1_CIPHER_ALG FIELD32(0x00000070)
0567 #define SEC_CSR1_BSS0_KEY2_CIPHER_ALG FIELD32(0x00000700)
0568 #define SEC_CSR1_BSS0_KEY3_CIPHER_ALG FIELD32(0x00007000)
0569 #define SEC_CSR1_BSS1_KEY0_CIPHER_ALG FIELD32(0x00070000)
0570 #define SEC_CSR1_BSS1_KEY1_CIPHER_ALG FIELD32(0x00700000)
0571 #define SEC_CSR1_BSS1_KEY2_CIPHER_ALG FIELD32(0x07000000)
0572 #define SEC_CSR1_BSS1_KEY3_CIPHER_ALG FIELD32(0x70000000)
0573
0574
0575
0576
0577
0578
0579 #define SEC_CSR2 0x30a8
0580 #define SEC_CSR3 0x30ac
0581
0582
0583
0584
0585 #define SEC_CSR4 0x30b0
0586 #define SEC_CSR4_ENABLE_BSS0 FIELD32(0x00000001)
0587 #define SEC_CSR4_ENABLE_BSS1 FIELD32(0x00000002)
0588 #define SEC_CSR4_ENABLE_BSS2 FIELD32(0x00000004)
0589 #define SEC_CSR4_ENABLE_BSS3 FIELD32(0x00000008)
0590
0591
0592
0593
0594 #define SEC_CSR5 0x30b4
0595 #define SEC_CSR5_BSS2_KEY0_CIPHER_ALG FIELD32(0x00000007)
0596 #define SEC_CSR5_BSS2_KEY1_CIPHER_ALG FIELD32(0x00000070)
0597 #define SEC_CSR5_BSS2_KEY2_CIPHER_ALG FIELD32(0x00000700)
0598 #define SEC_CSR5_BSS2_KEY3_CIPHER_ALG FIELD32(0x00007000)
0599 #define SEC_CSR5_BSS3_KEY0_CIPHER_ALG FIELD32(0x00070000)
0600 #define SEC_CSR5_BSS3_KEY1_CIPHER_ALG FIELD32(0x00700000)
0601 #define SEC_CSR5_BSS3_KEY2_CIPHER_ALG FIELD32(0x07000000)
0602 #define SEC_CSR5_BSS3_KEY3_CIPHER_ALG FIELD32(0x70000000)
0603
0604
0605
0606
0607
0608
0609
0610
0611 #define STA_CSR0 0x30c0
0612 #define STA_CSR0_FCS_ERROR FIELD32(0x0000ffff)
0613 #define STA_CSR0_PLCP_ERROR FIELD32(0xffff0000)
0614
0615
0616
0617
0618 #define STA_CSR1 0x30c4
0619 #define STA_CSR1_PHYSICAL_ERROR FIELD32(0x0000ffff)
0620 #define STA_CSR1_FALSE_CCA_ERROR FIELD32(0xffff0000)
0621
0622
0623
0624
0625 #define STA_CSR2 0x30c8
0626 #define STA_CSR2_RX_FIFO_OVERFLOW_COUNT FIELD32(0x0000ffff)
0627 #define STA_CSR2_RX_OVERFLOW_COUNT FIELD32(0xffff0000)
0628
0629
0630
0631
0632 #define STA_CSR3 0x30cc
0633 #define STA_CSR3_TX_BEACON_COUNT FIELD32(0x0000ffff)
0634
0635
0636
0637
0638 #define STA_CSR4 0x30d0
0639 #define STA_CSR4_TX_NO_RETRY_COUNT FIELD32(0x0000ffff)
0640 #define STA_CSR4_TX_ONE_RETRY_COUNT FIELD32(0xffff0000)
0641
0642
0643
0644
0645 #define STA_CSR5 0x30d4
0646 #define STA_CSR4_TX_MULTI_RETRY_COUNT FIELD32(0x0000ffff)
0647 #define STA_CSR4_TX_RETRY_FAIL_COUNT FIELD32(0xffff0000)
0648
0649
0650
0651
0652
0653
0654
0655
0656 #define QOS_CSR1 0x30e4
0657 #define QOS_CSR1_BYTE4 FIELD32(0x000000ff)
0658 #define QOS_CSR1_BYTE5 FIELD32(0x0000ff00)
0659
0660
0661
0662
0663 #define QOS_CSR2 0x30e8
0664
0665
0666
0667
0668
0669
0670 #define QOS_CSR3 0x30ec
0671 #define QOS_CSR4 0x30f0
0672
0673
0674
0675
0676 #define QOS_CSR5 0x30f4
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689 #define AIFSN_CSR 0x0400
0690 #define AIFSN_CSR_AIFSN0 FIELD32(0x0000000f)
0691 #define AIFSN_CSR_AIFSN1 FIELD32(0x000000f0)
0692 #define AIFSN_CSR_AIFSN2 FIELD32(0x00000f00)
0693 #define AIFSN_CSR_AIFSN3 FIELD32(0x0000f000)
0694
0695
0696
0697
0698
0699
0700
0701
0702 #define CWMIN_CSR 0x0404
0703 #define CWMIN_CSR_CWMIN0 FIELD32(0x0000000f)
0704 #define CWMIN_CSR_CWMIN1 FIELD32(0x000000f0)
0705 #define CWMIN_CSR_CWMIN2 FIELD32(0x00000f00)
0706 #define CWMIN_CSR_CWMIN3 FIELD32(0x0000f000)
0707
0708
0709
0710
0711
0712
0713
0714
0715 #define CWMAX_CSR 0x0408
0716 #define CWMAX_CSR_CWMAX0 FIELD32(0x0000000f)
0717 #define CWMAX_CSR_CWMAX1 FIELD32(0x000000f0)
0718 #define CWMAX_CSR_CWMAX2 FIELD32(0x00000f00)
0719 #define CWMAX_CSR_CWMAX3 FIELD32(0x0000f000)
0720
0721
0722
0723
0724
0725
0726 #define AC_TXOP_CSR0 0x040c
0727 #define AC_TXOP_CSR0_AC0_TX_OP FIELD32(0x0000ffff)
0728 #define AC_TXOP_CSR0_AC1_TX_OP FIELD32(0xffff0000)
0729
0730
0731
0732
0733
0734
0735 #define AC_TXOP_CSR1 0x0410
0736 #define AC_TXOP_CSR1_AC2_TX_OP FIELD32(0x0000ffff)
0737 #define AC_TXOP_CSR1_AC3_TX_OP FIELD32(0xffff0000)
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747 #define BBP_R2_BG_MODE FIELD8(0x20)
0748
0749
0750
0751
0752 #define BBP_R3_SMART_MODE FIELD8(0x01)
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764 #define BBP_R4_RX_ANTENNA_CONTROL FIELD8(0x03)
0765 #define BBP_R4_RX_FRAME_END FIELD8(0x20)
0766
0767
0768
0769
0770 #define BBP_R77_RX_ANTENNA FIELD8(0x03)
0771
0772
0773
0774
0775
0776
0777
0778
0779 #define RF3_TXPOWER FIELD32(0x00003e00)
0780
0781
0782
0783
0784 #define RF4_FREQ_OFFSET FIELD32(0x0003f000)
0785
0786
0787
0788
0789
0790
0791
0792
0793
0794 #define EEPROM_MAC_ADDR_0 0x0002
0795 #define EEPROM_MAC_ADDR_BYTE0 FIELD16(0x00ff)
0796 #define EEPROM_MAC_ADDR_BYTE1 FIELD16(0xff00)
0797 #define EEPROM_MAC_ADDR1 0x0003
0798 #define EEPROM_MAC_ADDR_BYTE2 FIELD16(0x00ff)
0799 #define EEPROM_MAC_ADDR_BYTE3 FIELD16(0xff00)
0800 #define EEPROM_MAC_ADDR_2 0x0004
0801 #define EEPROM_MAC_ADDR_BYTE4 FIELD16(0x00ff)
0802 #define EEPROM_MAC_ADDR_BYTE5 FIELD16(0xff00)
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814 #define EEPROM_ANTENNA 0x0010
0815 #define EEPROM_ANTENNA_NUM FIELD16(0x0003)
0816 #define EEPROM_ANTENNA_TX_DEFAULT FIELD16(0x000c)
0817 #define EEPROM_ANTENNA_RX_DEFAULT FIELD16(0x0030)
0818 #define EEPROM_ANTENNA_FRAME_TYPE FIELD16(0x0040)
0819 #define EEPROM_ANTENNA_DYN_TXAGC FIELD16(0x0200)
0820 #define EEPROM_ANTENNA_HARDWARE_RADIO FIELD16(0x0400)
0821 #define EEPROM_ANTENNA_RF_TYPE FIELD16(0xf800)
0822
0823
0824
0825
0826
0827 #define EEPROM_NIC 0x0011
0828 #define EEPROM_NIC_EXTERNAL_LNA FIELD16(0x0010)
0829
0830
0831
0832
0833
0834
0835 #define EEPROM_GEOGRAPHY 0x0012
0836 #define EEPROM_GEOGRAPHY_GEO_A FIELD16(0x00ff)
0837 #define EEPROM_GEOGRAPHY_GEO FIELD16(0xff00)
0838
0839
0840
0841
0842 #define EEPROM_BBP_START 0x0013
0843 #define EEPROM_BBP_SIZE 16
0844 #define EEPROM_BBP_VALUE FIELD16(0x00ff)
0845 #define EEPROM_BBP_REG_ID FIELD16(0xff00)
0846
0847
0848
0849
0850 #define EEPROM_TXPOWER_G_START 0x0023
0851 #define EEPROM_TXPOWER_G_SIZE 7
0852 #define EEPROM_TXPOWER_G_1 FIELD16(0x00ff)
0853 #define EEPROM_TXPOWER_G_2 FIELD16(0xff00)
0854
0855
0856
0857
0858 #define EEPROM_FREQ 0x002f
0859 #define EEPROM_FREQ_OFFSET FIELD16(0x00ff)
0860 #define EEPROM_FREQ_SEQ_MASK FIELD16(0xff00)
0861 #define EEPROM_FREQ_SEQ FIELD16(0x0300)
0862
0863
0864
0865
0866
0867
0868
0869
0870
0871
0872
0873
0874
0875 #define EEPROM_LED 0x0030
0876 #define EEPROM_LED_POLARITY_RDY_G FIELD16(0x0001)
0877 #define EEPROM_LED_POLARITY_RDY_A FIELD16(0x0002)
0878 #define EEPROM_LED_POLARITY_ACT FIELD16(0x0004)
0879 #define EEPROM_LED_POLARITY_GPIO_0 FIELD16(0x0008)
0880 #define EEPROM_LED_POLARITY_GPIO_1 FIELD16(0x0010)
0881 #define EEPROM_LED_POLARITY_GPIO_2 FIELD16(0x0020)
0882 #define EEPROM_LED_POLARITY_GPIO_3 FIELD16(0x0040)
0883 #define EEPROM_LED_POLARITY_GPIO_4 FIELD16(0x0080)
0884 #define EEPROM_LED_LED_MODE FIELD16(0x1f00)
0885
0886
0887
0888
0889 #define EEPROM_TXPOWER_A_START 0x0031
0890 #define EEPROM_TXPOWER_A_SIZE 12
0891 #define EEPROM_TXPOWER_A_1 FIELD16(0x00ff)
0892 #define EEPROM_TXPOWER_A_2 FIELD16(0xff00)
0893
0894
0895
0896
0897 #define EEPROM_RSSI_OFFSET_BG 0x004d
0898 #define EEPROM_RSSI_OFFSET_BG_1 FIELD16(0x00ff)
0899 #define EEPROM_RSSI_OFFSET_BG_2 FIELD16(0xff00)
0900
0901
0902
0903
0904 #define EEPROM_RSSI_OFFSET_A 0x004e
0905 #define EEPROM_RSSI_OFFSET_A_1 FIELD16(0x00ff)
0906 #define EEPROM_RSSI_OFFSET_A_2 FIELD16(0xff00)
0907
0908
0909
0910
0911 #define TXD_DESC_SIZE ( 6 * sizeof(__le32) )
0912 #define TXINFO_SIZE ( 6 * sizeof(__le32) )
0913 #define RXD_DESC_SIZE ( 6 * sizeof(__le32) )
0914
0915
0916
0917
0918
0919
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929
0930
0931
0932 #define TXD_W0_BURST FIELD32(0x00000001)
0933 #define TXD_W0_VALID FIELD32(0x00000002)
0934 #define TXD_W0_MORE_FRAG FIELD32(0x00000004)
0935 #define TXD_W0_ACK FIELD32(0x00000008)
0936 #define TXD_W0_TIMESTAMP FIELD32(0x00000010)
0937 #define TXD_W0_OFDM FIELD32(0x00000020)
0938 #define TXD_W0_IFS FIELD32(0x00000040)
0939 #define TXD_W0_RETRY_MODE FIELD32(0x00000080)
0940 #define TXD_W0_TKIP_MIC FIELD32(0x00000100)
0941 #define TXD_W0_KEY_TABLE FIELD32(0x00000200)
0942 #define TXD_W0_KEY_INDEX FIELD32(0x0000fc00)
0943 #define TXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000)
0944 #define TXD_W0_BURST2 FIELD32(0x10000000)
0945 #define TXD_W0_CIPHER_ALG FIELD32(0xe0000000)
0946
0947
0948
0949
0950
0951
0952
0953 #define TXD_W1_HOST_Q_ID FIELD32(0x0000000f)
0954 #define TXD_W1_AIFSN FIELD32(0x000000f0)
0955 #define TXD_W1_CWMIN FIELD32(0x00000f00)
0956 #define TXD_W1_CWMAX FIELD32(0x0000f000)
0957 #define TXD_W1_IV_OFFSET FIELD32(0x003f0000)
0958 #define TXD_W1_HW_SEQUENCE FIELD32(0x10000000)
0959 #define TXD_W1_BUFFER_COUNT FIELD32(0xe0000000)
0960
0961
0962
0963
0964 #define TXD_W2_PLCP_SIGNAL FIELD32(0x000000ff)
0965 #define TXD_W2_PLCP_SERVICE FIELD32(0x0000ff00)
0966 #define TXD_W2_PLCP_LENGTH_LOW FIELD32(0x00ff0000)
0967 #define TXD_W2_PLCP_LENGTH_HIGH FIELD32(0xff000000)
0968
0969
0970
0971
0972 #define TXD_W3_IV FIELD32(0xffffffff)
0973
0974
0975
0976
0977 #define TXD_W4_EIV FIELD32(0xffffffff)
0978
0979
0980
0981
0982
0983
0984
0985
0986 #define TXD_W5_FRAME_OFFSET FIELD32(0x000000ff)
0987 #define TXD_W5_PACKET_ID FIELD32(0x0000ff00)
0988 #define TXD_W5_TX_POWER FIELD32(0x00ff0000)
0989 #define TXD_W5_WAITING_DMA_DONE_INT FIELD32(0x01000000)
0990
0991
0992
0993
0994
0995
0996
0997
0998
0999
1000 #define RXD_W0_OWNER_NIC FIELD32(0x00000001)
1001 #define RXD_W0_DROP FIELD32(0x00000002)
1002 #define RXD_W0_UNICAST_TO_ME FIELD32(0x00000004)
1003 #define RXD_W0_MULTICAST FIELD32(0x00000008)
1004 #define RXD_W0_BROADCAST FIELD32(0x00000010)
1005 #define RXD_W0_MY_BSS FIELD32(0x00000020)
1006 #define RXD_W0_CRC_ERROR FIELD32(0x00000040)
1007 #define RXD_W0_OFDM FIELD32(0x00000080)
1008 #define RXD_W0_CIPHER_ERROR FIELD32(0x00000300)
1009 #define RXD_W0_KEY_INDEX FIELD32(0x0000fc00)
1010 #define RXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000)
1011 #define RXD_W0_CIPHER_ALG FIELD32(0xe0000000)
1012
1013
1014
1015
1016
1017
1018 #define RXD_W1_SIGNAL FIELD32(0x000000ff)
1019 #define RXD_W1_RSSI_AGC FIELD32(0x00001f00)
1020 #define RXD_W1_RSSI_LNA FIELD32(0x00006000)
1021 #define RXD_W1_FRAME_OFFSET FIELD32(0x7f000000)
1022
1023
1024
1025
1026
1027 #define RXD_W2_IV FIELD32(0xffffffff)
1028
1029
1030
1031
1032
1033 #define RXD_W3_EIV FIELD32(0xffffffff)
1034
1035
1036
1037
1038
1039
1040 #define RXD_W4_ICV FIELD32(0xffffffff)
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052 #define RXD_W5_RESERVED FIELD32(0xffffffff)
1053
1054
1055
1056
1057
1058 #define MIN_TXPOWER 0
1059 #define MAX_TXPOWER 31
1060 #define DEFAULT_TXPOWER 24
1061
1062 #define TXPOWER_FROM_DEV(__txpower) \
1063 (((u8)(__txpower)) > MAX_TXPOWER) ? DEFAULT_TXPOWER : (__txpower)
1064
1065 #define TXPOWER_TO_DEV(__txpower) \
1066 clamp_t(char, __txpower, MIN_TXPOWER, MAX_TXPOWER)
1067
1068 #endif