1206 lines
42 KiB
C
1206 lines
42 KiB
C
/* $NetBSD: arn9003reg.h,v 1.1 2013/03/30 02:53:01 christos Exp $ */
|
|
/* $OpenBSD: ar9003reg.h,v 1.8 2012/10/20 09:53:32 stsp Exp $ */
|
|
|
|
/*-
|
|
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
|
|
* Copyright (c) 2010 Atheros Communications Inc.
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef _ARN9003REG_H_
|
|
#define _ARN9003REG_H_
|
|
|
|
/*
|
|
* MAC registers.
|
|
*/
|
|
#define AR_ISR_S2_S 0x00d0
|
|
#define AR_ISR_S3_S 0x00d4
|
|
#define AR_ISR_S4_S 0x00d8
|
|
#define AR_ISR_S5_S 0x00dc
|
|
#define AR_GPIO_IN_OUT 0x4048
|
|
#define AR_GPIO_IN 0x404c
|
|
#define AR9300_GPIO_IN_VAL 0x0001FFFF
|
|
#define AR_GPIO_OE_OUT 0x4050
|
|
#define AR_GPIO_INTR_POL 0x4058
|
|
#define AR_GPIO_INPUT_EN_VAL 0x405c
|
|
#define AR_GPIO_INPUT_MUX1 0x4060
|
|
#define AR_GPIO_INPUT_MUX2 0x4064
|
|
#define AR_GPIO_OUTPUT_MUX(i) (0x4068 + (i) * 4)
|
|
#define AR_INPUT_STATE 0x4074
|
|
#define AR_EEPROM_STATUS_DATA 0x4084
|
|
#define AR_OBS 0x4088
|
|
#define AR_GPIO_PDPU 0x4090
|
|
#define AR_PCIE_MSI 0x40a4
|
|
#define AR_ENT_OTP 0x40d8
|
|
|
|
/* Bits for AR_ENT_OTP. */
|
|
#define AR_ENT_OTP_CHAIN2_DISABLE 0x00020000
|
|
#define AR_ENT_OTP_MPSD 0x00800000
|
|
|
|
/*
|
|
* PHY registers.
|
|
*/
|
|
#define AR_PHY_TIMING1 0x09800
|
|
#define AR_PHY_TIMING2 0x09804
|
|
#define AR_PHY_TIMING3 0x09808
|
|
#define AR_PHY_TIMING4 0x0980c
|
|
#define AR_PHY_TIMING5 0x09810
|
|
#define AR_PHY_TIMING6 0x09814
|
|
#define AR_PHY_TIMING11 0x09818
|
|
#define AR_PHY_SPUR_REG 0x0981c
|
|
#define AR_PHY_FIND_SIG_LOW 0x09820
|
|
#define AR_PHY_SFCORR 0x09824
|
|
#define AR_PHY_SFCORR_LOW 0x09828
|
|
#define AR_PHY_SFCORR_EXT 0x0982c
|
|
#define AR_PHY_EXT_CCA(i) (0x09830 + (i) * 0x1000)
|
|
#define AR_PHY_RADAR_0 0x09834
|
|
#define AR_PHY_RADAR_1 0x09838
|
|
#define AR_PHY_RADAR_EXT 0x0983c
|
|
#define AR_PHY_MULTICHAIN_CTRL 0x09880
|
|
#define AR_PHY_PERCHAIN_CSD 0x09884
|
|
#define AR_PHY_TX_CRC 0x098a0
|
|
#define AR_PHY_TST_DAC_CONST 0x098a4
|
|
#define AR_PHY_SPUR_REPORT_0 0x098a8
|
|
#define AR_PHY_TX_IQCAL_CONTROL_3 0x098b0
|
|
#define AR_PHY_IQ_ADC_MEAS_0_B(i) (0x098c0 + (i) * 0x1000)
|
|
#define AR_PHY_IQ_ADC_MEAS_1_B(i) (0x098c4 + (i) * 0x1000)
|
|
#define AR_PHY_IQ_ADC_MEAS_2_B(i) (0x098c8 + (i) * 0x1000)
|
|
#define AR_PHY_IQ_ADC_MEAS_3_B(i) (0x098cc + (i) * 0x1000)
|
|
#define AR_PHY_TX_PHASE_RAMP_0 0x098d0
|
|
#define AR_PHY_ADC_DC_GAIN_CORR(i) (0x098d4 + (i) * 0x1000)
|
|
#define AR_PHY_RX_IQCAL_CORR_B(i) (0x098dc + (i) * 0x1000)
|
|
#define AR_PHY_PAPRD_AM2AM 0x098e4
|
|
#define AR_PHY_PAPRD_AM2PM 0x098e8
|
|
#define AR_PHY_PAPRD_HT40 0x098ec
|
|
#define AR_PHY_PAPRD_CTRL0_B(i) (0x098f0 + (i) * 0x1000)
|
|
#define AR_PHY_PAPRD_CTRL1_B(i) (0x098f4 + (i) * 0x1000)
|
|
#define AR_PHY_PA_GAIN123_B(i) (0x098f8 + (i) * 0x1000)
|
|
#define AR_PHY_PAPRD_PRE_POST_SCALE_B0(i) \
|
|
(0x09900 + (i) * 4)
|
|
#define AR_PHY_PAPRD_MEM_TAB_B(i, j) (0x09920 + (i) * 0x1000 + (j) * 4)
|
|
#define AR_PHY_CHAN_INFO_TAB(i, j) (0x09b00 + (i) * 0x1000 + (j) * 4)
|
|
#define AR_PHY_TIMING_3A 0x09c00
|
|
#define AR_PHY_LDPC_CNTL1 0x09c04
|
|
#define AR_PHY_LDPC_CNTL2 0x09c08
|
|
#define AR_PHY_PILOT_SPUR_MASK 0x09c0c
|
|
#define AR_PHY_CHAN_SPUR_MASK 0x09c10
|
|
#define AR_PHY_SGI_DELTA 0x09c14
|
|
#define AR_PHY_ML_CNTL_1 0x09c18
|
|
#define AR_PHY_ML_CNTL_2 0x09c1c
|
|
#define AR_PHY_TST_ADC 0x09c20
|
|
#define AR_PHY_SETTLING 0x09e00
|
|
#define AR_PHY_RXGAIN(i) (0x09e04 + (i) * 0x1000)
|
|
#define AR_PHY_GAINS_MINOFF0 0x09e08
|
|
#define AR_PHY_DESIRED_SZ 0x09e0c
|
|
#define AR_PHY_FIND_SIG 0x09e10
|
|
#define AR_PHY_AGC 0x09e14
|
|
#define AR_PHY_EXT_ATTEN_CTL(i) (0x09e18 + (i) * 0x1000)
|
|
#define AR_PHY_CCA(i) (0x09e1c + (i) * 0x1000)
|
|
#define AR_PHY_CCA_CTRL(i) (0x09e20 + (i) * 0x1000)
|
|
#define AR_PHY_RESTART 0x09e24
|
|
#define AR_PHY_MC_GAIN_CTRL 0x09e28
|
|
#define AR_PHY_EXTCHN_PWRTHR1 0x09e2c
|
|
#define AR_PHY_EXT_CHN_WIN 0x09e30
|
|
#define AR_PHY_20_40_DET_THR 0x09e34
|
|
#define AR_PHY_RIFS_SRCH 0x09e38
|
|
#define AR_PHY_PEAK_DET_CTRL_1 0x09e3c
|
|
#define AR_PHY_PEAK_DET_CTRL_2 0x09e40
|
|
#define AR_PHY_RX_GAIN_BOUNDS_1 0x09e44
|
|
#define AR_PHY_RX_GAIN_BOUNDS_2 0x09e48
|
|
#define AR_PHY_RSSI(i) (0x09f80 + (i) * 0x1000)
|
|
#define AR_PHY_SPUR_CCK_REP0 0x09f84
|
|
#define AR_PHY_CCK_DETECT 0x09fc0
|
|
#define AR_PHY_DAG_CTRLCCK 0x09fc4
|
|
#define AR_PHY_IQCORR_CTRL_CCK 0x09fc8
|
|
#define AR_PHY_CCK_SPUR_MIT 0x09fcc
|
|
#define AR_PHY_RX_OCGAIN 0x0a000
|
|
#define AR_PHY_D2_CHIP_ID 0x0a200
|
|
#define AR_PHY_GEN_CTRL 0x0a204
|
|
#define AR_PHY_MODE 0x0a208
|
|
#define AR_PHY_ACTIVE 0x0a20c
|
|
#define AR_PHY_SPUR_MASK_A 0x0a220
|
|
#define AR_PHY_SPUR_MASK_B 0x0a224
|
|
#define AR_PHY_SPECTRAL_SCAN 0x0a228
|
|
#define AR_PHY_RADAR_BW_FILTER 0x0a22c
|
|
#define AR_PHY_SEARCH_START_DELAY 0x0a230
|
|
#define AR_PHY_MAX_RX_LEN 0x0a234
|
|
#define AR_PHY_FRAME_CTL 0x0a238
|
|
#define AR_PHY_RFBUS_REQ 0x0a23c
|
|
#define AR_PHY_RFBUS_GRANT 0x0a240
|
|
#define AR_PHY_RIFS 0x0a244
|
|
#define AR_PHY_RX_CLR_DELAY 0x0a250
|
|
#define AR_PHY_RX_DELAY 0x0a254
|
|
#define AR_PHY_XPA_TIMING_CTL 0x0a264
|
|
#define AR_PHY_MISC_PA_CTL 0x0a280
|
|
#define AR_PHY_SWITCH_CHAIN(i) (0x0a284 + (i) * 0x1000)
|
|
#define AR_PHY_SWITCH_COM 0x0a288
|
|
#define AR_PHY_SWITCH_COM_2 0x0a28c
|
|
#define AR_PHY_RX_CHAINMASK 0x0a2a0
|
|
#define AR_PHY_CAL_CHAINMASK 0x0a2c0
|
|
#define AR_PHY_AGC_CONTROL 0x0a2c4
|
|
#define AR_PHY_CALMODE 0x0a2c8
|
|
#define AR_PHY_FCAL_1 0x0a2cc
|
|
#define AR_PHY_FCAL_2_0 0x0a2d0
|
|
#define AR_PHY_DFT_TONE_CTL_0 0x0a2d4
|
|
#define AR_PHY_CL_CAL_CTL 0x0a2d8
|
|
#define AR_PHY_CL_TAB_0 0x0a300
|
|
#define AR_PHY_SYNTH_CONTROL 0x0a340
|
|
#define AR_PHY_ADDAC_CLK_SEL 0x0a344
|
|
#define AR_PHY_PLL_CTL 0x0a348
|
|
#define AR_PHY_ANALOG_SWAP 0x0a34c
|
|
#define AR_PHY_ADDAC_PARA_CTL 0x0a350
|
|
#define AR_PHY_XPA_CFG 0x0a358
|
|
#define AR_PHY_TEST 0x0a360
|
|
#define AR_PHY_TEST_CTL_STATUS 0x0a364
|
|
#define AR_PHY_TSTDAC 0x0a368
|
|
#define AR_PHY_CHAN_STATUS 0x0a36c
|
|
#define AR_PHY_CHAN_INFO_MEMORY 0x0a370
|
|
#define AR_PHY_CHNINFO_NOISEPWR 0x0a374
|
|
#define AR_PHY_CHNINFO_GAINDIFF 0x0a378
|
|
#define AR_PHY_CHNINFO_FINETIM 0x0a37c
|
|
#define AR_PHY_CHAN_INFO_GAIN_0 0x0a380
|
|
#define AR_PHY_SCRAMBLER_SEED 0x0a390
|
|
#define AR_PHY_CCK_TX_CTRL 0x0a394
|
|
#define AR_PHY_HEAVYCLIP_CTL 0x0a3a4
|
|
#define AR_PHY_HEAVYCLIP_20 0x0a3a8
|
|
#define AR_PHY_HEAVYCLIP_40 0x0a3ac
|
|
#define AR_PHY_ILLEGAL_TXRATE 0x0a3b0
|
|
#define AR_PHY_PWRTX_RATE1 0x0a3c0
|
|
#define AR_PHY_PWRTX_RATE2 0x0a3c4
|
|
#define AR_PHY_PWRTX_RATE3 0x0a3c8
|
|
#define AR_PHY_PWRTX_RATE4 0x0a3cc
|
|
#define AR_PHY_PWRTX_RATE5 0x0a3d0
|
|
#define AR_PHY_PWRTX_RATE6 0x0a3d4
|
|
#define AR_PHY_PWRTX_RATE7 0x0a3d8
|
|
#define AR_PHY_PWRTX_RATE8 0x0a3dc
|
|
#define AR_PHY_PWRTX_RATE10 0x0a3e4
|
|
#define AR_PHY_PWRTX_RATE11 0x0a3e8
|
|
#define AR_PHY_PWRTX_RATE12 0x0a3ec
|
|
#define AR_PHY_PWRTX_MAX 0x0a3f0
|
|
#define AR_PHY_POWER_TX_SUB 0x0a3f4
|
|
#define AR_PHY_TPC_1 0x0a3f8
|
|
#define AR_PHY_TPC_4_B(i) (0x0a404 + (i) * 0x1000)
|
|
#define AR_PHY_TPC_5_B(i) (0x0a408 + (i) * 0x1000)
|
|
#define AR_PHY_TPC_6_B(i) (0x0a40c + (i) * 0x1000)
|
|
#define AR_PHY_TPC_11_B(i) (0x0a420 + (i) * 0x1000)
|
|
#define AR_PHY_TPC_12 0x0a424
|
|
#define AR_PHY_TPC_18 0x0a43c
|
|
#define AR_PHY_TPC_19 0x0a440
|
|
#define AR_PHY_BB_THERM_ADC_1 0x0a448
|
|
#define AR_PHY_BB_THERM_ADC_4 0x0a454
|
|
#define AR_PHY_TX_FORCED_GAIN 0x0a458
|
|
#define AR_PHY_PDADC_TAB(i) (0x0a480 + (i) * 0x1000)
|
|
#define AR_PHY_TXGAIN_TABLE(i) (0x0a500 + (i) * 4)
|
|
#define AR_PHY_TX_IQCAL_CONTROL_1 0x0a648
|
|
#define AR_PHY_TX_IQCAL_START 0x0a640
|
|
#define AR_PHY_TX_IQCAL_CORR_COEFF_01_B(i) \
|
|
(0x0a650 + (i) * 0x1000)
|
|
#define AR_PHY_TX_IQCAL_STATUS_B(i) (0x0a68c + (i) * 0x1000)
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1 0x0a690
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL2 0x0a694
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3 0x0a698
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4 0x0a69c
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1 0x0a6a0
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2 0x0a6a4
|
|
#define AR_PHY_PAPRD_TRAINER_STAT3 0x0a6a8
|
|
#define AR_PHY_PANIC_WD_STATUS 0x0a7c0
|
|
#define AR_PHY_PANIC_WD_CTL_1 0x0a7c4
|
|
#define AR_PHY_PANIC_WD_CTL_2 0x0a7c8
|
|
#define AR_PHY_BT_CTL 0x0a7cc
|
|
#define AR_PHY_ONLY_WARMRESET 0x0a7d0
|
|
#define AR_PHY_ONLY_CTL 0x0a7d4
|
|
#define AR_PHY_ECO_CTRL 0x0a7dc
|
|
|
|
/*
|
|
* Analog registers.
|
|
*/
|
|
#define AR_IS_ANALOG_REG(reg) ((reg) >= 0x16000 && (reg) <= 0x17000)
|
|
#define AR_PHY_65NM_CH0_SYNTH4 0x1608c
|
|
#define AR_PHY_65NM_CH0_SYNTH7 0x16098
|
|
#define AR_PHY_65NM_CH0_BIAS1 0x160c0
|
|
#define AR_PHY_65NM_CH0_BIAS2 0x160c4
|
|
#define AR_PHY_65NM_CH0_BIAS4 0x160cc
|
|
#define AR_PHY_65NM_CH0_RXTX1 0x16100
|
|
#define AR_PHY_65NM_CH0_RXTX2 0x16104
|
|
#define AR_PHY_65NM_CH0_RXTX4 0x1610c
|
|
#define AR9485_PHY_65NM_CH0_TOP2 0x16284
|
|
#define AR_PHY_65NM_CH0_TOP 0x16288
|
|
#define AR_PHY_65NM_CH0_THERM 0x16290
|
|
#define AR9485_PHY_CH0_XTAL 0x16290
|
|
#define AR_PHY_65NM_CH1_RXTX1 0x16500
|
|
#define AR_PHY_65NM_CH1_RXTX2 0x16504
|
|
#define AR_PHY_65NM_CH2_RXTX1 0x16900
|
|
#define AR_PHY_65NM_CH2_RXTX2 0x16904
|
|
#define AR_PHY_PMU1 0x16c40
|
|
#define AR_PHY_PMU2 0x16c44
|
|
|
|
|
|
/* Bits for AR_PHY_TIMING2. */
|
|
#define AR_PHY_TIMING2_FORCE_PPM_VAL_M 0x00000fff
|
|
#define AR_PHY_TIMING2_FORCE_PPM_VAL_S 0
|
|
#define AR_PHY_TIMING2_USE_FORCE_PPM 0x00001000
|
|
|
|
/* Bits for AR_PHY_TIMING3. */
|
|
#define AR_PHY_TIMING3_DSC_EXP_M 0x0001e000
|
|
#define AR_PHY_TIMING3_DSC_EXP_S 13
|
|
#define AR_PHY_TIMING3_DSC_MAN_M 0xfffe0000
|
|
#define AR_PHY_TIMING3_DSC_MAN_S 17
|
|
|
|
/* Bits for AR_PHY_TIMING4. */
|
|
#define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX_M 0x0000f000
|
|
#define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX_S 12
|
|
#define AR_PHY_TIMING4_DO_CAL 0x00010000
|
|
#define AR_PHY_TIMING4_ENABLE_PILOT_MASK 0x10000000
|
|
#define AR_PHY_TIMING4_ENABLE_CHAN_MASK 0x20000000
|
|
#define AR_PHY_TIMING4_ENABLE_SPUR_FILTER 0x40000000
|
|
#define AR_PHY_TIMING4_ENABLE_SPUR_RSSI 0x80000000
|
|
|
|
/* Bits for AR_PHY_TIMING5. */
|
|
#define AR_PHY_TIMING5_CYCPWR_THR1_ENABLE 0x00000001
|
|
#define AR_PHY_TIMING5_CYCPWR_THR1_M 0x000000fe
|
|
#define AR_PHY_TIMING5_CYCPWR_THR1_S 1
|
|
#define AR_PHY_TIMING5_RSSI_THR1A_ENA 0x00008000
|
|
#define AR_PHY_TIMING5_CYCPWR_THR1A_M 0x007f0000
|
|
#define AR_PHY_TIMING5_CYCPWR_THR1A_S 16
|
|
#define AR_PHY_TIMING5_RSSI_THR1A_M 0x007f0000
|
|
#define AR_PHY_TIMING5_RSSI_THR1A_S 16
|
|
|
|
/* Bits for AR_PHY_TIMING11. */
|
|
#define AR_PHY_TIMING11_SPUR_DELTA_PHASE_M 0x000fffff
|
|
#define AR_PHY_TIMING11_SPUR_DELTA_PHASE_S 0
|
|
#define AR_PHY_TIMING11_SPUR_FREQ_SD_M 0x3ff00000
|
|
#define AR_PHY_TIMING11_SPUR_FREQ_SD_S 20
|
|
#define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_AGC 0x40000000
|
|
#define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_SELFCOR 0x80000000
|
|
|
|
/* Bits for AR_PHY_SPUR_REG. */
|
|
#define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_M 0x000000ff
|
|
#define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_S 0
|
|
#define AR_PHY_SPUR_REG_EN_VIT_SPUR_RSSI 0x00000100
|
|
#define AR_PHY_SPUR_REG_ENABLE_MASK_PPM 0x00020000
|
|
#define AR_PHY_SPUR_REG_MASK_RATE_CNTL_M 0x03fc0000
|
|
#define AR_PHY_SPUR_REG_MASK_RATE_CNTL_S 18
|
|
#define AR_PHY_SPUR_REG_ENABLE_NF_RSSI_SPUR_MIT 0x04000000
|
|
|
|
/* Bits for AR_PHY_FIND_SIG_LOW. */
|
|
#define AR_PHY_FIND_SIG_LOW_RELSTEP_M 0x0000001f
|
|
#define AR_PHY_FIND_SIG_LOW_RELSTEP_S 0
|
|
#define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW_M 0x00000fc0
|
|
#define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW_S 6
|
|
#define AR_PHY_FIND_SIG_LOW_FIRPWR_M 0x0007f000
|
|
#define AR_PHY_FIND_SIG_LOW_FIRPWR_S 12
|
|
|
|
/* Bits for AR_PHY_SFCORR. */
|
|
#define AR_PHY_SFCORR_M2COUNT_THR_M 0x0000001f
|
|
#define AR_PHY_SFCORR_M2COUNT_THR_S 0
|
|
#define AR_PHY_SFCORR_M1_THRESH_M 0x00fe0000
|
|
#define AR_PHY_SFCORR_M1_THRESH_S 17
|
|
#define AR_PHY_SFCORR_M2_THRESH_M 0x7f000000
|
|
#define AR_PHY_SFCORR_M2_THRESH_S 24
|
|
|
|
/* Bits for AR_PHY_SFCORR_LOW. */
|
|
#define AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW 0x00000001
|
|
#define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW_M 0x00003f00
|
|
#define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW_S 8
|
|
#define AR_PHY_SFCORR_LOW_M1_THRESH_LOW_M 0x001fc000
|
|
#define AR_PHY_SFCORR_LOW_M1_THRESH_LOW_S 14
|
|
#define AR_PHY_SFCORR_LOW_M2_THRESH_LOW_M 0x0fe00000
|
|
#define AR_PHY_SFCORR_LOW_M2_THRESH_LOW_S 21
|
|
|
|
/* Bits for AR_PHY_SFCORR_EXT. */
|
|
#define AR_PHY_SFCORR_EXT_M1_THRESH_M 0x0000007f
|
|
#define AR_PHY_SFCORR_EXT_M1_THRESH_S 0
|
|
#define AR_PHY_SFCORR_EXT_M2_THRESH_M 0x00003f80
|
|
#define AR_PHY_SFCORR_EXT_M2_THRESH_S 7
|
|
#define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_M 0x001fc000
|
|
#define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_S 14
|
|
#define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_M 0x0fe00000
|
|
#define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_S 21
|
|
#define AR_PHY_SFCORR_EXT_SPUR_SUBCHANNEL_SD 0x10000000
|
|
|
|
/* Bits for AR_PHY_RADAR_0. */
|
|
#define AR_PHY_RADAR_0_ENA 0x00000001
|
|
#define AR_PHY_RADAR_0_INBAND_M 0x0000003e
|
|
#define AR_PHY_RADAR_0_INBAND_S 1
|
|
#define AR_PHY_RADAR_0_PRSSI_M 0x00000fc0
|
|
#define AR_PHY_RADAR_0_PRSSI_S 6
|
|
#define AR_PHY_RADAR_0_HEIGHT_M 0x0003f000
|
|
#define AR_PHY_RADAR_0_HEIGHT_S 12
|
|
#define AR_PHY_RADAR_0_RRSSI_M 0x00fc0000
|
|
#define AR_PHY_RADAR_0_RRSSI_S 18
|
|
#define AR_PHY_RADAR_0_FIRPWR_M 0x7f000000
|
|
#define AR_PHY_RADAR_0_FIRPWR_S 24
|
|
#define AR_PHY_RADAR_0_FFT_ENA 0x80000000
|
|
|
|
/* Bits for AR_PHY_RADAR_1. */
|
|
#define AR_PHY_RADAR_1_MAXLEN_M 0x000000ff
|
|
#define AR_PHY_RADAR_1_MAXLEN_S 0
|
|
#define AR_PHY_RADAR_1_RELSTEP_THRESH_M 0x00001f00
|
|
#define AR_PHY_RADAR_1_RELSTEP_THRESH_S 8
|
|
#define AR_PHY_RADAR_1_RELSTEP_CHECK 0x00002000
|
|
#define AR_PHY_RADAR_1_MAX_RRSSI 0x00004000
|
|
#define AR_PHY_RADAR_1_BLOCK_CHECK 0x00008000
|
|
#define AR_PHY_RADAR_1_RELPWR_THRESH_M 0x003f0000
|
|
#define AR_PHY_RADAR_1_RELPWR_THRESH_S 16
|
|
#define AR_PHY_RADAR_1_USE_FIR128 0x00400000
|
|
#define AR_PHY_RADAR_1_RELPWR_ENA 0x00800000
|
|
|
|
/* Bits for AR_PHY_RADAR_EXT. */
|
|
#define AR_PHY_RADAR_EXT_ENA 0x00004000
|
|
#define AR_PHY_RADAR_DC_PWR_THRESH_M 0x007f8000
|
|
#define AR_PHY_RADAR_DC_PWR_THRESH_S 15
|
|
#define AR_PHY_RADAR_LB_DC_CAP_M 0x7f800000
|
|
#define AR_PHY_RADAR_LB_DC_CAP_S 23
|
|
|
|
/* Bits for AR_PHY_TX_IQCAL_CONTROL_3. */
|
|
#define AR_PHY_TX_IQCAL_CONTROL_3_IQCORR_EN 0x80000000
|
|
|
|
/* Bits for AR_PHY_RX_IQCAL_CORR_B(0). */
|
|
#define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF_M 0x0000007f
|
|
#define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF_S 0
|
|
#define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF_M 0x00003f80
|
|
#define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF_S 7
|
|
#define AR_PHY_RX_IQCAL_CORR_IQCORR_ENABLE 0x00004000
|
|
#define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF_M 0x003f8000
|
|
#define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF_S 15
|
|
#define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF_M 0x1fc00000
|
|
#define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF_S 22
|
|
#define AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN 0x20000000
|
|
|
|
/* Bits for AR_PHY_PAPRD_AM2AM. */
|
|
#define AR_PHY_PAPRD_AM2AM_MASK_M 0x01ffffff
|
|
#define AR_PHY_PAPRD_AM2AM_MASK_S 0
|
|
|
|
/* Bits for AR_PHY_PAPRD_AM2PM. */
|
|
#define AR_PHY_PAPRD_AM2PM_MASK_M 0x01ffffff
|
|
#define AR_PHY_PAPRD_AM2PM_MASK_S 0
|
|
|
|
/* Bits for AR_PHY_PAPRD_HT40. */
|
|
#define AR_PHY_PAPRD_HT40_MASK_M 0x01ffffff
|
|
#define AR_PHY_PAPRD_HT40_MASK_S 0
|
|
|
|
/* Bits for AR_PHY_PAPRD_CTRL0_B(i). */
|
|
#define AR_PHY_PAPRD_CTRL0_PAPRD_ENABLE 0x00000001
|
|
#define AR_PHY_PAPRD_CTRL0_USE_SINGLE_TABLE 0x00000002
|
|
#define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH_M 0xf8000000
|
|
#define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH_S 27
|
|
|
|
/* Bits for AR_PHY_PAPRD_CTRL1_B(i). */
|
|
#define AR_PHY_PAPRD_CTRL1_ADAPTIVE_SCALING_ENA 0x00000001
|
|
#define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2AM_ENA 0x00000002
|
|
#define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2PM_ENA 0x00000004
|
|
#define AR_PHY_PAPRD_CTRL1_POWER_AT_AM2AM_CAL_M 0x000001f8
|
|
#define AR_PHY_PAPRD_CTRL1_POWER_AT_AM2AM_CAL_S 3
|
|
#define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_M 0x0001fe00
|
|
#define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_S 9
|
|
#define AR_PHY_PAPRD_CTRL1_MAG_SCALE_FACT_M 0x0ffe0000
|
|
#define AR_PHY_PAPRD_CTRL1_MAG_SCALE_FACT_S 17
|
|
|
|
/* Bits for AR_PHY_PA_GAIN123_B(i). */
|
|
#define AR_PHY_PA_GAIN123_PA_GAIN1_M 0x000003ff
|
|
#define AR_PHY_PA_GAIN123_PA_GAIN1_S 0
|
|
|
|
/* Bits for AR_PHY_PAPRD_PRE_POST_SCALE_B0(i). */
|
|
#define AR_PHY_PAPRD_PRE_POST_SCALING_M 0x0003ffff
|
|
#define AR_PHY_PAPRD_PRE_POST_SCALING_S 0
|
|
|
|
/* Bits for AR_PHY_PAPRD_MEM_TAB_B(i). */
|
|
#define AR_PHY_PAPRD_ANGLE_M 0x000007ff
|
|
#define AR_PHY_PAPRD_ANGLE_S 0
|
|
#define AR_PHY_PAPRD_PA_IN_M 0x003ff800
|
|
#define AR_PHY_PAPRD_PA_IN_S 11
|
|
|
|
/* Bits for AR_PHY_PILOT_SPUR_MASK. */
|
|
#define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A_M 0x0000001f
|
|
#define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A_S 0
|
|
#define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A_M 0x00000fe0
|
|
#define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A_S 5
|
|
|
|
/* Bits for AR_PHY_CHAN_SPUR_MASK. */
|
|
#define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A_M 0x0000001f
|
|
#define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A_S 0
|
|
#define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A_M 0x00000fe0
|
|
#define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A_S 5
|
|
|
|
/* Bits for AR_PHY_SGI_DELTA. */
|
|
#define AR_PHY_SGI_DSC_EXP_M 0x0000000f
|
|
#define AR_PHY_SGI_DSC_EXP_S 0
|
|
#define AR_PHY_SGI_DSC_MAN_M 0x0007fff0
|
|
#define AR_PHY_SGI_DSC_MAN_S 4
|
|
|
|
/* Bits for AR_PHY_SETTLING. */
|
|
#define AR_PHY_SETTLING_SWITCH_M 0x00003f80
|
|
#define AR_PHY_SETTLING_SWITCH_S 7
|
|
|
|
/* Bits for AR_PHY_RXGAIN(i). */
|
|
#define AR_PHY_RXGAIN_TXRX_ATTEN_M 0x0003f000
|
|
#define AR_PHY_RXGAIN_TXRX_ATTEN_S 12
|
|
#define AR_PHY_RXGAIN_TXRX_RF_MAX_M 0x007c0000
|
|
#define AR_PHY_RXGAIN_TXRX_RF_MAX_S 18
|
|
|
|
/* Bits for AR_PHY_DESIRED_SZ. */
|
|
#define AR_PHY_DESIRED_SZ_ADC_M 0x000000ff
|
|
#define AR_PHY_DESIRED_SZ_ADC_S 0
|
|
#define AR_PHY_DESIRED_SZ_PGA_M 0x0000ff00
|
|
#define AR_PHY_DESIRED_SZ_PGA_S 8
|
|
#define AR_PHY_DESIRED_SZ_TOT_DES_M 0x0ff00000
|
|
#define AR_PHY_DESIRED_SZ_TOT_DES_S 20
|
|
|
|
/* Bits for AR_PHY_FIND_SIG. */
|
|
#define AR_PHY_FIND_SIG_RELSTEP_M 0x0000001f
|
|
#define AR_PHY_FIND_SIG_RELSTEP_S 0
|
|
#define AR_PHY_FIND_SIG_RELPWR_M 0x000007c0
|
|
#define AR_PHY_FIND_SIG_RELPWR_S 6
|
|
#define AR_PHY_FIND_SIG_FIRSTEP_M 0x0003f000
|
|
#define AR_PHY_FIND_SIG_FIRSTEP_S 12
|
|
#define AR_PHY_FIND_SIG_FIRPWR_M 0x03fc0000
|
|
#define AR_PHY_FIND_SIG_FIRPWR_S 18
|
|
|
|
/* Bits for AR_PHY_AGC. */
|
|
#define AR_PHY_AGC_COARSE_PWR_CONST_M 0x0000007f
|
|
#define AR_PHY_AGC_COARSE_PWR_CONST_S 0
|
|
#define AR_PHY_AGC_COARSE_LOW_M 0x00007f80
|
|
#define AR_PHY_AGC_COARSE_LOW_S 7
|
|
#define AR_PHY_AGC_COARSE_HIGH_M 0x003f8000
|
|
#define AR_PHY_AGC_COARSE_HIGH_S 15
|
|
|
|
/* Bits for AR_PHY_EXT_ATTEN_CTL(i). */
|
|
#define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN_M 0x0000001f
|
|
#define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN_S 0
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB_M 0x0000003f
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB_S 0
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB_M 0x00000fc0
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB_S 6
|
|
#define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN_M 0x00003c00
|
|
#define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN_S 10
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN_M 0x0001f000
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN_S 12
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN_M 0x003e0000
|
|
#define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN_S 17
|
|
#define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN_M 0x00fc0000
|
|
#define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN_S 18
|
|
|
|
/* Bits for AR_PHY_CCA(i). */
|
|
#define AR_PHY_MAXCCA_PWR_M 0x000001ff
|
|
#define AR_PHY_MAXCCA_PWR_S 0
|
|
#define AR_PHY_MINCCA_PWR_M 0x1ff00000
|
|
#define AR_PHY_MINCCA_PWR_S 20
|
|
|
|
/* Bits for AR_PHY_EXT_CCA(i). */
|
|
#define AR_PHY_EXT_MAXCCA_PWR_M 0x000001ff
|
|
#define AR_PHY_EXT_MAXCCA_PWR_S 0
|
|
#define AR_PHY_EXT_MINCCA_PWR_M 0x01ff0000
|
|
#define AR_PHY_EXT_MINCCA_PWR_S 16
|
|
|
|
/* Bits for AR_PHY_RESTART. */
|
|
#define AR_PHY_RESTART_ENA 0x00000001
|
|
#define AR_PHY_RESTART_DIV_GC_M 0x001c0000
|
|
#define AR_PHY_RESTART_DIV_GC_S 18
|
|
|
|
/* Bits for AR_PHY_MC_GAIN_CTRL. */
|
|
#define AR_PHY_MC_GAIN_CTRL_ENABLE_ANT_DIV 0x01000000
|
|
#define AR_PHY_MC_GAIN_CTRL_ANT_DIV_CTRL_ALL_M 0x7e000000
|
|
#define AR_PHY_MC_GAIN_CTRL_ANT_DIV_CTRL_ALL_S 25
|
|
|
|
/* Bits for AR_PHY_CCK_DETECT. */
|
|
#define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_M 0x0000003f
|
|
#define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_S 0
|
|
#define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME_M 0x00001fc0
|
|
#define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME_S 6
|
|
#define AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV 0x00002000
|
|
|
|
/* Bits for AR_PHY_DAG_CTRLCCK. */
|
|
#define AR_PHY_DAG_CTRLCCK_EN_RSSI_THR 0x00000200
|
|
#define AR_PHY_DAG_CTRLCCK_RSSI_THR_M 0x0001fc00
|
|
#define AR_PHY_DAG_CTRLCCK_RSSI_THR_S 10
|
|
|
|
/* Bits for AR_PHY_CCK_SPUR_MIT. */
|
|
#define AR_PHY_CCK_SPUR_MIT_USE_CCK_SPUR_MIT 0x00000001
|
|
#define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR_M 0x000001fe
|
|
#define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR_S 1
|
|
#define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ_M 0x1ffffe00
|
|
#define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ_S 9
|
|
#define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE_M 0x60000000
|
|
#define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE_S 29
|
|
|
|
/* Bits for AR_PHY_GEN_CTRL. */
|
|
#define AR_PHY_GC_TURBO_MODE 0x00000001
|
|
#define AR_PHY_GC_TURBO_SHORT 0x00000002
|
|
#define AR_PHY_GC_DYN2040_EN 0x00000004
|
|
#define AR_PHY_GC_DYN2040_PRI_ONLY 0x00000008
|
|
#define AR_PHY_GC_DYN2040_PRI_CH 0x00000010
|
|
#define AR_PHY_GC_DYN2040_EXT_CH 0x00000020
|
|
#define AR_PHY_GC_HT_EN 0x00000040
|
|
#define AR_PHY_GC_SHORT_GI_40 0x00000080
|
|
#define AR_PHY_GC_WALSH 0x00000100
|
|
#define AR_PHY_GC_SINGLE_HT_LTF1 0x00000200
|
|
#define AR_PHY_GC_GF_DETECT_EN 0x00000400
|
|
#define AR_PHY_GC_ENABLE_DAC_FIFO 0x00000800
|
|
|
|
/* Bits for AR_PHY_MODE. */
|
|
#define AR_PHY_MODE_OFDM 0x00000000
|
|
#define AR_PHY_MODE_CCK 0x00000001
|
|
#define AR_PHY_MODE_DYNAMIC 0x00000004
|
|
#define AR_PHY_MODE_HALF 0x00000020
|
|
#define AR_PHY_MODE_QUARTER 0x00000040
|
|
#define AR_PHY_MODE_DYN_CCK_DISABLE 0x00000100
|
|
#define AR_PHY_MODE_SVD_HALF 0x00000200
|
|
|
|
/* Bits for AR_PHY_ACTIVE. */
|
|
#define AR_PHY_ACTIVE_DIS 0x00000000
|
|
#define AR_PHY_ACTIVE_EN 0x00000001
|
|
|
|
/* Bits for AR_PHY_SPUR_MASK_A. */
|
|
#define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A_M 0x000003ff
|
|
#define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A_S 0
|
|
#define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_M 0x0001fc00
|
|
#define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_S 10
|
|
|
|
/* Bits for AR_PHY_SPECTRAL_SCAN. */
|
|
#define AR_PHY_SPECTRAL_SCAN_ENABLE 0x00000001
|
|
#define AR_PHY_SPECTRAL_SCAN_ACTIVE 0x00000002
|
|
#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_M 0x000000f0
|
|
#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_S 4
|
|
#define AR_PHY_SPECTRAL_SCAN_PERIOD_M 0x0000ff00
|
|
#define AR_PHY_SPECTRAL_SCAN_PERIOD_S 8
|
|
#define AR_PHY_SPECTRAL_SCAN_COUNT_M 0x00ff0000
|
|
#define AR_PHY_SPECTRAL_SCAN_COUNT_S 16
|
|
#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT 0x01000000
|
|
|
|
/* Bits for AR_PHY_RFBUS_REQ. */
|
|
#define AR_PHY_RFBUS_REQ_EN 0x00000001
|
|
|
|
/* Bits for AR_PHY_RFBUS_GRANT. */
|
|
#define AR_PHY_RFBUS_GRANT_EN 0x00000001
|
|
|
|
/* Bits for AR_PHY_RIFS. */
|
|
#define AR_PHY_RIFS_INIT_DELAY 0x3ff0000
|
|
|
|
/* Bits for AR_PHY_RX_DELAY. */
|
|
#define AR_PHY_RX_DELAY_DELAY_M 0x00003fff
|
|
#define AR_PHY_RX_DELAY_DELAY_S 0
|
|
|
|
/* Bits for AR_PHY_XPA_TIMING_CTL. */
|
|
#define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON_M 0x000000ff
|
|
#define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON_S 0
|
|
#define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON_M 0x0000ff00
|
|
#define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON_S 8
|
|
#define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF_M 0x00ff0000
|
|
#define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF_S 16
|
|
#define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF_M 0xff000000
|
|
#define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF_S 24
|
|
|
|
/* Bits for AR_PHY_SWITCH_CHAIN. */
|
|
#define AR_SWITCH_TABLE_ALL_M 0x00000fff
|
|
#define AR_SWITCH_TABLE_ALL_S 0
|
|
|
|
/* Bits for AR_PHY_SWITCH_COM. */
|
|
#define AR_SWITCH_TABLE_COM_ALL_M 0x0000ffff
|
|
#define AR_SWITCH_TABLE_COM_ALL_S 0
|
|
|
|
/* Bits for AR_SWITCH_TABLE_COM_2. */
|
|
#define AR_SWITCH_TABLE_COM_2_ALL_M 0x00ffffff
|
|
#define AR_SWITCH_TABLE_COM_2_ALL_S 0
|
|
|
|
/* Bits for AR_PHY_AGC_CONTROL. */
|
|
#define AR_PHY_AGC_CONTROL_CAL 0x00000001
|
|
#define AR_PHY_AGC_CONTROL_NF 0x00000002
|
|
#define AR_PHY_AGC_CONTROL_YCOK_MAX_M 0x000003c0
|
|
#define AR_PHY_AGC_CONTROL_YCOK_MAX_S 6
|
|
#define AR_PHY_AGC_CONTROL_OFFSET_CAL 0x00000800
|
|
#define AR_PHY_AGC_CONTROL_ENABLE_NF 0x00008000
|
|
#define AR_PHY_AGC_CONTROL_FLTR_CAL 0x00010000
|
|
#define AR_PHY_AGC_CONTROL_NO_UPDATE_NF 0x00020000
|
|
#define AR_PHY_AGC_CONTROL_EXT_NF_PWR_MEAS 0x00040000
|
|
#define AR_PHY_AGC_CONTROL_CLC_SUCCESS 0x00080000
|
|
|
|
/* Bits for AR_PHY_CALMODE. */
|
|
#define AR_PHY_CALMODE_IQ 0x00000000
|
|
#define AR_PHY_CALMODE_ADC_GAIN 0x00000001
|
|
#define AR_PHY_CALMODE_ADC_DC_PER 0x00000002
|
|
#define AR_PHY_CALMODE_ADC_DC_INIT 0x00000003
|
|
|
|
/* Bits for AR_PHY_FCAL_2_0. */
|
|
#define AR_PHY_FCAL20_CAP_STATUS_0_M 0x01f00000
|
|
#define AR_PHY_FCAL20_CAP_STATUS_0_S 20
|
|
|
|
/* Bits for AR_PHY_SYNTH_CONTROL. */
|
|
#define AR9380_BMODE 0x20000000
|
|
|
|
/* Bits for AR_PHY_ANALOG_SWAP. */
|
|
#define AR_PHY_SWAP_ALT_CHAIN 0x00000040
|
|
|
|
/* Bits for AR_PHY_ADDAC_PARA_CTL. */
|
|
#define AR_PHY_ADDAC_PARACTL_OFF_PWDADC 0x00008000
|
|
|
|
/* Bits for AR_PHY_TEST. */
|
|
#define AR_PHY_TEST_RFSILENT_BB 0x00002000
|
|
#define AR_PHY_TEST_BBB_OBS_SEL_M 0x00780000
|
|
#define AR_PHY_TEST_BBB_OBS_SEL_S 19
|
|
#define AR_PHY_TEST_RX_OBS_SEL_BIT5 0x00800000
|
|
#define AR_PHY_TEST_CHAIN_SEL_M 0xc0000000
|
|
#define AR_PHY_TEST_CHAIN_SEL_S 30
|
|
|
|
/* Bits for AR_PHY_TEST_CTL_STATUS. */
|
|
#define AR_PHY_TEST_CTL_TSTDAC_EN 0x00000001
|
|
#define AR_PHY_TEST_CTL_TX_OBS_SEL_M 0x0000001c
|
|
#define AR_PHY_TEST_CTL_TX_OBS_SEL_S 2
|
|
#define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL_M 0x00000060
|
|
#define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL_S 5
|
|
#define AR_PHY_TEST_CTL_TSTADC_EN 0x00000100
|
|
#define AR_PHY_TEST_CTL_RX_OBS_SEL_M 0x00003c00
|
|
#define AR_PHY_TEST_CTL_RX_OBS_SEL_S 10
|
|
|
|
/* Bits for AR_PHY_CHAN_INFO_MEMORY. */
|
|
#define AR_PHY_CHAN_INFO_MEMORY_CAPTURE_MASK 0x00000001
|
|
#define AR_PHY_CHAN_INFO_TAB_S2_READ 0x00000008
|
|
|
|
/* Bits for AR_PHY_CHAN_INFO_GAIN_0. */
|
|
#define AR_PHY_CHAN_INFO_GAIN_DIFF_PPM_MASK 0x00000fff
|
|
#define AR_PHY_CHAN_INFO_GAIN_DIFF_UPPER_LIMIT 320
|
|
|
|
/* Bits for AR_PHY_CCK_TX_CTRL. */
|
|
#define AR_PHY_CCK_TX_CTRL_JAPAN 0x00000010
|
|
|
|
/* Bits for AR_PHY_PWRTX_RATE5. */
|
|
#define AR_PHY_PWRTX_RATE5_POWERTXHT20_0_M 0x0000003f
|
|
#define AR_PHY_PWRTX_RATE5_POWERTXHT20_0_S 0
|
|
|
|
/* Bits for AR_PHY_PWRTX_MAX. */
|
|
#define AR_PHY_POWER_TX_RATE_MAX_TPC_ENABLE 0x00000040
|
|
|
|
/* Bits for AR_PHY_TPC_1. */
|
|
#define AR_PHY_TPC_1_FORCE_DAC_GAIN 0x00000001
|
|
#define AR_PHY_TPC_1_FORCED_DAC_GAIN_M 0x0000003e
|
|
#define AR_PHY_TPC_1_FORCED_DAC_GAIN_S 1
|
|
|
|
/* Bits for AR_PHY_TPC_5_B(i). */
|
|
#define AR_PHY_TPC_5_PD_GAIN_OVERLAP_M 0x0000000f
|
|
#define AR_PHY_TPC_5_PD_GAIN_OVERLAP_S 0
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_1_M 0x000003f0
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_1_S 4
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_2_M 0x0000fc00
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_2_S 10
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_3_M 0x003f0000
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_3_S 16
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_4_M 0x0fc00000
|
|
#define AR_PHY_TPC_5_PD_GAIN_BOUNDARY_4_S 22
|
|
|
|
/* Bits for AR_PHY_TPC_6_B(i). */
|
|
#define AR_PHY_TPC_6_ERROR_EST_MODE_M 0x03000000
|
|
#define AR_PHY_TPC_6_ERROR_EST_MODE_S 24
|
|
|
|
/* Bits for AR_PHY_TPC_11_B(i). */
|
|
#define AR_PHY_TPC_11_OLPC_GAIN_DELTA_M 0x00ff0000
|
|
#define AR_PHY_TPC_11_OLPC_GAIN_DELTA_S 16
|
|
#define AR_PHY_TPC_11_OLPC_GAIN_DELTA_PAL_ON_M 0xff000000
|
|
#define AR_PHY_TPC_11_OLPC_GAIN_DELTA_PAL_ON_S 24
|
|
|
|
/* Bits for AR_PHY_TPC_12. */
|
|
#define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5_M 0x3e000000
|
|
#define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5_S 25
|
|
|
|
/* Bits for AR_PHY_TPC_18. */
|
|
#define AR_PHY_TPC_18_THERM_CAL_M 0x000000ff
|
|
#define AR_PHY_TPC_18_THERM_CAL_S 0
|
|
#define AR_PHY_TPC_18_VOLT_CAL_M 0x0000ff00
|
|
#define AR_PHY_TPC_18_VOLT_CAL_S 8
|
|
|
|
/* Bits for AR_PHY_TPC_19. */
|
|
#define AR_PHY_TPC_19_ALPHA_THERM_M 0x000000ff
|
|
#define AR_PHY_TPC_19_ALPHA_THERM_S 0
|
|
#define AR_PHY_TPC_19_ALPHA_VOLT_M 0x001f0000
|
|
#define AR_PHY_TPC_19_ALPHA_VOLT_S 16
|
|
|
|
/* Bits for AR_PHY_BB_THERM_ADC_1. */
|
|
#define AR_PHY_BB_THERM_ADC_1_INIT_THERM_M 0x000000ff
|
|
#define AR_PHY_BB_THERM_ADC_1_INIT_THERM_S 0
|
|
|
|
/* Bits for AR_PHY_BB_THERM_ADC_4. */
|
|
#define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_M 0x000000ff
|
|
#define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_S 0
|
|
#define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_M 0x0000ff00
|
|
#define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_S 8
|
|
|
|
/* Bits for AR_PHY_TX_FORCED_GAIN. */
|
|
#define AR_PHY_TX_FORCED_GAIN_FORCE_TX_GAIN 0x00000001
|
|
#define AR_PHY_TX_FORCED_GAIN_TXBB1DBGAIN_M 0x0000000e
|
|
#define AR_PHY_TX_FORCED_GAIN_TXBB1DBGAIN_S 1
|
|
#define AR_PHY_TX_FORCED_GAIN_TXBB6DBGAIN_M 0x00000030
|
|
#define AR_PHY_TX_FORCED_GAIN_TXBB6DBGAIN_S 4
|
|
#define AR_PHY_TX_FORCED_GAIN_TXMXRGAIN_M 0x000003c0
|
|
#define AR_PHY_TX_FORCED_GAIN_TXMXRGAIN_S 6
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNA_M 0x00003c00
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNA_S 10
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNB_M 0x0003c000
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNB_S 14
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNC_M 0x003c0000
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGNC_S 18
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGND_M 0x00c00000
|
|
#define AR_PHY_TX_FORCED_GAIN_PADRVGND_S 22
|
|
#define AR_PHY_TX_FORCED_GAIN_ENABLE_PAL 0x01000000
|
|
|
|
/* Bits for AR_PHY_TXGAIN_TABLE(i). */
|
|
#define AR_PHY_TXGAIN_TXBB1DBGAIN_M 0x00000007
|
|
#define AR_PHY_TXGAIN_TXBB1DBGAIN_S 0
|
|
#define AR_PHY_TXGAIN_TXBB6DBGAIN_M 0x00000018
|
|
#define AR_PHY_TXGAIN_TXBB6DBGAIN_S 3
|
|
#define AR_PHY_TXGAIN_TXMXRGAIN_M 0x000001e0
|
|
#define AR_PHY_TXGAIN_TXMXRGAIN_S 5
|
|
#define AR_PHY_TXGAIN_PADRVGNA_M 0x00001e00
|
|
#define AR_PHY_TXGAIN_PADRVGNA_S 9
|
|
#define AR_PHY_TXGAIN_PADRVGNB_M 0x0001e000
|
|
#define AR_PHY_TXGAIN_PADRVGNB_S 13
|
|
#define AR_PHY_TXGAIN_PADRVGNC_M 0x001e0000
|
|
#define AR_PHY_TXGAIN_PADRVGNC_S 17
|
|
#define AR_PHY_TXGAIN_PADRVGND_M 0x00600000
|
|
#define AR_PHY_TXGAIN_PADRVGND_S 21
|
|
#define AR_PHY_TXGAIN_INDEX_M 0xff000000
|
|
#define AR_PHY_TXGAIN_INDEX_S 24
|
|
|
|
/* Bits for AR_PHY_TX_IQCAL_CONTROL_1. */
|
|
#define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_M 0x01fc0000
|
|
#define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S 18
|
|
|
|
/* Bits for AR_PHY_TX_IQCAL_START. */
|
|
#define AR_PHY_TX_IQCAL_START_DO_CAL 0x00000001
|
|
|
|
/* Bits for AR_PHY_TX_IQCAL_CORR_COEFF_01_B(i). */
|
|
#define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE_M 0x00003fff
|
|
#define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE_S 0
|
|
|
|
/* Bits for AR_PHY_TX_IQCAL_STATUS_B(i). */
|
|
#define AR_PHY_TX_IQCAL_STATUS_FAILED 0x00000001
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_CNTL1. */
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_TRAIN_ENABLE 0x00000001
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_AGC2_SETTLING_M 0x0000007e
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_AGC2_SETTLING_S 1
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_IQCORR_ENABLE 0x00000100
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_RX_BB_GAIN_FORCE 0x00000200
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_TX_GAIN_FORCE 0x00000400
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_LB_ENABLE 0x00000800
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_LB_SKIP_M 0x0003f000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL1_LB_SKIP_S 12
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_CNTL3. */
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_ADC_DESIRED_SIZE_M 0x0000003f
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_ADC_DESIRED_SIZE_S 0
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_QUICK_DROP_M 0x00000fc0
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_QUICK_DROP_S 6
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_MIN_LOOPBACK_DEL_M 0x0001f000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_MIN_LOOPBACK_DEL_S 12
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_NUM_CORR_STAGES_M 0x000e0000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_NUM_CORR_STAGES_S 17
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_COARSE_CORR_LEN_M 0x00f00000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_COARSE_CORR_LEN_S 20
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_FINE_CORR_LEN_M 0x0f000000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_FINE_CORR_LEN_S 24
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL3_BBTXMIX_DISABLE 0x20000000
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_CNTL4. */
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_MIN_CORR_M 0x00000fff
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_MIN_CORR_S 0
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_SAFETY_DELTA_M 0x0000f000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_SAFETY_DELTA_S 12
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_NUM_TRAIN_SAMPLES_M 0x03ff0000
|
|
#define AR_PHY_PAPRD_TRAINER_CNTL4_NUM_TRAIN_SAMPLES_S 16
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_STAT1. */
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_DONE 0x00000001
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_INCOMPLETE 0x00000002
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_CORR_ERR 0x00000004
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_TRAIN_ACTIVE 0x00000008
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_RX_GAIN_IDX_M 0x000001f0
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_RX_GAIN_IDX_S 4
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_AGC2_PWR_M 0x0001fe00
|
|
#define AR_PHY_PAPRD_TRAINER_STAT1_AGC2_PWR_S 9
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_STAT2. */
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_FINE_VAL_M 0x0000ffff
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_FINE_VAL_S 0
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_COARSE_IDX_M 0x001f0000
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_COARSE_IDX_S 16
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_FINE_IDX_M 0x00600000
|
|
#define AR_PHY_PAPRD_TRAINER_STAT2_FINE_IDX_S 21
|
|
|
|
/* Bits for AR_PHY_PAPRD_TRAINER_STAT3. */
|
|
#define AR_PHY_PAPRD_TRAINER_STAT3_TRAIN_SAMPLES_CNT_M 0x000fffff
|
|
#define AR_PHY_PAPRD_TRAINER_STAT3_TRAIN_SAMPLES_CNT_S 0
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_SYNTH4. */
|
|
#define AR_PHY_SYNTH4_LONG_SHIFT_SELECT 0x00000002
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_SYNTH7. */
|
|
#define AR9380_FRACMODE 0x40000000
|
|
#define AR9380_LOAD_SYNTH 0x80000000
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_BIAS1. */
|
|
#define AR_PHY_65NM_CH0_BIAS1_0_M 0x000001c0
|
|
#define AR_PHY_65NM_CH0_BIAS1_0_S 6
|
|
#define AR_PHY_65NM_CH0_BIAS1_1_M 0x00000e00
|
|
#define AR_PHY_65NM_CH0_BIAS1_1_S 9
|
|
#define AR_PHY_65NM_CH0_BIAS1_2_M 0x00007000
|
|
#define AR_PHY_65NM_CH0_BIAS1_2_S 12
|
|
#define AR_PHY_65NM_CH0_BIAS1_3_M 0x00038000
|
|
#define AR_PHY_65NM_CH0_BIAS1_3_S 15
|
|
#define AR_PHY_65NM_CH0_BIAS1_4_M 0x001c0000
|
|
#define AR_PHY_65NM_CH0_BIAS1_4_S 18
|
|
#define AR_PHY_65NM_CH0_BIAS1_5_M 0x00e00000
|
|
#define AR_PHY_65NM_CH0_BIAS1_5_S 21
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_BIAS2. */
|
|
#define AR_PHY_65NM_CH0_BIAS2_0_M 0x000000e0
|
|
#define AR_PHY_65NM_CH0_BIAS2_0_S 5
|
|
#define AR_PHY_65NM_CH0_BIAS2_1_M 0x00000700
|
|
#define AR_PHY_65NM_CH0_BIAS2_1_S 8
|
|
#define AR_PHY_65NM_CH0_BIAS2_2_M 0x00003800
|
|
#define AR_PHY_65NM_CH0_BIAS2_2_S 11
|
|
#define AR_PHY_65NM_CH0_BIAS2_3_M 0x0001c000
|
|
#define AR_PHY_65NM_CH0_BIAS2_3_S 14
|
|
#define AR_PHY_65NM_CH0_BIAS2_4_M 0x000e0000
|
|
#define AR_PHY_65NM_CH0_BIAS2_4_S 17
|
|
#define AR_PHY_65NM_CH0_BIAS2_5_M 0x00700000
|
|
#define AR_PHY_65NM_CH0_BIAS2_5_S 20
|
|
#define AR_PHY_65NM_CH0_BIAS2_6_M 0x03800000
|
|
#define AR_PHY_65NM_CH0_BIAS2_6_S 23
|
|
#define AR_PHY_65NM_CH0_BIAS2_7_M 0x1c000000
|
|
#define AR_PHY_65NM_CH0_BIAS2_7_S 26
|
|
#define AR_PHY_65NM_CH0_BIAS2_8_M 0xe0000000
|
|
#define AR_PHY_65NM_CH0_BIAS2_8_S 29
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_BIAS4. */
|
|
#define AR_PHY_65NM_CH0_BIAS4_0_M 0x03800000
|
|
#define AR_PHY_65NM_CH0_BIAS4_0_S 23
|
|
#define AR_PHY_65NM_CH0_BIAS4_1_M 0x1c000000
|
|
#define AR_PHY_65NM_CH0_BIAS4_1_S 26
|
|
#define AR_PHY_65NM_CH0_BIAS4_2_M 0xe0000000
|
|
#define AR_PHY_65NM_CH0_BIAS4_2_S 29
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_RXTX4. */
|
|
#define AR_PHY_65NM_CH0_RXTX4_THERM_ON 0x10000000
|
|
|
|
/* Bits for AR9485_PHY_65NM_CH0_TOP2. */
|
|
#define AR9485_PHY_65NM_CH0_TOP2_XPABIASLVL_M 0x0000f000
|
|
#define AR9485_PHY_65NM_CH0_TOP2_XPABIASLVL_S 12
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_TOP. */
|
|
#define AR_PHY_65NM_CH0_TOP_XPABIASLVL_M 0x00000300
|
|
#define AR_PHY_65NM_CH0_TOP_XPABIASLVL_S 8
|
|
|
|
/* Bits for AR_PHY_65NM_CH0_THERM. */
|
|
#define AR_PHY_65NM_CH0_THERM_XPABIASLVL_MSB_M 0x00000003
|
|
#define AR_PHY_65NM_CH0_THERM_XPABIASLVL_MSB_S 0
|
|
#define AR_PHY_65NM_CH0_THERM_XPASHORT2GND 0x00000004
|
|
#define AR_PHY_65NM_CH0_THERM_SAR_ADC_OUT_M 0x0000ff00
|
|
#define AR_PHY_65NM_CH0_THERM_SAR_ADC_OUT_S 8
|
|
#define AR_PHY_65NM_CH0_THERM_START 0x20000000
|
|
#define AR_PHY_65NM_CH0_THERM_LOCAL 0x80000000
|
|
|
|
/* Bits for AR9485_PHY_CH0_XTAL. */
|
|
#define AR9485_PHY_CH0_XTAL_CAPINDAC_M 0x7f000000
|
|
#define AR9485_PHY_CH0_XTAL_CAPINDAC_S 24
|
|
#define AR9485_PHY_CH0_XTAL_CAPOUTDAC_M 0x00fe0000
|
|
#define AR9485_PHY_CH0_XTAL_CAPOUTDAC_S 17
|
|
|
|
/* Bits for AR_PHY_PMU1. */
|
|
#define AR_PHY_PMU1_PWD 0x00000001
|
|
|
|
/* Bits for AR_PHY_PMU2. */
|
|
#define AR_PHY_PMU2_PGM 0x00200000
|
|
|
|
/*
|
|
* OTP registers.
|
|
*/
|
|
#define AR_OTP_BASE(i) (0x14000 + (i) * 4)
|
|
#define AR_OTP_STATUS 0x15f18
|
|
#define AR_OTP_READ_DATA 0x15f1c
|
|
|
|
/* Bits for AR_OTP_STATUS. */
|
|
#define AR_OTP_STATUS_TYPE_M 0x00000007
|
|
#define AR_OTP_STATUS_TYPE_S 0
|
|
#define AR_OTP_STATUS_SM_BUSY 0x1
|
|
#define AR_OTP_STATUS_ACCESS_BUSY 0x2
|
|
#define AR_OTP_STATUS_VALID 0x4
|
|
|
|
|
|
#define AR9003_MAX_CHAINS 3
|
|
|
|
#define AR9003_TX_QDEPTH 8
|
|
#define AR9003_RX_LP_QDEPTH 128
|
|
#define AR9003_RX_HP_QDEPTH 16
|
|
|
|
#define AR9003_NTXSTATUS 64
|
|
|
|
/* Maximum number of DMA segments per Tx descriptor. */
|
|
#define AR9003_MAX_SCATTER 4
|
|
|
|
/*
|
|
* Tx DMA descriptor.
|
|
*/
|
|
struct ar_tx_desc {
|
|
uint32_t ds_info;
|
|
uint32_t ds_link;
|
|
struct {
|
|
uint32_t ds_data;
|
|
uint32_t ds_ctl;
|
|
} __packed ds_segs[AR9003_MAX_SCATTER];
|
|
uint32_t ds_ctl10;
|
|
uint32_t ds_ctl11;
|
|
uint32_t ds_ctl12;
|
|
uint32_t ds_ctl13;
|
|
uint32_t ds_ctl14;
|
|
uint32_t ds_ctl15;
|
|
uint32_t ds_ctl16;
|
|
uint32_t ds_ctl17;
|
|
uint32_t ds_ctl18;
|
|
uint32_t ds_ctl19;
|
|
uint32_t ds_ctl20;
|
|
uint32_t ds_ctl21;
|
|
uint32_t ds_ctl22;
|
|
/*
|
|
* Padding to make Tx descriptors 128 bytes such that they will
|
|
* not cross a 4KB boundary.
|
|
*/
|
|
uint32_t pad[9];
|
|
} __packed __attribute__((aligned(4)));
|
|
|
|
/* Bits for ds_info. */
|
|
#define AR_TXI_DESC_NDWORDS_M 0x000000ff
|
|
#define AR_TXI_DESC_NDWORDS_S 0
|
|
#define AR_TXI_QCU_NUM_M 0x00000f00
|
|
#define AR_TXI_QCU_NUM_S 8
|
|
#define AR_TXI_CTRL_STAT 0x00004000
|
|
#define AR_TXI_DESC_TX 0x00008000
|
|
#define AR_TXI_DESC_ID_M 0xffff0000
|
|
#define AR_TXI_DESC_ID_S 16
|
|
#define AR_VENDOR_ATHEROS 0x168c /* NB: PCI_VENDOR_ATHEROS */
|
|
|
|
/* Bits for ds_ctl. */
|
|
#define AR_TXC_BUF_LEN_M 0x0fff0000
|
|
#define AR_TXC_BUF_LEN_S 16
|
|
|
|
/* Bits for ds_ctl10. */
|
|
#define AR_TXC10_PTR_CHK_SUM_M 0x0000ffff
|
|
#define AR_TXC10_PTR_CHK_SUM_S 0
|
|
|
|
/* Bits for ds_ctl11. */
|
|
#define AR_TXC11_FRAME_LEN_M 0x00000fff
|
|
#define AR_TXC11_FRAME_LEN_S 0
|
|
#define AR_TXC11_XMIT_POWER_M 0x003f0000
|
|
#define AR_TXC11_XMIT_POWER_S 16
|
|
#define AR_TXC11_RTS_ENABLE 0x00400000
|
|
#define AR_TXC11_CLR_DEST_MASK 0x01000000
|
|
#define AR_TXC11_DEST_IDX_VALID 0x40000000
|
|
#define AR_TXC11_CTS_ENABLE 0x80000000
|
|
|
|
/* Bits for ds_ctl12. */
|
|
#define AR_TXC12_PAPRD_CHAIN_MASK_M 0x00000e00
|
|
#define AR_TXC12_PAPRD_CHAIN_MASK_S 9
|
|
#define AR_TXC12_DEST_IDX_M 0x000fe000
|
|
#define AR_TXC12_DEST_IDX_S 13
|
|
#define AR_TXC12_FRAME_TYPE_M 0x00f00000
|
|
#define AR_TXC12_FRAME_TYPE_S 20
|
|
#define AR_FRAME_TYPE_NORMAL 0
|
|
#define AR_FRAME_TYPE_ATIM 1
|
|
#define AR_FRAME_TYPE_PSPOLL 2
|
|
#define AR_FRAME_TYPE_BEACON 3
|
|
#define AR_FRAME_TYPE_PROBE_RESP 4
|
|
#define AR_TXC12_NO_ACK 0x01000000
|
|
|
|
/* Bits for ds_ctl13. */
|
|
#define AR_TXC13_BURST_DUR_M 0x00007fff
|
|
#define AR_TXC13_BURST_DUR_S 0
|
|
#define AR_TXC13_DUR_UPDATE_ENA 0x00008000
|
|
#define AR_TXC13_XMIT_DATA_TRIES0_M 0x000f0000
|
|
#define AR_TXC13_XMIT_DATA_TRIES0_S 16
|
|
#define AR_TXC13_XMIT_DATA_TRIES1_M 0x00f00000
|
|
#define AR_TXC13_XMIT_DATA_TRIES1_S 20
|
|
#define AR_TXC13_XMIT_DATA_TRIES2_M 0x0f000000
|
|
#define AR_TXC13_XMIT_DATA_TRIES2_S 24
|
|
#define AR_TXC13_XMIT_DATA_TRIES3_M 0xf0000000
|
|
#define AR_TXC13_XMIT_DATA_TRIES3_S 28
|
|
|
|
/* Bits for ds_ctl14. */
|
|
#define AR_TXC14_XMIT_RATE0_M 0x000000ff
|
|
#define AR_TXC14_XMIT_RATE0_S 0
|
|
#define AR_TXC14_XMIT_RATE1_M 0x0000ff00
|
|
#define AR_TXC14_XMIT_RATE1_S 8
|
|
#define AR_TXC14_XMIT_RATE2_M 0x00ff0000
|
|
#define AR_TXC14_XMIT_RATE2_S 16
|
|
#define AR_TXC14_XMIT_RATE3_M 0xff000000
|
|
#define AR_TXC14_XMIT_RATE3_S 24
|
|
|
|
/* Bits for ds_ctl15. */
|
|
#define AR_TXC15_PACKET_DUR0_M 0x00007fff
|
|
#define AR_TXC15_PACKET_DUR0_S 0
|
|
#define AR_TXC15_RTSCTS_QUAL0 0x00008000
|
|
#define AR_TXC15_PACKET_DUR1_M 0x7fff0000
|
|
#define AR_TXC15_PACKET_DUR1_S 16
|
|
#define AR_TXC15_RTSCTS_QUAL1 0x80000000
|
|
/* Shortcut. */
|
|
#define AR_TXC15_RTSCTS_QUAL01 \
|
|
(AR_TXC15_RTSCTS_QUAL0 | AR_TXC15_RTSCTS_QUAL1)
|
|
|
|
/* Bits for ds_ctl16. */
|
|
#define AR_TXC16_PACKET_DUR2_M 0x00007fff
|
|
#define AR_TXC16_PACKET_DUR2_S 0
|
|
#define AR_TXC16_RTSCTS_QUAL2 0x00008000
|
|
#define AR_TXC16_PACKET_DUR3_M 0x7fff0000
|
|
#define AR_TXC16_PACKET_DUR3_S 16
|
|
#define AR_TXC16_RTSCTS_QUAL3 0x80000000
|
|
/* Shortcut. */
|
|
#define AR_TXC16_RTSCTS_QUAL23 \
|
|
(AR_TXC16_RTSCTS_QUAL2 | AR_TXC16_RTSCTS_QUAL3)
|
|
|
|
/* Bits for ds_ctl17. */
|
|
#define AR_TXC17_ENCR_TYPE_M 0x0c000000
|
|
#define AR_TXC17_ENCR_TYPE_S 26
|
|
#define AR_ENCR_TYPE_CLEAR 0
|
|
#define AR_ENCR_TYPE_WEP 1
|
|
#define AR_ENCR_TYPE_AES 2
|
|
#define AR_ENCR_TYPE_TKIP 3
|
|
|
|
/* Bits for ds_ctl18. */
|
|
#define AR_TXC18_2040_0 0x00000001
|
|
#define AR_TXC18_GI0 0x00000002
|
|
#define AR_TXC18_CHAIN_SEL0_M 0x0000001c
|
|
#define AR_TXC18_CHAIN_SEL0_S 2
|
|
#define AR_TXC18_2040_1 0x00000020
|
|
#define AR_TXC18_GI1 0x00000040
|
|
#define AR_TXC18_CHAIN_SEL1_M 0x00000380
|
|
#define AR_TXC18_CHAIN_SEL1_S 7
|
|
#define AR_TXC18_2040_2 0x00000400
|
|
#define AR_TXC18_GI2 0x00000800
|
|
#define AR_TXC18_CHAIN_SEL2_M 0x00007000
|
|
#define AR_TXC18_CHAIN_SEL2_S 12
|
|
#define AR_TXC18_2040_3 0x00008000
|
|
#define AR_TXC18_GI3 0x00010000
|
|
#define AR_TXC18_CHAIN_SEL3_M 0x000e0000
|
|
#define AR_TXC18_CHAIN_SEL3_S 17
|
|
#define AR_TXC18_RTSCTS_RATE_M 0x0ff00000
|
|
#define AR_TXC18_RTSCTS_RATE_S 20
|
|
/* Shortcuts. */
|
|
#define AR_TXC18_2040_0123 \
|
|
(AR_TXC18_2040_0 | AR_TXC18_2040_1 | AR_TXC18_2040_2 | AR_TXC18_2040_3)
|
|
#define AR_TXC18_GI0123 \
|
|
(AR_TXC18_GI0 | AR_TXC18_GI1 | AR_TXC18_GI2 | AR_TXC18_GI3)
|
|
|
|
/* Bits for ds_ctl19. */
|
|
#define AR_TXC19_NOT_SOUNDING 0x20000000
|
|
|
|
/*
|
|
* Tx status DMA descriptor.
|
|
*/
|
|
struct ar_tx_status {
|
|
uint32_t ds_info;
|
|
uint32_t ds_status1;
|
|
uint32_t ds_status2;
|
|
uint32_t ds_status3;
|
|
uint32_t ds_status4;
|
|
uint32_t ds_status5;
|
|
uint32_t ds_status6;
|
|
uint32_t ds_status7;
|
|
uint32_t ds_status8;
|
|
} __packed __attribute__((aligned(4)));
|
|
|
|
/* Bits for ds_status3. */
|
|
#define AR_TXS3_EXCESSIVE_RETRIES 0x00000002
|
|
#define AR_TXS3_FIFO_UNDERRUN 0x00000004
|
|
#define AR_TXS3_RTS_FAIL_CNT_M 0x000000f0
|
|
#define AR_TXS3_RTS_FAIL_CNT_S 4
|
|
#define AR_TXS3_DATA_FAIL_CNT_M 0x00000f00
|
|
#define AR_TXS3_DATA_FAIL_CNT_S 8
|
|
#define AR_TXS3_TX_DELIM_UNDERRUN 0x00010000
|
|
#define AR_TXS3_TX_DATA_UNDERRUN 0x00020000
|
|
/* Shortcut. */
|
|
#define AR_TXS3_UNDERRUN \
|
|
(AR_TXS3_FIFO_UNDERRUN | \
|
|
AR_TXS3_TX_DELIM_UNDERRUN | \
|
|
AR_TXS3_TX_DATA_UNDERRUN)
|
|
|
|
/* Bits for ds_status8. */
|
|
#define AR_TXS8_DONE 0x00000001
|
|
#define AR_TXS8_FINAL_IDX_M 0x00600000
|
|
#define AR_TXS8_FINAL_IDX_S 21
|
|
|
|
/*
|
|
* Rx status DMA descriptor.
|
|
*/
|
|
struct ar_rx_status {
|
|
uint32_t ds_info;
|
|
uint32_t ds_status1;
|
|
uint32_t ds_status2;
|
|
uint32_t ds_status3;
|
|
uint32_t ds_status4;
|
|
uint32_t ds_status5;
|
|
uint32_t ds_status6;
|
|
uint32_t ds_status7;
|
|
uint32_t ds_status8;
|
|
uint32_t ds_status9;
|
|
uint32_t ds_status10;
|
|
uint32_t ds_status11;
|
|
} __packed __attribute__((aligned(4)));
|
|
|
|
/* Bits for ds_info. */
|
|
#define AR_RXI_CTRL_STAT 0x00004000
|
|
#define AR_RXI_DESC_TX 0x00008000
|
|
#define AR_RXI_DESC_ID_M 0xffff0000
|
|
#define AR_RXI_DESC_ID_S 16
|
|
|
|
/* Bits for ds_status1. */
|
|
#define AR_RXS1_DONE 0x00000001
|
|
#define AR_RXS1_RATE_M 0x000003fc
|
|
#define AR_RXS1_RATE_S 2
|
|
|
|
/* Bits for ds_status2. */
|
|
#define AR_RXS2_DATA_LEN_M 0x00000fff
|
|
#define AR_RXS2_DATA_LEN_S 0
|
|
|
|
/* Bits for ds_status4. */
|
|
#define AR_RXS4_GI 0x00000001
|
|
#define AR_RXS4_ANTENNA_M 0xffffff00
|
|
#define AR_RXS4_ANTENNA_S 8
|
|
|
|
/* Bits for ds_status5. */
|
|
#define AR_RXS5_RSSI_COMBINED_M 0xff000000
|
|
#define AR_RXS5_RSSI_COMBINED_S 24
|
|
|
|
/* Bits for ds_status11. */
|
|
#define AR_RXS11_FRAME_OK 0x00000002
|
|
#define AR_RXS11_CRC_ERR 0x00000004
|
|
#define AR_RXS11_DECRYPT_CRC_ERR 0x00000008
|
|
#define AR_RXS11_PHY_ERR 0x00000010
|
|
#define AR_RXS11_PHY_ERR_CODE_M 0x0000ff00
|
|
#define AR_RXS11_PHY_ERR_CODE_S 8
|
|
#define AR_RXS11_MICHAEL_ERR 0x00000020
|
|
|
|
/*
|
|
* AR9003 family common ROM structures.
|
|
*/
|
|
#define AR_EEP_COMPRESS_NONE 0
|
|
#define AR_EEP_COMPRESS_LZMA 1
|
|
#define AR_EEP_COMPRESS_PAIRS 2
|
|
#define AR_EEP_COMPRESS_BLOCK 3
|
|
|
|
struct ar_cal_target_power_leg {
|
|
uint8_t tPow2x[4];
|
|
} __packed;
|
|
|
|
struct ar_cal_target_power_ht {
|
|
uint8_t tPow2x[14];
|
|
} __packed;
|
|
|
|
#endif /* _ARN9003REG_H_ */
|