0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef RT2400PCI_H
0015 #define RT2400PCI_H
0016
0017
0018
0019
0020 #define RF2420 0x0000
0021 #define RF2421 0x0001
0022
0023
0024
0025
0026
0027 #define DEFAULT_RSSI_OFFSET 100
0028
0029
0030
0031
0032 #define CSR_REG_BASE 0x0000
0033 #define CSR_REG_SIZE 0x014c
0034 #define EEPROM_BASE 0x0000
0035 #define EEPROM_SIZE 0x0100
0036 #define BBP_BASE 0x0000
0037 #define BBP_SIZE 0x0020
0038 #define RF_BASE 0x0004
0039 #define RF_SIZE 0x000c
0040
0041
0042
0043
0044 #define NUM_TX_QUEUES 2
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 #define CSR0 0x0000
0055 #define CSR0_REVISION FIELD32(0x0000ffff)
0056
0057
0058
0059
0060
0061
0062
0063 #define CSR1 0x0004
0064 #define CSR1_SOFT_RESET FIELD32(0x00000001)
0065 #define CSR1_BBP_RESET FIELD32(0x00000002)
0066 #define CSR1_HOST_READY FIELD32(0x00000004)
0067
0068
0069
0070
0071 #define CSR2 0x0008
0072
0073
0074
0075
0076 #define CSR3 0x000c
0077 #define CSR3_BYTE0 FIELD32(0x000000ff)
0078 #define CSR3_BYTE1 FIELD32(0x0000ff00)
0079 #define CSR3_BYTE2 FIELD32(0x00ff0000)
0080 #define CSR3_BYTE3 FIELD32(0xff000000)
0081
0082
0083
0084
0085 #define CSR4 0x0010
0086 #define CSR4_BYTE4 FIELD32(0x000000ff)
0087 #define CSR4_BYTE5 FIELD32(0x0000ff00)
0088
0089
0090
0091
0092 #define CSR5 0x0014
0093 #define CSR5_BYTE0 FIELD32(0x000000ff)
0094 #define CSR5_BYTE1 FIELD32(0x0000ff00)
0095 #define CSR5_BYTE2 FIELD32(0x00ff0000)
0096 #define CSR5_BYTE3 FIELD32(0xff000000)
0097
0098
0099
0100
0101 #define CSR6 0x0018
0102 #define CSR6_BYTE4 FIELD32(0x000000ff)
0103 #define CSR6_BYTE5 FIELD32(0x0000ff00)
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116 #define CSR7 0x001c
0117 #define CSR7_TBCN_EXPIRE FIELD32(0x00000001)
0118 #define CSR7_TWAKE_EXPIRE FIELD32(0x00000002)
0119 #define CSR7_TATIMW_EXPIRE FIELD32(0x00000004)
0120 #define CSR7_TXDONE_TXRING FIELD32(0x00000008)
0121 #define CSR7_TXDONE_ATIMRING FIELD32(0x00000010)
0122 #define CSR7_TXDONE_PRIORING FIELD32(0x00000020)
0123 #define CSR7_RXDONE FIELD32(0x00000040)
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136 #define CSR8 0x0020
0137 #define CSR8_TBCN_EXPIRE FIELD32(0x00000001)
0138 #define CSR8_TWAKE_EXPIRE FIELD32(0x00000002)
0139 #define CSR8_TATIMW_EXPIRE FIELD32(0x00000004)
0140 #define CSR8_TXDONE_TXRING FIELD32(0x00000008)
0141 #define CSR8_TXDONE_ATIMRING FIELD32(0x00000010)
0142 #define CSR8_TXDONE_PRIORING FIELD32(0x00000020)
0143 #define CSR8_RXDONE FIELD32(0x00000040)
0144
0145
0146
0147
0148
0149 #define CSR9 0x0024
0150 #define CSR9_MAX_FRAME_UNIT FIELD32(0x00000f80)
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160 #define CSR11 0x002c
0161 #define CSR11_CWMIN FIELD32(0x0000000f)
0162 #define CSR11_CWMAX FIELD32(0x000000f0)
0163 #define CSR11_SLOT_TIME FIELD32(0x00001f00)
0164 #define CSR11_LONG_RETRY FIELD32(0x00ff0000)
0165 #define CSR11_SHORT_RETRY FIELD32(0xff000000)
0166
0167
0168
0169
0170
0171
0172
0173 #define CSR12 0x0030
0174 #define CSR12_BEACON_INTERVAL FIELD32(0x0000ffff)
0175 #define CSR12_CFP_MAX_DURATION FIELD32(0xffff0000)
0176
0177
0178
0179
0180
0181
0182
0183 #define CSR13 0x0034
0184 #define CSR13_ATIMW_DURATION FIELD32(0x0000ffff)
0185 #define CSR13_CFP_PERIOD FIELD32(0x00ff0000)
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198 #define CSR14 0x0038
0199 #define CSR14_TSF_COUNT FIELD32(0x00000001)
0200 #define CSR14_TSF_SYNC FIELD32(0x00000006)
0201 #define CSR14_TBCN FIELD32(0x00000008)
0202 #define CSR14_TCFP FIELD32(0x00000010)
0203 #define CSR14_TATIMW FIELD32(0x00000020)
0204 #define CSR14_BEACON_GEN FIELD32(0x00000040)
0205 #define CSR14_CFP_COUNT_PRELOAD FIELD32(0x0000ff00)
0206 #define CSR14_TBCM_PRELOAD FIELD32(0xffff0000)
0207
0208
0209
0210
0211
0212
0213
0214 #define CSR15 0x003c
0215 #define CSR15_CFP FIELD32(0x00000001)
0216 #define CSR15_ATIMW FIELD32(0x00000002)
0217 #define CSR15_BEACON_SENT FIELD32(0x00000004)
0218
0219
0220
0221
0222 #define CSR16 0x0040
0223 #define CSR16_LOW_TSFTIMER FIELD32(0xffffffff)
0224
0225
0226
0227
0228 #define CSR17 0x0044
0229 #define CSR17_HIGH_TSFTIMER FIELD32(0xffffffff)
0230
0231
0232
0233
0234
0235
0236 #define CSR18 0x0048
0237 #define CSR18_SIFS FIELD32(0x0000ffff)
0238 #define CSR18_PIFS FIELD32(0xffff0000)
0239
0240
0241
0242
0243
0244
0245 #define CSR19 0x004c
0246 #define CSR19_DIFS FIELD32(0x0000ffff)
0247 #define CSR19_EIFS FIELD32(0xffff0000)
0248
0249
0250
0251
0252
0253
0254
0255 #define CSR20 0x0050
0256 #define CSR20_DELAY_AFTER_TBCN FIELD32(0x0000ffff)
0257 #define CSR20_TBCN_BEFORE_WAKEUP FIELD32(0x00ff0000)
0258 #define CSR20_AUTOWAKE FIELD32(0x01000000)
0259
0260
0261
0262
0263
0264
0265 #define CSR21 0x0054
0266 #define CSR21_RELOAD FIELD32(0x00000001)
0267 #define CSR21_EEPROM_DATA_CLOCK FIELD32(0x00000002)
0268 #define CSR21_EEPROM_CHIP_SELECT FIELD32(0x00000004)
0269 #define CSR21_EEPROM_DATA_IN FIELD32(0x00000008)
0270 #define CSR21_EEPROM_DATA_OUT FIELD32(0x00000010)
0271 #define CSR21_TYPE_93C46 FIELD32(0x00000020)
0272
0273
0274
0275
0276
0277
0278 #define CSR22 0x0058
0279 #define CSR22_CFP_DURATION_REMAIN FIELD32(0x0000ffff)
0280 #define CSR22_RELOAD_CFP_DURATION FIELD32(0x00010000)
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294 #define TXCSR0 0x0060
0295 #define TXCSR0_KICK_TX FIELD32(0x00000001)
0296 #define TXCSR0_KICK_ATIM FIELD32(0x00000002)
0297 #define TXCSR0_KICK_PRIO FIELD32(0x00000004)
0298 #define TXCSR0_ABORT FIELD32(0x00000008)
0299
0300
0301
0302
0303
0304
0305
0306
0307 #define TXCSR1 0x0064
0308 #define TXCSR1_ACK_TIMEOUT FIELD32(0x000001ff)
0309 #define TXCSR1_ACK_CONSUME_TIME FIELD32(0x0003fe00)
0310 #define TXCSR1_TSF_OFFSET FIELD32(0x00fc0000)
0311 #define TXCSR1_AUTORESPONDER FIELD32(0x01000000)
0312
0313
0314
0315
0316
0317
0318
0319
0320 #define TXCSR2 0x0068
0321 #define TXCSR2_TXD_SIZE FIELD32(0x000000ff)
0322 #define TXCSR2_NUM_TXD FIELD32(0x0000ff00)
0323 #define TXCSR2_NUM_ATIM FIELD32(0x00ff0000)
0324 #define TXCSR2_NUM_PRIO FIELD32(0xff000000)
0325
0326
0327
0328
0329 #define TXCSR3 0x006c
0330 #define TXCSR3_TX_RING_REGISTER FIELD32(0xffffffff)
0331
0332
0333
0334
0335 #define TXCSR4 0x0070
0336 #define TXCSR4_ATIM_RING_REGISTER FIELD32(0xffffffff)
0337
0338
0339
0340
0341 #define TXCSR5 0x0074
0342 #define TXCSR5_PRIO_RING_REGISTER FIELD32(0xffffffff)
0343
0344
0345
0346
0347 #define TXCSR6 0x0078
0348 #define TXCSR6_BEACON_RING_REGISTER FIELD32(0xffffffff)
0349
0350
0351
0352
0353
0354 #define TXCSR7 0x007c
0355 #define TXCSR7_AR_POWERMANAGEMENT FIELD32(0x00000001)
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
0372
0373 #define RXCSR0 0x0080
0374 #define RXCSR0_DISABLE_RX FIELD32(0x00000001)
0375 #define RXCSR0_DROP_CRC FIELD32(0x00000002)
0376 #define RXCSR0_DROP_PHYSICAL FIELD32(0x00000004)
0377 #define RXCSR0_DROP_CONTROL FIELD32(0x00000008)
0378 #define RXCSR0_DROP_NOT_TO_ME FIELD32(0x00000010)
0379 #define RXCSR0_DROP_TODS FIELD32(0x00000020)
0380 #define RXCSR0_DROP_VERSION_ERROR FIELD32(0x00000040)
0381 #define RXCSR0_PASS_CRC FIELD32(0x00000080)
0382
0383
0384
0385
0386
0387
0388 #define RXCSR1 0x0084
0389 #define RXCSR1_RXD_SIZE FIELD32(0x000000ff)
0390 #define RXCSR1_NUM_RXD FIELD32(0x0000ff00)
0391
0392
0393
0394
0395 #define RXCSR2 0x0088
0396 #define RXCSR2_RX_RING_REGISTER FIELD32(0xffffffff)
0397
0398
0399
0400
0401
0402
0403 #define RXCSR3 0x0090
0404 #define RXCSR3_BBP_ID0 FIELD32(0x0000007f)
0405 #define RXCSR3_BBP_ID0_VALID FIELD32(0x00000080)
0406 #define RXCSR3_BBP_ID1 FIELD32(0x00007f00)
0407 #define RXCSR3_BBP_ID1_VALID FIELD32(0x00008000)
0408 #define RXCSR3_BBP_ID2 FIELD32(0x007f0000)
0409 #define RXCSR3_BBP_ID2_VALID FIELD32(0x00800000)
0410 #define RXCSR3_BBP_ID3 FIELD32(0x7f000000)
0411 #define RXCSR3_BBP_ID3_VALID FIELD32(0x80000000)
0412
0413
0414
0415
0416
0417
0418 #define RXCSR4 0x0094
0419 #define RXCSR4_BBP_ID4 FIELD32(0x0000007f)
0420 #define RXCSR4_BBP_ID4_VALID FIELD32(0x00000080)
0421 #define RXCSR4_BBP_ID5 FIELD32(0x00007f00)
0422 #define RXCSR4_BBP_ID5_VALID FIELD32(0x00008000)
0423
0424
0425
0426
0427
0428
0429 #define ARCSR0 0x0098
0430 #define ARCSR0_AR_BBP_DATA0 FIELD32(0x000000ff)
0431 #define ARCSR0_AR_BBP_ID0 FIELD32(0x0000ff00)
0432 #define ARCSR0_AR_BBP_DATA1 FIELD32(0x00ff0000)
0433 #define ARCSR0_AR_BBP_ID1 FIELD32(0xff000000)
0434
0435
0436
0437
0438
0439
0440 #define ARCSR1 0x009c
0441 #define ARCSR1_AR_BBP_DATA2 FIELD32(0x000000ff)
0442 #define ARCSR1_AR_BBP_ID2 FIELD32(0x0000ff00)
0443 #define ARCSR1_AR_BBP_DATA3 FIELD32(0x00ff0000)
0444 #define ARCSR1_AR_BBP_ID3 FIELD32(0xff000000)
0445
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461 #define PCICSR 0x008c
0462 #define PCICSR_BIG_ENDIAN FIELD32(0x00000001)
0463 #define PCICSR_RX_TRESHOLD FIELD32(0x00000006)
0464 #define PCICSR_TX_TRESHOLD FIELD32(0x00000018)
0465 #define PCICSR_BURST_LENTH FIELD32(0x00000060)
0466 #define PCICSR_ENABLE_CLK FIELD32(0x00000080)
0467
0468
0469
0470
0471
0472 #define CNT0 0x00a0
0473 #define CNT0_FCS_ERROR FIELD32(0x0000ffff)
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483 #define TIMECSR2 0x00a8
0484 #define CNT1 0x00ac
0485 #define CNT2 0x00b0
0486 #define TIMECSR3 0x00b4
0487 #define CNT3 0x00b8
0488 #define CNT4 0x00bc
0489 #define CNT5 0x00c0
0490
0491
0492
0493
0494
0495
0496
0497
0498 #define PWRCSR0 0x00c4
0499
0500
0501
0502
0503 #define PSCSR0 0x00c8
0504 #define PSCSR1 0x00cc
0505 #define PSCSR2 0x00d0
0506 #define PSCSR3 0x00d4
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518 #define PWRCSR1 0x00d8
0519 #define PWRCSR1_SET_STATE FIELD32(0x00000001)
0520 #define PWRCSR1_BBP_DESIRE_STATE FIELD32(0x00000006)
0521 #define PWRCSR1_RF_DESIRE_STATE FIELD32(0x00000018)
0522 #define PWRCSR1_BBP_CURR_STATE FIELD32(0x00000060)
0523 #define PWRCSR1_RF_CURR_STATE FIELD32(0x00000180)
0524 #define PWRCSR1_PUT_TO_SLEEP FIELD32(0x00000200)
0525
0526
0527
0528
0529
0530
0531
0532 #define TIMECSR 0x00dc
0533 #define TIMECSR_US_COUNT FIELD32(0x000000ff)
0534 #define TIMECSR_US_64_COUNT FIELD32(0x0000ff00)
0535 #define TIMECSR_BEACON_EXPECT FIELD32(0x00070000)
0536
0537
0538
0539
0540 #define MACCSR0 0x00e0
0541
0542
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552 #define MACCSR1 0x00e4
0553 #define MACCSR1_KICK_RX FIELD32(0x00000001)
0554 #define MACCSR1_ONESHOT_RXMODE FIELD32(0x00000002)
0555 #define MACCSR1_BBPRX_RESET_MODE FIELD32(0x00000004)
0556 #define MACCSR1_AUTO_TXBBP FIELD32(0x00000008)
0557 #define MACCSR1_AUTO_RXBBP FIELD32(0x00000010)
0558 #define MACCSR1_LOOPBACK FIELD32(0x00000060)
0559 #define MACCSR1_INTERSIL_IF FIELD32(0x00000080)
0560
0561
0562
0563
0564
0565
0566 #define RALINKCSR 0x00e8
0567 #define RALINKCSR_AR_BBP_DATA0 FIELD32(0x000000ff)
0568 #define RALINKCSR_AR_BBP_ID0 FIELD32(0x0000ff00)
0569 #define RALINKCSR_AR_BBP_DATA1 FIELD32(0x00ff0000)
0570 #define RALINKCSR_AR_BBP_ID1 FIELD32(0xff000000)
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580 #define BCNCSR 0x00ec
0581 #define BCNCSR_CHANGE FIELD32(0x00000001)
0582 #define BCNCSR_DELTATIME FIELD32(0x0000001e)
0583 #define BCNCSR_NUM_BEACON FIELD32(0x00001fe0)
0584 #define BCNCSR_MODE FIELD32(0x00006000)
0585 #define BCNCSR_PLUS FIELD32(0x00008000)
0586
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597
0598 #define BBPCSR 0x00f0
0599 #define BBPCSR_VALUE FIELD32(0x000000ff)
0600 #define BBPCSR_REGNUM FIELD32(0x00007f00)
0601 #define BBPCSR_BUSY FIELD32(0x00008000)
0602 #define BBPCSR_WRITE_CONTROL FIELD32(0x00010000)
0603
0604
0605
0606
0607
0608
0609
0610
0611
0612 #define RFCSR 0x00f4
0613 #define RFCSR_VALUE FIELD32(0x00ffffff)
0614 #define RFCSR_NUMBER_OF_BITS FIELD32(0x1f000000)
0615 #define RFCSR_IF_SELECT FIELD32(0x20000000)
0616 #define RFCSR_PLL_LD FIELD32(0x40000000)
0617 #define RFCSR_BUSY FIELD32(0x80000000)
0618
0619
0620
0621
0622
0623
0624
0625
0626 #define LEDCSR 0x00f8
0627 #define LEDCSR_ON_PERIOD FIELD32(0x000000ff)
0628 #define LEDCSR_OFF_PERIOD FIELD32(0x0000ff00)
0629 #define LEDCSR_LINK FIELD32(0x00010000)
0630 #define LEDCSR_ACTIVITY FIELD32(0x00020000)
0631
0632
0633
0634
0635
0636
0637
0638
0639 #define RXPTR 0x0100
0640 #define TXPTR 0x0104
0641 #define PRIPTR 0x0108
0642 #define ATIMPTR 0x010c
0643
0644
0645
0646
0647
0648
0649
0650
0651
0652
0653 #define GPIOCSR 0x0120
0654 #define GPIOCSR_VAL0 FIELD32(0x00000001)
0655 #define GPIOCSR_VAL1 FIELD32(0x00000002)
0656 #define GPIOCSR_VAL2 FIELD32(0x00000004)
0657 #define GPIOCSR_VAL3 FIELD32(0x00000008)
0658 #define GPIOCSR_VAL4 FIELD32(0x00000010)
0659 #define GPIOCSR_VAL5 FIELD32(0x00000020)
0660 #define GPIOCSR_VAL6 FIELD32(0x00000040)
0661 #define GPIOCSR_VAL7 FIELD32(0x00000080)
0662 #define GPIOCSR_DIR0 FIELD32(0x00000100)
0663 #define GPIOCSR_DIR1 FIELD32(0x00000200)
0664 #define GPIOCSR_DIR2 FIELD32(0x00000400)
0665 #define GPIOCSR_DIR3 FIELD32(0x00000800)
0666 #define GPIOCSR_DIR4 FIELD32(0x00001000)
0667 #define GPIOCSR_DIR5 FIELD32(0x00002000)
0668 #define GPIOCSR_DIR6 FIELD32(0x00004000)
0669 #define GPIOCSR_DIR7 FIELD32(0x00008000)
0670
0671
0672
0673
0674 #define BBPPCSR 0x0124
0675
0676
0677
0678
0679
0680 #define BCNCSR1 0x0130
0681 #define BCNCSR1_PRELOAD FIELD32(0x0000ffff)
0682
0683
0684
0685
0686
0687 #define MACCSR2 0x0134
0688 #define MACCSR2_DELAY FIELD32(0x000000ff)
0689
0690
0691
0692
0693 #define ARCSR2 0x013c
0694 #define ARCSR2_SIGNAL FIELD32(0x000000ff)
0695 #define ARCSR2_SERVICE FIELD32(0x0000ff00)
0696 #define ARCSR2_LENGTH_LOW FIELD32(0x00ff0000)
0697 #define ARCSR2_LENGTH FIELD32(0xffff0000)
0698
0699
0700
0701
0702 #define ARCSR3 0x0140
0703 #define ARCSR3_SIGNAL FIELD32(0x000000ff)
0704 #define ARCSR3_SERVICE FIELD32(0x0000ff00)
0705 #define ARCSR3_LENGTH FIELD32(0xffff0000)
0706
0707
0708
0709
0710 #define ARCSR4 0x0144
0711 #define ARCSR4_SIGNAL FIELD32(0x000000ff)
0712 #define ARCSR4_SERVICE FIELD32(0x0000ff00)
0713 #define ARCSR4_LENGTH FIELD32(0xffff0000)
0714
0715
0716
0717
0718 #define ARCSR5 0x0148
0719 #define ARCSR5_SIGNAL FIELD32(0x000000ff)
0720 #define ARCSR5_SERVICE FIELD32(0x0000ff00)
0721 #define ARCSR5_LENGTH FIELD32(0xffff0000)
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731 #define BBP_R1_TX_ANTENNA FIELD8(0x03)
0732
0733
0734
0735
0736 #define BBP_R4_RX_ANTENNA FIELD8(0x06)
0737
0738
0739
0740
0741
0742
0743
0744
0745 #define RF1_TUNER FIELD32(0x00020000)
0746
0747
0748
0749
0750 #define RF3_TUNER FIELD32(0x00000100)
0751 #define RF3_TXPOWER FIELD32(0x00003e00)
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761 #define EEPROM_MAC_ADDR_0 0x0002
0762 #define EEPROM_MAC_ADDR_BYTE0 FIELD16(0x00ff)
0763 #define EEPROM_MAC_ADDR_BYTE1 FIELD16(0xff00)
0764 #define EEPROM_MAC_ADDR1 0x0003
0765 #define EEPROM_MAC_ADDR_BYTE2 FIELD16(0x00ff)
0766 #define EEPROM_MAC_ADDR_BYTE3 FIELD16(0xff00)
0767 #define EEPROM_MAC_ADDR_2 0x0004
0768 #define EEPROM_MAC_ADDR_BYTE4 FIELD16(0x00ff)
0769 #define EEPROM_MAC_ADDR_BYTE5 FIELD16(0xff00)
0770
0771
0772
0773
0774
0775
0776
0777
0778
0779
0780
0781 #define EEPROM_ANTENNA 0x0b
0782 #define EEPROM_ANTENNA_NUM FIELD16(0x0003)
0783 #define EEPROM_ANTENNA_TX_DEFAULT FIELD16(0x000c)
0784 #define EEPROM_ANTENNA_RX_DEFAULT FIELD16(0x0030)
0785 #define EEPROM_ANTENNA_RF_TYPE FIELD16(0x0040)
0786 #define EEPROM_ANTENNA_LED_MODE FIELD16(0x0180)
0787 #define EEPROM_ANTENNA_RX_AGCVGC_TUNING FIELD16(0x0200)
0788 #define EEPROM_ANTENNA_HARDWARE_RADIO FIELD16(0x0400)
0789
0790
0791
0792
0793 #define EEPROM_BBP_START 0x0c
0794 #define EEPROM_BBP_SIZE 7
0795 #define EEPROM_BBP_VALUE FIELD16(0x00ff)
0796 #define EEPROM_BBP_REG_ID FIELD16(0xff00)
0797
0798
0799
0800
0801 #define EEPROM_TXPOWER_START 0x13
0802 #define EEPROM_TXPOWER_SIZE 7
0803 #define EEPROM_TXPOWER_1 FIELD16(0x00ff)
0804 #define EEPROM_TXPOWER_2 FIELD16(0xff00)
0805
0806
0807
0808
0809 #define TXD_DESC_SIZE (8 * sizeof(__le32))
0810 #define RXD_DESC_SIZE (8 * sizeof(__le32))
0811
0812
0813
0814
0815
0816
0817
0818
0819 #define TXD_W0_OWNER_NIC FIELD32(0x00000001)
0820 #define TXD_W0_VALID FIELD32(0x00000002)
0821 #define TXD_W0_RESULT FIELD32(0x0000001c)
0822 #define TXD_W0_RETRY_COUNT FIELD32(0x000000e0)
0823 #define TXD_W0_MORE_FRAG FIELD32(0x00000100)
0824 #define TXD_W0_ACK FIELD32(0x00000200)
0825 #define TXD_W0_TIMESTAMP FIELD32(0x00000400)
0826 #define TXD_W0_RTS FIELD32(0x00000800)
0827 #define TXD_W0_IFS FIELD32(0x00006000)
0828 #define TXD_W0_RETRY_MODE FIELD32(0x00008000)
0829 #define TXD_W0_AGC FIELD32(0x00ff0000)
0830 #define TXD_W0_R2 FIELD32(0xff000000)
0831
0832
0833
0834
0835 #define TXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
0836
0837
0838
0839
0840 #define TXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)
0841 #define TXD_W2_DATABYTE_COUNT FIELD32(0xffff0000)
0842
0843
0844
0845
0846
0847 #define TXD_W3_PLCP_SIGNAL FIELD32(0x000000ff)
0848 #define TXD_W3_PLCP_SIGNAL_REGNUM FIELD32(0x00007f00)
0849 #define TXD_W3_PLCP_SIGNAL_BUSY FIELD32(0x00008000)
0850 #define TXD_W3_PLCP_SERVICE FIELD32(0x00ff0000)
0851 #define TXD_W3_PLCP_SERVICE_REGNUM FIELD32(0x7f000000)
0852 #define TXD_W3_PLCP_SERVICE_BUSY FIELD32(0x80000000)
0853
0854 #define TXD_W4_PLCP_LENGTH_LOW FIELD32(0x000000ff)
0855 #define TXD_W3_PLCP_LENGTH_LOW_REGNUM FIELD32(0x00007f00)
0856 #define TXD_W3_PLCP_LENGTH_LOW_BUSY FIELD32(0x00008000)
0857 #define TXD_W4_PLCP_LENGTH_HIGH FIELD32(0x00ff0000)
0858 #define TXD_W3_PLCP_LENGTH_HIGH_REGNUM FIELD32(0x7f000000)
0859 #define TXD_W3_PLCP_LENGTH_HIGH_BUSY FIELD32(0x80000000)
0860
0861
0862
0863
0864 #define TXD_W5_BBCR4 FIELD32(0x0000ffff)
0865 #define TXD_W5_AGC_REG FIELD32(0x007f0000)
0866 #define TXD_W5_AGC_REG_VALID FIELD32(0x00800000)
0867 #define TXD_W5_XXX_REG FIELD32(0x7f000000)
0868 #define TXD_W5_XXX_REG_VALID FIELD32(0x80000000)
0869
0870
0871
0872
0873 #define TXD_W6_SK_BUFF FIELD32(0xffffffff)
0874
0875
0876
0877
0878 #define TXD_W7_RESERVED FIELD32(0xffffffff)
0879
0880
0881
0882
0883
0884
0885
0886
0887 #define RXD_W0_OWNER_NIC FIELD32(0x00000001)
0888 #define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)
0889 #define RXD_W0_MULTICAST FIELD32(0x00000004)
0890 #define RXD_W0_BROADCAST FIELD32(0x00000008)
0891 #define RXD_W0_MY_BSS FIELD32(0x00000010)
0892 #define RXD_W0_CRC_ERROR FIELD32(0x00000020)
0893 #define RXD_W0_PHYSICAL_ERROR FIELD32(0x00000080)
0894 #define RXD_W0_DATABYTE_COUNT FIELD32(0xffff0000)
0895
0896
0897
0898
0899 #define RXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
0900
0901
0902
0903
0904 #define RXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)
0905 #define RXD_W2_BBR0 FIELD32(0x00ff0000)
0906 #define RXD_W2_SIGNAL FIELD32(0xff000000)
0907
0908
0909
0910
0911 #define RXD_W3_RSSI FIELD32(0x000000ff)
0912 #define RXD_W3_BBR3 FIELD32(0x0000ff00)
0913 #define RXD_W3_BBR4 FIELD32(0x00ff0000)
0914 #define RXD_W3_BBR5 FIELD32(0xff000000)
0915
0916
0917
0918
0919 #define RXD_W4_RX_END_TIME FIELD32(0xffffffff)
0920
0921
0922
0923
0924 #define RXD_W5_RESERVED FIELD32(0xffffffff)
0925 #define RXD_W6_RESERVED FIELD32(0xffffffff)
0926 #define RXD_W7_RESERVED FIELD32(0xffffffff)
0927
0928
0929
0930
0931
0932
0933
0934
0935
0936
0937 #define MIN_TXPOWER 31
0938 #define MAX_TXPOWER 62
0939 #define DEFAULT_TXPOWER 39
0940
0941 #define __CLAMP_TX(__txpower) \
0942 clamp_t(char, (__txpower), MIN_TXPOWER, MAX_TXPOWER)
0943
0944 #define TXPOWER_FROM_DEV(__txpower) \
0945 ((__CLAMP_TX(__txpower) - MAX_TXPOWER) + MIN_TXPOWER)
0946
0947 #define TXPOWER_TO_DEV(__txpower) \
0948 (MAX_TXPOWER - (__CLAMP_TX(__txpower) - MIN_TXPOWER))
0949
0950 #endif