ath9k_hw: define registers/macros to support Antenna diversity
[cascardo/linux.git] / drivers / net / wireless / ath / ath9k / ar9003_phy.h
index 8bdda2c..c7505b4 100644 (file)
 #define AR_PHY_EXT_CCA0         (AR_AGC_BASE + 0x20)
 #define AR_PHY_RESTART          (AR_AGC_BASE + 0x24)
 
+/*
+ * Antenna Diversity  settings
+ */
 #define AR_PHY_MC_GAIN_CTRL     (AR_AGC_BASE + 0x28)
 #define AR_ANT_DIV_CTRL_ALL    0x7e000000
 #define AR_ANT_DIV_CTRL_ALL_S  25
 #define AR_ANT_DIV_ENABLE      0x1000000
 #define AR_ANT_DIV_ENABLE_S    24
 
+
+#define AR_PHY_9485_ANT_FAST_DIV_BIAS                  0x00007e00
+#define AR_PHY_9485_ANT_FAST_DIV_BIAS_S                  9
+#define AR_PHY_9485_ANT_DIV_LNADIV                     0x01000000
+#define AR_PHY_9485_ANT_DIV_LNADIV_S                   24
+#define AR_PHY_9485_ANT_DIV_ALT_LNACONF                        0x06000000
+#define AR_PHY_9485_ANT_DIV_ALT_LNACONF_S              25
+#define AR_PHY_9485_ANT_DIV_MAIN_LNACONF               0x18000000
+#define AR_PHY_9485_ANT_DIV_MAIN_LNACONF_S             27
+#define AR_PHY_9485_ANT_DIV_ALT_GAINTB                 0x20000000
+#define AR_PHY_9485_ANT_DIV_ALT_GAINTB_S               29
+#define AR_PHY_9485_ANT_DIV_MAIN_GAINTB                        0x40000000
+#define AR_PHY_9485_ANT_DIV_MAIN_GAINTB_S              30
+
+#define AR_PHY_9485_ANT_DIV_LNA1_MINUS_LNA2            0x0
+#define AR_PHY_9485_ANT_DIV_LNA2                       0x1
+#define AR_PHY_9485_ANT_DIV_LNA1                       0x2
+#define AR_PHY_9485_ANT_DIV_LNA1_PLUS_LNA2             0x3
+
 #define AR_PHY_EXTCHN_PWRTHR1   (AR_AGC_BASE + 0x2c)
 #define AR_PHY_EXT_CHN_WIN      (AR_AGC_BASE + 0x30)
 #define AR_PHY_20_40_DET_THR    (AR_AGC_BASE + 0x34)
 
 #define AR_PHY_TXGAIN_TABLE      (AR_SM_BASE + 0x300)
 
-#define AR_PHY_TX_IQCAL_START_9485             (AR_SM_BASE + 0x3c4)
-#define AR_PHY_TX_IQCAL_START_DO_CAL_9485      0x80000000
-#define AR_PHY_TX_IQCAL_START_DO_CAL_9485_S    31
-#define AR_PHY_TX_IQCAL_CONTROL_1_9485         (AR_SM_BASE + 0x3c8)
-#define AR_PHY_TX_IQCAL_STATUS_B0_9485         (AR_SM_BASE + 0x3f0)
-
-#define AR_PHY_TX_IQCAL_CONTROL_1   (AR_SM_BASE + 0x448)
-#define AR_PHY_TX_IQCAL_START       (AR_SM_BASE + 0x440)
-#define AR_PHY_TX_IQCAL_STATUS_B0   (AR_SM_BASE + 0x48c)
+#define AR_PHY_TX_IQCAL_CONTROL_1   (AR_SM_BASE + AR_SREV_9485(ah) ? \
+                                                0x3c8 : 0x448)
+#define AR_PHY_TX_IQCAL_START       (AR_SM_BASE + AR_SREV_9485(ah) ? \
+                                                0x3c4 : 0x440)
+#define AR_PHY_TX_IQCAL_STATUS_B0   (AR_SM_BASE + AR_SREV_9485(ah) ? \
+                                                0x3f0 : 0x48c)
 #define AR_PHY_TX_IQCAL_CORR_COEFF_B0(_i)    (AR_SM_BASE + \
                                             (AR_SREV_9485(ah) ? \
                                              0x3d0 : 0x450) + ((_i) << 2))
 #define AR_PHY_65NM_CH0_BIAS2       0x160c4
 #define AR_PHY_65NM_CH0_BIAS4       0x160cc
 #define AR_PHY_65NM_CH0_RXTX4       0x1610c
-#define AR_PHY_65NM_CH0_THERM       (AR_SREV_9485(ah) ? 0x1628c : 0x16290)
+#define AR_PHY_65NM_CH0_THERM       (AR_SREV_9300(ah) ? 0x16290 : 0x1628c)
 
 #define AR_PHY_65NM_CH0_THERM_LOCAL   0x80000000
 #define AR_PHY_65NM_CH0_THERM_LOCAL_S 31
 #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT   0x01000000
 #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_S 24
 #define AR_PHY_CHANNEL_STATUS_RX_CLEAR      0x00000004
-#define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT             0x01fc0000
-#define AR_PHY_TX_IQCAQL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S                   18
-#define AR_PHY_TX_IQCAL_START_DO_CAL        0x00000001
-#define AR_PHY_TX_IQCAL_START_DO_CAL_S      0
+#define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT             0x01fc0000
+#define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S                   18
+#define AR_PHY_TX_IQCAL_START_DO_CAL       0x00000001
+#define AR_PHY_TX_IQCAL_START_DO_CAL_S     0
 
 #define AR_PHY_TX_IQCAL_STATUS_FAILED    0x00000001
 #define AR_PHY_CALIBRATED_GAINS_0       0x3e