Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Shared Atheros AR9170 Header
0003  *
0004  * PHY register map
0005  *
0006  * Copyright (c) 2008-2009 Atheros Communications Inc.
0007  *
0008  * Permission to use, copy, modify, and/or distribute this software for any
0009  * purpose with or without fee is hereby granted, provided that the above
0010  * copyright notice and this permission notice appear in all copies.
0011  *
0012  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
0013  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
0014  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
0015  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
0016  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
0017  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
0018  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
0019  */
0020 
0021 #ifndef __CARL9170_SHARED_PHY_H
0022 #define __CARL9170_SHARED_PHY_H
0023 
0024 #define AR9170_PHY_REG_BASE         (0x1bc000 + 0x9800)
0025 #define AR9170_PHY_REG(_n)          (AR9170_PHY_REG_BASE + \
0026                          ((_n) << 2))
0027 
0028 #define AR9170_PHY_REG_TEST         (AR9170_PHY_REG_BASE + 0x0000)
0029 #define     AR9170_PHY_TEST_AGC_CLR         0x10000000
0030 #define     AR9170_PHY_TEST_RFSILENT_BB     0x00002000
0031 
0032 #define AR9170_PHY_REG_TURBO            (AR9170_PHY_REG_BASE + 0x0004)
0033 #define     AR9170_PHY_TURBO_FC_TURBO_MODE      0x00000001
0034 #define     AR9170_PHY_TURBO_FC_TURBO_SHORT     0x00000002
0035 #define     AR9170_PHY_TURBO_FC_DYN2040_EN      0x00000004
0036 #define     AR9170_PHY_TURBO_FC_DYN2040_PRI_ONLY    0x00000008
0037 #define     AR9170_PHY_TURBO_FC_DYN2040_PRI_CH  0x00000010
0038 /* For 25 MHz channel spacing -- not used but supported by hw */
0039 #define     AR9170_PHY_TURBO_FC_DYN2040_EXT_CH  0x00000020
0040 #define     AR9170_PHY_TURBO_FC_HT_EN       0x00000040
0041 #define     AR9170_PHY_TURBO_FC_SHORT_GI_40     0x00000080
0042 #define     AR9170_PHY_TURBO_FC_WALSH       0x00000100
0043 #define     AR9170_PHY_TURBO_FC_SINGLE_HT_LTF1  0x00000200
0044 #define     AR9170_PHY_TURBO_FC_ENABLE_DAC_FIFO 0x00000800
0045 
0046 #define AR9170_PHY_REG_TEST2            (AR9170_PHY_REG_BASE + 0x0008)
0047 
0048 #define AR9170_PHY_REG_TIMING2          (AR9170_PHY_REG_BASE + 0x0010)
0049 #define     AR9170_PHY_TIMING2_USE_FORCE        0x00001000
0050 #define     AR9170_PHY_TIMING2_FORCE        0x00000fff
0051 #define     AR9170_PHY_TIMING2_FORCE_S           0
0052 
0053 #define AR9170_PHY_REG_TIMING3          (AR9170_PHY_REG_BASE + 0x0014)
0054 #define     AR9170_PHY_TIMING3_DSC_EXP      0x0001e000
0055 #define     AR9170_PHY_TIMING3_DSC_EXP_S        13
0056 #define     AR9170_PHY_TIMING3_DSC_MAN      0xfffe0000
0057 #define     AR9170_PHY_TIMING3_DSC_MAN_S        17
0058 
0059 #define AR9170_PHY_REG_CHIP_ID          (AR9170_PHY_REG_BASE + 0x0018)
0060 #define     AR9170_PHY_CHIP_ID_REV_0        0x80
0061 #define     AR9170_PHY_CHIP_ID_REV_1        0x81
0062 #define     AR9170_PHY_CHIP_ID_9160_REV_0       0xb0
0063 
0064 #define AR9170_PHY_REG_ACTIVE           (AR9170_PHY_REG_BASE + 0x001c)
0065 #define     AR9170_PHY_ACTIVE_EN            0x00000001
0066 #define     AR9170_PHY_ACTIVE_DIS           0x00000000
0067 
0068 #define AR9170_PHY_REG_RF_CTL2          (AR9170_PHY_REG_BASE + 0x0024)
0069 #define     AR9170_PHY_RF_CTL2_TX_END_DATA_START    0x000000ff
0070 #define     AR9170_PHY_RF_CTL2_TX_END_DATA_START_S  0
0071 #define     AR9170_PHY_RF_CTL2_TX_END_PA_ON     0x0000ff00
0072 #define     AR9170_PHY_RF_CTL2_TX_END_PA_ON_S   8
0073 
0074 #define AR9170_PHY_REG_RF_CTL3                  (AR9170_PHY_REG_BASE + 0x0028)
0075 #define     AR9170_PHY_RF_CTL3_TX_END_TO_A2_RX_ON   0x00ff0000
0076 #define     AR9170_PHY_RF_CTL3_TX_END_TO_A2_RX_ON_S 16
0077 
0078 #define AR9170_PHY_REG_ADC_CTL          (AR9170_PHY_REG_BASE + 0x002c)
0079 #define     AR9170_PHY_ADC_CTL_OFF_INBUFGAIN    0x00000003
0080 #define     AR9170_PHY_ADC_CTL_OFF_INBUFGAIN_S  0
0081 #define     AR9170_PHY_ADC_CTL_OFF_PWDDAC       0x00002000
0082 #define     AR9170_PHY_ADC_CTL_OFF_PWDBANDGAP   0x00004000
0083 #define     AR9170_PHY_ADC_CTL_OFF_PWDADC       0x00008000
0084 #define     AR9170_PHY_ADC_CTL_ON_INBUFGAIN     0x00030000
0085 #define     AR9170_PHY_ADC_CTL_ON_INBUFGAIN_S   16
0086 
0087 #define AR9170_PHY_REG_ADC_SERIAL_CTL       (AR9170_PHY_REG_BASE + 0x0030)
0088 #define     AR9170_PHY_ADC_SCTL_SEL_INTERNAL_ADDAC  0x00000000
0089 #define     AR9170_PHY_ADC_SCTL_SEL_EXTERNAL_RADIO  0x00000001
0090 
0091 #define AR9170_PHY_REG_RF_CTL4          (AR9170_PHY_REG_BASE + 0x0034)
0092 #define     AR9170_PHY_RF_CTL4_TX_END_XPAB_OFF  0xff000000
0093 #define     AR9170_PHY_RF_CTL4_TX_END_XPAB_OFF_S    24
0094 #define     AR9170_PHY_RF_CTL4_TX_END_XPAA_OFF  0x00ff0000
0095 #define     AR9170_PHY_RF_CTL4_TX_END_XPAA_OFF_S    16
0096 #define     AR9170_PHY_RF_CTL4_FRAME_XPAB_ON    0x0000ff00
0097 #define     AR9170_PHY_RF_CTL4_FRAME_XPAB_ON_S  8
0098 #define     AR9170_PHY_RF_CTL4_FRAME_XPAA_ON    0x000000ff
0099 #define     AR9170_PHY_RF_CTL4_FRAME_XPAA_ON_S  0
0100 
0101 #define AR9170_PHY_REG_TSTDAC_CONST     (AR9170_PHY_REG_BASE + 0x003c)
0102 
0103 #define AR9170_PHY_REG_SETTLING         (AR9170_PHY_REG_BASE + 0x0044)
0104 #define     AR9170_PHY_SETTLING_SWITCH      0x00003f80
0105 #define     AR9170_PHY_SETTLING_SWITCH_S        7
0106 
0107 #define AR9170_PHY_REG_RXGAIN           (AR9170_PHY_REG_BASE + 0x0048)
0108 #define AR9170_PHY_REG_RXGAIN_CHAIN_2       (AR9170_PHY_REG_BASE + 0x2048)
0109 #define     AR9170_PHY_RXGAIN_TXRX_ATTEN        0x0003f000
0110 #define     AR9170_PHY_RXGAIN_TXRX_ATTEN_S      12
0111 #define     AR9170_PHY_RXGAIN_TXRX_RF_MAX       0x007c0000
0112 #define     AR9170_PHY_RXGAIN_TXRX_RF_MAX_S     18
0113 
0114 #define AR9170_PHY_REG_DESIRED_SZ       (AR9170_PHY_REG_BASE + 0x0050)
0115 #define     AR9170_PHY_DESIRED_SZ_ADC       0x000000ff
0116 #define     AR9170_PHY_DESIRED_SZ_ADC_S     0
0117 #define     AR9170_PHY_DESIRED_SZ_PGA       0x0000ff00
0118 #define     AR9170_PHY_DESIRED_SZ_PGA_S     8
0119 #define     AR9170_PHY_DESIRED_SZ_TOT_DES       0x0ff00000
0120 #define     AR9170_PHY_DESIRED_SZ_TOT_DES_S     20
0121 
0122 #define AR9170_PHY_REG_FIND_SIG         (AR9170_PHY_REG_BASE + 0x0058)
0123 #define     AR9170_PHY_FIND_SIG_FIRSTEP     0x0003f000
0124 #define     AR9170_PHY_FIND_SIG_FIRSTEP_S       12
0125 #define     AR9170_PHY_FIND_SIG_FIRPWR      0x03fc0000
0126 #define     AR9170_PHY_FIND_SIG_FIRPWR_S        18
0127 
0128 #define AR9170_PHY_REG_AGC_CTL1         (AR9170_PHY_REG_BASE + 0x005c)
0129 #define     AR9170_PHY_AGC_CTL1_COARSE_LOW      0x00007f80
0130 #define     AR9170_PHY_AGC_CTL1_COARSE_LOW_S    7
0131 #define     AR9170_PHY_AGC_CTL1_COARSE_HIGH     0x003f8000
0132 #define     AR9170_PHY_AGC_CTL1_COARSE_HIGH_S   15
0133 
0134 #define AR9170_PHY_REG_AGC_CONTROL      (AR9170_PHY_REG_BASE + 0x0060)
0135 #define     AR9170_PHY_AGC_CONTROL_CAL      0x00000001
0136 #define     AR9170_PHY_AGC_CONTROL_NF       0x00000002
0137 #define     AR9170_PHY_AGC_CONTROL_ENABLE_NF    0x00008000
0138 #define     AR9170_PHY_AGC_CONTROL_FLTR_CAL     0x00010000
0139 #define     AR9170_PHY_AGC_CONTROL_NO_UPDATE_NF 0x00020000
0140 
0141 #define AR9170_PHY_REG_CCA          (AR9170_PHY_REG_BASE + 0x0064)
0142 #define     AR9170_PHY_CCA_MIN_PWR          0x0ff80000
0143 #define     AR9170_PHY_CCA_MIN_PWR_S        19
0144 #define     AR9170_PHY_CCA_THRESH62         0x0007f000
0145 #define     AR9170_PHY_CCA_THRESH62_S       12
0146 
0147 #define AR9170_PHY_REG_SFCORR           (AR9170_PHY_REG_BASE + 0x0068)
0148 #define     AR9170_PHY_SFCORR_M2COUNT_THR       0x0000001f
0149 #define     AR9170_PHY_SFCORR_M2COUNT_THR_S     0
0150 #define     AR9170_PHY_SFCORR_M1_THRESH     0x00fe0000
0151 #define     AR9170_PHY_SFCORR_M1_THRESH_S       17
0152 #define     AR9170_PHY_SFCORR_M2_THRESH     0x7f000000
0153 #define     AR9170_PHY_SFCORR_M2_THRESH_S       24
0154 
0155 #define AR9170_PHY_REG_SFCORR_LOW       (AR9170_PHY_REG_BASE + 0x006c)
0156 #define     AR9170_PHY_SFCORR_LOW_USE_SELF_CORR_LOW 0x00000001
0157 #define     AR9170_PHY_SFCORR_LOW_M2COUNT_THR_LOW   0x00003f00
0158 #define     AR9170_PHY_SFCORR_LOW_M2COUNT_THR_LOW_S 8
0159 #define     AR9170_PHY_SFCORR_LOW_M1_THRESH_LOW 0x001fc000
0160 #define     AR9170_PHY_SFCORR_LOW_M1_THRESH_LOW_S   14
0161 #define     AR9170_PHY_SFCORR_LOW_M2_THRESH_LOW 0x0fe00000
0162 #define     AR9170_PHY_SFCORR_LOW_M2_THRESH_LOW_S   21
0163 
0164 #define AR9170_PHY_REG_SLEEP_CTR_CONTROL    (AR9170_PHY_REG_BASE + 0x0070)
0165 #define AR9170_PHY_REG_SLEEP_CTR_LIMIT      (AR9170_PHY_REG_BASE + 0x0074)
0166 #define AR9170_PHY_REG_SLEEP_SCAL       (AR9170_PHY_REG_BASE + 0x0078)
0167 
0168 #define AR9170_PHY_REG_PLL_CTL          (AR9170_PHY_REG_BASE + 0x007c)
0169 #define     AR9170_PHY_PLL_CTL_40           0xaa
0170 #define     AR9170_PHY_PLL_CTL_40_5413      0x04
0171 #define     AR9170_PHY_PLL_CTL_44           0xab
0172 #define     AR9170_PHY_PLL_CTL_44_2133      0xeb
0173 #define     AR9170_PHY_PLL_CTL_40_2133      0xea
0174 
0175 #define AR9170_PHY_REG_BIN_MASK_1       (AR9170_PHY_REG_BASE + 0x0100)
0176 #define AR9170_PHY_REG_BIN_MASK_2       (AR9170_PHY_REG_BASE + 0x0104)
0177 #define AR9170_PHY_REG_BIN_MASK_3       (AR9170_PHY_REG_BASE + 0x0108)
0178 #define AR9170_PHY_REG_MASK_CTL         (AR9170_PHY_REG_BASE + 0x010c)
0179 
0180 /* analogue power on time (100ns) */
0181 #define AR9170_PHY_REG_RX_DELAY         (AR9170_PHY_REG_BASE + 0x0114)
0182 #define AR9170_PHY_REG_SEARCH_START_DELAY   (AR9170_PHY_REG_BASE + 0x0118)
0183 #define     AR9170_PHY_RX_DELAY_DELAY       0x00003fff
0184 
0185 #define AR9170_PHY_REG_TIMING_CTRL4(_i)     (AR9170_PHY_REG_BASE + \
0186                         (0x0120 + ((_i) << 12)))
0187 #define     AR9170_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF     0x01f
0188 #define     AR9170_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF_S   0
0189 #define     AR9170_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF     0x7e0
0190 #define     AR9170_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF_S   5
0191 #define     AR9170_PHY_TIMING_CTRL4_IQCORR_ENABLE       0x800
0192 #define     AR9170_PHY_TIMING_CTRL4_IQCAL_LOG_COUNT_MAX 0xf000
0193 #define     AR9170_PHY_TIMING_CTRL4_IQCAL_LOG_COUNT_MAX_S   12
0194 #define     AR9170_PHY_TIMING_CTRL4_DO_IQCAL        0x10000
0195 #define     AR9170_PHY_TIMING_CTRL4_ENABLE_SPUR_RSSI    0x80000000
0196 #define     AR9170_PHY_TIMING_CTRL4_ENABLE_SPUR_FILTER  0x40000000
0197 #define     AR9170_PHY_TIMING_CTRL4_ENABLE_CHAN_MASK    0x20000000
0198 #define     AR9170_PHY_TIMING_CTRL4_ENABLE_PILOT_MASK   0x10000000
0199 
0200 #define AR9170_PHY_REG_TIMING5          (AR9170_PHY_REG_BASE + 0x0124)
0201 #define     AR9170_PHY_TIMING5_CYCPWR_THR1      0x000000fe
0202 #define     AR9170_PHY_TIMING5_CYCPWR_THR1_S    1
0203 
0204 #define AR9170_PHY_REG_POWER_TX_RATE1       (AR9170_PHY_REG_BASE + 0x0134)
0205 #define AR9170_PHY_REG_POWER_TX_RATE2       (AR9170_PHY_REG_BASE + 0x0138)
0206 #define AR9170_PHY_REG_POWER_TX_RATE_MAX    (AR9170_PHY_REG_BASE + 0x013c)
0207 #define     AR9170_PHY_POWER_TX_RATE_MAX_TPC_ENABLE 0x00000040
0208 
0209 #define AR9170_PHY_REG_FRAME_CTL        (AR9170_PHY_REG_BASE + 0x0144)
0210 #define     AR9170_PHY_FRAME_CTL_TX_CLIP        0x00000038
0211 #define     AR9170_PHY_FRAME_CTL_TX_CLIP_S      3
0212 
0213 #define AR9170_PHY_REG_SPUR_REG         (AR9170_PHY_REG_BASE + 0x014c)
0214 #define     AR9170_PHY_SPUR_REG_MASK_RATE_CNTL  (0xff << 18)
0215 #define     AR9170_PHY_SPUR_REG_MASK_RATE_CNTL_S    18
0216 #define     AR9170_PHY_SPUR_REG_ENABLE_MASK_PPM 0x20000
0217 #define     AR9170_PHY_SPUR_REG_MASK_RATE_SELECT    (0xff << 9)
0218 #define     AR9170_PHY_SPUR_REG_MASK_RATE_SELECT_S  9
0219 #define     AR9170_PHY_SPUR_REG_ENABLE_VIT_SPUR_RSSI    0x100
0220 #define     AR9170_PHY_SPUR_REG_SPUR_RSSI_THRESH    0x7f
0221 #define     AR9170_PHY_SPUR_REG_SPUR_RSSI_THRESH_S  0
0222 
0223 #define AR9170_PHY_REG_RADAR_EXT        (AR9170_PHY_REG_BASE + 0x0140)
0224 #define     AR9170_PHY_RADAR_EXT_ENA        0x00004000
0225 
0226 #define AR9170_PHY_REG_RADAR_0          (AR9170_PHY_REG_BASE + 0x0154)
0227 #define     AR9170_PHY_RADAR_0_ENA          0x00000001
0228 #define     AR9170_PHY_RADAR_0_FFT_ENA      0x80000000
0229 /* inband pulse threshold */
0230 #define     AR9170_PHY_RADAR_0_INBAND       0x0000003e
0231 #define     AR9170_PHY_RADAR_0_INBAND_S     1
0232 /* pulse RSSI threshold */
0233 #define     AR9170_PHY_RADAR_0_PRSSI        0x00000fc0
0234 #define     AR9170_PHY_RADAR_0_PRSSI_S      6
0235 /* pulse height threshold */
0236 #define     AR9170_PHY_RADAR_0_HEIGHT       0x0003f000
0237 #define     AR9170_PHY_RADAR_0_HEIGHT_S     12
0238 /* radar RSSI threshold */
0239 #define     AR9170_PHY_RADAR_0_RRSSI        0x00fc0000
0240 #define     AR9170_PHY_RADAR_0_RRSSI_S      18
0241 /* radar firepower threshold */
0242 #define     AR9170_PHY_RADAR_0_FIRPWR       0x7f000000
0243 #define     AR9170_PHY_RADAR_0_FIRPWR_S     24
0244 
0245 #define AR9170_PHY_REG_RADAR_1          (AR9170_PHY_REG_BASE + 0x0158)
0246 #define     AR9170_PHY_RADAR_1_RELPWR_ENA       0x00800000
0247 #define     AR9170_PHY_RADAR_1_USE_FIR128       0x00400000
0248 #define     AR9170_PHY_RADAR_1_RELPWR_THRESH    0x003f0000
0249 #define     AR9170_PHY_RADAR_1_RELPWR_THRESH_S  16
0250 #define     AR9170_PHY_RADAR_1_BLOCK_CHECK      0x00008000
0251 #define     AR9170_PHY_RADAR_1_MAX_RRSSI        0x00004000
0252 #define     AR9170_PHY_RADAR_1_RELSTEP_CHECK    0x00002000
0253 #define     AR9170_PHY_RADAR_1_RELSTEP_THRESH   0x00001f00
0254 #define     AR9170_PHY_RADAR_1_RELSTEP_THRESH_S 8
0255 #define     AR9170_PHY_RADAR_1_MAXLEN       0x000000ff
0256 #define     AR9170_PHY_RADAR_1_MAXLEN_S     0
0257 
0258 #define AR9170_PHY_REG_SWITCH_CHAIN_0       (AR9170_PHY_REG_BASE + 0x0160)
0259 #define AR9170_PHY_REG_SWITCH_CHAIN_2       (AR9170_PHY_REG_BASE + 0x2160)
0260 
0261 #define AR9170_PHY_REG_SWITCH_COM       (AR9170_PHY_REG_BASE + 0x0164)
0262 
0263 #define AR9170_PHY_REG_CCA_THRESHOLD        (AR9170_PHY_REG_BASE + 0x0168)
0264 
0265 #define AR9170_PHY_REG_SIGMA_DELTA      (AR9170_PHY_REG_BASE + 0x016c)
0266 #define     AR9170_PHY_SIGMA_DELTA_ADC_SEL      0x00000003
0267 #define     AR9170_PHY_SIGMA_DELTA_ADC_SEL_S    0
0268 #define     AR9170_PHY_SIGMA_DELTA_FILT2        0x000000f8
0269 #define     AR9170_PHY_SIGMA_DELTA_FILT2_S      3
0270 #define     AR9170_PHY_SIGMA_DELTA_FILT1        0x00001f00
0271 #define     AR9170_PHY_SIGMA_DELTA_FILT1_S      8
0272 #define     AR9170_PHY_SIGMA_DELTA_ADC_CLIP     0x01ffe000
0273 #define     AR9170_PHY_SIGMA_DELTA_ADC_CLIP_S   13
0274 
0275 #define AR9170_PHY_REG_RESTART          (AR9170_PHY_REG_BASE + 0x0170)
0276 #define     AR9170_PHY_RESTART_DIV_GC       0x001c0000
0277 #define     AR9170_PHY_RESTART_DIV_GC_S     18
0278 
0279 #define AR9170_PHY_REG_RFBUS_REQ        (AR9170_PHY_REG_BASE + 0x017c)
0280 #define     AR9170_PHY_RFBUS_REQ_EN         0x00000001
0281 
0282 #define AR9170_PHY_REG_TIMING7          (AR9170_PHY_REG_BASE + 0x0180)
0283 #define AR9170_PHY_REG_TIMING8          (AR9170_PHY_REG_BASE + 0x0184)
0284 #define     AR9170_PHY_TIMING8_PILOT_MASK_2     0x000fffff
0285 #define     AR9170_PHY_TIMING8_PILOT_MASK_2_S   0
0286 
0287 #define AR9170_PHY_REG_BIN_MASK2_1      (AR9170_PHY_REG_BASE + 0x0188)
0288 #define AR9170_PHY_REG_BIN_MASK2_2      (AR9170_PHY_REG_BASE + 0x018c)
0289 #define AR9170_PHY_REG_BIN_MASK2_3      (AR9170_PHY_REG_BASE + 0x0190)
0290 #define AR9170_PHY_REG_BIN_MASK2_4      (AR9170_PHY_REG_BASE + 0x0194)
0291 #define     AR9170_PHY_BIN_MASK2_4_MASK_4       0x00003fff
0292 #define     AR9170_PHY_BIN_MASK2_4_MASK_4_S     0
0293 
0294 #define AR9170_PHY_REG_TIMING9          (AR9170_PHY_REG_BASE + 0x0198)
0295 #define AR9170_PHY_REG_TIMING10         (AR9170_PHY_REG_BASE + 0x019c)
0296 #define     AR9170_PHY_TIMING10_PILOT_MASK_2    0x000fffff
0297 #define     AR9170_PHY_TIMING10_PILOT_MASK_2_S  0
0298 
0299 #define AR9170_PHY_REG_TIMING11         (AR9170_PHY_REG_BASE + 0x01a0)
0300 #define     AR9170_PHY_TIMING11_SPUR_DELTA_PHASE    0x000fffff
0301 #define     AR9170_PHY_TIMING11_SPUR_DELTA_PHASE_S  0
0302 #define     AR9170_PHY_TIMING11_SPUR_FREQ_SD    0x3ff00000
0303 #define     AR9170_PHY_TIMING11_SPUR_FREQ_SD_S  20
0304 #define     AR9170_PHY_TIMING11_USE_SPUR_IN_AGC 0x40000000
0305 #define     AR9170_PHY_TIMING11_USE_SPUR_IN_SELFCOR 0x80000000
0306 
0307 #define AR9170_PHY_REG_RX_CHAINMASK     (AR9170_PHY_REG_BASE + 0x01a4)
0308 #define AR9170_PHY_REG_NEW_ADC_DC_GAIN_CORR(_i) (AR9170_PHY_REG_BASE + \
0309                          0x01b4 + ((_i) << 12))
0310 #define     AR9170_PHY_NEW_ADC_GAIN_CORR_ENABLE     0x40000000
0311 #define     AR9170_PHY_NEW_ADC_DC_OFFSET_CORR_ENABLE    0x80000000
0312 
0313 #define AR9170_PHY_REG_MULTICHAIN_GAIN_CTL  (AR9170_PHY_REG_BASE + 0x01ac)
0314 #define     AR9170_PHY_9285_ANT_DIV_CTL_ALL     0x7f000000
0315 #define     AR9170_PHY_9285_ANT_DIV_CTL     0x01000000
0316 #define     AR9170_PHY_9285_ANT_DIV_CTL_S       24
0317 #define     AR9170_PHY_9285_ANT_DIV_ALT_LNACONF 0x06000000
0318 #define     AR9170_PHY_9285_ANT_DIV_ALT_LNACONF_S   25
0319 #define     AR9170_PHY_9285_ANT_DIV_MAIN_LNACONF    0x18000000
0320 #define     AR9170_PHY_9285_ANT_DIV_MAIN_LNACONF_S  27
0321 #define     AR9170_PHY_9285_ANT_DIV_ALT_GAINTB  0x20000000
0322 #define     AR9170_PHY_9285_ANT_DIV_ALT_GAINTB_S    29
0323 #define     AR9170_PHY_9285_ANT_DIV_MAIN_GAINTB 0x40000000
0324 #define     AR9170_PHY_9285_ANT_DIV_MAIN_GAINTB_S   30
0325 #define     AR9170_PHY_9285_ANT_DIV_LNA1        2
0326 #define     AR9170_PHY_9285_ANT_DIV_LNA2        1
0327 #define     AR9170_PHY_9285_ANT_DIV_LNA1_PLUS_LNA2  3
0328 #define     AR9170_PHY_9285_ANT_DIV_LNA1_MINUS_LNA2 0
0329 #define     AR9170_PHY_9285_ANT_DIV_GAINTB_0    0
0330 #define     AR9170_PHY_9285_ANT_DIV_GAINTB_1    1
0331 
0332 #define AR9170_PHY_REG_EXT_CCA0         (AR9170_PHY_REG_BASE + 0x01b8)
0333 #define     AR9170_PHY_REG_EXT_CCA0_THRESH62    0x000000ff
0334 #define     AR9170_PHY_REG_EXT_CCA0_THRESH62_S  0
0335 
0336 #define AR9170_PHY_REG_EXT_CCA          (AR9170_PHY_REG_BASE + 0x01bc)
0337 #define     AR9170_PHY_EXT_CCA_CYCPWR_THR1      0x0000fe00
0338 #define     AR9170_PHY_EXT_CCA_CYCPWR_THR1_S    9
0339 #define     AR9170_PHY_EXT_CCA_THRESH62     0x007f0000
0340 #define     AR9170_PHY_EXT_CCA_THRESH62_S       16
0341 #define     AR9170_PHY_EXT_CCA_MIN_PWR      0xff800000
0342 #define     AR9170_PHY_EXT_CCA_MIN_PWR_S        23
0343 
0344 #define AR9170_PHY_REG_SFCORR_EXT       (AR9170_PHY_REG_BASE + 0x01c0)
0345 #define     AR9170_PHY_SFCORR_EXT_M1_THRESH     0x0000007f
0346 #define     AR9170_PHY_SFCORR_EXT_M1_THRESH_S   0
0347 #define     AR9170_PHY_SFCORR_EXT_M2_THRESH     0x00003f80
0348 #define     AR9170_PHY_SFCORR_EXT_M2_THRESH_S   7
0349 #define     AR9170_PHY_SFCORR_EXT_M1_THRESH_LOW 0x001fc000
0350 #define     AR9170_PHY_SFCORR_EXT_M1_THRESH_LOW_S   14
0351 #define     AR9170_PHY_SFCORR_EXT_M2_THRESH_LOW 0x0fe00000
0352 #define     AR9170_PHY_SFCORR_EXT_M2_THRESH_LOW_S   21
0353 #define     AR9170_PHY_SFCORR_SPUR_SUBCHNL_SD_S 28
0354 
0355 #define AR9170_PHY_REG_HALFGI           (AR9170_PHY_REG_BASE + 0x01d0)
0356 #define     AR9170_PHY_HALFGI_DSC_MAN       0x0007fff0
0357 #define     AR9170_PHY_HALFGI_DSC_MAN_S     4
0358 #define     AR9170_PHY_HALFGI_DSC_EXP       0x0000000f
0359 #define     AR9170_PHY_HALFGI_DSC_EXP_S     0
0360 
0361 #define AR9170_PHY_REG_CHANNEL_MASK_01_30   (AR9170_PHY_REG_BASE + 0x01d4)
0362 #define AR9170_PHY_REG_CHANNEL_MASK_31_60   (AR9170_PHY_REG_BASE + 0x01d8)
0363 
0364 #define AR9170_PHY_REG_CHAN_INFO_MEMORY     (AR9170_PHY_REG_BASE + 0x01dc)
0365 #define     AR9170_PHY_CHAN_INFO_MEMORY_CAPTURE_MASK    0x0001
0366 
0367 #define AR9170_PHY_REG_HEAVY_CLIP_ENABLE    (AR9170_PHY_REG_BASE + 0x01e0)
0368 #define AR9170_PHY_REG_HEAVY_CLIP_FACTOR_RIFS   (AR9170_PHY_REG_BASE + 0x01ec)
0369 #define     AR9170_PHY_RIFS_INIT_DELAY      0x03ff0000
0370 
0371 #define AR9170_PHY_REG_CALMODE          (AR9170_PHY_REG_BASE + 0x01f0)
0372 #define     AR9170_PHY_CALMODE_IQ           0x00000000
0373 #define     AR9170_PHY_CALMODE_ADC_GAIN     0x00000001
0374 #define     AR9170_PHY_CALMODE_ADC_DC_PER       0x00000002
0375 #define     AR9170_PHY_CALMODE_ADC_DC_INIT      0x00000003
0376 
0377 #define AR9170_PHY_REG_REFCLKDLY        (AR9170_PHY_REG_BASE + 0x01f4)
0378 #define AR9170_PHY_REG_REFCLKPD         (AR9170_PHY_REG_BASE + 0x01f8)
0379 
0380 
0381 #define AR9170_PHY_REG_CAL_MEAS_0(_i)       (AR9170_PHY_REG_BASE + \
0382                          0x0410 + ((_i) << 12))
0383 #define AR9170_PHY_REG_CAL_MEAS_1(_i)       (AR9170_PHY_REG_BASE + \
0384                          0x0414 \ + ((_i) << 12))
0385 #define AR9170_PHY_REG_CAL_MEAS_2(_i)       (AR9170_PHY_REG_BASE + \
0386                          0x0418 + ((_i) << 12))
0387 #define AR9170_PHY_REG_CAL_MEAS_3(_i)       (AR9170_PHY_REG_BASE + \
0388                          0x041c + ((_i) << 12))
0389 
0390 #define AR9170_PHY_REG_CURRENT_RSSI     (AR9170_PHY_REG_BASE + 0x041c)
0391 
0392 #define AR9170_PHY_REG_RFBUS_GRANT      (AR9170_PHY_REG_BASE + 0x0420)
0393 #define     AR9170_PHY_RFBUS_GRANT_EN       0x00000001
0394 
0395 #define AR9170_PHY_REG_CHAN_INFO_GAIN_DIFF  (AR9170_PHY_REG_BASE + 0x04f4)
0396 #define     AR9170_PHY_CHAN_INFO_GAIN_DIFF_UPPER_LIMIT  320
0397 
0398 #define AR9170_PHY_REG_CHAN_INFO_GAIN       (AR9170_PHY_REG_BASE + 0x04fc)
0399 
0400 #define AR9170_PHY_REG_MODE         (AR9170_PHY_REG_BASE + 0x0a00)
0401 #define     AR9170_PHY_MODE_ASYNCFIFO       0x80
0402 #define     AR9170_PHY_MODE_AR2133          0x08
0403 #define     AR9170_PHY_MODE_AR5111          0x00
0404 #define     AR9170_PHY_MODE_AR5112          0x08
0405 #define     AR9170_PHY_MODE_DYNAMIC         0x04
0406 #define     AR9170_PHY_MODE_RF2GHZ          0x02
0407 #define     AR9170_PHY_MODE_RF5GHZ          0x00
0408 #define     AR9170_PHY_MODE_CCK         0x01
0409 #define     AR9170_PHY_MODE_OFDM            0x00
0410 #define     AR9170_PHY_MODE_DYN_CCK_DISABLE     0x100
0411 
0412 #define AR9170_PHY_REG_CCK_TX_CTRL      (AR9170_PHY_REG_BASE + 0x0a04)
0413 #define     AR9170_PHY_CCK_TX_CTRL_JAPAN            0x00000010
0414 #define     AR9170_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK         0x0000000c
0415 #define     AR9170_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK_S       2
0416 
0417 #define AR9170_PHY_REG_CCK_DETECT       (AR9170_PHY_REG_BASE + 0x0a08)
0418 #define     AR9170_PHY_CCK_DETECT_WEAK_SIG_THR_CCK      0x0000003f
0419 #define     AR9170_PHY_CCK_DETECT_WEAK_SIG_THR_CCK_S    0
0420 /* [12:6] settling time for antenna switch */
0421 #define     AR9170_PHY_CCK_DETECT_ANT_SWITCH_TIME       0x00001fc0
0422 #define     AR9170_PHY_CCK_DETECT_ANT_SWITCH_TIME_S     6
0423 #define     AR9170_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV    0x2000
0424 #define     AR9170_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV_S  13
0425 
0426 #define AR9170_PHY_REG_GAIN_2GHZ        (AR9170_PHY_REG_BASE + 0x0a0c)
0427 #define AR9170_PHY_REG_GAIN_2GHZ_CHAIN_2    (AR9170_PHY_REG_BASE + 0x2a0c)
0428 #define     AR9170_PHY_GAIN_2GHZ_RXTX_MARGIN    0x00fc0000
0429 #define     AR9170_PHY_GAIN_2GHZ_RXTX_MARGIN_S  18
0430 #define     AR9170_PHY_GAIN_2GHZ_BSW_MARGIN     0x00003c00
0431 #define     AR9170_PHY_GAIN_2GHZ_BSW_MARGIN_S   10
0432 #define     AR9170_PHY_GAIN_2GHZ_BSW_ATTEN      0x0000001f
0433 #define     AR9170_PHY_GAIN_2GHZ_BSW_ATTEN_S    0
0434 #define     AR9170_PHY_GAIN_2GHZ_XATTEN2_MARGIN 0x003e0000
0435 #define     AR9170_PHY_GAIN_2GHZ_XATTEN2_MARGIN_S   17
0436 #define     AR9170_PHY_GAIN_2GHZ_XATTEN1_MARGIN 0x0001f000
0437 #define     AR9170_PHY_GAIN_2GHZ_XATTEN1_MARGIN_S   12
0438 #define     AR9170_PHY_GAIN_2GHZ_XATTEN2_DB     0x00000fc0
0439 #define     AR9170_PHY_GAIN_2GHZ_XATTEN2_DB_S   6
0440 #define     AR9170_PHY_GAIN_2GHZ_XATTEN1_DB     0x0000003f
0441 #define     AR9170_PHY_GAIN_2GHZ_XATTEN1_DB_S   0
0442 
0443 #define AR9170_PHY_REG_CCK_RXCTRL4      (AR9170_PHY_REG_BASE + 0x0a1c)
0444 #define     AR9170_PHY_CCK_RXCTRL4_FREQ_EST_SHORT   0x01f80000
0445 #define     AR9170_PHY_CCK_RXCTRL4_FREQ_EST_SHORT_S 19
0446 
0447 #define AR9170_PHY_REG_DAG_CTRLCCK      (AR9170_PHY_REG_BASE + 0x0a28)
0448 #define     AR9170_REG_DAG_CTRLCCK_EN_RSSI_THR  0x00000200
0449 #define     AR9170_REG_DAG_CTRLCCK_RSSI_THR     0x0001fc00
0450 #define     AR9170_REG_DAG_CTRLCCK_RSSI_THR_S   10
0451 
0452 #define AR9170_PHY_REG_FORCE_CLKEN_CCK      (AR9170_PHY_REG_BASE + 0x0a2c)
0453 #define     AR9170_FORCE_CLKEN_CCK_MRC_MUX      0x00000040
0454 
0455 #define AR9170_PHY_REG_POWER_TX_RATE3       (AR9170_PHY_REG_BASE + 0x0a34)
0456 #define AR9170_PHY_REG_POWER_TX_RATE4       (AR9170_PHY_REG_BASE + 0x0a38)
0457 
0458 #define AR9170_PHY_REG_SCRM_SEQ_XR      (AR9170_PHY_REG_BASE + 0x0a3c)
0459 #define AR9170_PHY_REG_HEADER_DETECT_XR     (AR9170_PHY_REG_BASE + 0x0a40)
0460 #define AR9170_PHY_REG_CHIRP_DETECTED_XR    (AR9170_PHY_REG_BASE + 0x0a44)
0461 #define AR9170_PHY_REG_BLUETOOTH        (AR9170_PHY_REG_BASE + 0x0a54)
0462 
0463 #define AR9170_PHY_REG_TPCRG1           (AR9170_PHY_REG_BASE + 0x0a58)
0464 #define     AR9170_PHY_TPCRG1_NUM_PD_GAIN       0x0000c000
0465 #define     AR9170_PHY_TPCRG1_NUM_PD_GAIN_S     14
0466 #define     AR9170_PHY_TPCRG1_PD_GAIN_1     0x00030000
0467 #define     AR9170_PHY_TPCRG1_PD_GAIN_1_S       16
0468 #define     AR9170_PHY_TPCRG1_PD_GAIN_2     0x000c0000
0469 #define     AR9170_PHY_TPCRG1_PD_GAIN_2_S       18
0470 #define     AR9170_PHY_TPCRG1_PD_GAIN_3     0x00300000
0471 #define     AR9170_PHY_TPCRG1_PD_GAIN_3_S       20
0472 #define     AR9170_PHY_TPCRG1_PD_CAL_ENABLE     0x00400000
0473 #define     AR9170_PHY_TPCRG1_PD_CAL_ENABLE_S   22
0474 
0475 #define AR9170_PHY_REG_TX_PWRCTRL4      (AR9170_PHY_REG_BASE + 0x0a64)
0476 #define     AR9170_PHY_TX_PWRCTRL_PD_AVG_VALID  0x00000001
0477 #define     AR9170_PHY_TX_PWRCTRL_PD_AVG_VALID_S    0
0478 #define     AR9170_PHY_TX_PWRCTRL_PD_AVG_OUT    0x000001fe
0479 #define     AR9170_PHY_TX_PWRCTRL_PD_AVG_OUT_S  1
0480 
0481 #define AR9170_PHY_REG_ANALOG_SWAP      (AR9170_PHY_REG_BASE + 0x0a68)
0482 #define     AR9170_PHY_ANALOG_SWAP_AB       0x0001
0483 #define     AR9170_PHY_ANALOG_SWAP_ALT_CHAIN    0x00000040
0484 
0485 #define AR9170_PHY_REG_TPCRG5           (AR9170_PHY_REG_BASE + 0x0a6c)
0486 #define     AR9170_PHY_TPCRG5_PD_GAIN_OVERLAP   0x0000000f
0487 #define     AR9170_PHY_TPCRG5_PD_GAIN_OVERLAP_S 0
0488 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_1    0x000003f0
0489 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_1_S  4
0490 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_2    0x0000fc00
0491 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_2_S  10
0492 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_3    0x003f0000
0493 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_3_S  16
0494 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_4    0x0fc00000
0495 #define     AR9170_PHY_TPCRG5_PD_GAIN_BOUNDARY_4_S  22
0496 
0497 #define AR9170_PHY_REG_TX_PWRCTRL6_0        (AR9170_PHY_REG_BASE + 0x0a70)
0498 #define AR9170_PHY_REG_TX_PWRCTRL6_1        (AR9170_PHY_REG_BASE + 0x1a70)
0499 #define     AR9170_PHY_TX_PWRCTRL_ERR_EST_MODE  0x03000000
0500 #define     AR9170_PHY_TX_PWRCTRL_ERR_EST_MODE_S    24
0501 
0502 #define AR9170_PHY_REG_TX_PWRCTRL7      (AR9170_PHY_REG_BASE + 0x0a74)
0503 #define     AR9170_PHY_TX_PWRCTRL_INIT_TX_GAIN  0x01f80000
0504 #define     AR9170_PHY_TX_PWRCTRL_INIT_TX_GAIN_S    19
0505 
0506 #define AR9170_PHY_REG_TX_PWRCTRL9      (AR9170_PHY_REG_BASE + 0x0a7c)
0507 #define     AR9170_PHY_TX_DESIRED_SCALE_CCK     0x00007c00
0508 #define     AR9170_PHY_TX_DESIRED_SCALE_CCK_S   10
0509 #define     AR9170_PHY_TX_PWRCTRL9_RES_DC_REMOVAL   0x80000000
0510 #define     AR9170_PHY_TX_PWRCTRL9_RES_DC_REMOVAL_S 31
0511 
0512 #define AR9170_PHY_REG_TX_GAIN_TBL1     (AR9170_PHY_REG_BASE + 0x0b00)
0513 #define     AR9170_PHY_TX_GAIN          0x0007f000
0514 #define     AR9170_PHY_TX_GAIN_S            12
0515 
0516 /* Carrier leak calibration control, do it after AGC calibration */
0517 #define AR9170_PHY_REG_CL_CAL_CTL       (AR9170_PHY_REG_BASE + 0x0b58)
0518 #define     AR9170_PHY_CL_CAL_ENABLE        0x00000002
0519 #define     AR9170_PHY_CL_CAL_PARALLEL_CAL_ENABLE   0x00000001
0520 
0521 #define AR9170_PHY_REG_POWER_TX_RATE5       (AR9170_PHY_REG_BASE + 0x0b8c)
0522 #define AR9170_PHY_REG_POWER_TX_RATE6       (AR9170_PHY_REG_BASE + 0x0b90)
0523 
0524 #define AR9170_PHY_REG_CH0_TX_PWRCTRL11     (AR9170_PHY_REG_BASE + 0x0b98)
0525 #define AR9170_PHY_REG_CH1_TX_PWRCTRL11     (AR9170_PHY_REG_BASE + 0x1b98)
0526 #define     AR9170_PHY_TX_CHX_PWRCTRL_OLPC_TEMP_COMP    0x0000fc00
0527 #define     AR9170_PHY_TX_CHX_PWRCTRL_OLPC_TEMP_COMP_S  10
0528 
0529 #define AR9170_PHY_REG_CAL_CHAINMASK        (AR9170_PHY_REG_BASE + 0x0b9c)
0530 #define AR9170_PHY_REG_VIT_MASK2_M_46_61    (AR9170_PHY_REG_BASE + 0x0ba0)
0531 #define AR9170_PHY_REG_MASK2_M_31_45        (AR9170_PHY_REG_BASE + 0x0ba4)
0532 #define AR9170_PHY_REG_MASK2_M_16_30        (AR9170_PHY_REG_BASE + 0x0ba8)
0533 #define AR9170_PHY_REG_MASK2_M_00_15        (AR9170_PHY_REG_BASE + 0x0bac)
0534 #define AR9170_PHY_REG_PILOT_MASK_01_30     (AR9170_PHY_REG_BASE + 0x0bb0)
0535 #define AR9170_PHY_REG_PILOT_MASK_31_60     (AR9170_PHY_REG_BASE + 0x0bb4)
0536 #define AR9170_PHY_REG_MASK2_P_15_01        (AR9170_PHY_REG_BASE + 0x0bb8)
0537 #define AR9170_PHY_REG_MASK2_P_30_16        (AR9170_PHY_REG_BASE + 0x0bbc)
0538 #define AR9170_PHY_REG_MASK2_P_45_31        (AR9170_PHY_REG_BASE + 0x0bc0)
0539 #define AR9170_PHY_REG_MASK2_P_61_45        (AR9170_PHY_REG_BASE + 0x0bc4)
0540 #define AR9170_PHY_REG_POWER_TX_SUB     (AR9170_PHY_REG_BASE + 0x0bc8)
0541 #define AR9170_PHY_REG_POWER_TX_RATE7       (AR9170_PHY_REG_BASE + 0x0bcc)
0542 #define AR9170_PHY_REG_POWER_TX_RATE8       (AR9170_PHY_REG_BASE + 0x0bd0)
0543 #define AR9170_PHY_REG_POWER_TX_RATE9       (AR9170_PHY_REG_BASE + 0x0bd4)
0544 #define AR9170_PHY_REG_XPA_CFG          (AR9170_PHY_REG_BASE + 0x0bd8)
0545 #define     AR9170_PHY_FORCE_XPA_CFG        0x000000001
0546 #define     AR9170_PHY_FORCE_XPA_CFG_S      0
0547 
0548 #define AR9170_PHY_REG_CH1_CCA          (AR9170_PHY_REG_BASE + 0x1064)
0549 #define     AR9170_PHY_CH1_CCA_MIN_PWR      0x0ff80000
0550 #define     AR9170_PHY_CH1_CCA_MIN_PWR_S        19
0551 
0552 #define AR9170_PHY_REG_CH2_CCA          (AR9170_PHY_REG_BASE + 0x2064)
0553 #define     AR9170_PHY_CH2_CCA_MIN_PWR      0x0ff80000
0554 #define     AR9170_PHY_CH2_CCA_MIN_PWR_S        19
0555 
0556 #define AR9170_PHY_REG_CH1_EXT_CCA      (AR9170_PHY_REG_BASE + 0x11bc)
0557 #define     AR9170_PHY_CH1_EXT_CCA_MIN_PWR      0xff800000
0558 #define     AR9170_PHY_CH1_EXT_CCA_MIN_PWR_S    23
0559 
0560 #define AR9170_PHY_REG_CH2_EXT_CCA      (AR9170_PHY_REG_BASE + 0x21bc)
0561 #define     AR9170_PHY_CH2_EXT_CCA_MIN_PWR      0xff800000
0562 #define     AR9170_PHY_CH2_EXT_CCA_MIN_PWR_S    23
0563 
0564 #endif  /* __CARL9170_SHARED_PHY_H */