Home | History | Annotate | Line # | Download | only in ic
      1 /*	$NetBSD: arn9003reg.h,v 1.1 2013/03/30 02:53:01 christos Exp $	*/
      2 /*	$OpenBSD: ar9003reg.h,v 1.8 2012/10/20 09:53:32 stsp Exp $	*/
      3 
      4 /*-
      5  * Copyright (c) 2010 Damien Bergamini <damien.bergamini (at) free.fr>
      6  * Copyright (c) 2010 Atheros Communications Inc.
      7  *
      8  * Permission to use, copy, modify, and/or distribute this software for any
      9  * purpose with or without fee is hereby granted, provided that the above
     10  * copyright notice and this permission notice appear in all copies.
     11  *
     12  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     13  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     14  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     15  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     16  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     17  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     18  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     19  */
     20 
     21 #ifndef _ARN9003REG_H_
     22 #define _ARN9003REG_H_
     23 
     24 /*
     25  * MAC registers.
     26  */
     27 #define AR_ISR_S2_S			0x00d0
     28 #define AR_ISR_S3_S			0x00d4
     29 #define AR_ISR_S4_S			0x00d8
     30 #define AR_ISR_S5_S			0x00dc
     31 #define AR_GPIO_IN_OUT			0x4048
     32 #define AR_GPIO_IN			0x404c
     33 #define AR9300_GPIO_IN_VAL		0x0001FFFF
     34 #define AR_GPIO_OE_OUT			0x4050
     35 #define AR_GPIO_INTR_POL		0x4058
     36 #define AR_GPIO_INPUT_EN_VAL		0x405c
     37 #define AR_GPIO_INPUT_MUX1		0x4060
     38 #define AR_GPIO_INPUT_MUX2		0x4064
     39 #define AR_GPIO_OUTPUT_MUX(i)		(0x4068 + (i) * 4)
     40 #define AR_INPUT_STATE			0x4074
     41 #define AR_EEPROM_STATUS_DATA		0x4084
     42 #define AR_OBS				0x4088
     43 #define AR_GPIO_PDPU			0x4090
     44 #define AR_PCIE_MSI			0x40a4
     45 #define AR_ENT_OTP			0x40d8
     46 
     47 /* Bits for AR_ENT_OTP. */
     48 #define AR_ENT_OTP_CHAIN2_DISABLE	0x00020000
     49 #define AR_ENT_OTP_MPSD			0x00800000
     50 
     51 /*
     52  * PHY registers.
     53  */
     54 #define AR_PHY_TIMING1			0x09800
     55 #define AR_PHY_TIMING2			0x09804
     56 #define AR_PHY_TIMING3			0x09808
     57 #define AR_PHY_TIMING4			0x0980c
     58 #define AR_PHY_TIMING5			0x09810
     59 #define AR_PHY_TIMING6			0x09814
     60 #define AR_PHY_TIMING11			0x09818
     61 #define AR_PHY_SPUR_REG			0x0981c
     62 #define AR_PHY_FIND_SIG_LOW		0x09820
     63 #define AR_PHY_SFCORR			0x09824
     64 #define AR_PHY_SFCORR_LOW		0x09828
     65 #define AR_PHY_SFCORR_EXT		0x0982c
     66 #define AR_PHY_EXT_CCA(i)		(0x09830 + (i) * 0x1000)
     67 #define AR_PHY_RADAR_0			0x09834
     68 #define AR_PHY_RADAR_1			0x09838
     69 #define AR_PHY_RADAR_EXT		0x0983c
     70 #define AR_PHY_MULTICHAIN_CTRL		0x09880
     71 #define AR_PHY_PERCHAIN_CSD		0x09884
     72 #define AR_PHY_TX_CRC			0x098a0
     73 #define AR_PHY_TST_DAC_CONST		0x098a4
     74 #define AR_PHY_SPUR_REPORT_0		0x098a8
     75 #define AR_PHY_TX_IQCAL_CONTROL_3	0x098b0
     76 #define AR_PHY_IQ_ADC_MEAS_0_B(i)	(0x098c0 + (i) * 0x1000)
     77 #define AR_PHY_IQ_ADC_MEAS_1_B(i)	(0x098c4 + (i) * 0x1000)
     78 #define AR_PHY_IQ_ADC_MEAS_2_B(i)	(0x098c8 + (i) * 0x1000)
     79 #define AR_PHY_IQ_ADC_MEAS_3_B(i)	(0x098cc + (i) * 0x1000)
     80 #define AR_PHY_TX_PHASE_RAMP_0		0x098d0
     81 #define AR_PHY_ADC_DC_GAIN_CORR(i)	(0x098d4 + (i) * 0x1000)
     82 #define AR_PHY_RX_IQCAL_CORR_B(i)	(0x098dc + (i) * 0x1000)
     83 #define AR_PHY_PAPRD_AM2AM		0x098e4
     84 #define AR_PHY_PAPRD_AM2PM		0x098e8
     85 #define AR_PHY_PAPRD_HT40		0x098ec
     86 #define AR_PHY_PAPRD_CTRL0_B(i)		(0x098f0 + (i) * 0x1000)
     87 #define AR_PHY_PAPRD_CTRL1_B(i)		(0x098f4 + (i) * 0x1000)
     88 #define AR_PHY_PA_GAIN123_B(i)		(0x098f8 + (i) * 0x1000)
     89 #define AR_PHY_PAPRD_PRE_POST_SCALE_B0(i)	\
     90 					(0x09900 + (i) * 4)
     91 #define AR_PHY_PAPRD_MEM_TAB_B(i, j)	(0x09920 + (i) * 0x1000 + (j) * 4)
     92 #define AR_PHY_CHAN_INFO_TAB(i, j)	(0x09b00 + (i) * 0x1000 + (j) * 4)
     93 #define AR_PHY_TIMING_3A		0x09c00
     94 #define AR_PHY_LDPC_CNTL1		0x09c04
     95 #define AR_PHY_LDPC_CNTL2		0x09c08
     96 #define AR_PHY_PILOT_SPUR_MASK		0x09c0c
     97 #define AR_PHY_CHAN_SPUR_MASK		0x09c10
     98 #define AR_PHY_SGI_DELTA		0x09c14
     99 #define AR_PHY_ML_CNTL_1		0x09c18
    100 #define AR_PHY_ML_CNTL_2		0x09c1c
    101 #define AR_PHY_TST_ADC			0x09c20
    102 #define AR_PHY_SETTLING			0x09e00
    103 #define AR_PHY_RXGAIN(i)		(0x09e04 + (i) * 0x1000)
    104 #define AR_PHY_GAINS_MINOFF0		0x09e08
    105 #define AR_PHY_DESIRED_SZ		0x09e0c
    106 #define AR_PHY_FIND_SIG			0x09e10
    107 #define AR_PHY_AGC			0x09e14
    108 #define AR_PHY_EXT_ATTEN_CTL(i)		(0x09e18 + (i) * 0x1000)
    109 #define AR_PHY_CCA(i)			(0x09e1c + (i) * 0x1000)
    110 #define AR_PHY_CCA_CTRL(i)		(0x09e20 + (i) * 0x1000)
    111 #define AR_PHY_RESTART			0x09e24
    112 #define AR_PHY_MC_GAIN_CTRL		0x09e28
    113 #define AR_PHY_EXTCHN_PWRTHR1		0x09e2c
    114 #define AR_PHY_EXT_CHN_WIN		0x09e30
    115 #define AR_PHY_20_40_DET_THR		0x09e34
    116 #define AR_PHY_RIFS_SRCH		0x09e38
    117 #define AR_PHY_PEAK_DET_CTRL_1		0x09e3c
    118 #define AR_PHY_PEAK_DET_CTRL_2		0x09e40
    119 #define AR_PHY_RX_GAIN_BOUNDS_1		0x09e44
    120 #define AR_PHY_RX_GAIN_BOUNDS_2		0x09e48
    121 #define AR_PHY_RSSI(i)			(0x09f80 + (i) * 0x1000)
    122 #define AR_PHY_SPUR_CCK_REP0		0x09f84
    123 #define AR_PHY_CCK_DETECT		0x09fc0
    124 #define AR_PHY_DAG_CTRLCCK		0x09fc4
    125 #define AR_PHY_IQCORR_CTRL_CCK		0x09fc8
    126 #define AR_PHY_CCK_SPUR_MIT		0x09fcc
    127 #define AR_PHY_RX_OCGAIN		0x0a000
    128 #define AR_PHY_D2_CHIP_ID		0x0a200
    129 #define AR_PHY_GEN_CTRL			0x0a204
    130 #define AR_PHY_MODE			0x0a208
    131 #define AR_PHY_ACTIVE			0x0a20c
    132 #define AR_PHY_SPUR_MASK_A		0x0a220
    133 #define AR_PHY_SPUR_MASK_B		0x0a224
    134 #define AR_PHY_SPECTRAL_SCAN		0x0a228
    135 #define AR_PHY_RADAR_BW_FILTER		0x0a22c
    136 #define AR_PHY_SEARCH_START_DELAY	0x0a230
    137 #define AR_PHY_MAX_RX_LEN		0x0a234
    138 #define AR_PHY_FRAME_CTL		0x0a238
    139 #define AR_PHY_RFBUS_REQ		0x0a23c
    140 #define AR_PHY_RFBUS_GRANT		0x0a240
    141 #define AR_PHY_RIFS			0x0a244
    142 #define AR_PHY_RX_CLR_DELAY		0x0a250
    143 #define AR_PHY_RX_DELAY			0x0a254
    144 #define AR_PHY_XPA_TIMING_CTL		0x0a264
    145 #define AR_PHY_MISC_PA_CTL		0x0a280
    146 #define AR_PHY_SWITCH_CHAIN(i)		(0x0a284 + (i) * 0x1000)
    147 #define AR_PHY_SWITCH_COM		0x0a288
    148 #define AR_PHY_SWITCH_COM_2		0x0a28c
    149 #define AR_PHY_RX_CHAINMASK		0x0a2a0
    150 #define AR_PHY_CAL_CHAINMASK		0x0a2c0
    151 #define AR_PHY_AGC_CONTROL		0x0a2c4
    152 #define AR_PHY_CALMODE			0x0a2c8
    153 #define AR_PHY_FCAL_1			0x0a2cc
    154 #define AR_PHY_FCAL_2_0			0x0a2d0
    155 #define AR_PHY_DFT_TONE_CTL_0		0x0a2d4
    156 #define AR_PHY_CL_CAL_CTL		0x0a2d8
    157 #define AR_PHY_CL_TAB_0			0x0a300
    158 #define AR_PHY_SYNTH_CONTROL		0x0a340
    159 #define AR_PHY_ADDAC_CLK_SEL		0x0a344
    160 #define AR_PHY_PLL_CTL			0x0a348
    161 #define AR_PHY_ANALOG_SWAP		0x0a34c
    162 #define AR_PHY_ADDAC_PARA_CTL		0x0a350
    163 #define AR_PHY_XPA_CFG			0x0a358
    164 #define AR_PHY_TEST			0x0a360
    165 #define AR_PHY_TEST_CTL_STATUS		0x0a364
    166 #define AR_PHY_TSTDAC			0x0a368
    167 #define AR_PHY_CHAN_STATUS		0x0a36c
    168 #define AR_PHY_CHAN_INFO_MEMORY		0x0a370
    169 #define AR_PHY_CHNINFO_NOISEPWR		0x0a374
    170 #define AR_PHY_CHNINFO_GAINDIFF		0x0a378
    171 #define AR_PHY_CHNINFO_FINETIM		0x0a37c
    172 #define AR_PHY_CHAN_INFO_GAIN_0		0x0a380
    173 #define AR_PHY_SCRAMBLER_SEED		0x0a390
    174 #define AR_PHY_CCK_TX_CTRL		0x0a394
    175 #define AR_PHY_HEAVYCLIP_CTL		0x0a3a4
    176 #define AR_PHY_HEAVYCLIP_20		0x0a3a8
    177 #define AR_PHY_HEAVYCLIP_40		0x0a3ac
    178 #define AR_PHY_ILLEGAL_TXRATE		0x0a3b0
    179 #define AR_PHY_PWRTX_RATE1		0x0a3c0
    180 #define AR_PHY_PWRTX_RATE2		0x0a3c4
    181 #define AR_PHY_PWRTX_RATE3		0x0a3c8
    182 #define AR_PHY_PWRTX_RATE4		0x0a3cc
    183 #define AR_PHY_PWRTX_RATE5		0x0a3d0
    184 #define AR_PHY_PWRTX_RATE6		0x0a3d4
    185 #define AR_PHY_PWRTX_RATE7		0x0a3d8
    186 #define AR_PHY_PWRTX_RATE8		0x0a3dc
    187 #define AR_PHY_PWRTX_RATE10		0x0a3e4
    188 #define AR_PHY_PWRTX_RATE11		0x0a3e8
    189 #define AR_PHY_PWRTX_RATE12		0x0a3ec
    190 #define AR_PHY_PWRTX_MAX		0x0a3f0
    191 #define AR_PHY_POWER_TX_SUB		0x0a3f4
    192 #define AR_PHY_TPC_1			0x0a3f8
    193 #define AR_PHY_TPC_4_B(i)		(0x0a404 + (i) * 0x1000)
    194 #define AR_PHY_TPC_5_B(i)		(0x0a408 + (i) * 0x1000)
    195 #define AR_PHY_TPC_6_B(i)		(0x0a40c + (i) * 0x1000)
    196 #define AR_PHY_TPC_11_B(i)		(0x0a420 + (i) * 0x1000)
    197 #define AR_PHY_TPC_12			0x0a424
    198 #define AR_PHY_TPC_18			0x0a43c
    199 #define AR_PHY_TPC_19			0x0a440
    200 #define AR_PHY_BB_THERM_ADC_1		0x0a448
    201 #define AR_PHY_BB_THERM_ADC_4		0x0a454
    202 #define AR_PHY_TX_FORCED_GAIN		0x0a458
    203 #define AR_PHY_PDADC_TAB(i)		(0x0a480 + (i) * 0x1000)
    204 #define AR_PHY_TXGAIN_TABLE(i)		(0x0a500 + (i) * 4)
    205 #define AR_PHY_TX_IQCAL_CONTROL_1	0x0a648
    206 #define AR_PHY_TX_IQCAL_START		0x0a640
    207 #define AR_PHY_TX_IQCAL_CORR_COEFF_01_B(i)	\
    208 					(0x0a650 + (i) * 0x1000)
    209 #define AR_PHY_TX_IQCAL_STATUS_B(i)	(0x0a68c + (i) * 0x1000)
    210 #define AR_PHY_PAPRD_TRAINER_CNTL1	0x0a690
    211 #define AR_PHY_PAPRD_TRAINER_CNTL2	0x0a694
    212 #define AR_PHY_PAPRD_TRAINER_CNTL3	0x0a698
    213 #define AR_PHY_PAPRD_TRAINER_CNTL4	0x0a69c
    214 #define AR_PHY_PAPRD_TRAINER_STAT1	0x0a6a0
    215 #define AR_PHY_PAPRD_TRAINER_STAT2	0x0a6a4
    216 #define AR_PHY_PAPRD_TRAINER_STAT3	0x0a6a8
    217 #define AR_PHY_PANIC_WD_STATUS		0x0a7c0
    218 #define AR_PHY_PANIC_WD_CTL_1		0x0a7c4
    219 #define AR_PHY_PANIC_WD_CTL_2		0x0a7c8
    220 #define AR_PHY_BT_CTL			0x0a7cc
    221 #define AR_PHY_ONLY_WARMRESET		0x0a7d0
    222 #define AR_PHY_ONLY_CTL			0x0a7d4
    223 #define AR_PHY_ECO_CTRL			0x0a7dc
    224 
    225 /*
    226  * Analog registers.
    227  */
    228 #define AR_IS_ANALOG_REG(reg)		((reg) >= 0x16000 && (reg) <= 0x17000)
    229 #define AR_PHY_65NM_CH0_SYNTH4		0x1608c
    230 #define AR_PHY_65NM_CH0_SYNTH7		0x16098
    231 #define AR_PHY_65NM_CH0_BIAS1		0x160c0
    232 #define AR_PHY_65NM_CH0_BIAS2		0x160c4
    233 #define AR_PHY_65NM_CH0_BIAS4		0x160cc
    234 #define AR_PHY_65NM_CH0_RXTX1		0x16100
    235 #define AR_PHY_65NM_CH0_RXTX2		0x16104
    236 #define AR_PHY_65NM_CH0_RXTX4		0x1610c
    237 #define AR9485_PHY_65NM_CH0_TOP2	0x16284
    238 #define AR_PHY_65NM_CH0_TOP		0x16288
    239 #define AR_PHY_65NM_CH0_THERM		0x16290
    240 #define AR9485_PHY_CH0_XTAL		0x16290
    241 #define AR_PHY_65NM_CH1_RXTX1		0x16500
    242 #define AR_PHY_65NM_CH1_RXTX2		0x16504
    243 #define AR_PHY_65NM_CH2_RXTX1		0x16900
    244 #define AR_PHY_65NM_CH2_RXTX2		0x16904
    245 #define AR_PHY_PMU1			0x16c40
    246 #define AR_PHY_PMU2			0x16c44
    247 
    248 
    249 /* Bits for AR_PHY_TIMING2. */
    250 #define AR_PHY_TIMING2_FORCE_PPM_VAL_M	0x00000fff
    251 #define AR_PHY_TIMING2_FORCE_PPM_VAL_S	0
    252 #define AR_PHY_TIMING2_USE_FORCE_PPM	0x00001000
    253 
    254 /* Bits for AR_PHY_TIMING3. */
    255 #define AR_PHY_TIMING3_DSC_EXP_M	0x0001e000
    256 #define AR_PHY_TIMING3_DSC_EXP_S	13
    257 #define AR_PHY_TIMING3_DSC_MAN_M	0xfffe0000
    258 #define AR_PHY_TIMING3_DSC_MAN_S	17
    259 
    260 /* Bits for AR_PHY_TIMING4. */
    261 #define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX_M	0x0000f000
    262 #define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX_S	12
    263 #define AR_PHY_TIMING4_DO_CAL			0x00010000
    264 #define AR_PHY_TIMING4_ENABLE_PILOT_MASK	0x10000000
    265 #define AR_PHY_TIMING4_ENABLE_CHAN_MASK		0x20000000
    266 #define AR_PHY_TIMING4_ENABLE_SPUR_FILTER	0x40000000
    267 #define AR_PHY_TIMING4_ENABLE_SPUR_RSSI		0x80000000
    268 
    269 /* Bits for AR_PHY_TIMING5. */
    270 #define AR_PHY_TIMING5_CYCPWR_THR1_ENABLE	0x00000001
    271 #define AR_PHY_TIMING5_CYCPWR_THR1_M		0x000000fe
    272 #define AR_PHY_TIMING5_CYCPWR_THR1_S		1
    273 #define AR_PHY_TIMING5_RSSI_THR1A_ENA		0x00008000
    274 #define AR_PHY_TIMING5_CYCPWR_THR1A_M		0x007f0000
    275 #define AR_PHY_TIMING5_CYCPWR_THR1A_S		16
    276 #define AR_PHY_TIMING5_RSSI_THR1A_M		0x007f0000
    277 #define AR_PHY_TIMING5_RSSI_THR1A_S		16
    278 
    279 /* Bits for AR_PHY_TIMING11. */
    280 #define AR_PHY_TIMING11_SPUR_DELTA_PHASE_M		0x000fffff
    281 #define AR_PHY_TIMING11_SPUR_DELTA_PHASE_S		0
    282 #define AR_PHY_TIMING11_SPUR_FREQ_SD_M			0x3ff00000
    283 #define AR_PHY_TIMING11_SPUR_FREQ_SD_S			20
    284 #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_AGC		0x40000000
    285 #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_SELFCOR	0x80000000
    286 
    287 /* Bits for AR_PHY_SPUR_REG. */
    288 #define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_M	0x000000ff
    289 #define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_S	0
    290 #define AR_PHY_SPUR_REG_EN_VIT_SPUR_RSSI	0x00000100
    291 #define AR_PHY_SPUR_REG_ENABLE_MASK_PPM		0x00020000
    292 #define AR_PHY_SPUR_REG_MASK_RATE_CNTL_M	0x03fc0000
    293 #define AR_PHY_SPUR_REG_MASK_RATE_CNTL_S	18
    294 #define AR_PHY_SPUR_REG_ENABLE_NF_RSSI_SPUR_MIT	0x04000000
    295 
    296 /* Bits for AR_PHY_FIND_SIG_LOW. */
    297 #define AR_PHY_FIND_SIG_LOW_RELSTEP_M		0x0000001f
    298 #define AR_PHY_FIND_SIG_LOW_RELSTEP_S		0
    299 #define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW_M	0x00000fc0
    300 #define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW_S	6
    301 #define AR_PHY_FIND_SIG_LOW_FIRPWR_M		0x0007f000
    302 #define AR_PHY_FIND_SIG_LOW_FIRPWR_S		12
    303 
    304 /* Bits for AR_PHY_SFCORR. */
    305 #define AR_PHY_SFCORR_M2COUNT_THR_M		0x0000001f
    306 #define AR_PHY_SFCORR_M2COUNT_THR_S		0
    307 #define AR_PHY_SFCORR_M1_THRESH_M		0x00fe0000
    308 #define AR_PHY_SFCORR_M1_THRESH_S		17
    309 #define AR_PHY_SFCORR_M2_THRESH_M		0x7f000000
    310 #define AR_PHY_SFCORR_M2_THRESH_S		24
    311 
    312 /* Bits for AR_PHY_SFCORR_LOW. */
    313 #define AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW	0x00000001
    314 #define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW_M	0x00003f00
    315 #define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW_S	8
    316 #define AR_PHY_SFCORR_LOW_M1_THRESH_LOW_M	0x001fc000
    317 #define AR_PHY_SFCORR_LOW_M1_THRESH_LOW_S	14
    318 #define AR_PHY_SFCORR_LOW_M2_THRESH_LOW_M	0x0fe00000
    319 #define AR_PHY_SFCORR_LOW_M2_THRESH_LOW_S	21
    320 
    321 /* Bits for AR_PHY_SFCORR_EXT. */
    322 #define AR_PHY_SFCORR_EXT_M1_THRESH_M		0x0000007f
    323 #define AR_PHY_SFCORR_EXT_M1_THRESH_S		0
    324 #define AR_PHY_SFCORR_EXT_M2_THRESH_M		0x00003f80
    325 #define AR_PHY_SFCORR_EXT_M2_THRESH_S		7
    326 #define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_M	0x001fc000
    327 #define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_S	14
    328 #define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_M	0x0fe00000
    329 #define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_S	21
    330 #define AR_PHY_SFCORR_EXT_SPUR_SUBCHANNEL_SD	0x10000000
    331 
    332 /* Bits for AR_PHY_RADAR_0. */
    333 #define AR_PHY_RADAR_0_ENA		0x00000001
    334 #define AR_PHY_RADAR_0_INBAND_M		0x0000003e
    335 #define AR_PHY_RADAR_0_INBAND_S		1
    336 #define AR_PHY_RADAR_0_PRSSI_M		0x00000fc0
    337 #define AR_PHY_RADAR_0_PRSSI_S		6
    338 #define AR_PHY_RADAR_0_HEIGHT_M		0x0003f000
    339 #define AR_PHY_RADAR_0_HEIGHT_S		12
    340 #define AR_PHY_RADAR_0_RRSSI_M		0x00fc0000
    341 #define AR_PHY_RADAR_0_RRSSI_S		18
    342 #define AR_PHY_RADAR_0_FIRPWR_M		0x7f000000
    343 #define AR_PHY_RADAR_0_FIRPWR_S		24
    344 #define AR_PHY_RADAR_0_FFT_ENA		0x80000000
    345 
    346 /* Bits for AR_PHY_RADAR_1. */
    347 #define AR_PHY_RADAR_1_MAXLEN_M		0x000000ff
    348 #define AR_PHY_RADAR_1_MAXLEN_S		0
    349 #define AR_PHY_RADAR_1_RELSTEP_THRESH_M	0x00001f00
    350 #define AR_PHY_RADAR_1_RELSTEP_THRESH_S	8
    351 #define AR_PHY_RADAR_1_RELSTEP_CHECK	0x00002000
    352 #define AR_PHY_RADAR_1_MAX_RRSSI	0x00004000
    353 #define AR_PHY_RADAR_1_BLOCK_CHECK	0x00008000
    354 #define AR_PHY_RADAR_1_RELPWR_THRESH_M	0x003f0000
    355 #define AR_PHY_RADAR_1_RELPWR_THRESH_S	16
    356 #define AR_PHY_RADAR_1_USE_FIR128	0x00400000
    357 #define AR_PHY_RADAR_1_RELPWR_ENA	0x00800000
    358 
    359 /* Bits for AR_PHY_RADAR_EXT. */
    360 #define AR_PHY_RADAR_EXT_ENA		0x00004000
    361 #define AR_PHY_RADAR_DC_PWR_THRESH_M	0x007f8000
    362 #define AR_PHY_RADAR_DC_PWR_THRESH_S	15
    363 #define AR_PHY_RADAR_LB_DC_CAP_M  	0x7f800000
    364 #define AR_PHY_RADAR_LB_DC_CAP_S	23
    365 
    366 /* Bits for AR_PHY_TX_IQCAL_CONTROL_3. */
    367 #define AR_PHY_TX_IQCAL_CONTROL_3_IQCORR_EN	0x80000000
    368 
    369 /* Bits for AR_PHY_RX_IQCAL_CORR_B(0). */
    370 #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF_M		0x0000007f
    371 #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF_S		0
    372 #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF_M		0x00003f80
    373 #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF_S		7
    374 #define AR_PHY_RX_IQCAL_CORR_IQCORR_ENABLE		0x00004000
    375 #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF_M	0x003f8000
    376 #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF_S	15
    377 #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF_M	0x1fc00000
    378 #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF_S	22
    379 #define AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN	0x20000000
    380 
    381 /* Bits for AR_PHY_PAPRD_AM2AM. */
    382 #define AR_PHY_PAPRD_AM2AM_MASK_M	0x01ffffff
    383 #define AR_PHY_PAPRD_AM2AM_MASK_S	0
    384 
    385 /* Bits for AR_PHY_PAPRD_AM2PM. */
    386 #define AR_PHY_PAPRD_AM2PM_MASK_M	0x01ffffff
    387 #define AR_PHY_PAPRD_AM2PM_MASK_S	0
    388 
    389 /* Bits for AR_PHY_PAPRD_HT40. */
    390 #define AR_PHY_PAPRD_HT40_MASK_M	0x01ffffff
    391 #define AR_PHY_PAPRD_HT40_MASK_S	0
    392 
    393 /* Bits for AR_PHY_PAPRD_CTRL0_B(i). */
    394 #define AR_PHY_PAPRD_CTRL0_PAPRD_ENABLE		0x00000001
    395 #define AR_PHY_PAPRD_CTRL0_USE_SINGLE_TABLE	0x00000002
    396 #define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH_M	0xf8000000
    397 #define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH_S	27
    398 
    399 /* Bits for AR_PHY_PAPRD_CTRL1_B(i). */
    400 #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_SCALING_ENA		0x00000001
    401 #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2AM_ENA		0x00000002
    402 #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2PM_ENA		0x00000004
    403 #define AR_PHY_PAPRD_CTRL1_POWER_AT_AM2AM_CAL_M		0x000001f8
    404 #define AR_PHY_PAPRD_CTRL1_POWER_AT_AM2AM_CAL_S		3
    405 #define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_M		0x0001fe00
    406 #define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_S		9
    407 #define AR_PHY_PAPRD_CTRL1_MAG_SCALE_FACT_M		0x0ffe0000
    408 #define AR_PHY_PAPRD_CTRL1_MAG_SCALE_FACT_S		17
    409 
    410 /* Bits for AR_PHY_PA_GAIN123_B(i). */
    411 #define AR_PHY_PA_GAIN123_PA_GAIN1_M	0x000003ff
    412 #define AR_PHY_PA_GAIN123_PA_GAIN1_S	0
    413 
    414 /* Bits for AR_PHY_PAPRD_PRE_POST_SCALE_B0(i). */
    415 #define AR_PHY_PAPRD_PRE_POST_SCALING_M	0x0003ffff
    416 #define AR_PHY_PAPRD_PRE_POST_SCALING_S	0
    417 
    418 /* Bits for AR_PHY_PAPRD_MEM_TAB_B(i). */
    419 #define AR_PHY_PAPRD_ANGLE_M	0x000007ff
    420 #define AR_PHY_PAPRD_ANGLE_S	0
    421 #define AR_PHY_PAPRD_PA_IN_M	0x003ff800
    422 #define AR_PHY_PAPRD_PA_IN_S	11
    423 
    424 /* Bits for AR_PHY_PILOT_SPUR_MASK. */
    425 #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A_M	0x0000001f
    426 #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A_S	0
    427 #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A_M	0x00000fe0
    428 #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A_S	5
    429 
    430 /* Bits for AR_PHY_CHAN_SPUR_MASK. */
    431 #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A_M		0x0000001f
    432 #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A_S		0
    433 #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A_M	0x00000fe0
    434 #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A_S	5
    435 
    436 /* Bits for AR_PHY_SGI_DELTA. */
    437 #define AR_PHY_SGI_DSC_EXP_M	0x0000000f
    438 #define AR_PHY_SGI_DSC_EXP_S	0
    439 #define AR_PHY_SGI_DSC_MAN_M	0x0007fff0
    440 #define AR_PHY_SGI_DSC_MAN_S	4
    441 
    442 /* Bits for AR_PHY_SETTLING. */
    443 #define AR_PHY_SETTLING_SWITCH_M	0x00003f80
    444 #define AR_PHY_SETTLING_SWITCH_S	7
    445 
    446 /* Bits for AR_PHY_RXGAIN(i). */
    447 #define AR_PHY_RXGAIN_TXRX_ATTEN_M	0x0003f000
    448 #define AR_PHY_RXGAIN_TXRX_ATTEN_S	12
    449 #define AR_PHY_RXGAIN_TXRX_RF_MAX_M	0x007c0000
    450 #define AR_PHY_RXGAIN_TXRX_RF_MAX_S	18
    451 
    452 /* Bits for AR_PHY_DESIRED_SZ. */
    453 #define AR_PHY_DESIRED_SZ_ADC_M		0x000000ff
    454 #define AR_PHY_DESIRED_SZ_ADC_S		0
    455 #define AR_PHY_DESIRED_SZ_PGA_M		0x0000ff00
    456 #define AR_PHY_DESIRED_SZ_PGA_S		8
    457 #define AR_PHY_DESIRED_SZ_TOT_DES_M	0x0ff00000
    458 #define AR_PHY_DESIRED_SZ_TOT_DES_S	20
    459 
    460 /* Bits for AR_PHY_FIND_SIG. */
    461 #define AR_PHY_FIND_SIG_RELSTEP_M	0x0000001f
    462 #define AR_PHY_FIND_SIG_RELSTEP_S	0
    463 #define AR_PHY_FIND_SIG_RELPWR_M	0x000007c0
    464 #define AR_PHY_FIND_SIG_RELPWR_S	6
    465 #define AR_PHY_FIND_SIG_FIRSTEP_M	0x0003f000
    466 #define AR_PHY_FIND_SIG_FIRSTEP_S	12
    467 #define AR_PHY_FIND_SIG_FIRPWR_M	0x03fc0000
    468 #define AR_PHY_FIND_SIG_FIRPWR_S	18
    469 
    470 /* Bits for AR_PHY_AGC. */
    471 #define AR_PHY_AGC_COARSE_PWR_CONST_M	0x0000007f
    472 #define AR_PHY_AGC_COARSE_PWR_CONST_S	0
    473 #define AR_PHY_AGC_COARSE_LOW_M		0x00007f80
    474 #define AR_PHY_AGC_COARSE_LOW_S		7
    475 #define AR_PHY_AGC_COARSE_HIGH_M	0x003f8000
    476 #define AR_PHY_AGC_COARSE_HIGH_S	15
    477 
    478 /* Bits for AR_PHY_EXT_ATTEN_CTL(i). */
    479 #define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN_M	0x0000001f
    480 #define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN_S	0
    481 #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB_M	0x0000003f
    482 #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB_S	0
    483 #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB_M	0x00000fc0
    484 #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB_S	6
    485 #define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN_M	0x00003c00
    486 #define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN_S	10
    487 #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN_M	0x0001f000
    488 #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN_S	12
    489 #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN_M	0x003e0000
    490 #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN_S	17
    491 #define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN_M	0x00fc0000
    492 #define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN_S	18
    493 
    494 /* Bits for AR_PHY_CCA(i). */
    495 #define AR_PHY_MAXCCA_PWR_M	0x000001ff
    496 #define AR_PHY_MAXCCA_PWR_S	0
    497 #define AR_PHY_MINCCA_PWR_M	0x1ff00000
    498 #define AR_PHY_MINCCA_PWR_S	20
    499 
    500 /* Bits for AR_PHY_EXT_CCA(i). */
    501 #define AR_PHY_EXT_MAXCCA_PWR_M		0x000001ff
    502 #define AR_PHY_EXT_MAXCCA_PWR_S		0
    503 #define AR_PHY_EXT_MINCCA_PWR_M		0x01ff0000
    504 #define AR_PHY_EXT_MINCCA_PWR_S		16
    505 
    506 /* Bits for AR_PHY_RESTART. */
    507 #define AR_PHY_RESTART_ENA	0x00000001
    508 #define AR_PHY_RESTART_DIV_GC_M	0x001c0000
    509 #define AR_PHY_RESTART_DIV_GC_S	18
    510 
    511 /* Bits for AR_PHY_MC_GAIN_CTRL. */
    512 #define AR_PHY_MC_GAIN_CTRL_ENABLE_ANT_DIV	0x01000000
    513 #define AR_PHY_MC_GAIN_CTRL_ANT_DIV_CTRL_ALL_M	0x7e000000
    514 #define AR_PHY_MC_GAIN_CTRL_ANT_DIV_CTRL_ALL_S	25
    515 
    516 /* Bits for AR_PHY_CCK_DETECT. */
    517 #define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_M		0x0000003f
    518 #define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_S		0
    519 #define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME_M		0x00001fc0
    520 #define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME_S		6
    521 #define AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV	0x00002000
    522 
    523 /* Bits for AR_PHY_DAG_CTRLCCK. */
    524 #define AR_PHY_DAG_CTRLCCK_EN_RSSI_THR	0x00000200
    525 #define AR_PHY_DAG_CTRLCCK_RSSI_THR_M	0x0001fc00
    526 #define AR_PHY_DAG_CTRLCCK_RSSI_THR_S	10
    527 
    528 /* Bits for AR_PHY_CCK_SPUR_MIT. */
    529 #define AR_PHY_CCK_SPUR_MIT_USE_CCK_SPUR_MIT	0x00000001
    530 #define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR_M	0x000001fe
    531 #define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR_S	1
    532 #define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ_M	0x1ffffe00
    533 #define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ_S	9
    534 #define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE_M	0x60000000
    535 #define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE_S  29
    536 
    537 /* Bits for AR_PHY_GEN_CTRL. */
    538 #define AR_PHY_GC_TURBO_MODE		0x00000001
    539 #define AR_PHY_GC_TURBO_SHORT		0x00000002
    540 #define AR_PHY_GC_DYN2040_EN		0x00000004
    541 #define AR_PHY_GC_DYN2040_PRI_ONLY	0x00000008
    542 #define AR_PHY_GC_DYN2040_PRI_CH	0x00000010
    543 #define AR_PHY_GC_DYN2040_EXT_CH	0x00000020
    544 #define AR_PHY_GC_HT_EN			0x00000040
    545 #define AR_PHY_GC_SHORT_GI_40		0x00000080
    546 #define AR_PHY_GC_WALSH			0x00000100
    547 #define AR_PHY_GC_SINGLE_HT_LTF1	0x00000200
    548 #define AR_PHY_GC_GF_DETECT_EN		0x00000400
    549 #define AR_PHY_GC_ENABLE_DAC_FIFO	0x00000800
    550 
    551 /* Bits for AR_PHY_MODE. */
    552 #define AR_PHY_MODE_OFDM		0x00000000
    553 #define AR_PHY_MODE_CCK			0x00000001
    554 #define AR_PHY_MODE_DYNAMIC		0x00000004
    555 #define AR_PHY_MODE_HALF		0x00000020
    556 #define AR_PHY_MODE_QUARTER		0x00000040
    557 #define AR_PHY_MODE_DYN_CCK_DISABLE	0x00000100
    558 #define AR_PHY_MODE_SVD_HALF		0x00000200
    559 
    560 /* Bits for AR_PHY_ACTIVE. */
    561 #define AR_PHY_ACTIVE_DIS	0x00000000
    562 #define AR_PHY_ACTIVE_EN	0x00000001
    563 
    564 /* Bits for AR_PHY_SPUR_MASK_A. */
    565 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A_M	0x000003ff
    566 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A_S	0
    567 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_M	0x0001fc00
    568 #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_S	10
    569 
    570 /* Bits for AR_PHY_SPECTRAL_SCAN. */
    571 #define AR_PHY_SPECTRAL_SCAN_ENABLE		0x00000001
    572 #define AR_PHY_SPECTRAL_SCAN_ACTIVE		0x00000002
    573 #define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_M	0x000000f0
    574 #define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_S	4
    575 #define AR_PHY_SPECTRAL_SCAN_PERIOD_M		0x0000ff00
    576 #define AR_PHY_SPECTRAL_SCAN_PERIOD_S		8
    577 #define AR_PHY_SPECTRAL_SCAN_COUNT_M		0x00ff0000
    578 #define AR_PHY_SPECTRAL_SCAN_COUNT_S		16
    579 #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT	0x01000000
    580 
    581 /* Bits for AR_PHY_RFBUS_REQ. */
    582 #define AR_PHY_RFBUS_REQ_EN	0x00000001
    583 
    584 /* Bits for AR_PHY_RFBUS_GRANT. */
    585 #define AR_PHY_RFBUS_GRANT_EN	0x00000001
    586 
    587 /* Bits for AR_PHY_RIFS. */
    588 #define AR_PHY_RIFS_INIT_DELAY	0x3ff0000
    589 
    590 /* Bits for AR_PHY_RX_DELAY. */
    591 #define AR_PHY_RX_DELAY_DELAY_M	0x00003fff
    592 #define AR_PHY_RX_DELAY_DELAY_S	0
    593 
    594 /* Bits for AR_PHY_XPA_TIMING_CTL. */
    595 #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON_M	0x000000ff
    596 #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON_S	0
    597 #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON_M	0x0000ff00
    598 #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON_S	8
    599 #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF_M	0x00ff0000
    600 #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF_S	16
    601 #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF_M	0xff000000
    602 #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF_S	24
    603 
    604 /* Bits for AR_PHY_SWITCH_CHAIN. */
    605 #define AR_SWITCH_TABLE_ALL_M	0x00000fff
    606 #define AR_SWITCH_TABLE_ALL_S	0
    607 
    608 /* Bits for AR_PHY_SWITCH_COM. */
    609 #define AR_SWITCH_TABLE_COM_ALL_M	0x0000ffff
    610 #define AR_SWITCH_TABLE_COM_ALL_S	0
    611 
    612 /* Bits for AR_SWITCH_TABLE_COM_2. */
    613 #define AR_SWITCH_TABLE_COM_2_ALL_M	0x00ffffff
    614 #define AR_SWITCH_TABLE_COM_2_ALL_S	0
    615 
    616 /* Bits for AR_PHY_AGC_CONTROL. */
    617 #define AR_PHY_AGC_CONTROL_CAL			0x00000001
    618 #define AR_PHY_AGC_CONTROL_NF			0x00000002
    619 #define AR_PHY_AGC_CONTROL_YCOK_MAX_M		0x000003c0
    620 #define AR_PHY_AGC_CONTROL_YCOK_MAX_S		6
    621 #define AR_PHY_AGC_CONTROL_OFFSET_CAL		0x00000800
    622 #define AR_PHY_AGC_CONTROL_ENABLE_NF		0x00008000
    623 #define AR_PHY_AGC_CONTROL_FLTR_CAL		0x00010000
    624 #define AR_PHY_AGC_CONTROL_NO_UPDATE_NF		0x00020000
    625 #define AR_PHY_AGC_CONTROL_EXT_NF_PWR_MEAS	0x00040000
    626 #define AR_PHY_AGC_CONTROL_CLC_SUCCESS		0x00080000
    627 
    628 /* Bits for AR_PHY_CALMODE. */
    629 #define AR_PHY_CALMODE_IQ		0x00000000
    630 #define AR_PHY_CALMODE_ADC_GAIN		0x00000001
    631 #define AR_PHY_CALMODE_ADC_DC_PER	0x00000002
    632 #define AR_PHY_CALMODE_ADC_DC_INIT	0x00000003
    633 
    634 /* Bits for AR_PHY_FCAL_2_0. */
    635 #define AR_PHY_FCAL20_CAP_STATUS_0_M	0x01f00000
    636 #define AR_PHY_FCAL20_CAP_STATUS_0_S	20
    637 
    638 /* Bits for AR_PHY_SYNTH_CONTROL. */
    639 #define AR9380_BMODE	0x20000000
    640 
    641 /* Bits for AR_PHY_ANALOG_SWAP. */
    642 #define AR_PHY_SWAP_ALT_CHAIN	0x00000040
    643 
    644 /* Bits for AR_PHY_ADDAC_PARA_CTL. */
    645 #define AR_PHY_ADDAC_PARACTL_OFF_PWDADC	0x00008000
    646 
    647 /* Bits for AR_PHY_TEST. */
    648 #define AR_PHY_TEST_RFSILENT_BB		0x00002000
    649 #define AR_PHY_TEST_BBB_OBS_SEL_M	0x00780000
    650 #define AR_PHY_TEST_BBB_OBS_SEL_S	19
    651 #define AR_PHY_TEST_RX_OBS_SEL_BIT5	0x00800000
    652 #define AR_PHY_TEST_CHAIN_SEL_M		0xc0000000
    653 #define AR_PHY_TEST_CHAIN_SEL_S		30
    654 
    655 /* Bits for AR_PHY_TEST_CTL_STATUS. */
    656 #define AR_PHY_TEST_CTL_TSTDAC_EN		0x00000001
    657 #define AR_PHY_TEST_CTL_TX_OBS_SEL_M		0x0000001c
    658 #define AR_PHY_TEST_CTL_TX_OBS_SEL_S		2
    659 #define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL_M	0x00000060
    660 #define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL_S	5
    661 #define AR_PHY_TEST_CTL_TSTADC_EN		0x00000100
    662 #define AR_PHY_TEST_CTL_RX_OBS_SEL_M		0x00003c00
    663 #define AR_PHY_TEST_CTL_RX_OBS_SEL_S		10
    664 
    665 /* Bits for AR_PHY_CHAN_INFO_MEMORY. */
    666 #define AR_PHY_CHAN_INFO_MEMORY_CAPTURE_MASK	0x00000001
    667 #define AR_PHY_CHAN_INFO_TAB_S2_READ		0x00000008
    668 
    669 /* Bits for AR_PHY_CHAN_INFO_GAIN_0. */
    670 #define AR_PHY_CHAN_INFO_GAIN_DIFF_PPM_MASK	0x00000fff
    671 #define AR_PHY_CHAN_INFO_GAIN_DIFF_UPPER_LIMIT	320
    672 
    673 /* Bits for AR_PHY_CCK_TX_CTRL. */
    674 #define AR_PHY_CCK_TX_CTRL_JAPAN	0x00000010
    675 
    676 /* Bits for AR_PHY_PWRTX_RATE5. */
    677 #define AR_PHY_PWRTX_RATE5_POWERTXHT20_0_M	0x0000003f
    678 #define AR_PHY_PWRTX_RATE5_POWERTXHT20_0_S	0
    679 
    680 /* Bits for AR_PHY_PWRTX_MAX. */
    681 #define AR_PHY_POWER_TX_RATE_MAX_TPC_ENABLE	0x00000040
    682 
    683 /* Bits for AR_PHY_TPC_1. */
    684 #define AR_PHY_TPC_1_FORCE_DAC_GAIN	0x00000001
    685 #define AR_PHY_TPC_1_FORCED_DAC_GAIN_M	0x0000003e
    686 #define AR_PHY_TPC_1_FORCED_DAC_GAIN_S	1
    687 
    688 /* Bits for AR_PHY_TPC_5_B(i). */
    689 #define AR_PHY_TPC_5_PD_GAIN_OVERLAP_M		0x0000000f
    690 #define AR_PHY_TPC_5_PD_GAIN_OVERLAP_S		0
    691 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_1_M	0x000003f0
    692 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_1_S	4
    693 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_2_M	0x0000fc00
    694 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_2_S	10
    695 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_3_M	0x003f0000
    696 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_3_S	16
    697 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_4_M	0x0fc00000
    698 #define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_4_S	22
    699 
    700 /* Bits for AR_PHY_TPC_6_B(i). */
    701 #define AR_PHY_TPC_6_ERROR_EST_MODE_M	0x03000000
    702 #define AR_PHY_TPC_6_ERROR_EST_MODE_S	24
    703 
    704 /* Bits for AR_PHY_TPC_11_B(i). */
    705 #define AR_PHY_TPC_11_OLPC_GAIN_DELTA_M		0x00ff0000
    706 #define AR_PHY_TPC_11_OLPC_GAIN_DELTA_S		16
    707 #define AR_PHY_TPC_11_OLPC_GAIN_DELTA_PAL_ON_M	0xff000000
    708 #define AR_PHY_TPC_11_OLPC_GAIN_DELTA_PAL_ON_S	24
    709 
    710 /* Bits for AR_PHY_TPC_12. */
    711 #define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5_M	0x3e000000
    712 #define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5_S	25
    713 
    714 /* Bits for AR_PHY_TPC_18. */
    715 #define AR_PHY_TPC_18_THERM_CAL_M	0x000000ff
    716 #define AR_PHY_TPC_18_THERM_CAL_S	0
    717 #define AR_PHY_TPC_18_VOLT_CAL_M	0x0000ff00
    718 #define AR_PHY_TPC_18_VOLT_CAL_S	8
    719 
    720 /* Bits for AR_PHY_TPC_19. */
    721 #define AR_PHY_TPC_19_ALPHA_THERM_M	0x000000ff
    722 #define AR_PHY_TPC_19_ALPHA_THERM_S	0
    723 #define AR_PHY_TPC_19_ALPHA_VOLT_M	0x001f0000
    724 #define AR_PHY_TPC_19_ALPHA_VOLT_S	16
    725 
    726 /* Bits for AR_PHY_BB_THERM_ADC_1. */
    727 #define AR_PHY_BB_THERM_ADC_1_INIT_THERM_M	0x000000ff
    728 #define AR_PHY_BB_THERM_ADC_1_INIT_THERM_S	0
    729 
    730 /* Bits for AR_PHY_BB_THERM_ADC_4. */
    731 #define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_M	0x000000ff
    732 #define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_S	0
    733 #define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_M	0x0000ff00
    734 #define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_S	8
    735 
    736 /* Bits for AR_PHY_TX_FORCED_GAIN. */
    737 #define AR_PHY_TX_FORCED_GAIN_FORCE_TX_GAIN	0x00000001
    738 #define AR_PHY_TX_FORCED_GAIN_TXBB1DBGAIN_M	0x0000000e
    739 #define AR_PHY_TX_FORCED_GAIN_TXBB1DBGAIN_S	1
    740 #define AR_PHY_TX_FORCED_GAIN_TXBB6DBGAIN_M	0x00000030
    741 #define AR_PHY_TX_FORCED_GAIN_TXBB6DBGAIN_S	4
    742 #define AR_PHY_TX_FORCED_GAIN_TXMXRGAIN_M	0x000003c0
    743 #define AR_PHY_TX_FORCED_GAIN_TXMXRGAIN_S	6
    744 #define AR_PHY_TX_FORCED_GAIN_PADRVGNA_M	0x00003c00
    745 #define AR_PHY_TX_FORCED_GAIN_PADRVGNA_S	10
    746 #define AR_PHY_TX_FORCED_GAIN_PADRVGNB_M	0x0003c000
    747 #define AR_PHY_TX_FORCED_GAIN_PADRVGNB_S	14
    748 #define AR_PHY_TX_FORCED_GAIN_PADRVGNC_M	0x003c0000
    749 #define AR_PHY_TX_FORCED_GAIN_PADRVGNC_S	18
    750 #define AR_PHY_TX_FORCED_GAIN_PADRVGND_M	0x00c00000
    751 #define AR_PHY_TX_FORCED_GAIN_PADRVGND_S	22
    752 #define AR_PHY_TX_FORCED_GAIN_ENABLE_PAL	0x01000000
    753 
    754 /* Bits for AR_PHY_TXGAIN_TABLE(i). */
    755 #define AR_PHY_TXGAIN_TXBB1DBGAIN_M	0x00000007
    756 #define AR_PHY_TXGAIN_TXBB1DBGAIN_S	0
    757 #define AR_PHY_TXGAIN_TXBB6DBGAIN_M	0x00000018
    758 #define AR_PHY_TXGAIN_TXBB6DBGAIN_S	3
    759 #define AR_PHY_TXGAIN_TXMXRGAIN_M	0x000001e0
    760 #define AR_PHY_TXGAIN_TXMXRGAIN_S	5
    761 #define AR_PHY_TXGAIN_PADRVGNA_M	0x00001e00
    762 #define AR_PHY_TXGAIN_PADRVGNA_S	9
    763 #define AR_PHY_TXGAIN_PADRVGNB_M	0x0001e000
    764 #define AR_PHY_TXGAIN_PADRVGNB_S	13
    765 #define AR_PHY_TXGAIN_PADRVGNC_M	0x001e0000
    766 #define AR_PHY_TXGAIN_PADRVGNC_S	17
    767 #define AR_PHY_TXGAIN_PADRVGND_M	0x00600000
    768 #define AR_PHY_TXGAIN_PADRVGND_S	21
    769 #define AR_PHY_TXGAIN_INDEX_M		0xff000000
    770 #define AR_PHY_TXGAIN_INDEX_S		24
    771 
    772 /* Bits for AR_PHY_TX_IQCAL_CONTROL_1. */
    773 #define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_M	0x01fc0000
    774 #define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S	18
    775 
    776 /* Bits for AR_PHY_TX_IQCAL_START. */
    777 #define AR_PHY_TX_IQCAL_START_DO_CAL	0x00000001
    778 
    779 /* Bits for AR_PHY_TX_IQCAL_CORR_COEFF_01_B(i). */
    780 #define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE_M	0x00003fff
    781 #define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE_S	0
    782 
    783 /* Bits for AR_PHY_TX_IQCAL_STATUS_B(i). */
    784 #define AR_PHY_TX_IQCAL_STATUS_FAILED	0x00000001
    785 
    786 /* Bits for AR_PHY_PAPRD_TRAINER_CNTL1. */
    787 #define AR_PHY_PAPRD_TRAINER_CNTL1_TRAIN_ENABLE		0x00000001
    788 #define AR_PHY_PAPRD_TRAINER_CNTL1_AGC2_SETTLING_M	0x0000007e
    789 #define AR_PHY_PAPRD_TRAINER_CNTL1_AGC2_SETTLING_S	1
    790 #define AR_PHY_PAPRD_TRAINER_CNTL1_IQCORR_ENABLE	0x00000100
    791 #define AR_PHY_PAPRD_TRAINER_CNTL1_RX_BB_GAIN_FORCE	0x00000200
    792 #define AR_PHY_PAPRD_TRAINER_CNTL1_TX_GAIN_FORCE	0x00000400
    793 #define AR_PHY_PAPRD_TRAINER_CNTL1_LB_ENABLE		0x00000800
    794 #define AR_PHY_PAPRD_TRAINER_CNTL1_LB_SKIP_M		0x0003f000
    795 #define AR_PHY_PAPRD_TRAINER_CNTL1_LB_SKIP_S		12
    796 
    797 /* Bits for AR_PHY_PAPRD_TRAINER_CNTL3. */
    798 #define AR_PHY_PAPRD_TRAINER_CNTL3_ADC_DESIRED_SIZE_M	0x0000003f
    799 #define AR_PHY_PAPRD_TRAINER_CNTL3_ADC_DESIRED_SIZE_S	0
    800 #define AR_PHY_PAPRD_TRAINER_CNTL3_QUICK_DROP_M		0x00000fc0
    801 #define AR_PHY_PAPRD_TRAINER_CNTL3_QUICK_DROP_S		6
    802 #define AR_PHY_PAPRD_TRAINER_CNTL3_MIN_LOOPBACK_DEL_M	0x0001f000
    803 #define AR_PHY_PAPRD_TRAINER_CNTL3_MIN_LOOPBACK_DEL_S	12
    804 #define AR_PHY_PAPRD_TRAINER_CNTL3_NUM_CORR_STAGES_M	0x000e0000
    805 #define AR_PHY_PAPRD_TRAINER_CNTL3_NUM_CORR_STAGES_S	17
    806 #define AR_PHY_PAPRD_TRAINER_CNTL3_COARSE_CORR_LEN_M	0x00f00000
    807 #define AR_PHY_PAPRD_TRAINER_CNTL3_COARSE_CORR_LEN_S	20
    808 #define AR_PHY_PAPRD_TRAINER_CNTL3_FINE_CORR_LEN_M	0x0f000000
    809 #define AR_PHY_PAPRD_TRAINER_CNTL3_FINE_CORR_LEN_S	24
    810 #define AR_PHY_PAPRD_TRAINER_CNTL3_BBTXMIX_DISABLE	0x20000000
    811 
    812 /* Bits for AR_PHY_PAPRD_TRAINER_CNTL4. */
    813 #define AR_PHY_PAPRD_TRAINER_CNTL4_MIN_CORR_M		0x00000fff
    814 #define AR_PHY_PAPRD_TRAINER_CNTL4_MIN_CORR_S		0
    815 #define AR_PHY_PAPRD_TRAINER_CNTL4_SAFETY_DELTA_M	0x0000f000
    816 #define AR_PHY_PAPRD_TRAINER_CNTL4_SAFETY_DELTA_S	12
    817 #define AR_PHY_PAPRD_TRAINER_CNTL4_NUM_TRAIN_SAMPLES_M	0x03ff0000
    818 #define AR_PHY_PAPRD_TRAINER_CNTL4_NUM_TRAIN_SAMPLES_S	16
    819 
    820 /* Bits for AR_PHY_PAPRD_TRAINER_STAT1. */
    821 #define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_DONE		0x00000001
    822 #define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_INCOMPLETE	0x00000002
    823 #define AR_PHY_PAPRD_TRAINER_STAT1_CORR_ERR		0x00000004
    824 #define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_ACTIVE		0x00000008
    825 #define AR_PHY_PAPRD_TRAINER_STAT1_RX_GAIN_IDX_M	0x000001f0
    826 #define AR_PHY_PAPRD_TRAINER_STAT1_RX_GAIN_IDX_S	4
    827 #define AR_PHY_PAPRD_TRAINER_STAT1_AGC2_PWR_M		0x0001fe00
    828 #define AR_PHY_PAPRD_TRAINER_STAT1_AGC2_PWR_S		9
    829 
    830 /* Bits for AR_PHY_PAPRD_TRAINER_STAT2. */
    831 #define AR_PHY_PAPRD_TRAINER_STAT2_FINE_VAL_M	0x0000ffff
    832 #define AR_PHY_PAPRD_TRAINER_STAT2_FINE_VAL_S	0
    833 #define AR_PHY_PAPRD_TRAINER_STAT2_COARSE_IDX_M	0x001f0000
    834 #define AR_PHY_PAPRD_TRAINER_STAT2_COARSE_IDX_S	16
    835 #define AR_PHY_PAPRD_TRAINER_STAT2_FINE_IDX_M	0x00600000
    836 #define AR_PHY_PAPRD_TRAINER_STAT2_FINE_IDX_S	21
    837 
    838 /* Bits for AR_PHY_PAPRD_TRAINER_STAT3. */
    839 #define AR_PHY_PAPRD_TRAINER_STAT3_TRAIN_SAMPLES_CNT_M	0x000fffff
    840 #define AR_PHY_PAPRD_TRAINER_STAT3_TRAIN_SAMPLES_CNT_S	0
    841 
    842 /* Bits for AR_PHY_65NM_CH0_SYNTH4. */
    843 #define AR_PHY_SYNTH4_LONG_SHIFT_SELECT	0x00000002
    844 
    845 /* Bits for AR_PHY_65NM_CH0_SYNTH7. */
    846 #define AR9380_FRACMODE		0x40000000
    847 #define AR9380_LOAD_SYNTH	0x80000000
    848 
    849 /* Bits for AR_PHY_65NM_CH0_BIAS1. */
    850 #define AR_PHY_65NM_CH0_BIAS1_0_M	0x000001c0
    851 #define AR_PHY_65NM_CH0_BIAS1_0_S	6
    852 #define AR_PHY_65NM_CH0_BIAS1_1_M	0x00000e00
    853 #define AR_PHY_65NM_CH0_BIAS1_1_S	9
    854 #define AR_PHY_65NM_CH0_BIAS1_2_M	0x00007000
    855 #define AR_PHY_65NM_CH0_BIAS1_2_S	12
    856 #define AR_PHY_65NM_CH0_BIAS1_3_M	0x00038000
    857 #define AR_PHY_65NM_CH0_BIAS1_3_S	15
    858 #define AR_PHY_65NM_CH0_BIAS1_4_M	0x001c0000
    859 #define AR_PHY_65NM_CH0_BIAS1_4_S	18
    860 #define AR_PHY_65NM_CH0_BIAS1_5_M	0x00e00000
    861 #define AR_PHY_65NM_CH0_BIAS1_5_S	21
    862 
    863 /* Bits for AR_PHY_65NM_CH0_BIAS2. */
    864 #define AR_PHY_65NM_CH0_BIAS2_0_M	0x000000e0
    865 #define AR_PHY_65NM_CH0_BIAS2_0_S	5
    866 #define AR_PHY_65NM_CH0_BIAS2_1_M	0x00000700
    867 #define AR_PHY_65NM_CH0_BIAS2_1_S	8
    868 #define AR_PHY_65NM_CH0_BIAS2_2_M	0x00003800
    869 #define AR_PHY_65NM_CH0_BIAS2_2_S	11
    870 #define AR_PHY_65NM_CH0_BIAS2_3_M	0x0001c000
    871 #define AR_PHY_65NM_CH0_BIAS2_3_S	14
    872 #define AR_PHY_65NM_CH0_BIAS2_4_M	0x000e0000
    873 #define AR_PHY_65NM_CH0_BIAS2_4_S	17
    874 #define AR_PHY_65NM_CH0_BIAS2_5_M	0x00700000
    875 #define AR_PHY_65NM_CH0_BIAS2_5_S	20
    876 #define AR_PHY_65NM_CH0_BIAS2_6_M	0x03800000
    877 #define AR_PHY_65NM_CH0_BIAS2_6_S	23
    878 #define AR_PHY_65NM_CH0_BIAS2_7_M	0x1c000000
    879 #define AR_PHY_65NM_CH0_BIAS2_7_S	26
    880 #define AR_PHY_65NM_CH0_BIAS2_8_M	0xe0000000
    881 #define AR_PHY_65NM_CH0_BIAS2_8_S	29
    882 
    883 /* Bits for AR_PHY_65NM_CH0_BIAS4. */
    884 #define AR_PHY_65NM_CH0_BIAS4_0_M	0x03800000
    885 #define AR_PHY_65NM_CH0_BIAS4_0_S	23
    886 #define AR_PHY_65NM_CH0_BIAS4_1_M	0x1c000000
    887 #define AR_PHY_65NM_CH0_BIAS4_1_S	26
    888 #define AR_PHY_65NM_CH0_BIAS4_2_M	0xe0000000
    889 #define AR_PHY_65NM_CH0_BIAS4_2_S	29
    890 
    891 /* Bits for AR_PHY_65NM_CH0_RXTX4. */
    892 #define AR_PHY_65NM_CH0_RXTX4_THERM_ON  0x10000000
    893 
    894 /* Bits for AR9485_PHY_65NM_CH0_TOP2. */
    895 #define AR9485_PHY_65NM_CH0_TOP2_XPABIASLVL_M	0x0000f000
    896 #define AR9485_PHY_65NM_CH0_TOP2_XPABIASLVL_S	12
    897 
    898 /* Bits for AR_PHY_65NM_CH0_TOP. */
    899 #define AR_PHY_65NM_CH0_TOP_XPABIASLVL_M	0x00000300
    900 #define AR_PHY_65NM_CH0_TOP_XPABIASLVL_S	8
    901 
    902 /* Bits for AR_PHY_65NM_CH0_THERM. */
    903 #define AR_PHY_65NM_CH0_THERM_XPABIASLVL_MSB_M	0x00000003
    904 #define AR_PHY_65NM_CH0_THERM_XPABIASLVL_MSB_S	0
    905 #define AR_PHY_65NM_CH0_THERM_XPASHORT2GND	0x00000004
    906 #define AR_PHY_65NM_CH0_THERM_SAR_ADC_OUT_M	0x0000ff00
    907 #define AR_PHY_65NM_CH0_THERM_SAR_ADC_OUT_S	8
    908 #define AR_PHY_65NM_CH0_THERM_START		0x20000000
    909 #define AR_PHY_65NM_CH0_THERM_LOCAL		0x80000000
    910 
    911 /* Bits for AR9485_PHY_CH0_XTAL. */
    912 #define AR9485_PHY_CH0_XTAL_CAPINDAC_M	0x7f000000
    913 #define AR9485_PHY_CH0_XTAL_CAPINDAC_S	24
    914 #define AR9485_PHY_CH0_XTAL_CAPOUTDAC_M	0x00fe0000
    915 #define AR9485_PHY_CH0_XTAL_CAPOUTDAC_S	17
    916 
    917 /* Bits for AR_PHY_PMU1. */
    918 #define AR_PHY_PMU1_PWD	0x00000001
    919 
    920 /* Bits for AR_PHY_PMU2. */
    921 #define AR_PHY_PMU2_PGM	0x00200000
    922 
    923 /*
    924  * OTP registers.
    925  */
    926 #define AR_OTP_BASE(i)			(0x14000 + (i) * 4)
    927 #define AR_OTP_STATUS			0x15f18
    928 #define AR_OTP_READ_DATA		0x15f1c
    929 
    930 /* Bits for AR_OTP_STATUS. */
    931 #define AR_OTP_STATUS_TYPE_M		0x00000007
    932 #define AR_OTP_STATUS_TYPE_S		0
    933 #define AR_OTP_STATUS_SM_BUSY		0x1
    934 #define AR_OTP_STATUS_ACCESS_BUSY	0x2
    935 #define AR_OTP_STATUS_VALID		0x4
    936 
    937 
    938 #define AR9003_MAX_CHAINS	3
    939 
    940 #define AR9003_TX_QDEPTH	8
    941 #define AR9003_RX_LP_QDEPTH	128
    942 #define AR9003_RX_HP_QDEPTH	16
    943 
    944 #define AR9003_NTXSTATUS	64
    945 
    946 /* Maximum number of DMA segments per Tx descriptor. */
    947 #define AR9003_MAX_SCATTER	4
    948 
    949 /*
    950  * Tx DMA descriptor.
    951  */
    952 struct ar_tx_desc {
    953 	uint32_t	ds_info;
    954 	uint32_t	ds_link;
    955 	struct {
    956 		uint32_t	ds_data;
    957 		uint32_t	ds_ctl;
    958 	} __packed	ds_segs[AR9003_MAX_SCATTER];
    959 	uint32_t	ds_ctl10;
    960 	uint32_t	ds_ctl11;
    961 	uint32_t	ds_ctl12;
    962 	uint32_t	ds_ctl13;
    963 	uint32_t	ds_ctl14;
    964 	uint32_t	ds_ctl15;
    965 	uint32_t	ds_ctl16;
    966 	uint32_t	ds_ctl17;
    967 	uint32_t	ds_ctl18;
    968 	uint32_t	ds_ctl19;
    969 	uint32_t	ds_ctl20;
    970 	uint32_t	ds_ctl21;
    971 	uint32_t	ds_ctl22;
    972 	/*
    973 	 * Padding to make Tx descriptors 128 bytes such that they will
    974 	 * not cross a 4KB boundary.
    975 	 */
    976 	uint32_t	pad[9];
    977 } __packed  __attribute__((aligned(4)));
    978 
    979 /* Bits for ds_info. */
    980 #define AR_TXI_DESC_NDWORDS_M		0x000000ff
    981 #define AR_TXI_DESC_NDWORDS_S		0
    982 #define AR_TXI_QCU_NUM_M		0x00000f00
    983 #define AR_TXI_QCU_NUM_S		8
    984 #define AR_TXI_CTRL_STAT		0x00004000
    985 #define AR_TXI_DESC_TX			0x00008000
    986 #define AR_TXI_DESC_ID_M		0xffff0000
    987 #define AR_TXI_DESC_ID_S		16
    988 #define AR_VENDOR_ATHEROS		0x168c	/* NB: PCI_VENDOR_ATHEROS */
    989 
    990 /* Bits for ds_ctl. */
    991 #define AR_TXC_BUF_LEN_M		0x0fff0000
    992 #define AR_TXC_BUF_LEN_S		16
    993 
    994 /* Bits for ds_ctl10. */
    995 #define AR_TXC10_PTR_CHK_SUM_M		0x0000ffff
    996 #define AR_TXC10_PTR_CHK_SUM_S		0
    997 
    998 /* Bits for ds_ctl11. */
    999 #define AR_TXC11_FRAME_LEN_M		0x00000fff
   1000 #define AR_TXC11_FRAME_LEN_S		0
   1001 #define AR_TXC11_XMIT_POWER_M		0x003f0000
   1002 #define AR_TXC11_XMIT_POWER_S		16
   1003 #define AR_TXC11_RTS_ENABLE		0x00400000
   1004 #define AR_TXC11_CLR_DEST_MASK		0x01000000
   1005 #define AR_TXC11_DEST_IDX_VALID		0x40000000
   1006 #define AR_TXC11_CTS_ENABLE		0x80000000
   1007 
   1008 /* Bits for ds_ctl12. */
   1009 #define AR_TXC12_PAPRD_CHAIN_MASK_M	0x00000e00
   1010 #define AR_TXC12_PAPRD_CHAIN_MASK_S	9
   1011 #define AR_TXC12_DEST_IDX_M		0x000fe000
   1012 #define AR_TXC12_DEST_IDX_S		13
   1013 #define AR_TXC12_FRAME_TYPE_M		0x00f00000
   1014 #define AR_TXC12_FRAME_TYPE_S		20
   1015 #define AR_FRAME_TYPE_NORMAL		0
   1016 #define AR_FRAME_TYPE_ATIM		1
   1017 #define AR_FRAME_TYPE_PSPOLL		2
   1018 #define AR_FRAME_TYPE_BEACON		3
   1019 #define AR_FRAME_TYPE_PROBE_RESP	4
   1020 #define AR_TXC12_NO_ACK			0x01000000
   1021 
   1022 /* Bits for ds_ctl13. */
   1023 #define AR_TXC13_BURST_DUR_M		0x00007fff
   1024 #define AR_TXC13_BURST_DUR_S		0
   1025 #define AR_TXC13_DUR_UPDATE_ENA		0x00008000
   1026 #define AR_TXC13_XMIT_DATA_TRIES0_M	0x000f0000
   1027 #define AR_TXC13_XMIT_DATA_TRIES0_S	16
   1028 #define AR_TXC13_XMIT_DATA_TRIES1_M	0x00f00000
   1029 #define AR_TXC13_XMIT_DATA_TRIES1_S	20
   1030 #define AR_TXC13_XMIT_DATA_TRIES2_M	0x0f000000
   1031 #define AR_TXC13_XMIT_DATA_TRIES2_S	24
   1032 #define AR_TXC13_XMIT_DATA_TRIES3_M	0xf0000000
   1033 #define AR_TXC13_XMIT_DATA_TRIES3_S	28
   1034 
   1035 /* Bits for ds_ctl14. */
   1036 #define AR_TXC14_XMIT_RATE0_M		0x000000ff
   1037 #define AR_TXC14_XMIT_RATE0_S		0
   1038 #define AR_TXC14_XMIT_RATE1_M		0x0000ff00
   1039 #define AR_TXC14_XMIT_RATE1_S		8
   1040 #define AR_TXC14_XMIT_RATE2_M		0x00ff0000
   1041 #define AR_TXC14_XMIT_RATE2_S		16
   1042 #define AR_TXC14_XMIT_RATE3_M		0xff000000
   1043 #define AR_TXC14_XMIT_RATE3_S		24
   1044 
   1045 /* Bits for ds_ctl15. */
   1046 #define AR_TXC15_PACKET_DUR0_M		0x00007fff
   1047 #define AR_TXC15_PACKET_DUR0_S		0
   1048 #define AR_TXC15_RTSCTS_QUAL0		0x00008000
   1049 #define AR_TXC15_PACKET_DUR1_M		0x7fff0000
   1050 #define AR_TXC15_PACKET_DUR1_S		16
   1051 #define AR_TXC15_RTSCTS_QUAL1		0x80000000
   1052 /* Shortcut. */
   1053 #define AR_TXC15_RTSCTS_QUAL01	\
   1054 	(AR_TXC15_RTSCTS_QUAL0 | AR_TXC15_RTSCTS_QUAL1)
   1055 
   1056 /* Bits for ds_ctl16. */
   1057 #define AR_TXC16_PACKET_DUR2_M		0x00007fff
   1058 #define AR_TXC16_PACKET_DUR2_S		0
   1059 #define AR_TXC16_RTSCTS_QUAL2		0x00008000
   1060 #define AR_TXC16_PACKET_DUR3_M		0x7fff0000
   1061 #define AR_TXC16_PACKET_DUR3_S		16
   1062 #define AR_TXC16_RTSCTS_QUAL3		0x80000000
   1063 /* Shortcut. */
   1064 #define AR_TXC16_RTSCTS_QUAL23	\
   1065 	(AR_TXC16_RTSCTS_QUAL2 | AR_TXC16_RTSCTS_QUAL3)
   1066 
   1067 /* Bits for ds_ctl17. */
   1068 #define AR_TXC17_ENCR_TYPE_M		0x0c000000
   1069 #define AR_TXC17_ENCR_TYPE_S		26
   1070 #define AR_ENCR_TYPE_CLEAR		0
   1071 #define AR_ENCR_TYPE_WEP		1
   1072 #define AR_ENCR_TYPE_AES		2
   1073 #define AR_ENCR_TYPE_TKIP		3
   1074 
   1075 /* Bits for ds_ctl18. */
   1076 #define AR_TXC18_2040_0			0x00000001
   1077 #define AR_TXC18_GI0			0x00000002
   1078 #define AR_TXC18_CHAIN_SEL0_M		0x0000001c
   1079 #define AR_TXC18_CHAIN_SEL0_S		2
   1080 #define AR_TXC18_2040_1			0x00000020
   1081 #define AR_TXC18_GI1			0x00000040
   1082 #define AR_TXC18_CHAIN_SEL1_M		0x00000380
   1083 #define AR_TXC18_CHAIN_SEL1_S		7
   1084 #define AR_TXC18_2040_2			0x00000400
   1085 #define AR_TXC18_GI2			0x00000800
   1086 #define AR_TXC18_CHAIN_SEL2_M		0x00007000
   1087 #define AR_TXC18_CHAIN_SEL2_S		12
   1088 #define AR_TXC18_2040_3			0x00008000
   1089 #define AR_TXC18_GI3			0x00010000
   1090 #define AR_TXC18_CHAIN_SEL3_M		0x000e0000
   1091 #define AR_TXC18_CHAIN_SEL3_S		17
   1092 #define AR_TXC18_RTSCTS_RATE_M		0x0ff00000
   1093 #define AR_TXC18_RTSCTS_RATE_S		20
   1094 /* Shortcuts. */
   1095 #define AR_TXC18_2040_0123	\
   1096 	(AR_TXC18_2040_0 | AR_TXC18_2040_1 | AR_TXC18_2040_2 | AR_TXC18_2040_3)
   1097 #define AR_TXC18_GI0123		\
   1098 	(AR_TXC18_GI0 | AR_TXC18_GI1 | AR_TXC18_GI2 | AR_TXC18_GI3)
   1099 
   1100 /* Bits for ds_ctl19. */
   1101 #define AR_TXC19_NOT_SOUNDING		0x20000000
   1102 
   1103 /*
   1104  * Tx status DMA descriptor.
   1105  */
   1106 struct ar_tx_status {
   1107 	uint32_t	ds_info;
   1108 	uint32_t	ds_status1;
   1109 	uint32_t	ds_status2;
   1110 	uint32_t	ds_status3;
   1111 	uint32_t	ds_status4;
   1112 	uint32_t	ds_status5;
   1113 	uint32_t	ds_status6;
   1114 	uint32_t	ds_status7;
   1115 	uint32_t	ds_status8;
   1116 } __packed  __attribute__((aligned(4)));
   1117 
   1118 /* Bits for ds_status3. */
   1119 #define AR_TXS3_EXCESSIVE_RETRIES	0x00000002
   1120 #define AR_TXS3_FIFO_UNDERRUN		0x00000004
   1121 #define AR_TXS3_RTS_FAIL_CNT_M		0x000000f0
   1122 #define AR_TXS3_RTS_FAIL_CNT_S		4
   1123 #define AR_TXS3_DATA_FAIL_CNT_M		0x00000f00
   1124 #define AR_TXS3_DATA_FAIL_CNT_S		8
   1125 #define AR_TXS3_TX_DELIM_UNDERRUN	0x00010000
   1126 #define AR_TXS3_TX_DATA_UNDERRUN	0x00020000
   1127 /* Shortcut. */
   1128 #define AR_TXS3_UNDERRUN		\
   1129 	(AR_TXS3_FIFO_UNDERRUN |	\
   1130 	 AR_TXS3_TX_DELIM_UNDERRUN |	\
   1131 	 AR_TXS3_TX_DATA_UNDERRUN)
   1132 
   1133 /* Bits for ds_status8. */
   1134 #define AR_TXS8_DONE			0x00000001
   1135 #define AR_TXS8_FINAL_IDX_M		0x00600000
   1136 #define AR_TXS8_FINAL_IDX_S		21
   1137 
   1138 /*
   1139  * Rx status DMA descriptor.
   1140  */
   1141 struct ar_rx_status {
   1142 	uint32_t	ds_info;
   1143 	uint32_t	ds_status1;
   1144 	uint32_t	ds_status2;
   1145 	uint32_t	ds_status3;
   1146 	uint32_t	ds_status4;
   1147 	uint32_t	ds_status5;
   1148 	uint32_t	ds_status6;
   1149 	uint32_t	ds_status7;
   1150 	uint32_t	ds_status8;
   1151 	uint32_t	ds_status9;
   1152 	uint32_t	ds_status10;
   1153 	uint32_t	ds_status11;
   1154 } __packed  __attribute__((aligned(4)));
   1155 
   1156 /* Bits for ds_info. */
   1157 #define AR_RXI_CTRL_STAT		0x00004000
   1158 #define AR_RXI_DESC_TX			0x00008000
   1159 #define AR_RXI_DESC_ID_M		0xffff0000
   1160 #define AR_RXI_DESC_ID_S		16
   1161 
   1162 /* Bits for ds_status1. */
   1163 #define AR_RXS1_DONE			0x00000001
   1164 #define AR_RXS1_RATE_M			0x000003fc
   1165 #define AR_RXS1_RATE_S			2
   1166 
   1167 /* Bits for ds_status2. */
   1168 #define AR_RXS2_DATA_LEN_M		0x00000fff
   1169 #define AR_RXS2_DATA_LEN_S		0
   1170 
   1171 /* Bits for ds_status4. */
   1172 #define AR_RXS4_GI			0x00000001
   1173 #define AR_RXS4_ANTENNA_M		0xffffff00
   1174 #define AR_RXS4_ANTENNA_S		8
   1175 
   1176 /* Bits for ds_status5. */
   1177 #define AR_RXS5_RSSI_COMBINED_M		0xff000000
   1178 #define AR_RXS5_RSSI_COMBINED_S		24
   1179 
   1180 /* Bits for ds_status11. */
   1181 #define AR_RXS11_FRAME_OK		0x00000002
   1182 #define AR_RXS11_CRC_ERR		0x00000004
   1183 #define AR_RXS11_DECRYPT_CRC_ERR	0x00000008
   1184 #define AR_RXS11_PHY_ERR		0x00000010
   1185 #define AR_RXS11_PHY_ERR_CODE_M		0x0000ff00
   1186 #define AR_RXS11_PHY_ERR_CODE_S		8
   1187 #define AR_RXS11_MICHAEL_ERR		0x00000020
   1188 
   1189 /*
   1190  * AR9003 family common ROM structures.
   1191  */
   1192 #define AR_EEP_COMPRESS_NONE	0
   1193 #define AR_EEP_COMPRESS_LZMA	1
   1194 #define AR_EEP_COMPRESS_PAIRS	2
   1195 #define AR_EEP_COMPRESS_BLOCK	3
   1196 
   1197 struct ar_cal_target_power_leg {
   1198 	uint8_t	tPow2x[4];
   1199 } __packed;
   1200 
   1201 struct ar_cal_target_power_ht {
   1202 	uint8_t	tPow2x[14];
   1203 } __packed;
   1204 
   1205 #endif /* _ARN9003REG_H_ */
   1206