1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (c) 2010-2011 Atheros Communications, Inc. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Permission to use, copy, modify, and/or distribute this software for any 5*4882a593Smuzhiyun * purpose with or without fee is hereby granted, provided that the above 6*4882a593Smuzhiyun * copyright notice and this permission notice appear in all copies. 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*4882a593Smuzhiyun * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*4882a593Smuzhiyun * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*4882a593Smuzhiyun * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*4882a593Smuzhiyun * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*4882a593Smuzhiyun * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*4882a593Smuzhiyun * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*4882a593Smuzhiyun */ 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #ifndef AR9003_PHY_H 18*4882a593Smuzhiyun #define AR9003_PHY_H 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /* 21*4882a593Smuzhiyun * Channel Register Map 22*4882a593Smuzhiyun */ 23*4882a593Smuzhiyun #define AR_CHAN_BASE 0x9800 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #define AR_PHY_TIMING1 (AR_CHAN_BASE + 0x0) 26*4882a593Smuzhiyun #define AR_PHY_TIMING2 (AR_CHAN_BASE + 0x4) 27*4882a593Smuzhiyun #define AR_PHY_TIMING3 (AR_CHAN_BASE + 0x8) 28*4882a593Smuzhiyun #define AR_PHY_TIMING4 (AR_CHAN_BASE + 0xc) 29*4882a593Smuzhiyun #define AR_PHY_TIMING5 (AR_CHAN_BASE + 0x10) 30*4882a593Smuzhiyun #define AR_PHY_TIMING6 (AR_CHAN_BASE + 0x14) 31*4882a593Smuzhiyun #define AR_PHY_TIMING11 (AR_CHAN_BASE + 0x18) 32*4882a593Smuzhiyun #define AR_PHY_SPUR_REG (AR_CHAN_BASE + 0x1c) 33*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_B0 (AR_CHAN_BASE + 0xdc) 34*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_3 (AR_CHAN_BASE + 0xb0) 35*4882a593Smuzhiyun #define AR_PHY_TIMING_CONTROL4_DO_GAIN_DC_IQ_CAL_SHIFT 16 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #define AR_PHY_TIMING11_SPUR_FREQ_SD 0x3FF00000 38*4882a593Smuzhiyun #define AR_PHY_TIMING11_SPUR_FREQ_SD_S 20 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #define AR_PHY_TIMING11_SPUR_DELTA_PHASE 0x000FFFFF 41*4882a593Smuzhiyun #define AR_PHY_TIMING11_SPUR_DELTA_PHASE_S 0 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_AGC 0x40000000 44*4882a593Smuzhiyun #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_AGC_S 30 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_SELFCOR 0x80000000 47*4882a593Smuzhiyun #define AR_PHY_TIMING11_USE_SPUR_FILTER_IN_SELFCOR_S 31 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_ENABLE_NF_RSSI_SPUR_MIT 0x4000000 50*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_ENABLE_NF_RSSI_SPUR_MIT_S 26 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_ENABLE_MASK_PPM 0x20000 /* bins move with freq offset */ 53*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_ENABLE_MASK_PPM_S 17 54*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH 0x000000FF 55*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_S 0 56*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_EN_VIT_SPUR_RSSI 0x00000100 57*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_EN_VIT_SPUR_RSSI_S 8 58*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_MASK_RATE_CNTL 0x03FC0000 59*4882a593Smuzhiyun #define AR_PHY_SPUR_REG_MASK_RATE_CNTL_S 18 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN 0x20000000 62*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN_S 29 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_3_IQCORR_EN 0x80000000 65*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_3_IQCORR_EN_S 31 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW (AR_CHAN_BASE + 0x20) 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun #define AR_PHY_SFCORR (AR_CHAN_BASE + 0x24) 70*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW (AR_CHAN_BASE + 0x28) 71*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT (AR_CHAN_BASE + 0x2c) 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #define AR_PHY_EXT_CCA (AR_CHAN_BASE + 0x30) 74*4882a593Smuzhiyun #define AR_PHY_RADAR_0 (AR_CHAN_BASE + 0x34) 75*4882a593Smuzhiyun #define AR_PHY_RADAR_1 (AR_CHAN_BASE + 0x38) 76*4882a593Smuzhiyun #define AR_PHY_RADAR_EXT (AR_CHAN_BASE + 0x3c) 77*4882a593Smuzhiyun #define AR_PHY_MULTICHAIN_CTRL (AR_CHAN_BASE + 0x80) 78*4882a593Smuzhiyun #define AR_PHY_PERCHAIN_CSD (AR_CHAN_BASE + 0x84) 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define AR_PHY_TX_PHASE_RAMP_0 (AR_CHAN_BASE + 0xd0) 81*4882a593Smuzhiyun #define AR_PHY_ADC_GAIN_DC_CORR_0 (AR_CHAN_BASE + 0xd4) 82*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_0_B0 (AR_CHAN_BASE + 0xc0) 83*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_1_B0 (AR_CHAN_BASE + 0xc4) 84*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_2_B0 (AR_CHAN_BASE + 0xc8) 85*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_3_B0 (AR_CHAN_BASE + 0xcc) 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun /* The following registers changed position from AR9300 1.0 to AR9300 2.0 */ 88*4882a593Smuzhiyun #define AR_PHY_TX_PHASE_RAMP_0_9300_10 (AR_CHAN_BASE + 0xd0 - 0x10) 89*4882a593Smuzhiyun #define AR_PHY_ADC_GAIN_DC_CORR_0_9300_10 (AR_CHAN_BASE + 0xd4 - 0x10) 90*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_0_B0_9300_10 (AR_CHAN_BASE + 0xc0 + 0x8) 91*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_1_B0_9300_10 (AR_CHAN_BASE + 0xc4 + 0x8) 92*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_2_B0_9300_10 (AR_CHAN_BASE + 0xc8 + 0x8) 93*4882a593Smuzhiyun #define AR_PHY_IQ_ADC_MEAS_3_B0_9300_10 (AR_CHAN_BASE + 0xcc + 0x8) 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #define AR_PHY_TX_CRC (AR_CHAN_BASE + 0xa0) 96*4882a593Smuzhiyun #define AR_PHY_TST_DAC_CONST (AR_CHAN_BASE + 0xa4) 97*4882a593Smuzhiyun #define AR_PHY_SPUR_REPORT_0 (AR_CHAN_BASE + 0xa8) 98*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_TAB_0 (AR_CHAN_BASE + 0x300) 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun /* 101*4882a593Smuzhiyun * Channel Field Definitions 102*4882a593Smuzhiyun */ 103*4882a593Smuzhiyun #define AR_PHY_TIMING2_USE_FORCE_PPM 0x00001000 104*4882a593Smuzhiyun #define AR_PHY_TIMING2_FORCE_PPM_VAL 0x00000fff 105*4882a593Smuzhiyun #define AR_PHY_TIMING3_DSC_MAN 0xFFFE0000 106*4882a593Smuzhiyun #define AR_PHY_TIMING3_DSC_MAN_S 17 107*4882a593Smuzhiyun #define AR_PHY_TIMING3_DSC_EXP 0x0001E000 108*4882a593Smuzhiyun #define AR_PHY_TIMING3_DSC_EXP_S 13 109*4882a593Smuzhiyun #define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX 0xF000 110*4882a593Smuzhiyun #define AR_PHY_TIMING4_IQCAL_LOG_COUNT_MAX_S 12 111*4882a593Smuzhiyun #define AR_PHY_TIMING4_DO_CAL 0x10000 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_PILOT_MASK 0x10000000 114*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_PILOT_MASK_S 28 115*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_CHAN_MASK 0x20000000 116*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_CHAN_MASK_S 29 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_SPUR_FILTER 0x40000000 119*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_SPUR_FILTER_S 30 120*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_SPUR_RSSI 0x80000000 121*4882a593Smuzhiyun #define AR_PHY_TIMING4_ENABLE_SPUR_RSSI_S 31 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun #define AR_PHY_NEW_ADC_GAIN_CORR_ENABLE 0x40000000 124*4882a593Smuzhiyun #define AR_PHY_NEW_ADC_DC_OFFSET_CORR_ENABLE 0x80000000 125*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW 0x00000001 126*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW 0x00003F00 127*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M2COUNT_THR_LOW_S 8 128*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M1_THRESH_LOW 0x001FC000 129*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M1_THRESH_LOW_S 14 130*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M2_THRESH_LOW 0x0FE00000 131*4882a593Smuzhiyun #define AR_PHY_SFCORR_LOW_M2_THRESH_LOW_S 21 132*4882a593Smuzhiyun #define AR_PHY_SFCORR_M2COUNT_THR 0x0000001F 133*4882a593Smuzhiyun #define AR_PHY_SFCORR_M2COUNT_THR_S 0 134*4882a593Smuzhiyun #define AR_PHY_SFCORR_M1_THRESH 0x00FE0000 135*4882a593Smuzhiyun #define AR_PHY_SFCORR_M1_THRESH_S 17 136*4882a593Smuzhiyun #define AR_PHY_SFCORR_M2_THRESH 0x7F000000 137*4882a593Smuzhiyun #define AR_PHY_SFCORR_M2_THRESH_S 24 138*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M1_THRESH 0x0000007F 139*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M1_THRESH_S 0 140*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M2_THRESH 0x00003F80 141*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M2_THRESH_S 7 142*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M1_THRESH_LOW 0x001FC000 143*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_S 14 144*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M2_THRESH_LOW 0x0FE00000 145*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_S 21 146*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_SPUR_SUBCHANNEL_SD 0x10000000 147*4882a593Smuzhiyun #define AR_PHY_SFCORR_EXT_SPUR_SUBCHANNEL_SD_S 28 148*4882a593Smuzhiyun #define AR_PHY_SFCORR_SPUR_SUBCHNL_SD_S 28 149*4882a593Smuzhiyun #define AR_PHY_EXT_CCA_THRESH62 0x007F0000 150*4882a593Smuzhiyun #define AR_PHY_EXT_CCA_THRESH62_S 16 151*4882a593Smuzhiyun #define AR_PHY_EXTCHN_PWRTHR1_ANT_DIV_ALT_ANT_MINGAINIDX 0x0000FF00 152*4882a593Smuzhiyun #define AR_PHY_EXTCHN_PWRTHR1_ANT_DIV_ALT_ANT_MINGAINIDX_S 8 153*4882a593Smuzhiyun #define AR_PHY_EXT_MINCCA_PWR 0x01FF0000 154*4882a593Smuzhiyun #define AR_PHY_EXT_MINCCA_PWR_S 16 155*4882a593Smuzhiyun #define AR_PHY_EXT_CYCPWR_THR1 0x0000FE00L 156*4882a593Smuzhiyun #define AR_PHY_EXT_CYCPWR_THR1_S 9 157*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1 0x000000FE 158*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1_S 1 159*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1_ENABLE 0x00000001 160*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1_ENABLE_S 0 161*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1A 0x007F0000 162*4882a593Smuzhiyun #define AR_PHY_TIMING5_CYCPWR_THR1A_S 16 163*4882a593Smuzhiyun #define AR_PHY_TIMING5_RSSI_THR1A (0x7F << 16) 164*4882a593Smuzhiyun #define AR_PHY_TIMING5_RSSI_THR1A_S 16 165*4882a593Smuzhiyun #define AR_PHY_TIMING5_RSSI_THR1A_ENA (0x1 << 15) 166*4882a593Smuzhiyun #define AR_PHY_RADAR_0_ENA 0x00000001 167*4882a593Smuzhiyun #define AR_PHY_RADAR_0_FFT_ENA 0x80000000 168*4882a593Smuzhiyun #define AR_PHY_RADAR_0_INBAND 0x0000003e 169*4882a593Smuzhiyun #define AR_PHY_RADAR_0_INBAND_S 1 170*4882a593Smuzhiyun #define AR_PHY_RADAR_0_PRSSI 0x00000FC0 171*4882a593Smuzhiyun #define AR_PHY_RADAR_0_PRSSI_S 6 172*4882a593Smuzhiyun #define AR_PHY_RADAR_0_HEIGHT 0x0003F000 173*4882a593Smuzhiyun #define AR_PHY_RADAR_0_HEIGHT_S 12 174*4882a593Smuzhiyun #define AR_PHY_RADAR_0_RRSSI 0x00FC0000 175*4882a593Smuzhiyun #define AR_PHY_RADAR_0_RRSSI_S 18 176*4882a593Smuzhiyun #define AR_PHY_RADAR_0_FIRPWR 0x7F000000 177*4882a593Smuzhiyun #define AR_PHY_RADAR_0_FIRPWR_S 24 178*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELPWR_ENA 0x00800000 179*4882a593Smuzhiyun #define AR_PHY_RADAR_1_USE_FIR128 0x00400000 180*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELPWR_THRESH 0x003F0000 181*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELPWR_THRESH_S 16 182*4882a593Smuzhiyun #define AR_PHY_RADAR_1_BLOCK_CHECK 0x00008000 183*4882a593Smuzhiyun #define AR_PHY_RADAR_1_MAX_RRSSI 0x00004000 184*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELSTEP_CHECK 0x00002000 185*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELSTEP_THRESH 0x00001F00 186*4882a593Smuzhiyun #define AR_PHY_RADAR_1_RELSTEP_THRESH_S 8 187*4882a593Smuzhiyun #define AR_PHY_RADAR_1_MAXLEN 0x000000FF 188*4882a593Smuzhiyun #define AR_PHY_RADAR_1_MAXLEN_S 0 189*4882a593Smuzhiyun #define AR_PHY_RADAR_EXT_ENA 0x00004000 190*4882a593Smuzhiyun #define AR_PHY_RADAR_DC_PWR_THRESH 0x007f8000 191*4882a593Smuzhiyun #define AR_PHY_RADAR_DC_PWR_THRESH_S 15 192*4882a593Smuzhiyun #define AR_PHY_RADAR_LB_DC_CAP 0x7f800000 193*4882a593Smuzhiyun #define AR_PHY_RADAR_LB_DC_CAP_S 23 194*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW (0x3f << 6) 195*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_FIRSTEP_LOW_S 6 196*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_FIRPWR (0x7f << 12) 197*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_FIRPWR_S 12 198*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_FIRPWR_SIGN_BIT 19 199*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_RELSTEP 0x1f 200*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_RELSTEP_S 0 201*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_LOW_RELSTEP_SIGN_BIT 5 202*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_TAB_S2_READ 0x00000008 203*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_TAB_S2_READ_S 3 204*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF 0x0000007F 205*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_Q_COFF_S 0 206*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF 0x00003F80 207*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_IQCORR_Q_I_COFF_S 7 208*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_IQCORR_ENABLE 0x00004000 209*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF 0x003f8000 210*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_Q_COFF_S 15 211*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF 0x1fc00000 212*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_LOOPBACK_IQCORR_Q_I_COFF_S 22 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun /* 215*4882a593Smuzhiyun * MRC Register Map 216*4882a593Smuzhiyun */ 217*4882a593Smuzhiyun #define AR_MRC_BASE 0x9c00 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun #define AR_PHY_TIMING_3A (AR_MRC_BASE + 0x0) 220*4882a593Smuzhiyun #define AR_PHY_LDPC_CNTL1 (AR_MRC_BASE + 0x4) 221*4882a593Smuzhiyun #define AR_PHY_LDPC_CNTL2 (AR_MRC_BASE + 0x8) 222*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK (AR_MRC_BASE + 0xc) 223*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK (AR_MRC_BASE + 0x10) 224*4882a593Smuzhiyun #define AR_PHY_SGI_DELTA (AR_MRC_BASE + 0x14) 225*4882a593Smuzhiyun #define AR_PHY_ML_CNTL_1 (AR_MRC_BASE + 0x18) 226*4882a593Smuzhiyun #define AR_PHY_ML_CNTL_2 (AR_MRC_BASE + 0x1c) 227*4882a593Smuzhiyun #define AR_PHY_TST_ADC (AR_MRC_BASE + 0x20) 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A 0x00000FE0 230*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_A_S 5 231*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A 0x1F 232*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_A_S 0 233*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_B 0x00FE0000 234*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_IDX_B_S 17 235*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_B 0x0001F000 236*4882a593Smuzhiyun #define AR_PHY_PILOT_SPUR_MASK_CF_PILOT_MASK_B_S 12 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A 0x00000FE0 239*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_A_S 5 240*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A 0x1F 241*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_A_S 0 242*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_B 0x00FE0000 243*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_IDX_B_S 17 244*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_B 0x0001F000 245*4882a593Smuzhiyun #define AR_PHY_CHAN_SPUR_MASK_CF_CHAN_MASK_B_S 12 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun /* 249*4882a593Smuzhiyun * MRC Feild Definitions 250*4882a593Smuzhiyun */ 251*4882a593Smuzhiyun #define AR_PHY_SGI_DSC_MAN 0x0007FFF0 252*4882a593Smuzhiyun #define AR_PHY_SGI_DSC_MAN_S 4 253*4882a593Smuzhiyun #define AR_PHY_SGI_DSC_EXP 0x0000000F 254*4882a593Smuzhiyun #define AR_PHY_SGI_DSC_EXP_S 0 255*4882a593Smuzhiyun /* 256*4882a593Smuzhiyun * BBB Register Map 257*4882a593Smuzhiyun */ 258*4882a593Smuzhiyun #define AR_BBB_BASE 0x9d00 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun /* 261*4882a593Smuzhiyun * AGC Register Map 262*4882a593Smuzhiyun */ 263*4882a593Smuzhiyun #define AR_AGC_BASE 0x9e00 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun #define AR_PHY_SETTLING (AR_AGC_BASE + 0x0) 266*4882a593Smuzhiyun #define AR_PHY_FORCEMAX_GAINS_0 (AR_AGC_BASE + 0x4) 267*4882a593Smuzhiyun #define AR_PHY_GAINS_MINOFF0 (AR_AGC_BASE + 0x8) 268*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ (AR_AGC_BASE + 0xc) 269*4882a593Smuzhiyun #define AR_PHY_FIND_SIG (AR_AGC_BASE + 0x10) 270*4882a593Smuzhiyun #define AR_PHY_AGC (AR_AGC_BASE + 0x14) 271*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_0 (AR_AGC_BASE + 0x18) 272*4882a593Smuzhiyun #define AR_PHY_CCA_0 (AR_AGC_BASE + 0x1c) 273*4882a593Smuzhiyun #define AR_PHY_CCA_CTRL_0 (AR_AGC_BASE + 0x20) 274*4882a593Smuzhiyun #define AR_PHY_RESTART (AR_AGC_BASE + 0x24) 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun /* 277*4882a593Smuzhiyun * Antenna Diversity settings 278*4882a593Smuzhiyun */ 279*4882a593Smuzhiyun #define AR_PHY_MC_GAIN_CTRL (AR_AGC_BASE + 0x28) 280*4882a593Smuzhiyun #define AR_ANT_DIV_CTRL_ALL 0x7e000000 281*4882a593Smuzhiyun #define AR_ANT_DIV_CTRL_ALL_S 25 282*4882a593Smuzhiyun #define AR_ANT_DIV_ENABLE 0x1000000 283*4882a593Smuzhiyun #define AR_ANT_DIV_ENABLE_S 24 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun #define AR_PHY_ANT_FAST_DIV_BIAS 0x00007e00 287*4882a593Smuzhiyun #define AR_PHY_ANT_FAST_DIV_BIAS_S 9 288*4882a593Smuzhiyun #define AR_PHY_ANT_SW_RX_PROT 0x00800000 289*4882a593Smuzhiyun #define AR_PHY_ANT_SW_RX_PROT_S 23 290*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_LNADIV 0x01000000 291*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_LNADIV_S 24 292*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_ALT_LNACONF 0x06000000 293*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_ALT_LNACONF_S 25 294*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_MAIN_LNACONF 0x18000000 295*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_MAIN_LNACONF_S 27 296*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_ALT_GAINTB 0x20000000 297*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_ALT_GAINTB_S 29 298*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_MAIN_GAINTB 0x40000000 299*4882a593Smuzhiyun #define AR_PHY_ANT_DIV_MAIN_GAINTB_S 30 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun #define AR_PHY_EXTCHN_PWRTHR1 (AR_AGC_BASE + 0x2c) 302*4882a593Smuzhiyun #define AR_PHY_EXT_CHN_WIN (AR_AGC_BASE + 0x30) 303*4882a593Smuzhiyun #define AR_PHY_20_40_DET_THR (AR_AGC_BASE + 0x34) 304*4882a593Smuzhiyun #define AR_PHY_RIFS_SRCH (AR_AGC_BASE + 0x38) 305*4882a593Smuzhiyun #define AR_PHY_PEAK_DET_CTRL_1 (AR_AGC_BASE + 0x3c) 306*4882a593Smuzhiyun #define AR_PHY_PEAK_DET_CTRL_2 (AR_AGC_BASE + 0x40) 307*4882a593Smuzhiyun #define AR_PHY_RX_GAIN_BOUNDS_1 (AR_AGC_BASE + 0x44) 308*4882a593Smuzhiyun #define AR_PHY_RX_GAIN_BOUNDS_2 (AR_AGC_BASE + 0x48) 309*4882a593Smuzhiyun #define AR_PHY_RSSI_0 (AR_AGC_BASE + 0x180) 310*4882a593Smuzhiyun #define AR_PHY_SPUR_CCK_REP0 (AR_AGC_BASE + 0x184) 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT (AR_AGC_BASE + 0x1c0) 313*4882a593Smuzhiyun #define AR_FAST_DIV_ENABLE 0x2000 314*4882a593Smuzhiyun #define AR_FAST_DIV_ENABLE_S 13 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun #define AR_PHY_DAG_CTRLCCK (AR_AGC_BASE + 0x1c4) 317*4882a593Smuzhiyun #define AR_PHY_IQCORR_CTRL_CCK (AR_AGC_BASE + 0x1c8) 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT (AR_AGC_BASE + 0x1cc) 320*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR 0x000001fe 321*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_SPUR_RSSI_THR_S 1 322*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE 0x60000000 323*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_SPUR_FILTER_TYPE_S 29 324*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_USE_CCK_SPUR_MIT 0x00000001 325*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_USE_CCK_SPUR_MIT_S 0 326*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ 0x1ffffe00 327*4882a593Smuzhiyun #define AR_PHY_CCK_SPUR_MIT_CCK_SPUR_FREQ_S 9 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun #define AR_PHY_MRC_CCK_CTRL (AR_AGC_BASE + 0x1d0) 330*4882a593Smuzhiyun #define AR_PHY_MRC_CCK_ENABLE 0x00000001 331*4882a593Smuzhiyun #define AR_PHY_MRC_CCK_ENABLE_S 0 332*4882a593Smuzhiyun #define AR_PHY_MRC_CCK_MUX_REG 0x00000002 333*4882a593Smuzhiyun #define AR_PHY_MRC_CCK_MUX_REG_S 1 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun #define AR_PHY_RX_OCGAIN (AR_AGC_BASE + 0x200) 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun #define AR_PHY_CCA_NOM_VAL_9300_2GHZ -110 338*4882a593Smuzhiyun #define AR_PHY_CCA_NOM_VAL_9300_5GHZ -115 339*4882a593Smuzhiyun #define AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ -125 340*4882a593Smuzhiyun #define AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ -125 341*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9300_2GHZ -60 342*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9300_5GHZ -60 343*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9300_FCC_2GHZ -95 344*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9300_FCC_5GHZ -100 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun #define AR_PHY_CCA_NOM_VAL_9462_2GHZ -127 347*4882a593Smuzhiyun #define AR_PHY_CCA_MIN_GOOD_VAL_9462_2GHZ -127 348*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9462_2GHZ -60 349*4882a593Smuzhiyun #define AR_PHY_CCA_NOM_VAL_9462_5GHZ -127 350*4882a593Smuzhiyun #define AR_PHY_CCA_MIN_GOOD_VAL_9462_5GHZ -127 351*4882a593Smuzhiyun #define AR_PHY_CCA_MAX_GOOD_VAL_9462_5GHZ -60 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun #define AR_PHY_CCA_NOM_VAL_9330_2GHZ -118 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun #define AR9300_EXT_LNA_CTL_GPIO_AR9485 9 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun /* 358*4882a593Smuzhiyun * AGC Field Definitions 359*4882a593Smuzhiyun */ 360*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN 0x00FC0000 361*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_RXTX_MARGIN_S 18 362*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN 0x00003C00 363*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_BSW_MARGIN_S 10 364*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN 0x0000001F 365*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_BSW_ATTEN_S 0 366*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN 0x003E0000 367*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_MARGIN_S 17 368*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN 0x0001F000 369*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_MARGIN_S 12 370*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB 0x00000FC0 371*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN2_DB_S 6 372*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB 0x0000003F 373*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_XATTEN1_DB_S 0 374*4882a593Smuzhiyun #define AR_PHY_RXGAIN_TXRX_ATTEN 0x0003F000 375*4882a593Smuzhiyun #define AR_PHY_RXGAIN_TXRX_ATTEN_S 12 376*4882a593Smuzhiyun #define AR_PHY_RXGAIN_TXRX_RF_MAX 0x007C0000 377*4882a593Smuzhiyun #define AR_PHY_RXGAIN_TXRX_RF_MAX_S 18 378*4882a593Smuzhiyun #define AR9280_PHY_RXGAIN_TXRX_ATTEN 0x00003F80 379*4882a593Smuzhiyun #define AR9280_PHY_RXGAIN_TXRX_ATTEN_S 7 380*4882a593Smuzhiyun #define AR9280_PHY_RXGAIN_TXRX_MARGIN 0x001FC000 381*4882a593Smuzhiyun #define AR9280_PHY_RXGAIN_TXRX_MARGIN_S 14 382*4882a593Smuzhiyun #define AR_PHY_SETTLING_SWITCH 0x00003F80 383*4882a593Smuzhiyun #define AR_PHY_SETTLING_SWITCH_S 7 384*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_ADC 0x000000FF 385*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_ADC_S 0 386*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_PGA 0x0000FF00 387*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_PGA_S 8 388*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_TOT_DES 0x0FF00000 389*4882a593Smuzhiyun #define AR_PHY_DESIRED_SZ_TOT_DES_S 20 390*4882a593Smuzhiyun #define AR_PHY_MINCCA_PWR 0x1FF00000 391*4882a593Smuzhiyun #define AR_PHY_MINCCA_PWR_S 20 392*4882a593Smuzhiyun #define AR_PHY_CCA_THRESH62 0x0007F000 393*4882a593Smuzhiyun #define AR_PHY_CCA_THRESH62_S 12 394*4882a593Smuzhiyun #define AR9280_PHY_MINCCA_PWR 0x1FF00000 395*4882a593Smuzhiyun #define AR9280_PHY_MINCCA_PWR_S 20 396*4882a593Smuzhiyun #define AR9280_PHY_CCA_THRESH62 0x000FF000 397*4882a593Smuzhiyun #define AR9280_PHY_CCA_THRESH62_S 12 398*4882a593Smuzhiyun #define AR_PHY_EXT_CCA0_THRESH62 0x000000FF 399*4882a593Smuzhiyun #define AR_PHY_EXT_CCA0_THRESH62_S 0 400*4882a593Smuzhiyun #define AR_PHY_EXT_CCA0_THRESH62_1 0x000001FF 401*4882a593Smuzhiyun #define AR_PHY_EXT_CCA0_THRESH62_1_S 0 402*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK 0x0000003F 403*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_S 0 404*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME 0x00001FC0 405*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT_ANT_SWITCH_TIME_S 6 406*4882a593Smuzhiyun #define AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV 0x2000 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun #define AR_PHY_DAG_CTRLCCK_EN_RSSI_THR 0x00000200 409*4882a593Smuzhiyun #define AR_PHY_DAG_CTRLCCK_EN_RSSI_THR_S 9 410*4882a593Smuzhiyun #define AR_PHY_DAG_CTRLCCK_RSSI_THR 0x0001FC00 411*4882a593Smuzhiyun #define AR_PHY_DAG_CTRLCCK_RSSI_THR_S 10 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun #define AR_PHY_RIFS_INIT_DELAY 0x3ff0000 414*4882a593Smuzhiyun #define AR_PHY_AGC_QUICK_DROP 0x03c00000 415*4882a593Smuzhiyun #define AR_PHY_AGC_QUICK_DROP_S 22 416*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_LOW 0x00007F80 417*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_LOW_S 7 418*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_HIGH 0x003F8000 419*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_HIGH_S 15 420*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_PWR_CONST 0x0000007F 421*4882a593Smuzhiyun #define AR_PHY_AGC_COARSE_PWR_CONST_S 0 422*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_FIRSTEP 0x0003F000 423*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_FIRSTEP_S 12 424*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_FIRPWR 0x03FC0000 425*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_FIRPWR_S 18 426*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_FIRPWR_SIGN_BIT 25 427*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELPWR (0x1f << 6) 428*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELPWR_S 6 429*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELPWR_SIGN_BIT 11 430*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELSTEP 0x1f 431*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELSTEP_S 0 432*4882a593Smuzhiyun #define AR_PHY_FIND_SIG_RELSTEP_SIGN_BIT 5 433*4882a593Smuzhiyun #define AR_PHY_RESTART_ENABLE_DIV_M2FLAG 0x00200000 434*4882a593Smuzhiyun #define AR_PHY_RESTART_ENABLE_DIV_M2FLAG_S 21 435*4882a593Smuzhiyun #define AR_PHY_RESTART_DIV_GC 0x001C0000 436*4882a593Smuzhiyun #define AR_PHY_RESTART_DIV_GC_S 18 437*4882a593Smuzhiyun #define AR_PHY_RESTART_ENA 0x01 438*4882a593Smuzhiyun #define AR_PHY_DC_RESTART_DIS 0x40000000 439*4882a593Smuzhiyun 440*4882a593Smuzhiyun #define AR_PHY_TPC_OLPC_GAIN_DELTA_PAL_ON 0xFF000000 441*4882a593Smuzhiyun #define AR_PHY_TPC_OLPC_GAIN_DELTA_PAL_ON_S 24 442*4882a593Smuzhiyun #define AR_PHY_TPC_OLPC_GAIN_DELTA 0x00FF0000 443*4882a593Smuzhiyun #define AR_PHY_TPC_OLPC_GAIN_DELTA_S 16 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun #define AR_PHY_TPC_6_ERROR_EST_MODE 0x03000000 446*4882a593Smuzhiyun #define AR_PHY_TPC_6_ERROR_EST_MODE_S 24 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun /* 449*4882a593Smuzhiyun * SM Register Map 450*4882a593Smuzhiyun */ 451*4882a593Smuzhiyun #define AR_SM_BASE 0xa200 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun #define AR_PHY_D2_CHIP_ID (AR_SM_BASE + 0x0) 454*4882a593Smuzhiyun #define AR_PHY_GEN_CTRL (AR_SM_BASE + 0x4) 455*4882a593Smuzhiyun #define AR_PHY_MODE (AR_SM_BASE + 0x8) 456*4882a593Smuzhiyun #define AR_PHY_ACTIVE (AR_SM_BASE + 0xc) 457*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_A (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x18 : 0x20)) 458*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_B (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x1c : 0x24)) 459*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN (AR_SM_BASE + 0x28) 460*4882a593Smuzhiyun #define AR_PHY_RADAR_BW_FILTER (AR_SM_BASE + 0x2c) 461*4882a593Smuzhiyun #define AR_PHY_SEARCH_START_DELAY (AR_SM_BASE + 0x30) 462*4882a593Smuzhiyun #define AR_PHY_MAX_RX_LEN (AR_SM_BASE + 0x34) 463*4882a593Smuzhiyun #define AR_PHY_FRAME_CTL (AR_SM_BASE + 0x38) 464*4882a593Smuzhiyun #define AR_PHY_RFBUS_REQ (AR_SM_BASE + 0x3c) 465*4882a593Smuzhiyun #define AR_PHY_RFBUS_GRANT (AR_SM_BASE + 0x40) 466*4882a593Smuzhiyun #define AR_PHY_RIFS (AR_SM_BASE + 0x44) 467*4882a593Smuzhiyun #define AR_PHY_RX_CLR_DELAY (AR_SM_BASE + 0x50) 468*4882a593Smuzhiyun #define AR_PHY_RX_DELAY (AR_SM_BASE + 0x54) 469*4882a593Smuzhiyun 470*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL (AR_SM_BASE + 0x64) 471*4882a593Smuzhiyun #define AR_PHY_MISC_PA_CTL (AR_SM_BASE + 0x80) 472*4882a593Smuzhiyun #define AR_PHY_SWITCH_CHAIN_0 (AR_SM_BASE + 0x84) 473*4882a593Smuzhiyun #define AR_PHY_SWITCH_COM (AR_SM_BASE + 0x88) 474*4882a593Smuzhiyun #define AR_PHY_SWITCH_COM_2 (AR_SM_BASE + 0x8c) 475*4882a593Smuzhiyun #define AR_PHY_RX_CHAINMASK (AR_SM_BASE + 0xa0) 476*4882a593Smuzhiyun #define AR_PHY_CAL_CHAINMASK (AR_SM_BASE + 0xc0) 477*4882a593Smuzhiyun #define AR_PHY_CALMODE (AR_SM_BASE + 0xc8) 478*4882a593Smuzhiyun #define AR_PHY_FCAL_1 (AR_SM_BASE + 0xcc) 479*4882a593Smuzhiyun #define AR_PHY_FCAL_2_0 (AR_SM_BASE + 0xd0) 480*4882a593Smuzhiyun #define AR_PHY_DFT_TONE_CTL_0 (AR_SM_BASE + 0xd4) 481*4882a593Smuzhiyun #define AR_PHY_CL_CAL_CTL (AR_SM_BASE + 0xd8) 482*4882a593Smuzhiyun #define AR_PHY_CL_TAB_0 (AR_SM_BASE + 0x100) 483*4882a593Smuzhiyun #define AR_PHY_SYNTH_CONTROL (AR_SM_BASE + 0x140) 484*4882a593Smuzhiyun #define AR_PHY_ADDAC_CLK_SEL (AR_SM_BASE + 0x144) 485*4882a593Smuzhiyun #define AR_PHY_PLL_CTL (AR_SM_BASE + 0x148) 486*4882a593Smuzhiyun #define AR_PHY_ANALOG_SWAP (AR_SM_BASE + 0x14c) 487*4882a593Smuzhiyun #define AR_PHY_ADDAC_PARA_CTL (AR_SM_BASE + 0x150) 488*4882a593Smuzhiyun #define AR_PHY_XPA_CFG (AR_SM_BASE + 0x158) 489*4882a593Smuzhiyun 490*4882a593Smuzhiyun #define AR_PHY_FLC_PWR_THRESH 7 491*4882a593Smuzhiyun #define AR_PHY_FLC_PWR_THRESH_S 0 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun #define AR_PHY_FRAME_CTL_CF_OVERLAP_WINDOW 3 494*4882a593Smuzhiyun #define AR_PHY_FRAME_CTL_CF_OVERLAP_WINDOW_S 0 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A 0x0001FC00 497*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_IDX_A_S 10 498*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A 0x3FF 499*4882a593Smuzhiyun #define AR_PHY_SPUR_MASK_A_CF_PUNC_MASK_A_S 0 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun #define AR_PHY_TEST (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x15c : 0x160)) 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun #define AR_PHY_TEST_BBB_OBS_SEL 0x780000 504*4882a593Smuzhiyun #define AR_PHY_TEST_BBB_OBS_SEL_S 19 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun #define AR_PHY_TEST_RX_OBS_SEL_BIT5_S 23 507*4882a593Smuzhiyun #define AR_PHY_TEST_RX_OBS_SEL_BIT5 (1 << AR_PHY_TEST_RX_OBS_SEL_BIT5_S) 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun #define AR_PHY_TEST_CHAIN_SEL 0xC0000000 510*4882a593Smuzhiyun #define AR_PHY_TEST_CHAIN_SEL_S 30 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_STATUS (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x160 : 0x164)) 513*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TSTDAC_EN 0x1 514*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TSTDAC_EN_S 0 515*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TX_OBS_SEL 0x1C 516*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TX_OBS_SEL_S 2 517*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL 0x60 518*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TX_OBS_MUX_SEL_S 5 519*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TSTADC_EN 0x100 520*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_TSTADC_EN_S 8 521*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_RX_OBS_SEL 0x3C00 522*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_RX_OBS_SEL_S 10 523*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_DEBUGPORT_SEL 0xe0000000 524*4882a593Smuzhiyun #define AR_PHY_TEST_CTL_DEBUGPORT_SEL_S 29 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun 527*4882a593Smuzhiyun #define AR_PHY_TSTDAC (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x164 : 0x168)) 528*4882a593Smuzhiyun 529*4882a593Smuzhiyun #define AR_PHY_CHAN_STATUS (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x168 : 0x16c)) 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_MEMORY (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x16c : 0x170)) 532*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_MEMORY_CHANINFOMEM_S2_READ 0x00000008 533*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_MEMORY_CHANINFOMEM_S2_READ_S 3 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun #define AR_PHY_CHNINFO_NOISEPWR (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x170 : 0x174)) 536*4882a593Smuzhiyun #define AR_PHY_CHNINFO_GAINDIFF (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x174 : 0x178)) 537*4882a593Smuzhiyun #define AR_PHY_CHNINFO_FINETIM (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x178 : 0x17c)) 538*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_0 (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x17c : 0x180)) 539*4882a593Smuzhiyun #define AR_PHY_SCRAMBLER_SEED (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x184 : 0x190)) 540*4882a593Smuzhiyun #define AR_PHY_CCK_TX_CTRL (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x188 : 0x194)) 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_CTL (AR_SM_BASE + (AR_SREV_9561(ah) ? 0x198 : 0x1a4)) 543*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_20 (AR_SM_BASE + 0x1a8) 544*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_40 (AR_SM_BASE + 0x1ac) 545*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_1 (AR_SM_BASE + 0x19c) 546*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_2 (AR_SM_BASE + 0x1a0) 547*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_3 (AR_SM_BASE + 0x1a4) 548*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_4 (AR_SM_BASE + 0x1a8) 549*4882a593Smuzhiyun #define AR_PHY_HEAVYCLIP_5 (AR_SM_BASE + 0x1ac) 550*4882a593Smuzhiyun #define AR_PHY_ILLEGAL_TXRATE (AR_SM_BASE + 0x1b0) 551*4882a593Smuzhiyun 552*4882a593Smuzhiyun #define AR_PHY_POWER_TX_RATE(_d) (AR_SM_BASE + 0x1c0 + ((_d) << 2)) 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun #define AR_PHY_PWRTX_MAX (AR_SM_BASE + 0x1f0) 555*4882a593Smuzhiyun #define AR_PHY_POWER_TX_SUB (AR_SM_BASE + 0x1f4) 556*4882a593Smuzhiyun 557*4882a593Smuzhiyun #define AR_PHY_TPC_1 (AR_SM_BASE + 0x1f8) 558*4882a593Smuzhiyun #define AR_PHY_TPC_1_FORCED_DAC_GAIN 0x0000003e 559*4882a593Smuzhiyun #define AR_PHY_TPC_1_FORCED_DAC_GAIN_S 1 560*4882a593Smuzhiyun #define AR_PHY_TPC_1_FORCE_DAC_GAIN 0x00000001 561*4882a593Smuzhiyun #define AR_PHY_TPC_1_FORCE_DAC_GAIN_S 0 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun #define AR_PHY_TPC_4_B0 (AR_SM_BASE + 0x204) 564*4882a593Smuzhiyun #define AR_PHY_TPC_5_B0 (AR_SM_BASE + 0x208) 565*4882a593Smuzhiyun #define AR_PHY_TPC_6_B0 (AR_SM_BASE + 0x20c) 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun #define AR_PHY_TPC_11_B0 (AR_SM_BASE + 0x220) 568*4882a593Smuzhiyun #define AR_PHY_TPC_11_B1 (AR_SM1_BASE + 0x220) 569*4882a593Smuzhiyun #define AR_PHY_TPC_11_B2 (AR_SM2_BASE + 0x220) 570*4882a593Smuzhiyun #define AR_PHY_TPC_11_OLPC_GAIN_DELTA 0x00ff0000 571*4882a593Smuzhiyun #define AR_PHY_TPC_11_OLPC_GAIN_DELTA_S 16 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun #define AR_PHY_TPC_12 (AR_SM_BASE + 0x224) 574*4882a593Smuzhiyun #define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5 0x3e000000 575*4882a593Smuzhiyun #define AR_PHY_TPC_12_DESIRED_SCALE_HT40_5_S 25 576*4882a593Smuzhiyun 577*4882a593Smuzhiyun #define AR_PHY_TPC_18 (AR_SM_BASE + 0x23c) 578*4882a593Smuzhiyun #define AR_PHY_TPC_18_THERM_CAL_VALUE 0x000000ff 579*4882a593Smuzhiyun #define AR_PHY_TPC_18_THERM_CAL_VALUE_S 0 580*4882a593Smuzhiyun #define AR_PHY_TPC_18_VOLT_CAL_VALUE 0x0000ff00 581*4882a593Smuzhiyun #define AR_PHY_TPC_18_VOLT_CAL_VALUE_S 8 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun #define AR_PHY_TPC_19 (AR_SM_BASE + 0x240) 584*4882a593Smuzhiyun #define AR_PHY_TPC_19_ALPHA_VOLT 0x001f0000 585*4882a593Smuzhiyun #define AR_PHY_TPC_19_ALPHA_VOLT_S 16 586*4882a593Smuzhiyun #define AR_PHY_TPC_19_ALPHA_THERM 0xff 587*4882a593Smuzhiyun #define AR_PHY_TPC_19_ALPHA_THERM_S 0 588*4882a593Smuzhiyun 589*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN (AR_SM_BASE + 0x258) 590*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCE_TX_GAIN 0x00000001 591*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCE_TX_GAIN_S 0 592*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXBB1DBGAIN 0x0000000e 593*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXBB1DBGAIN_S 1 594*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXBB6DBGAIN 0x00000030 595*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXBB6DBGAIN_S 4 596*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXMXRGAIN 0x000003c0 597*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_TXMXRGAIN_S 6 598*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNA 0x00003c00 599*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNA_S 10 600*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNB 0x0003c000 601*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNB_S 14 602*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNC 0x003c0000 603*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGNC_S 18 604*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGND 0x00c00000 605*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_PADRVGND_S 22 606*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_ENABLE_PAL 0x01000000 607*4882a593Smuzhiyun #define AR_PHY_TX_FORCED_GAIN_FORCED_ENABLE_PAL_S 24 608*4882a593Smuzhiyun 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun #define AR_PHY_PDADC_TAB_0 (AR_SM_BASE + 0x280) 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun #define AR_PHY_TXGAIN_TABLE (AR_SM_BASE + 0x300) 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_0 (AR_SM_BASE + (AR_SREV_9485(ah) ? \ 615*4882a593Smuzhiyun 0x3c4 : 0x444)) 616*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_1 (AR_SM_BASE + (AR_SREV_9485(ah) ? \ 617*4882a593Smuzhiyun 0x3c8 : 0x448)) 618*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_START (AR_SM_BASE + (AR_SREV_9485(ah) ? \ 619*4882a593Smuzhiyun 0x3c4 : 0x440)) 620*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_STATUS_B0 (AR_SM_BASE + (AR_SREV_9485(ah) ? \ 621*4882a593Smuzhiyun 0x3f0 : 0x48c)) 622*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_B0(_i) (AR_SM_BASE + \ 623*4882a593Smuzhiyun (AR_SREV_9485(ah) ? \ 624*4882a593Smuzhiyun 0x3d0 : 0x450) + ((_i) << 2)) 625*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL (AR_SM_BASE + 0x380) 626*4882a593Smuzhiyun 627*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_STATUS (AR_SM_BASE + 0x5c0) 628*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_CTL_1 (AR_SM_BASE + 0x5c4) 629*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_CTL_2 (AR_SM_BASE + 0x5c8) 630*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_CTL (AR_SM_BASE + 0x5cc) 631*4882a593Smuzhiyun #define AR_PHY_ONLY_WARMRESET (AR_SM_BASE + 0x5d0) 632*4882a593Smuzhiyun #define AR_PHY_ONLY_CTL (AR_SM_BASE + 0x5d4) 633*4882a593Smuzhiyun #define AR_PHY_ECO_CTRL (AR_SM_BASE + 0x5dc) 634*4882a593Smuzhiyun 635*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_1 (AR_SM_BASE + 0x248) 636*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_1_INIT_THERM 0x000000ff 637*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_1_INIT_THERM_S 0 638*4882a593Smuzhiyun 639*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_3 (AR_SM_BASE + 0x250) 640*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_3_THERM_ADC_SCALE_GAIN 0x0001ff00 641*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_3_THERM_ADC_SCALE_GAIN_S 8 642*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_3_THERM_ADC_OFFSET 0x000000ff 643*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_3_THERM_ADC_OFFSET_S 0 644*4882a593Smuzhiyun 645*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_4 (AR_SM_BASE + 0x254) 646*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_VALUE 0x000000ff 647*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_VALUE_S 0 648*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_VALUE 0x0000ff00 649*4882a593Smuzhiyun #define AR_PHY_BB_THERM_ADC_4_LATEST_VOLT_VALUE_S 8 650*4882a593Smuzhiyun 651*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_TXRF3 0x16048 652*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_TXRF3_CAPDIV2G 0x0000001e 653*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_TXRF3_CAPDIV2G_S 1 654*4882a593Smuzhiyun 655*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_SYNTH4 0x1608c 656*4882a593Smuzhiyun #define AR_PHY_SYNTH4_LONG_SHIFT_SELECT ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x00000001 : 0x00000002) 657*4882a593Smuzhiyun #define AR_PHY_SYNTH4_LONG_SHIFT_SELECT_S ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0 : 1) 658*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_SYNTH7 0x16098 659*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_SYNTH12 0x160ac 660*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BIAS1 0x160c0 661*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BIAS2 0x160c4 662*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BIAS4 0x160cc 663*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX2 0x16104 664*4882a593Smuzhiyun #define AR_PHY_65NM_CH1_RXTX2 0x16504 665*4882a593Smuzhiyun #define AR_PHY_65NM_CH2_RXTX2 0x16904 666*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX4 0x1610c 667*4882a593Smuzhiyun #define AR_PHY_65NM_CH1_RXTX4 0x1650c 668*4882a593Smuzhiyun #define AR_PHY_65NM_CH2_RXTX4 0x1690c 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BB1 0x16140 671*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BB2 0x16144 672*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_BB3 0x16148 673*4882a593Smuzhiyun #define AR_PHY_65NM_CH1_BB1 0x16540 674*4882a593Smuzhiyun #define AR_PHY_65NM_CH1_BB2 0x16544 675*4882a593Smuzhiyun #define AR_PHY_65NM_CH1_BB3 0x16548 676*4882a593Smuzhiyun #define AR_PHY_65NM_CH2_BB1 0x16940 677*4882a593Smuzhiyun #define AR_PHY_65NM_CH2_BB2 0x16944 678*4882a593Smuzhiyun #define AR_PHY_65NM_CH2_BB3 0x16948 679*4882a593Smuzhiyun 680*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_SYNTH12_VREFMUL3 0x00780000 681*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_SYNTH12_VREFMUL3_S 19 682*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX2_SYNTHON_MASK 0x00000004 683*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX2_SYNTHON_MASK_S 2 684*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX2_SYNTHOVR_MASK 0x00000008 685*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX2_SYNTHOVR_MASK_S 3 686*4882a593Smuzhiyun 687*4882a593Smuzhiyun #define AR_CH0_TOP (AR_SREV_9300(ah) ? 0x16288 : \ 688*4882a593Smuzhiyun (((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x1628c : 0x16280))) 689*4882a593Smuzhiyun #define AR_CH0_TOP_XPABIASLVL (AR_SREV_9550(ah) ? 0x3c0 : 0x300) 690*4882a593Smuzhiyun #define AR_CH0_TOP_XPABIASLVL_S (AR_SREV_9550(ah) ? 6 : 8) 691*4882a593Smuzhiyun 692*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_ALL (0xffff) 693*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_ALL_S (0) 694*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_AR9462_ALL (0xffffff) 695*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_AR9462_ALL_S (0) 696*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_AR9550_ALL (0xffffff) 697*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_AR9550_ALL_S (0) 698*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_SPDT (0x00f00000) 699*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_SPDT_ALL (0x0000fff0) 700*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM_SPDT_ALL_S (4) 701*4882a593Smuzhiyun 702*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM2_ALL (0xffffff) 703*4882a593Smuzhiyun #define AR_SWITCH_TABLE_COM2_ALL_S (0) 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun #define AR_SWITCH_TABLE_ALL (0xfff) 706*4882a593Smuzhiyun #define AR_SWITCH_TABLE_ALL_S (0) 707*4882a593Smuzhiyun 708*4882a593Smuzhiyun #define AR_CH0_THERM (AR_SREV_9300(ah) ? 0x16290 :\ 709*4882a593Smuzhiyun ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x16294 : 0x1628c)) 710*4882a593Smuzhiyun #define AR_CH0_THERM_XPABIASLVL_MSB 0x3 711*4882a593Smuzhiyun #define AR_CH0_THERM_XPABIASLVL_MSB_S 0 712*4882a593Smuzhiyun #define AR_CH0_THERM_XPASHORT2GND 0x4 713*4882a593Smuzhiyun #define AR_CH0_THERM_XPASHORT2GND_S 2 714*4882a593Smuzhiyun 715*4882a593Smuzhiyun #define AR_CH0_THERM_LOCAL 0x80000000 716*4882a593Smuzhiyun #define AR_CH0_THERM_START 0x20000000 717*4882a593Smuzhiyun #define AR_CH0_THERM_SAR_ADC_OUT 0x0000ff00 718*4882a593Smuzhiyun #define AR_CH0_THERM_SAR_ADC_OUT_S 8 719*4882a593Smuzhiyun 720*4882a593Smuzhiyun #define AR_CH0_TOP2 (AR_SREV_9300(ah) ? 0x1628c : \ 721*4882a593Smuzhiyun (AR_SREV_9462(ah) ? 0x16290 : 0x16284)) 722*4882a593Smuzhiyun #define AR_CH0_TOP2_XPABIASLVL (AR_SREV_9561(ah) ? 0x1e00 : 0xf000) 723*4882a593Smuzhiyun #define AR_CH0_TOP2_XPABIASLVL_S (AR_SREV_9561(ah) ? 9 : 12) 724*4882a593Smuzhiyun 725*4882a593Smuzhiyun #define AR_CH0_XTAL (AR_SREV_9300(ah) ? 0x16294 : \ 726*4882a593Smuzhiyun ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x16298 : \ 727*4882a593Smuzhiyun (AR_SREV_9561(ah) ? 0x162c0 : 0x16290))) 728*4882a593Smuzhiyun #define AR_CH0_XTAL_CAPINDAC 0x7f000000 729*4882a593Smuzhiyun #define AR_CH0_XTAL_CAPINDAC_S 24 730*4882a593Smuzhiyun #define AR_CH0_XTAL_CAPOUTDAC 0x00fe0000 731*4882a593Smuzhiyun #define AR_CH0_XTAL_CAPOUTDAC_S 17 732*4882a593Smuzhiyun 733*4882a593Smuzhiyun #define AR_PHY_PMU1 ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x16340 : \ 734*4882a593Smuzhiyun (AR_SREV_9561(ah) ? 0x16cc0 : 0x16c40)) 735*4882a593Smuzhiyun #define AR_PHY_PMU1_PWD 0x1 736*4882a593Smuzhiyun #define AR_PHY_PMU1_PWD_S 0 737*4882a593Smuzhiyun 738*4882a593Smuzhiyun #define AR_PHY_PMU2 ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x16344 : \ 739*4882a593Smuzhiyun (AR_SREV_9561(ah) ? 0x16cc4 : 0x16c44)) 740*4882a593Smuzhiyun #define AR_PHY_PMU2_PGM 0x00200000 741*4882a593Smuzhiyun #define AR_PHY_PMU2_PGM_S 21 742*4882a593Smuzhiyun 743*4882a593Smuzhiyun #define AR_PHY_RX1DB_BIQUAD_LONG_SHIFT 0x00380000 744*4882a593Smuzhiyun #define AR_PHY_RX1DB_BIQUAD_LONG_SHIFT_S 19 745*4882a593Smuzhiyun #define AR_PHY_RX6DB_BIQUAD_LONG_SHIFT 0x00c00000 746*4882a593Smuzhiyun #define AR_PHY_RX6DB_BIQUAD_LONG_SHIFT_S 22 747*4882a593Smuzhiyun #define AR_PHY_LNAGAIN_LONG_SHIFT 0xe0000000 748*4882a593Smuzhiyun #define AR_PHY_LNAGAIN_LONG_SHIFT_S 29 749*4882a593Smuzhiyun #define AR_PHY_MXRGAIN_LONG_SHIFT 0x03000000 750*4882a593Smuzhiyun #define AR_PHY_MXRGAIN_LONG_SHIFT_S 24 751*4882a593Smuzhiyun #define AR_PHY_VGAGAIN_LONG_SHIFT 0x1c000000 752*4882a593Smuzhiyun #define AR_PHY_VGAGAIN_LONG_SHIFT_S 26 753*4882a593Smuzhiyun #define AR_PHY_SCFIR_GAIN_LONG_SHIFT 0x00000001 754*4882a593Smuzhiyun #define AR_PHY_SCFIR_GAIN_LONG_SHIFT_S 0 755*4882a593Smuzhiyun #define AR_PHY_MANRXGAIN_LONG_SHIFT 0x00000002 756*4882a593Smuzhiyun #define AR_PHY_MANRXGAIN_LONG_SHIFT_S 1 757*4882a593Smuzhiyun 758*4882a593Smuzhiyun /* 759*4882a593Smuzhiyun * SM Field Definitions 760*4882a593Smuzhiyun */ 761*4882a593Smuzhiyun #define AR_PHY_CL_CAL_ENABLE 0x00000002 762*4882a593Smuzhiyun #define AR_PHY_PARALLEL_CAL_ENABLE 0x00000001 763*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_CAL_ENABLE 0x00400000 764*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_CAL_ENABLE_S 22 765*4882a593Smuzhiyun 766*4882a593Smuzhiyun #define AR_PHY_ADDAC_PARACTL_OFF_PWDADC 0x00008000 767*4882a593Smuzhiyun 768*4882a593Smuzhiyun #define AR_PHY_FCAL20_CAP_STATUS_0 0x01f00000 769*4882a593Smuzhiyun #define AR_PHY_FCAL20_CAP_STATUS_0_S 20 770*4882a593Smuzhiyun 771*4882a593Smuzhiyun #define AR_PHY_RFBUS_REQ_EN 0x00000001 /* request for RF bus */ 772*4882a593Smuzhiyun #define AR_PHY_RFBUS_GRANT_EN 0x00000001 /* RF bus granted */ 773*4882a593Smuzhiyun #define AR_PHY_GC_TURBO_MODE 0x00000001 /* set turbo mode bits */ 774*4882a593Smuzhiyun #define AR_PHY_GC_TURBO_SHORT 0x00000002 /* set short symbols to turbo mode setting */ 775*4882a593Smuzhiyun #define AR_PHY_GC_DYN2040_EN 0x00000004 /* enable dyn 20/40 mode */ 776*4882a593Smuzhiyun #define AR_PHY_GC_DYN2040_PRI_ONLY 0x00000008 /* dyn 20/40 - primary only */ 777*4882a593Smuzhiyun #define AR_PHY_GC_DYN2040_PRI_CH 0x00000010 /* dyn 20/40 - primary ch offset (0=+10MHz, 1=-10MHz)*/ 778*4882a593Smuzhiyun #define AR_PHY_GC_DYN2040_PRI_CH_S 4 779*4882a593Smuzhiyun #define AR_PHY_GC_DYN2040_EXT_CH 0x00000020 /* dyn 20/40 - ext ch spacing (0=20MHz/ 1=25MHz) */ 780*4882a593Smuzhiyun #define AR_PHY_GC_HT_EN 0x00000040 /* ht enable */ 781*4882a593Smuzhiyun #define AR_PHY_GC_SHORT_GI_40 0x00000080 /* allow short GI for HT 40 */ 782*4882a593Smuzhiyun #define AR_PHY_GC_WALSH 0x00000100 /* walsh spatial spreading for 2 chains,2 streams TX */ 783*4882a593Smuzhiyun #define AR_PHY_GC_SINGLE_HT_LTF1 0x00000200 /* single length (4us) 1st HT long training symbol */ 784*4882a593Smuzhiyun #define AR_PHY_GC_GF_DETECT_EN 0x00000400 /* enable Green Field detection. Only affects rx, not tx */ 785*4882a593Smuzhiyun #define AR_PHY_GC_ENABLE_DAC_FIFO 0x00000800 /* fifo between bb and dac */ 786*4882a593Smuzhiyun #define AR_PHY_RX_DELAY_DELAY 0x00003FFF /* delay from wakeup to rx ena */ 787*4882a593Smuzhiyun 788*4882a593Smuzhiyun #define AR_PHY_CALMODE_IQ 0x00000000 789*4882a593Smuzhiyun #define AR_PHY_CALMODE_ADC_GAIN 0x00000001 790*4882a593Smuzhiyun #define AR_PHY_CALMODE_ADC_DC_PER 0x00000002 791*4882a593Smuzhiyun #define AR_PHY_CALMODE_ADC_DC_INIT 0x00000003 792*4882a593Smuzhiyun #define AR_PHY_SWAP_ALT_CHAIN 0x00000040 793*4882a593Smuzhiyun #define AR_PHY_MODE_OFDM 0x00000000 794*4882a593Smuzhiyun #define AR_PHY_MODE_CCK 0x00000001 795*4882a593Smuzhiyun #define AR_PHY_MODE_DYNAMIC 0x00000004 796*4882a593Smuzhiyun #define AR_PHY_MODE_DYNAMIC_S 2 797*4882a593Smuzhiyun #define AR_PHY_MODE_HALF 0x00000020 798*4882a593Smuzhiyun #define AR_PHY_MODE_QUARTER 0x00000040 799*4882a593Smuzhiyun #define AR_PHY_MAC_CLK_MODE 0x00000080 800*4882a593Smuzhiyun #define AR_PHY_MODE_DYN_CCK_DISABLE 0x00000100 801*4882a593Smuzhiyun #define AR_PHY_MODE_SVD_HALF 0x00000200 802*4882a593Smuzhiyun #define AR_PHY_ACTIVE_EN 0x00000001 803*4882a593Smuzhiyun #define AR_PHY_ACTIVE_DIS 0x00000000 804*4882a593Smuzhiyun #define AR_PHY_FORCE_XPA_CFG 0x000000001 805*4882a593Smuzhiyun #define AR_PHY_FORCE_XPA_CFG_S 0 806*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF 0xFF000000 807*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAB_OFF_S 24 808*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF 0x00FF0000 809*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_TX_END_XPAA_OFF_S 16 810*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON 0x0000FF00 811*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAB_ON_S 8 812*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON 0x000000FF 813*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL_FRAME_XPAA_ON_S 0 814*4882a593Smuzhiyun #define AR_PHY_TX_END_TO_A2_RX_ON 0x00FF0000 815*4882a593Smuzhiyun #define AR_PHY_TX_END_TO_A2_RX_ON_S 16 816*4882a593Smuzhiyun #define AR_PHY_TX_END_DATA_START 0x000000FF 817*4882a593Smuzhiyun #define AR_PHY_TX_END_DATA_START_S 0 818*4882a593Smuzhiyun #define AR_PHY_TX_END_PA_ON 0x0000FF00 819*4882a593Smuzhiyun #define AR_PHY_TX_END_PA_ON_S 8 820*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_OVERLAP 0x0000000F 821*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_OVERLAP_S 0 822*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_1 0x000003F0 823*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_1_S 4 824*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_2 0x0000FC00 825*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_2_S 10 826*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_3 0x003F0000 827*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_3_S 16 828*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_4 0x0FC00000 829*4882a593Smuzhiyun #define AR_PHY_TPCRG5_PD_GAIN_BOUNDARY_4_S 22 830*4882a593Smuzhiyun #define AR_PHY_TPCRG1_NUM_PD_GAIN 0x0000c000 831*4882a593Smuzhiyun #define AR_PHY_TPCRG1_NUM_PD_GAIN_S 14 832*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_1 0x00030000 833*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_1_S 16 834*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_2 0x000C0000 835*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_2_S 18 836*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_3 0x00300000 837*4882a593Smuzhiyun #define AR_PHY_TPCRG1_PD_GAIN_3_S 20 838*4882a593Smuzhiyun #define AR_PHY_TPCGR1_FORCED_DAC_GAIN 0x0000003e 839*4882a593Smuzhiyun #define AR_PHY_TPCGR1_FORCED_DAC_GAIN_S 1 840*4882a593Smuzhiyun #define AR_PHY_TPCGR1_FORCE_DAC_GAIN 0x00000001 841*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCE 0x00000001 842*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCE_S 0 843*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRA 0x00003c00 844*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRA_S 10 845*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRB 0x0003c000 846*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRB_S 14 847*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRD 0x00c00000 848*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_PADVGNRD_S 22 849*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_TXMXRGAIN 0x000003c0 850*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_TXMXRGAIN_S 6 851*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_TXBB1DBGAIN 0x0000000e 852*4882a593Smuzhiyun #define AR_PHY_TXGAIN_FORCED_TXBB1DBGAIN_S 1 853*4882a593Smuzhiyun 854*4882a593Smuzhiyun #define AR_PHY_POWER_TX_RATE1 0x9934 855*4882a593Smuzhiyun #define AR_PHY_POWER_TX_RATE2 0x9938 856*4882a593Smuzhiyun #define AR_PHY_POWER_TX_RATE_MAX 0x993c 857*4882a593Smuzhiyun #define AR_PHY_POWER_TX_RATE_MAX_TPC_ENABLE 0x00000040 858*4882a593Smuzhiyun #define PHY_AGC_CLR 0x10000000 859*4882a593Smuzhiyun #define RFSILENT_BB 0x00002000 860*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_DIFF_PPM_MASK 0xFFF 861*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_DIFF_PPM_SIGNED_BIT 0x800 862*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_DIFF_UPPER_LIMIT 320 863*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_MEMORY_CAPTURE_MASK 0x0001 864*4882a593Smuzhiyun #define AR_PHY_RX_DELAY_DELAY 0x00003FFF 865*4882a593Smuzhiyun #define AR_PHY_CCK_TX_CTRL_JAPAN 0x00000010 866*4882a593Smuzhiyun 867*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_ENABLE 0x00000001 868*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_ENABLE_S 0 869*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_ACTIVE 0x00000002 870*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_ACTIVE_S 1 871*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD 0x000000F0 872*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_S 4 873*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_PERIOD 0x0000FF00 874*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_PERIOD_S 8 875*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_COUNT 0x0FFF0000 876*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_COUNT_S 16 877*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT 0x10000000 878*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_S 28 879*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_PRIORITY 0x20000000 880*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_PRIORITY_S 29 881*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_USE_ERR5 0x40000000 882*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_USE_ERR5_S 30 883*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_COMPRESSED_RPT 0x80000000 884*4882a593Smuzhiyun #define AR_PHY_SPECTRAL_SCAN_COMPRESSED_RPT_S 31 885*4882a593Smuzhiyun 886*4882a593Smuzhiyun #define AR_PHY_CHANNEL_STATUS_RX_CLEAR 0x00000004 887*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_ENA_RADIO_RETENTION 0x00000001 888*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_ENA_RADIO_RETENTION_S 0 889*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_RESTORE_MASK 0x0000007E 890*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_RESTORE_MASK_S 1 891*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE 0x00000080 892*4882a593Smuzhiyun #define AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE_S 7 893*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_ACCESS 0x00000001 894*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_ACCESS_S 0 895*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_WRITE 0x00000002 896*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_WRITE_S 1 897*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_ADDR 0x0000001C 898*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_ADDR_S 2 899*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_DATA 0xFFFFFFF0 900*4882a593Smuzhiyun #define AR_PHY_RTT_SW_RTT_TABLE_DATA_S 4 901*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL 0x80000000 902*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL_S 31 903*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT 0x01fc0000 904*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S 18 905*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_START_DO_CAL 0x00000001 906*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_START_DO_CAL_S 0 907*4882a593Smuzhiyun 908*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_STATUS_FAILED 0x00000001 909*4882a593Smuzhiyun #define AR_PHY_CALIBRATED_GAINS_0 0x3e 910*4882a593Smuzhiyun #define AR_PHY_CALIBRATED_GAINS_0_S 1 911*4882a593Smuzhiyun 912*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_00_COEFF_TABLE 0x00003fff 913*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_00_COEFF_TABLE_S 0 914*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE 0x0fffc000 915*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE_S 14 916*4882a593Smuzhiyun 917*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX4_THERM_ON 0x10000000 918*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX4_THERM_ON_S 28 919*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX4_THERM_ON_OVR 0x20000000 920*4882a593Smuzhiyun #define AR_PHY_65NM_CH0_RXTX4_THERM_ON_OVR_S 29 921*4882a593Smuzhiyun 922*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX4_XLNA_BIAS 0xC0000000 923*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX4_XLNA_BIAS_S 30 924*4882a593Smuzhiyun 925*4882a593Smuzhiyun /* 926*4882a593Smuzhiyun * Channel 1 Register Map 927*4882a593Smuzhiyun */ 928*4882a593Smuzhiyun #define AR_CHAN1_BASE 0xa800 929*4882a593Smuzhiyun 930*4882a593Smuzhiyun #define AR_PHY_EXT_CCA_1 (AR_CHAN1_BASE + 0x30) 931*4882a593Smuzhiyun #define AR_PHY_TX_PHASE_RAMP_1 (AR_CHAN1_BASE + 0xd0) 932*4882a593Smuzhiyun #define AR_PHY_ADC_GAIN_DC_CORR_1 (AR_CHAN1_BASE + 0xd4) 933*4882a593Smuzhiyun 934*4882a593Smuzhiyun #define AR_PHY_SPUR_REPORT_1 (AR_CHAN1_BASE + 0xa8) 935*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_TAB_1 (AR_CHAN1_BASE + 0x300) 936*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_B1 (AR_CHAN1_BASE + 0xdc) 937*4882a593Smuzhiyun 938*4882a593Smuzhiyun /* 939*4882a593Smuzhiyun * Channel 1 Field Definitions 940*4882a593Smuzhiyun */ 941*4882a593Smuzhiyun #define AR_PHY_CH1_EXT_MINCCA_PWR 0x01FF0000 942*4882a593Smuzhiyun #define AR_PHY_CH1_EXT_MINCCA_PWR_S 16 943*4882a593Smuzhiyun 944*4882a593Smuzhiyun /* 945*4882a593Smuzhiyun * AGC 1 Register Map 946*4882a593Smuzhiyun */ 947*4882a593Smuzhiyun #define AR_AGC1_BASE 0xae00 948*4882a593Smuzhiyun 949*4882a593Smuzhiyun #define AR_PHY_FORCEMAX_GAINS_1 (AR_AGC1_BASE + 0x4) 950*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_1 (AR_AGC1_BASE + 0x18) 951*4882a593Smuzhiyun #define AR_PHY_CCA_1 (AR_AGC1_BASE + 0x1c) 952*4882a593Smuzhiyun #define AR_PHY_CCA_CTRL_1 (AR_AGC1_BASE + 0x20) 953*4882a593Smuzhiyun #define AR_PHY_RSSI_1 (AR_AGC1_BASE + 0x180) 954*4882a593Smuzhiyun #define AR_PHY_SPUR_CCK_REP_1 (AR_AGC1_BASE + 0x184) 955*4882a593Smuzhiyun #define AR_PHY_RX_OCGAIN_2 (AR_AGC1_BASE + 0x200) 956*4882a593Smuzhiyun 957*4882a593Smuzhiyun /* 958*4882a593Smuzhiyun * AGC 1 Field Definitions 959*4882a593Smuzhiyun */ 960*4882a593Smuzhiyun #define AR_PHY_CH1_MINCCA_PWR 0x1FF00000 961*4882a593Smuzhiyun #define AR_PHY_CH1_MINCCA_PWR_S 20 962*4882a593Smuzhiyun 963*4882a593Smuzhiyun /* 964*4882a593Smuzhiyun * SM 1 Register Map 965*4882a593Smuzhiyun */ 966*4882a593Smuzhiyun #define AR_SM1_BASE 0xb200 967*4882a593Smuzhiyun 968*4882a593Smuzhiyun #define AR_PHY_SWITCH_CHAIN_1 (AR_SM1_BASE + 0x84) 969*4882a593Smuzhiyun #define AR_PHY_FCAL_2_1 (AR_SM1_BASE + 0xd0) 970*4882a593Smuzhiyun #define AR_PHY_DFT_TONE_CTL_1 (AR_SM1_BASE + 0xd4) 971*4882a593Smuzhiyun #define AR_PHY_CL_TAB_1 (AR_SM1_BASE + 0x100) 972*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_1 (AR_SM1_BASE + 0x180) 973*4882a593Smuzhiyun #define AR_PHY_TPC_4_B1 (AR_SM1_BASE + 0x204) 974*4882a593Smuzhiyun #define AR_PHY_TPC_5_B1 (AR_SM1_BASE + 0x208) 975*4882a593Smuzhiyun #define AR_PHY_TPC_6_B1 (AR_SM1_BASE + 0x20c) 976*4882a593Smuzhiyun #define AR_PHY_TPC_11_B1 (AR_SM1_BASE + 0x220) 977*4882a593Smuzhiyun #define AR_PHY_PDADC_TAB_1 (AR_SM1_BASE + (AR_SREV_9462_20_OR_LATER(ah) ? \ 978*4882a593Smuzhiyun 0x280 : 0x240)) 979*4882a593Smuzhiyun #define AR_PHY_TPC_19_B1 (AR_SM1_BASE + 0x240) 980*4882a593Smuzhiyun #define AR_PHY_TPC_19_B1_ALPHA_THERM 0xff 981*4882a593Smuzhiyun #define AR_PHY_TPC_19_B1_ALPHA_THERM_S 0 982*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_STATUS_B1 (AR_SM1_BASE + 0x48c) 983*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_B1(_i) (AR_SM1_BASE + 0x450 + ((_i) << 2)) 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun #define AR_PHY_RTT_TABLE_SW_INTF_B(i) (0x384 + ((i) ? \ 986*4882a593Smuzhiyun AR_SM1_BASE : AR_SM_BASE)) 987*4882a593Smuzhiyun #define AR_PHY_RTT_TABLE_SW_INTF_1_B(i) (0x388 + ((i) ? \ 988*4882a593Smuzhiyun AR_SM1_BASE : AR_SM_BASE)) 989*4882a593Smuzhiyun /* 990*4882a593Smuzhiyun * Channel 2 Register Map 991*4882a593Smuzhiyun */ 992*4882a593Smuzhiyun #define AR_CHAN2_BASE 0xb800 993*4882a593Smuzhiyun 994*4882a593Smuzhiyun #define AR_PHY_EXT_CCA_2 (AR_CHAN2_BASE + 0x30) 995*4882a593Smuzhiyun #define AR_PHY_TX_PHASE_RAMP_2 (AR_CHAN2_BASE + 0xd0) 996*4882a593Smuzhiyun #define AR_PHY_ADC_GAIN_DC_CORR_2 (AR_CHAN2_BASE + 0xd4) 997*4882a593Smuzhiyun 998*4882a593Smuzhiyun #define AR_PHY_SPUR_REPORT_2 (AR_CHAN2_BASE + 0xa8) 999*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_TAB_2 (AR_CHAN2_BASE + 0x300) 1000*4882a593Smuzhiyun #define AR_PHY_RX_IQCAL_CORR_B2 (AR_CHAN2_BASE + 0xdc) 1001*4882a593Smuzhiyun 1002*4882a593Smuzhiyun /* 1003*4882a593Smuzhiyun * Channel 2 Field Definitions 1004*4882a593Smuzhiyun */ 1005*4882a593Smuzhiyun #define AR_PHY_CH2_EXT_MINCCA_PWR 0x01FF0000 1006*4882a593Smuzhiyun #define AR_PHY_CH2_EXT_MINCCA_PWR_S 16 1007*4882a593Smuzhiyun /* 1008*4882a593Smuzhiyun * AGC 2 Register Map 1009*4882a593Smuzhiyun */ 1010*4882a593Smuzhiyun #define AR_AGC2_BASE 0xbe00 1011*4882a593Smuzhiyun 1012*4882a593Smuzhiyun #define AR_PHY_FORCEMAX_GAINS_2 (AR_AGC2_BASE + 0x4) 1013*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL_2 (AR_AGC2_BASE + 0x18) 1014*4882a593Smuzhiyun #define AR_PHY_CCA_2 (AR_AGC2_BASE + 0x1c) 1015*4882a593Smuzhiyun #define AR_PHY_CCA_CTRL_2 (AR_AGC2_BASE + 0x20) 1016*4882a593Smuzhiyun #define AR_PHY_RSSI_2 (AR_AGC2_BASE + 0x180) 1017*4882a593Smuzhiyun 1018*4882a593Smuzhiyun /* 1019*4882a593Smuzhiyun * AGC 2 Field Definitions 1020*4882a593Smuzhiyun */ 1021*4882a593Smuzhiyun #define AR_PHY_CH2_MINCCA_PWR 0x1FF00000 1022*4882a593Smuzhiyun #define AR_PHY_CH2_MINCCA_PWR_S 20 1023*4882a593Smuzhiyun 1024*4882a593Smuzhiyun /* 1025*4882a593Smuzhiyun * SM 2 Register Map 1026*4882a593Smuzhiyun */ 1027*4882a593Smuzhiyun #define AR_SM2_BASE 0xc200 1028*4882a593Smuzhiyun 1029*4882a593Smuzhiyun #define AR_PHY_SWITCH_CHAIN_2 (AR_SM2_BASE + 0x84) 1030*4882a593Smuzhiyun #define AR_PHY_FCAL_2_2 (AR_SM2_BASE + 0xd0) 1031*4882a593Smuzhiyun #define AR_PHY_DFT_TONE_CTL_2 (AR_SM2_BASE + 0xd4) 1032*4882a593Smuzhiyun #define AR_PHY_CL_TAB_2 (AR_SM2_BASE + 0x100) 1033*4882a593Smuzhiyun #define AR_PHY_CHAN_INFO_GAIN_2 (AR_SM2_BASE + 0x180) 1034*4882a593Smuzhiyun #define AR_PHY_TPC_4_B2 (AR_SM2_BASE + 0x204) 1035*4882a593Smuzhiyun #define AR_PHY_TPC_5_B2 (AR_SM2_BASE + 0x208) 1036*4882a593Smuzhiyun #define AR_PHY_TPC_6_B2 (AR_SM2_BASE + 0x20c) 1037*4882a593Smuzhiyun #define AR_PHY_TPC_11_B2 (AR_SM2_BASE + 0x220) 1038*4882a593Smuzhiyun #define AR_PHY_TPC_19_B2 (AR_SM2_BASE + 0x240) 1039*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_STATUS_B2 (AR_SM2_BASE + 0x48c) 1040*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_CORR_COEFF_B2(_i) (AR_SM2_BASE + 0x450 + ((_i) << 2)) 1041*4882a593Smuzhiyun 1042*4882a593Smuzhiyun #define AR_PHY_TX_IQCAL_STATUS_B2_FAILED 0x00000001 1043*4882a593Smuzhiyun 1044*4882a593Smuzhiyun /* 1045*4882a593Smuzhiyun * AGC 3 Register Map 1046*4882a593Smuzhiyun */ 1047*4882a593Smuzhiyun #define AR_AGC3_BASE 0xce00 1048*4882a593Smuzhiyun 1049*4882a593Smuzhiyun #define AR_PHY_RSSI_3 (AR_AGC3_BASE + 0x180) 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun /* GLB Registers */ 1052*4882a593Smuzhiyun #define AR_GLB_BASE 0x20000 1053*4882a593Smuzhiyun #define AR_GLB_GPIO_CONTROL (AR_GLB_BASE) 1054*4882a593Smuzhiyun #define AR_PHY_GLB_CONTROL (AR_GLB_BASE + 0x44) 1055*4882a593Smuzhiyun #define AR_GLB_SCRATCH(_ah) (AR_GLB_BASE + \ 1056*4882a593Smuzhiyun (AR_SREV_9462_20_OR_LATER(_ah) ? 0x4c : 0x50)) 1057*4882a593Smuzhiyun #define AR_GLB_STATUS (AR_GLB_BASE + 0x48) 1058*4882a593Smuzhiyun 1059*4882a593Smuzhiyun /* 1060*4882a593Smuzhiyun * Misc helper defines 1061*4882a593Smuzhiyun */ 1062*4882a593Smuzhiyun #define AR_PHY_CHAIN_OFFSET (AR_CHAN1_BASE - AR_CHAN_BASE) 1063*4882a593Smuzhiyun 1064*4882a593Smuzhiyun #define AR_PHY_NEW_ADC_DC_GAIN_CORR(_i) (AR_PHY_ADC_GAIN_DC_CORR_0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1065*4882a593Smuzhiyun #define AR_PHY_NEW_ADC_DC_GAIN_CORR_9300_10(_i) (AR_PHY_ADC_GAIN_DC_CORR_0_9300_10 + (AR_PHY_CHAIN_OFFSET * (_i))) 1066*4882a593Smuzhiyun #define AR_PHY_SWITCH_CHAIN(_i) (AR_PHY_SWITCH_CHAIN_0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1067*4882a593Smuzhiyun #define AR_PHY_EXT_ATTEN_CTL(_i) (AR_PHY_EXT_ATTEN_CTL_0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1068*4882a593Smuzhiyun 1069*4882a593Smuzhiyun #define AR_PHY_RXGAIN(_i) (AR_PHY_FORCEMAX_GAINS_0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1070*4882a593Smuzhiyun #define AR_PHY_TPCRG5(_i) (AR_PHY_TPC_5_B0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1071*4882a593Smuzhiyun #define AR_PHY_PDADC_TAB(_i) (AR_PHY_PDADC_TAB_0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1072*4882a593Smuzhiyun 1073*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_0(_i) (AR_PHY_IQ_ADC_MEAS_0_B0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1074*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_1(_i) (AR_PHY_IQ_ADC_MEAS_1_B0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1075*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_2(_i) (AR_PHY_IQ_ADC_MEAS_2_B0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1076*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_3(_i) (AR_PHY_IQ_ADC_MEAS_3_B0 + (AR_PHY_CHAIN_OFFSET * (_i))) 1077*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_0_9300_10(_i) (AR_PHY_IQ_ADC_MEAS_0_B0_9300_10 + (AR_PHY_CHAIN_OFFSET * (_i))) 1078*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_1_9300_10(_i) (AR_PHY_IQ_ADC_MEAS_1_B0_9300_10 + (AR_PHY_CHAIN_OFFSET * (_i))) 1079*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_2_9300_10(_i) (AR_PHY_IQ_ADC_MEAS_2_B0_9300_10 + (AR_PHY_CHAIN_OFFSET * (_i))) 1080*4882a593Smuzhiyun #define AR_PHY_CAL_MEAS_3_9300_10(_i) (AR_PHY_IQ_ADC_MEAS_3_B0_9300_10 + (AR_PHY_CHAIN_OFFSET * (_i))) 1081*4882a593Smuzhiyun 1082*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_NON_IDLE_ENABLE 0x00000001 1083*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_IDLE_ENABLE 0x00000002 1084*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_IDLE_MASK 0xFFFF0000 1085*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_NON_IDLE_MASK 0x0000FFFC 1086*4882a593Smuzhiyun 1087*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RST_ENABLE 0x00000002 1088*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_IRQ_ENABLE 0x00000004 1089*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_CNTL2_MASK 0xFFFFFFF9 1090*4882a593Smuzhiyun 1091*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_INFO 0x00000007 1092*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_INFO_S 0 1093*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_DET_HANG 0x00000008 1094*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_DET_HANG_S 3 1095*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RADAR_SM 0x000000F0 1096*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RADAR_SM_S 4 1097*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RX_OFDM_SM 0x00000F00 1098*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RX_OFDM_SM_S 8 1099*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RX_CCK_SM 0x0000F000 1100*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_RX_CCK_SM_S 12 1101*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_TX_OFDM_SM 0x000F0000 1102*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_TX_OFDM_SM_S 16 1103*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_TX_CCK_SM 0x00F00000 1104*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_TX_CCK_SM_S 20 1105*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_AGC_SM 0x0F000000 1106*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_AGC_SM_S 24 1107*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_SRCH_SM 0xF0000000 1108*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_SRCH_SM_S 28 1109*4882a593Smuzhiyun 1110*4882a593Smuzhiyun #define AR_PHY_WATCHDOG_STATUS_CLR 0x00000008 1111*4882a593Smuzhiyun 1112*4882a593Smuzhiyun /* 1113*4882a593Smuzhiyun * PAPRD registers 1114*4882a593Smuzhiyun */ 1115*4882a593Smuzhiyun #define AR_PHY_XPA_TIMING_CTL (AR_SM_BASE + 0x64) 1116*4882a593Smuzhiyun 1117*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2AM (AR_CHAN_BASE + 0xe4) 1118*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2AM_MASK 0x01ffffff 1119*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2AM_MASK_S 0 1120*4882a593Smuzhiyun 1121*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2PM (AR_CHAN_BASE + 0xe8) 1122*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2PM_MASK 0x01ffffff 1123*4882a593Smuzhiyun #define AR_PHY_PAPRD_AM2PM_MASK_S 0 1124*4882a593Smuzhiyun 1125*4882a593Smuzhiyun #define AR_PHY_PAPRD_HT40 (AR_CHAN_BASE + 0xec) 1126*4882a593Smuzhiyun #define AR_PHY_PAPRD_HT40_MASK 0x01ffffff 1127*4882a593Smuzhiyun #define AR_PHY_PAPRD_HT40_MASK_S 0 1128*4882a593Smuzhiyun 1129*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_B0 (AR_CHAN_BASE + 0xf0) 1130*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_B1 (AR_CHAN1_BASE + 0xf0) 1131*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_B2 (AR_CHAN2_BASE + 0xf0) 1132*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_PAPRD_ENABLE 0x00000001 1133*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_PAPRD_ENABLE_S 0 1134*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_USE_SINGLE_TABLE_MASK 0x00000002 1135*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_USE_SINGLE_TABLE_MASK_S 1 1136*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH 0xf8000000 1137*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL0_PAPRD_MAG_THRSH_S 27 1138*4882a593Smuzhiyun 1139*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_B0 (AR_CHAN_BASE + 0xf4) 1140*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_B1 (AR_CHAN1_BASE + 0xf4) 1141*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_B2 (AR_CHAN2_BASE + 0xf4) 1142*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_SCALING_ENA 0x00000001 1143*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_SCALING_ENA_S 0 1144*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2AM_ENABLE 0x00000002 1145*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2AM_ENABLE_S 1 1146*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2PM_ENABLE 0x00000004 1147*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_ADAPTIVE_AM2PM_ENABLE_S 2 1148*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PAPRD_POWER_AT_AM2AM_CAL 0x000001f8 1149*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PAPRD_POWER_AT_AM2AM_CAL_S 3 1150*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_MASK 0x0001fe00 1151*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PA_GAIN_SCALE_FACT_MASK_S 9 1152*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PAPRD_MAG_SCALE_FACT 0x0ffe0000 1153*4882a593Smuzhiyun #define AR_PHY_PAPRD_CTRL1_PAPRD_MAG_SCALE_FACT_S 17 1154*4882a593Smuzhiyun 1155*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x580 : 0x490)) 1156*4882a593Smuzhiyun 1157*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_CF_PAPRD_TRAIN_ENABLE 0x00000001 1158*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_CF_PAPRD_TRAIN_ENABLE_S 0 1159*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_AGC2_SETTLING 0x0000007e 1160*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_AGC2_SETTLING_S 1 1161*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_IQCORR_ENABLE 0x00000100 1162*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_IQCORR_ENABLE_S 8 1163*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_RX_BB_GAIN_FORCE 0x00000200 1164*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_RX_BB_GAIN_FORCE_S 9 1165*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_TX_GAIN_FORCE 0x00000400 1166*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_TX_GAIN_FORCE_S 10 1167*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_LB_ENABLE 0x00000800 1168*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_LB_ENABLE_S 11 1169*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_LB_SKIP 0x0003f000 1170*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_LB_SKIP_S 12 1171*4882a593Smuzhiyun 1172*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL2 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x584 : 0x494)) 1173*4882a593Smuzhiyun 1174*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL2_CF_PAPRD_INIT_RX_BB_GAIN 0xFFFFFFFF 1175*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL2_CF_PAPRD_INIT_RX_BB_GAIN_S 0 1176*4882a593Smuzhiyun 1177*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x588 : 0x498)) 1178*4882a593Smuzhiyun 1179*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_ADC_DESIRED_SIZE 0x0000003f 1180*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_ADC_DESIRED_SIZE_S 0 1181*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_QUICK_DROP 0x00000fc0 1182*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_QUICK_DROP_S 6 1183*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_MIN_LOOPBACK_DEL 0x0001f000 1184*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_MIN_LOOPBACK_DEL_S 12 1185*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_NUM_CORR_STAGES 0x000e0000 1186*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_NUM_CORR_STAGES_S 17 1187*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_COARSE_CORR_LEN 0x00f00000 1188*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_COARSE_CORR_LEN_S 20 1189*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_FINE_CORR_LEN 0x0f000000 1190*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_FINE_CORR_LEN_S 24 1191*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_BBTXMIX_DISABLE 0x20000000 1192*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_BBTXMIX_DISABLE_S 29 1193*4882a593Smuzhiyun 1194*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x58c : 0x49c)) 1195*4882a593Smuzhiyun 1196*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_NUM_TRAIN_SAMPLES 0x03ff0000 1197*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_NUM_TRAIN_SAMPLES_S 16 1198*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_SAFETY_DELTA 0x0000f000 1199*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_SAFETY_DELTA_S 12 1200*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_MIN_CORR 0x00000fff 1201*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_CNTL4_CF_PAPRD_MIN_CORR_S 0 1202*4882a593Smuzhiyun 1203*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_0_B0 (AR_CHAN_BASE + 0x100) 1204*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_1_B0 (AR_CHAN_BASE + 0x104) 1205*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_2_B0 (AR_CHAN_BASE + 0x108) 1206*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_3_B0 (AR_CHAN_BASE + 0x10c) 1207*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_4_B0 (AR_CHAN_BASE + 0x110) 1208*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_5_B0 (AR_CHAN_BASE + 0x114) 1209*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_6_B0 (AR_CHAN_BASE + 0x118) 1210*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALE_7_B0 (AR_CHAN_BASE + 0x11c) 1211*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALING 0x3FFFF 1212*4882a593Smuzhiyun #define AR_PHY_PAPRD_PRE_POST_SCALING_S 0 1213*4882a593Smuzhiyun 1214*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x590 : 0x4a0)) 1215*4882a593Smuzhiyun 1216*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_DONE 0x00000001 1217*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_DONE_S 0 1218*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_INCOMPLETE 0x00000002 1219*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_INCOMPLETE_S 1 1220*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_CORR_ERR 0x00000004 1221*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_CORR_ERR_S 2 1222*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_ACTIVE 0x00000008 1223*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_TRAIN_ACTIVE_S 3 1224*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_RX_GAIN_IDX 0x000001f0 1225*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_RX_GAIN_IDX_S 4 1226*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_AGC2_PWR 0x0001fe00 1227*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT1_PAPRD_AGC2_PWR_S 9 1228*4882a593Smuzhiyun 1229*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x594 : 0x4a4)) 1230*4882a593Smuzhiyun 1231*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_FINE_VAL 0x0000ffff 1232*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_FINE_VAL_S 0 1233*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_COARSE_IDX 0x001f0000 1234*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_COARSE_IDX_S 16 1235*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_FINE_IDX 0x00600000 1236*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT2_PAPRD_FINE_IDX_S 21 1237*4882a593Smuzhiyun 1238*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT3 (AR_SM_BASE + (AR_SREV_9485(ah) ? 0x598 : 0x4a8)) 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT3_PAPRD_TRAIN_SAMPLES_CNT 0x000fffff 1241*4882a593Smuzhiyun #define AR_PHY_PAPRD_TRAINER_STAT3_PAPRD_TRAIN_SAMPLES_CNT_S 0 1242*4882a593Smuzhiyun 1243*4882a593Smuzhiyun #define AR_PHY_PAPRD_MEM_TAB_B0 (AR_CHAN_BASE + 0x120) 1244*4882a593Smuzhiyun #define AR_PHY_PAPRD_MEM_TAB_B1 (AR_CHAN1_BASE + 0x120) 1245*4882a593Smuzhiyun #define AR_PHY_PAPRD_MEM_TAB_B2 (AR_CHAN2_BASE + 0x120) 1246*4882a593Smuzhiyun 1247*4882a593Smuzhiyun #define AR_PHY_PA_GAIN123_B0 (AR_CHAN_BASE + 0xf8) 1248*4882a593Smuzhiyun #define AR_PHY_PA_GAIN123_B1 (AR_CHAN1_BASE + 0xf8) 1249*4882a593Smuzhiyun #define AR_PHY_PA_GAIN123_B2 (AR_CHAN2_BASE + 0xf8) 1250*4882a593Smuzhiyun #define AR_PHY_PA_GAIN123_PA_GAIN1 0x3FF 1251*4882a593Smuzhiyun #define AR_PHY_PA_GAIN123_PA_GAIN1_S 0 1252*4882a593Smuzhiyun 1253*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE5 (AR_SM_BASE + 0x1d0) 1254*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE5_POWERTXHT20_0 0x3F 1255*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE5_POWERTXHT20_0_S 0 1256*4882a593Smuzhiyun 1257*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE6 (AR_SM_BASE + 0x1d4) 1258*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE6_POWERTXHT20_5 0x3F00 1259*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE6_POWERTXHT20_5_S 8 1260*4882a593Smuzhiyun 1261*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE8 (AR_SM_BASE + 0x1dc) 1262*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE8_POWERTXHT40_5 0x3F00 1263*4882a593Smuzhiyun #define AR_PHY_POWERTX_RATE8_POWERTXHT40_5_S 8 1264*4882a593Smuzhiyun 1265*4882a593Smuzhiyun #define AR_PHY_CL_TAB_CL_GAIN_MOD 0x1f 1266*4882a593Smuzhiyun #define AR_PHY_CL_TAB_CL_GAIN_MOD_S 0 1267*4882a593Smuzhiyun 1268*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV 0x1a64 1269*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_PREDICTED_PERIOD 0x00003FFF 1270*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_PREDICTED_PERIOD_S 0 1271*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_DPDT_IGNORE_PRIORITY 0x00004000 1272*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_DPDT_IGNORE_PRIORITY_S 14 1273*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_FORCE_ON 0x00008000 1274*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_FORCE_ON_S 15 1275*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_MODE_OPTION 0x00030000 1276*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_MODE_OPTION_S 16 1277*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_MODE 0x007c0000 1278*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_MODE_S 18 1279*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_ALLOWED_TX_ANTDIV_WL_TX_REQ 0x00800000 1280*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_ALLOWED_TX_ANTDIV_WL_TX_REQ_S 23 1281*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_DISABLE_TX_ANTDIV_ENABLE 0x01000000 1282*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_DISABLE_TX_ANTDIV_ENABLE_S 24 1283*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_CONTINUOUS_BT_ACTIVE_PROTECT 0x02000000 1284*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_CONTINUOUS_BT_ACTIVE_PROTECT_S 25 1285*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_BT_INACTIVE_THRESHOLD 0xFC000000 1286*4882a593Smuzhiyun #define AR_BTCOEX_WL_LNADIV_BT_INACTIVE_THRESHOLD_S 26 1287*4882a593Smuzhiyun 1288*4882a593Smuzhiyun /* Manual Peak detector calibration */ 1289*4882a593Smuzhiyun #define AR_PHY_65NM_BASE 0x16000 1290*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES(i) (AR_PHY_65NM_BASE + \ 1291*4882a593Smuzhiyun (i * 0x400) + 0x8) 1292*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_RX_OVERRIDE 0x80000000 1293*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_RX_OVERRIDE_S 31 1294*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNAON_CALDC 0x00000002 1295*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNAON_CALDC_S 1 1296*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNA2G_GAIN_OVR 0x70000000 1297*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNA2G_GAIN_OVR_S 28 1298*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNA5G_GAIN_OVR 0x03800000 1299*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_GAINSTAGES_LNA5G_GAIN_OVR_S 23 1300*4882a593Smuzhiyun 1301*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX2(i) (AR_PHY_65NM_BASE + \ 1302*4882a593Smuzhiyun (i * 0x400) + 0x104) 1303*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX2_RXON_OVR 0x00001000 1304*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX2_RXON_OVR_S 12 1305*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX2_RXON 0x00000800 1306*4882a593Smuzhiyun #define AR_PHY_65NM_RXTX2_RXON_S 11 1307*4882a593Smuzhiyun 1308*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC(i) (AR_PHY_65NM_BASE + \ 1309*4882a593Smuzhiyun (i * 0x400) + 0xc) 1310*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_OVERRIDE 0x80000000 1311*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_OVERRIDE_S 31 1312*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_ON_OVR 0x40000000 1313*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_ON_OVR_S 30 1314*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_CAL_OVR 0x20000000 1315*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_CAL_OVR_S 29 1316*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC2G_DBDAC_OVR 0x1E000000 1317*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC2G_DBDAC_OVR_S 25 1318*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC5G_DBDAC_OVR 0x00078000 1319*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC5G_DBDAC_OVR_S 15 1320*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC2G_CALDAC_OVR 0x01F80000 1321*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC2G_CALDAC_OVR_S 19 1322*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC5G_CALDAC_OVR 0x00007e00 1323*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC5G_CALDAC_OVR_S 9 1324*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_OUT 0x00000004 1325*4882a593Smuzhiyun #define AR_PHY_65NM_RXRF_AGC_AGC_OUT_S 2 1326*4882a593Smuzhiyun 1327*4882a593Smuzhiyun #define AR9300_DFS_FIRPWR -28 1328*4882a593Smuzhiyun 1329*4882a593Smuzhiyun #endif /* AR9003_PHY_H */ 1330