root/drivers/staging/rtl8192u/r8192U_hw.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. BIT
  2. BIT
  3. BIT
  4. BIT
  5. BIT
  6. BIT
  7. BIT

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  *      This is part of rtl8187 OpenSource driver.
   4  *      Copyright (C) Andrea Merello 2004-2005  <andrea.merello@gmail.com>
   5  *
   6  *      Parts of this driver are based on the GPL part of the
   7  *      official Realtek driver.
   8  *      Parts of this driver are based on the rtl8180 driver skeleton
   9  *      from Patric Schenke & Andres Salomon.
  10  *      Parts of this driver are based on the Intel Pro Wireless
  11  *      2100 GPL driver.
  12  *
  13  *      We want to thank the Authors of those projects
  14  *      and the Ndiswrapper project Authors.
  15  */
  16 
  17 /* Mariusz Matuszek added full registers definition with Realtek's name */
  18 
  19 /* this file contains register definitions for the rtl8187 MAC controller */
  20 #ifndef R8192_HW
  21 #define R8192_HW
  22 
  23 #define RTL8187_REQT_READ       0xc0
  24 #define RTL8187_REQT_WRITE      0x40
  25 #define RTL8187_REQ_GET_REGS    0x05
  26 #define RTL8187_REQ_SET_REGS    0x05
  27 
  28 #define MAX_TX_URB 5
  29 #define MAX_RX_URB 16
  30 
  31 #define R8180_MAX_RETRY 255
  32 
  33 #define RX_URB_SIZE 9100
  34 
  35 #define RTL8190_EEPROM_ID       0x8129
  36 #define EEPROM_VID              0x02
  37 #define EEPROM_PID              0x04
  38 #define EEPROM_NODE_ADDRESS_BYTE_0      0x0C
  39 
  40 #define EEPROM_TX_POWER_DIFF    0x1F
  41 #define EEPROM_THERMAL_METER    0x20
  42 #define EEPROM_PW_DIFF          0x21    //0x21
  43 #define EEPROM_CRYSTAL_CAP      0x22    //0x22
  44 
  45 #define EEPROM_TX_PW_INDEX_CCK  0x23    //0x23
  46 #define EEPROM_TX_PW_INDEX_OFDM_24G     0x24    //0x24~0x26
  47 #define EEPROM_TX_PW_INDEX_CCK_V1       0x29    //0x29~0x2B
  48 #define EEPROM_TX_PW_INDEX_OFDM_24G_V1  0x2C    //0x2C~0x2E
  49 #define EEPROM_TX_PW_INDEX_VER          0x27    //0x27
  50 
  51 #define EEPROM_DEFAULT_THERNAL_METER            0x7
  52 #define EEPROM_DEFAULT_PW_DIFF                  0x4
  53 #define EEPROM_DEFAULT_CRYSTAL_CAP              0x5
  54 #define EEPROM_DEFAULT_TX_POWER         0x1010
  55 #define EEPROM_CUSTOMER_ID                      0x7B    //0x7B:CustomerID
  56 #define EEPROM_CHANNEL_PLAN                     0x16    //0x7C
  57 
  58 #define EEPROM_CID_RUNTOP                               0x2
  59 #define EEPROM_CID_DLINK                                0x8
  60 
  61 #define AC_PARAM_TXOP_LIMIT_OFFSET      16
  62 #define AC_PARAM_ECW_MAX_OFFSET         12
  63 #define AC_PARAM_ECW_MIN_OFFSET         8
  64 #define AC_PARAM_AIFS_OFFSET            0
  65 
  66 //#endif
  67 enum _RTL8192Usb_HW {
  68         MAC0                    = 0x000,
  69         MAC4                    = 0x004,
  70 
  71 #define BB_GLOBAL_RESET_BIT     0x1
  72         BB_GLOBAL_RESET         = 0x020, // BasebandGlobal Reset Register
  73         BSSIDR                  = 0x02E, // BSSID Register
  74         CMDR                    = 0x037, // Command register
  75 #define CR_RE                   0x08
  76 #define CR_TE                   0x04
  77         SIFS                    = 0x03E, // SIFS register
  78 
  79 #define TCR_MXDMA_2048          7
  80 #define TCR_LRL_OFFSET          0
  81 #define TCR_SRL_OFFSET          8
  82 #define TCR_MXDMA_OFFSET        21
  83 #define TCR_SAT                 BIT(24) // Enable Rate depedent ack timeout timer
  84         RCR                     = 0x044, // Receive Configuration Register
  85 #define MAC_FILTER_MASK (BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(5) | \
  86                          BIT(12) | BIT(18) | BIT(19) | BIT(20) | BIT(21) | \
  87                          BIT(22) | BIT(23))
  88 #define RX_FIFO_THRESHOLD_MASK (BIT(13) | BIT(14) | BIT(15))
  89 #define RX_FIFO_THRESHOLD_SHIFT 13
  90 #define RX_FIFO_THRESHOLD_NONE 7
  91 #define MAX_RX_DMA_MASK         (BIT(8) | BIT(9) | BIT(10))
  92 #define RCR_MXDMA_OFFSET        8
  93 #define RCR_FIFO_OFFSET         13
  94 #define RCR_ONLYERLPKT          BIT(31)                 // Early Receiving based on Packet Size.
  95 #define RCR_CBSSID              BIT(23)                 // Accept BSSID match packet
  96 #define RCR_APWRMGT             BIT(22)                 // Accept power management packet
  97 #define RCR_AMF                 BIT(20)                 // Accept management type frame
  98 #define RCR_ACF                 BIT(19)                 // Accept control type frame
  99 #define RCR_ADF                 BIT(18)                 // Accept data type frame
 100 #define RCR_AICV                BIT(12)                 // Accept ICV error packet
 101 #define RCR_ACRC32              BIT(5)                  // Accept CRC32 error packet
 102 #define RCR_AB                  BIT(3)                  // Accept broadcast packet
 103 #define RCR_AM                  BIT(2)                  // Accept multicast packet
 104 #define RCR_APM                 BIT(1)                  // Accept physical match packet
 105 #define RCR_AAP                 BIT(0)                  // Accept all unicast packet
 106         SLOT_TIME               = 0x049, // Slot Time Register
 107         ACK_TIMEOUT             = 0x04c, // Ack Timeout Register
 108         EDCAPARA_BE             = 0x050, // EDCA Parameter of AC BE
 109         EDCAPARA_BK             = 0x054, // EDCA Parameter of AC BK
 110         EDCAPARA_VO             = 0x058, // EDCA Parameter of AC VO
 111         EDCAPARA_VI             = 0x05C, // EDCA Parameter of AC VI
 112         BCN_TCFG                = 0x062, // Beacon Time Configuration
 113 #define BCN_TCFG_CW_SHIFT               8
 114 #define BCN_TCFG_IFS                    0
 115         BCN_INTERVAL            = 0x070, // Beacon Interval (TU)
 116         ATIMWND                 = 0x072, // ATIM Window Size (TU)
 117         BCN_DRV_EARLY_INT       = 0x074, // Driver Early Interrupt Time (TU). Time to send interrupt to notify to change beacon content before TBTT
 118         BCN_DMATIME             = 0x076, // Beacon DMA and ATIM interrupt time (US). Indicates the time before TBTT to perform beacon queue DMA
 119         BCN_ERR_THRESH          = 0x078, // Beacon Error Threshold
 120         RWCAM                   = 0x0A0, //IN 8190 Data Sheet is called CAMcmd
 121         WCAMI                   = 0x0A4, // Software write CAM input content
 122         SECR                    = 0x0B0, //Security Configuration Register
 123 #define SCR_TxUseDK             BIT(0)                  //Force Tx Use Default Key
 124 #define SCR_RxUseDK             BIT(1)                  //Force Rx Use Default Key
 125 #define SCR_TxEncEnable         BIT(2)                  //Enable Tx Encryption
 126 #define SCR_RxDecEnable         BIT(3)                  //Enable Rx Decryption
 127 #define SCR_SKByA2              BIT(4)                  //Search kEY BY A2
 128 #define SCR_NoSKMC              BIT(5)                  //No Key Search for Multicast
 129 
 130 //----------------------------------------------------------------------------
 131 //       8190 CPU General Register              (offset 0x100, 4 byte)
 132 //----------------------------------------------------------------------------
 133 #define CPU_CCK_LOOPBACK        0x00030000
 134 #define CPU_GEN_SYSTEM_RESET    0x00000001
 135 #define CPU_GEN_FIRMWARE_RESET  0x00000008
 136 #define CPU_GEN_BOOT_RDY        0x00000010
 137 #define CPU_GEN_FIRM_RDY        0x00000020
 138 #define CPU_GEN_PUT_CODE_OK     0x00000080
 139 #define CPU_GEN_BB_RST          0x00000100
 140 #define CPU_GEN_PWR_STB_CPU     0x00000004
 141 #define CPU_GEN_NO_LOOPBACK_MSK 0xFFF8FFFF // Set bit18,17,16 to 0. Set bit19
 142 #define CPU_GEN_NO_LOOPBACK_SET 0x00080000 // Set BIT19 to 1
 143         CPU_GEN                 = 0x100, // CPU Reset Register
 144 
 145         AcmHwCtrl               = 0x171, // ACM Hardware Control Register
 146 //----------------------------------------------------------------------------
 147 ////
 148 ////       8190 AcmHwCtrl bits                                    (offset 0x171, 1 byte)
 149 ////----------------------------------------------------------------------------
 150 //
 151 #define AcmHw_BeqEn             BIT(1)
 152 
 153         RQPN1                   = 0x180, // Reserved Queue Page Number , Vo Vi, Be, Bk
 154         RQPN2                   = 0x184, // Reserved Queue Page Number, HCCA, Cmd, Mgnt, High
 155         RQPN3                   = 0x188, // Reserved Queue Page Number, Bcn, Public,
 156         QPNR                    = 0x1D0, //0x1F0, // Queue Packet Number report per TID
 157 
 158 #define BW_OPMODE_5G                    BIT(1)
 159 #define BW_OPMODE_20MHZ                 BIT(2)
 160         BW_OPMODE               = 0x300, // Bandwidth operation mode
 161         MSR                     = 0x303, // Media Status register
 162 #define MSR_LINK_MASK      (BIT(0)|BIT(1))
 163 #define MSR_LINK_MANAGED   2
 164 #define MSR_LINK_NONE      0
 165 #define MSR_LINK_SHIFT     0
 166 #define MSR_LINK_ADHOC     1
 167 #define MSR_LINK_MASTER    3
 168         RETRY_LIMIT             = 0x304, // Retry Limit [15:8]-short, [7:0]-long
 169 #define RETRY_LIMIT_SHORT_SHIFT 8
 170 #define RETRY_LIMIT_LONG_SHIFT 0
 171         RRSR                    = 0x310, // Response Rate Set
 172 #define RRSR_1M                                         BIT(0)
 173 #define RRSR_2M                                         BIT(1)
 174 #define RRSR_5_5M                                       BIT(2)
 175 #define RRSR_11M                                        BIT(3)
 176 #define RRSR_6M                                         BIT(4)
 177 #define RRSR_9M                                         BIT(5)
 178 #define RRSR_12M                                        BIT(6)
 179 #define RRSR_18M                                        BIT(7)
 180 #define RRSR_24M                                        BIT(8)
 181 #define RRSR_36M                                        BIT(9)
 182 #define RRSR_48M                                        BIT(10)
 183 #define RRSR_54M                                        BIT(11)
 184 #define BRSR_AckShortPmb                        BIT(23)         // CCK ACK: use Short Preamble or not.
 185         UFWP                    = 0x318,
 186         RATR0                   = 0x320, // Rate Adaptive Table register1
 187         DRIVER_RSSI             = 0x32c,                                        // Driver tell Firmware current RSSI
 188 //----------------------------------------------------------------------------
 189 //       8190 Rate Adaptive Table Register      (offset 0x320, 4 byte)
 190 //----------------------------------------------------------------------------
 191 //CCK
 192 #define RATR_1M                 0x00000001
 193 #define RATR_2M                 0x00000002
 194 #define RATR_55M                0x00000004
 195 #define RATR_11M                0x00000008
 196 //OFDM
 197 #define RATR_6M                 0x00000010
 198 #define RATR_9M                 0x00000020
 199 #define RATR_12M                0x00000040
 200 #define RATR_18M                0x00000080
 201 #define RATR_24M                0x00000100
 202 #define RATR_36M                0x00000200
 203 #define RATR_48M                0x00000400
 204 #define RATR_54M                0x00000800
 205 //MCS 1 Spatial Stream
 206 #define RATR_MCS0               0x00001000
 207 #define RATR_MCS1               0x00002000
 208 #define RATR_MCS2               0x00004000
 209 #define RATR_MCS3               0x00008000
 210 #define RATR_MCS4               0x00010000
 211 #define RATR_MCS5               0x00020000
 212 #define RATR_MCS6               0x00040000
 213 #define RATR_MCS7               0x00080000
 214 //MCS 2 Spatial Stream
 215 #define RATR_MCS8               0x00100000
 216 #define RATR_MCS9               0x00200000
 217 #define RATR_MCS10              0x00400000
 218 #define RATR_MCS11              0x00800000
 219 #define RATR_MCS12              0x01000000
 220 #define RATR_MCS13              0x02000000
 221 #define RATR_MCS14              0x04000000
 222 #define RATR_MCS15              0x08000000
 223 // ALL CCK Rate
 224 #define RATE_ALL_CCK            RATR_1M|RATR_2M|RATR_55M|RATR_11M
 225 #define RATE_ALL_OFDM_AG        RATR_6M|RATR_9M|RATR_12M|RATR_18M|RATR_24M\
 226                                                         |RATR_36M|RATR_48M|RATR_54M
 227 #define RATE_ALL_OFDM_1SS       RATR_MCS0|RATR_MCS1|RATR_MCS2|RATR_MCS3 | \
 228                                                         RATR_MCS4|RATR_MCS5|RATR_MCS6|RATR_MCS7
 229 #define RATE_ALL_OFDM_2SS       RATR_MCS8|RATR_MCS9     |RATR_MCS10|RATR_MCS11| \
 230                                                         RATR_MCS12|RATR_MCS13|RATR_MCS14|RATR_MCS15
 231 
 232         EPROM_CMD               = 0xfe58,
 233 #define Cmd9346CR_9356SEL       BIT(4)
 234 #define EPROM_CMD_OPERATING_MODE_SHIFT 6
 235 #define EPROM_CMD_NORMAL 0
 236 #define EPROM_CMD_PROGRAM 2
 237 #define EPROM_CS_BIT BIT(3)
 238 #define EPROM_CK_BIT BIT(2)
 239 #define EPROM_W_BIT  BIT(1)
 240 #define EPROM_R_BIT  BIT(0)
 241 };
 242 //----------------------------------------------------------------------------
 243 //       818xB AnaParm & AnaParm2 Register
 244 //----------------------------------------------------------------------------
 245 #define GPI 0x108
 246 #endif

/* [<][>][^][v][top][bottom][index][help] */