aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath5k/reg.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath5k/reg.h')
-rw-r--r--drivers/net/wireless/ath5k/reg.h124
1 files changed, 51 insertions, 73 deletions
diff --git a/drivers/net/wireless/ath5k/reg.h b/drivers/net/wireless/ath5k/reg.h
index 9189ab13286c..2dc008e10226 100644
--- a/drivers/net/wireless/ath5k/reg.h
+++ b/drivers/net/wireless/ath5k/reg.h
@@ -187,6 +187,7 @@
187#define AR5K_TXCFG_FRMPAD_DIS 0x00002000 /* [5211+] */ 187#define AR5K_TXCFG_FRMPAD_DIS 0x00002000 /* [5211+] */
188#define AR5K_TXCFG_RDY_CBR_DIS 0x00004000 /* Ready time CBR disable [5211+] */ 188#define AR5K_TXCFG_RDY_CBR_DIS 0x00004000 /* Ready time CBR disable [5211+] */
189#define AR5K_TXCFG_JUMBO_FRM_MODE 0x00008000 /* Jumbo frame mode [5211+] */ 189#define AR5K_TXCFG_JUMBO_FRM_MODE 0x00008000 /* Jumbo frame mode [5211+] */
190#define AR5K_TXCFG_DCU_DBL_BUF_DIS 0x00008000 /* Disable double buffering on DCU */
190#define AR5K_TXCFG_DCU_CACHING_DIS 0x00010000 /* Disable DCU caching */ 191#define AR5K_TXCFG_DCU_CACHING_DIS 0x00010000 /* Disable DCU caching */
191 192
192/* 193/*
@@ -753,7 +754,7 @@
753 */ 754 */
754#define AR5K_DCU_SEQNUM_BASE 0x1140 755#define AR5K_DCU_SEQNUM_BASE 0x1140
755#define AR5K_DCU_SEQNUM_M 0x00000fff 756#define AR5K_DCU_SEQNUM_M 0x00000fff
756#define AR5K_QUEUE_DFS_SEQNUM(_q) AR5K_QUEUE_REG(AR5K_DCU_SEQNUM_BASE, _q) 757#define AR5K_QUEUE_DCU_SEQNUM(_q) AR5K_QUEUE_REG(AR5K_DCU_SEQNUM_BASE, _q)
757 758
758/* 759/*
759 * DCU global IFS SIFS register 760 * DCU global IFS SIFS register
@@ -811,6 +812,8 @@
811 812
812/* 813/*
813 * DCU transmit filter table 0 (32 entries) 814 * DCU transmit filter table 0 (32 entries)
815 * each entry contains a 32bit slice of the
816 * 128bit tx filter for each DCU (4 slices per DCU)
814 */ 817 */
815#define AR5K_DCU_TX_FILTER_0_BASE 0x1038 818#define AR5K_DCU_TX_FILTER_0_BASE 0x1038
816#define AR5K_DCU_TX_FILTER_0(_n) (AR5K_DCU_TX_FILTER_0_BASE + (_n * 64)) 819#define AR5K_DCU_TX_FILTER_0(_n) (AR5K_DCU_TX_FILTER_0_BASE + (_n * 64))
@@ -819,7 +822,7 @@
819 * DCU transmit filter table 1 (16 entries) 822 * DCU transmit filter table 1 (16 entries)
820 */ 823 */
821#define AR5K_DCU_TX_FILTER_1_BASE 0x103c 824#define AR5K_DCU_TX_FILTER_1_BASE 0x103c
822#define AR5K_DCU_TX_FILTER_1(_n) (AR5K_DCU_TX_FILTER_1_BASE + ((_n - 32) * 64)) 825#define AR5K_DCU_TX_FILTER_1(_n) (AR5K_DCU_TX_FILTER_1_BASE + (_n * 64))
823 826
824/* 827/*
825 * DCU clear transmit filter register 828 * DCU clear transmit filter register
@@ -1447,7 +1450,7 @@
1447 AR5K_TSF_U32_5210 : AR5K_TSF_U32_5211) 1450 AR5K_TSF_U32_5210 : AR5K_TSF_U32_5211)
1448 1451
1449/* 1452/*
1450 * Last beacon timestamp register 1453 * Last beacon timestamp register (Read Only)
1451 */ 1454 */
1452#define AR5K_LAST_TSTP 0x8080 1455#define AR5K_LAST_TSTP 0x8080
1453 1456
@@ -1465,7 +1468,7 @@
1465#define AR5K_ADDAC_TEST_TRIG_PTY 0x00020000 /* Trigger polarity */ 1468#define AR5K_ADDAC_TEST_TRIG_PTY 0x00020000 /* Trigger polarity */
1466#define AR5K_ADDAC_TEST_RXCONT 0x00040000 /* Continuous capture */ 1469#define AR5K_ADDAC_TEST_RXCONT 0x00040000 /* Continuous capture */
1467#define AR5K_ADDAC_TEST_CAPTURE 0x00080000 /* Begin capture */ 1470#define AR5K_ADDAC_TEST_CAPTURE 0x00080000 /* Begin capture */
1468#define AR5K_ADDAC_TEST_TST_ARM 0x00100000 /* Test ARM (Adaptive Radio Mode ?) */ 1471#define AR5K_ADDAC_TEST_TST_ARM 0x00100000 /* ARM rx buffer for capture */
1469 1472
1470/* 1473/*
1471 * Default antenna register [5211+] 1474 * Default antenna register [5211+]
@@ -1677,7 +1680,7 @@
1677 * TSF parameter register 1680 * TSF parameter register
1678 */ 1681 */
1679#define AR5K_TSF_PARM 0x8104 /* Register Address */ 1682#define AR5K_TSF_PARM 0x8104 /* Register Address */
1680#define AR5K_TSF_PARM_INC_M 0x000000ff /* Mask for TSF increment */ 1683#define AR5K_TSF_PARM_INC 0x000000ff /* Mask for TSF increment */
1681#define AR5K_TSF_PARM_INC_S 0 1684#define AR5K_TSF_PARM_INC_S 0
1682 1685
1683/* 1686/*
@@ -1689,7 +1692,7 @@
1689#define AR5K_QOS_NOACK_BIT_OFFSET 0x00000070 /* ??? */ 1692#define AR5K_QOS_NOACK_BIT_OFFSET 0x00000070 /* ??? */
1690#define AR5K_QOS_NOACK_BIT_OFFSET_S 4 1693#define AR5K_QOS_NOACK_BIT_OFFSET_S 4
1691#define AR5K_QOS_NOACK_BYTE_OFFSET 0x00000180 /* ??? */ 1694#define AR5K_QOS_NOACK_BYTE_OFFSET 0x00000180 /* ??? */
1692#define AR5K_QOS_NOACK_BYTE_OFFSET_S 8 1695#define AR5K_QOS_NOACK_BYTE_OFFSET_S 7
1693 1696
1694/* 1697/*
1695 * PHY error filter register 1698 * PHY error filter register
@@ -1848,15 +1851,14 @@
1848 * TST_2 (Misc config parameters) 1851 * TST_2 (Misc config parameters)
1849 */ 1852 */
1850#define AR5K_PHY_TST2 0x9800 /* Register Address */ 1853#define AR5K_PHY_TST2 0x9800 /* Register Address */
1851#define AR5K_PHY_TST2_TRIG_SEL 0x00000001 /* Trigger select (?) (field ?) */ 1854#define AR5K_PHY_TST2_TRIG_SEL 0x00000007 /* Trigger select (?)*/
1852#define AR5K_PHY_TST2_TRIG 0x00000010 /* Trigger (?) (field ?) */ 1855#define AR5K_PHY_TST2_TRIG 0x00000010 /* Trigger (?) */
1853#define AR5K_PHY_TST2_CBUS_MODE 0x00000100 /* Cardbus mode (?) */ 1856#define AR5K_PHY_TST2_CBUS_MODE 0x00000060 /* Cardbus mode (?) */
1854/* bit reserved */
1855#define AR5K_PHY_TST2_CLK32 0x00000400 /* CLK_OUT is CLK32 (32Khz external) */ 1857#define AR5K_PHY_TST2_CLK32 0x00000400 /* CLK_OUT is CLK32 (32Khz external) */
1856#define AR5K_PHY_TST2_CHANCOR_DUMP_EN 0x00000800 /* Enable Chancor dump (?) */ 1858#define AR5K_PHY_TST2_CHANCOR_DUMP_EN 0x00000800 /* Enable Chancor dump (?) */
1857#define AR5K_PHY_TST2_EVEN_CHANCOR_DUMP 0x00001000 /* Even Chancor dump (?) */ 1859#define AR5K_PHY_TST2_EVEN_CHANCOR_DUMP 0x00001000 /* Even Chancor dump (?) */
1858#define AR5K_PHY_TST2_RFSILENT_EN 0x00002000 /* Enable RFSILENT */ 1860#define AR5K_PHY_TST2_RFSILENT_EN 0x00002000 /* Enable RFSILENT */
1859#define AR5K_PHY_TST2_ALT_RFDATA 0x00004000 /* Alternate RFDATA (5-2GHz switch) */ 1861#define AR5K_PHY_TST2_ALT_RFDATA 0x00004000 /* Alternate RFDATA (5-2GHz switch ?) */
1860#define AR5K_PHY_TST2_MINI_OBS_EN 0x00008000 /* Enable mini OBS (?) */ 1862#define AR5K_PHY_TST2_MINI_OBS_EN 0x00008000 /* Enable mini OBS (?) */
1861#define AR5K_PHY_TST2_RX2_IS_RX5_INV 0x00010000 /* 2GHz rx path is the 5GHz path inverted (?) */ 1863#define AR5K_PHY_TST2_RX2_IS_RX5_INV 0x00010000 /* 2GHz rx path is the 5GHz path inverted (?) */
1862#define AR5K_PHY_TST2_SLOW_CLK160 0x00020000 /* Slow CLK160 (?) */ 1864#define AR5K_PHY_TST2_SLOW_CLK160 0x00020000 /* Slow CLK160 (?) */
@@ -1926,8 +1928,8 @@
1926#define AR5K_PHY_RF_CTL2_TXF2TXD_START_S 0 1928#define AR5K_PHY_RF_CTL2_TXF2TXD_START_S 0
1927 1929
1928#define AR5K_PHY_RF_CTL3 0x9828 /* Register Address */ 1930#define AR5K_PHY_RF_CTL3 0x9828 /* Register Address */
1929#define AR5K_PHY_RF_CTL3_TXE2XLNA_ON 0x0000000f /* TX end to XLNA on */ 1931#define AR5K_PHY_RF_CTL3_TXE2XLNA_ON 0x0000ff00 /* TX end to XLNA on */
1930#define AR5K_PHY_RF_CTL3_TXE2XLNA_ON_S 0 1932#define AR5K_PHY_RF_CTL3_TXE2XLNA_ON_S 8
1931 1933
1932#define AR5K_PHY_ADC_CTL 0x982c 1934#define AR5K_PHY_ADC_CTL 0x982c
1933#define AR5K_PHY_ADC_CTL_INBUFGAIN_OFF 0x00000003 1935#define AR5K_PHY_ADC_CTL_INBUFGAIN_OFF 0x00000003
@@ -1961,7 +1963,7 @@
1961#define AR5K_PHY_SETTLING_AGC 0x0000007f /* AGC settling time */ 1963#define AR5K_PHY_SETTLING_AGC 0x0000007f /* AGC settling time */
1962#define AR5K_PHY_SETTLING_AGC_S 0 1964#define AR5K_PHY_SETTLING_AGC_S 0
1963#define AR5K_PHY_SETTLING_SWITCH 0x00003f80 /* Switch settlig time */ 1965#define AR5K_PHY_SETTLING_SWITCH 0x00003f80 /* Switch settlig time */
1964#define AR5K_PHY_SETTLINK_SWITCH_S 7 1966#define AR5K_PHY_SETTLING_SWITCH_S 7
1965 1967
1966/* 1968/*
1967 * PHY Gain registers 1969 * PHY Gain registers
@@ -2067,14 +2069,14 @@
2067 * PHY sleep registers [5112+] 2069 * PHY sleep registers [5112+]
2068 */ 2070 */
2069#define AR5K_PHY_SCR 0x9870 2071#define AR5K_PHY_SCR 0x9870
2070#define AR5K_PHY_SCR_32MHZ 0x0000001f
2071 2072
2072#define AR5K_PHY_SLMT 0x9874 2073#define AR5K_PHY_SLMT 0x9874
2073#define AR5K_PHY_SLMT_32MHZ 0x0000007f 2074#define AR5K_PHY_SLMT_32MHZ 0x0000007f
2074 2075
2075#define AR5K_PHY_SCAL 0x9878 2076#define AR5K_PHY_SCAL 0x9878
2076#define AR5K_PHY_SCAL_32MHZ 0x0000000e 2077#define AR5K_PHY_SCAL_32MHZ 0x0000000e
2077 2078#define AR5K_PHY_SCAL_32MHZ_2417 0x0000000a
2079#define AR5K_PHY_SCAL_32MHZ_HB63 0x00000032
2078 2080
2079/* 2081/*
2080 * PHY PLL (Phase Locked Loop) control register 2082 * PHY PLL (Phase Locked Loop) control register
@@ -2101,34 +2103,10 @@
2101/* 2103/*
2102 * RF Buffer register 2104 * RF Buffer register
2103 * 2105 *
2104 * There are some special control registers on the RF chip
2105 * that hold various operation settings related mostly to
2106 * the analog parts (channel, gain adjustment etc).
2107 *
2108 * We don't write on those registers directly but
2109 * we send a data packet on the buffer register and
2110 * then write on another special register to notify hw
2111 * to apply the settings. This is done so that control registers
2112 * can be dynamicaly programmed during operation and the settings
2113 * are applied faster on the hw.
2114 *
2115 * We sent such data packets during rf initialization and channel change
2116 * through ath5k_hw_rf*_rfregs and ath5k_hw_rf*_channel functions.
2117 *
2118 * The data packets we send during initializadion are inside ath5k_ini_rf
2119 * struct (see ath5k_hw.h) and each one is related to an "rf register bank".
2120 * We use *rfregs functions to modify them acording to current operation
2121 * mode and eeprom values and pass them all together to the chip.
2122 *
2123 * It's obvious from the code that 0x989c is the buffer register but 2106 * It's obvious from the code that 0x989c is the buffer register but
2124 * for the other special registers that we write to after sending each 2107 * for the other special registers that we write to after sending each
2125 * packet, i have no idea. So i'll name them BUFFER_CONTROL_X registers 2108 * packet, i have no idea. So i'll name them BUFFER_CONTROL_X registers
2126 * for now. It's interesting that they are also used for some other operations. 2109 * for now. It's interesting that they are also used for some other operations.
2127 *
2128 * Also check out hw.h and U.S. Patent 6677779 B1 (about buffer
2129 * registers and control registers):
2130 *
2131 * http://www.google.com/patents?id=qNURAAAAEBAJ
2132 */ 2110 */
2133 2111
2134#define AR5K_RF_BUFFER 0x989c 2112#define AR5K_RF_BUFFER 0x989c
@@ -2178,7 +2156,8 @@
2178#define AR5K_PHY_ANT_CTL_TXRX_EN 0x00000001 /* Enable TX/RX (?) */ 2156#define AR5K_PHY_ANT_CTL_TXRX_EN 0x00000001 /* Enable TX/RX (?) */
2179#define AR5K_PHY_ANT_CTL_SECTORED_ANT 0x00000004 /* Sectored Antenna */ 2157#define AR5K_PHY_ANT_CTL_SECTORED_ANT 0x00000004 /* Sectored Antenna */
2180#define AR5K_PHY_ANT_CTL_HITUNE5 0x00000008 /* Hitune5 (?) */ 2158#define AR5K_PHY_ANT_CTL_HITUNE5 0x00000008 /* Hitune5 (?) */
2181#define AR5K_PHY_ANT_CTL_SWTABLE_IDLE 0x00000010 /* Switch table idle (?) */ 2159#define AR5K_PHY_ANT_CTL_SWTABLE_IDLE 0x000003f0 /* Switch table idle (?) */
2160#define AR5K_PHY_ANT_CTL_SWTABLE_IDLE_S 4
2182 2161
2183/* 2162/*
2184 * PHY receiver delay register [5111+] 2163 * PHY receiver delay register [5111+]
@@ -2218,7 +2197,7 @@
2218#define AR5K_PHY_OFDM_SELFCORR 0x9924 /* Register Address */ 2197#define AR5K_PHY_OFDM_SELFCORR 0x9924 /* Register Address */
2219#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1_EN 0x00000001 /* Enable cyclic RSSI thr 1 */ 2198#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1_EN 0x00000001 /* Enable cyclic RSSI thr 1 */
2220#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1 0x000000fe /* Mask for Cyclic RSSI threshold 1 */ 2199#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1 0x000000fe /* Mask for Cyclic RSSI threshold 1 */
2221#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1_S 0 2200#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR1_S 1
2222#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR3 0x00000100 /* Cyclic RSSI threshold 3 (field) (?) */ 2201#define AR5K_PHY_OFDM_SELFCORR_CYPWR_THR3 0x00000100 /* Cyclic RSSI threshold 3 (field) (?) */
2223#define AR5K_PHY_OFDM_SELFCORR_RSSI_1ATHR_EN 0x00008000 /* Enable 1A RSSI threshold (?) */ 2202#define AR5K_PHY_OFDM_SELFCORR_RSSI_1ATHR_EN 0x00008000 /* Enable 1A RSSI threshold (?) */
2224#define AR5K_PHY_OFDM_SELFCORR_RSSI_1ATHR 0x00010000 /* 1A RSSI threshold (field) (?) */ 2203#define AR5K_PHY_OFDM_SELFCORR_RSSI_1ATHR 0x00010000 /* 1A RSSI threshold (field) (?) */
@@ -2243,9 +2222,7 @@
2243#define AR5K_PHY_CTL_LOW_FREQ_SLE_EN 0x00000080 /* Enable low freq sleep */ 2222#define AR5K_PHY_CTL_LOW_FREQ_SLE_EN 0x00000080 /* Enable low freq sleep */
2244 2223
2245/* 2224/*
2246 * PHY PAPD probe register [5111+ (?)] 2225 * PHY PAPD probe register [5111+]
2247 * Is this only present in 5212 ?
2248 * Because it's always 0 in 5211 initialization code
2249 */ 2226 */
2250#define AR5K_PHY_PAPD_PROBE 0x9930 2227#define AR5K_PHY_PAPD_PROBE 0x9930
2251#define AR5K_PHY_PAPD_PROBE_SH_HI_PAR 0x00000001 2228#define AR5K_PHY_PAPD_PROBE_SH_HI_PAR 0x00000001
@@ -2303,6 +2280,15 @@
2303 AR5K_PHY_FRAME_CTL_TIMING_ERR 2280 AR5K_PHY_FRAME_CTL_TIMING_ERR
2304 2281
2305/* 2282/*
2283 * PHY Tx Power adjustment register [5212A+]
2284 */
2285#define AR5K_PHY_TX_PWR_ADJ 0x994c
2286#define AR5K_PHY_TX_PWR_ADJ_CCK_GAIN_DELTA 0x00000fc0
2287#define AR5K_PHY_TX_PWR_ADJ_CCK_GAIN_DELTA_S 6
2288#define AR5K_PHY_TX_PWR_ADJ_CCK_PCDAC_INDEX 0x00fc0000
2289#define AR5K_PHY_TX_PWR_ADJ_CCK_PCDAC_INDEX_S 18
2290
2291/*
2306 * PHY radar detection register [5111+] 2292 * PHY radar detection register [5111+]
2307 */ 2293 */
2308#define AR5K_PHY_RADAR 0x9954 2294#define AR5K_PHY_RADAR 0x9954
@@ -2355,7 +2341,7 @@
2355#define AR5K_PHY_SIGMA_DELTA_FILT2_S 3 2341#define AR5K_PHY_SIGMA_DELTA_FILT2_S 3
2356#define AR5K_PHY_SIGMA_DELTA_FILT1 0x00001f00 2342#define AR5K_PHY_SIGMA_DELTA_FILT1 0x00001f00
2357#define AR5K_PHY_SIGMA_DELTA_FILT1_S 8 2343#define AR5K_PHY_SIGMA_DELTA_FILT1_S 8
2358#define AR5K_PHY_SIGMA_DELTA_ADC_CLIP 0x01ff3000 2344#define AR5K_PHY_SIGMA_DELTA_ADC_CLIP 0x01ffe000
2359#define AR5K_PHY_SIGMA_DELTA_ADC_CLIP_S 13 2345#define AR5K_PHY_SIGMA_DELTA_ADC_CLIP_S 13
2360 2346
2361/* 2347/*
@@ -2387,21 +2373,21 @@
2387#define AR5K_PHY_BIN_MASK2_4_MASK_4 0x00003fff 2373#define AR5K_PHY_BIN_MASK2_4_MASK_4 0x00003fff
2388#define AR5K_PHY_BIN_MASK2_4_MASK_4_S 0 2374#define AR5K_PHY_BIN_MASK2_4_MASK_4_S 0
2389 2375
2390#define AR_PHY_TIMING_9 0x9998 2376#define AR5K_PHY_TIMING_9 0x9998
2391#define AR_PHY_TIMING_10 0x999c 2377#define AR5K_PHY_TIMING_10 0x999c
2392#define AR_PHY_TIMING_10_PILOT_MASK_2 0x000fffff 2378#define AR5K_PHY_TIMING_10_PILOT_MASK_2 0x000fffff
2393#define AR_PHY_TIMING_10_PILOT_MASK_2_S 0 2379#define AR5K_PHY_TIMING_10_PILOT_MASK_2_S 0
2394 2380
2395/* 2381/*
2396 * Spur mitigation control 2382 * Spur mitigation control
2397 */ 2383 */
2398#define AR_PHY_TIMING_11 0x99a0 /* Register address */ 2384#define AR5K_PHY_TIMING_11 0x99a0 /* Register address */
2399#define AR_PHY_TIMING_11_SPUR_DELTA_PHASE 0x000fffff /* Spur delta phase */ 2385#define AR5K_PHY_TIMING_11_SPUR_DELTA_PHASE 0x000fffff /* Spur delta phase */
2400#define AR_PHY_TIMING_11_SPUR_DELTA_PHASE_S 0 2386#define AR5K_PHY_TIMING_11_SPUR_DELTA_PHASE_S 0
2401#define AR_PHY_TIMING_11_SPUR_FREQ_SD 0x3ff00000 /* Freq sigma delta */ 2387#define AR5K_PHY_TIMING_11_SPUR_FREQ_SD 0x3ff00000 /* Freq sigma delta */
2402#define AR_PHY_TIMING_11_SPUR_FREQ_SD_S 20 2388#define AR5K_PHY_TIMING_11_SPUR_FREQ_SD_S 20
2403#define AR_PHY_TIMING_11_USE_SPUR_IN_AGC 0x40000000 /* Spur filter in AGC detector */ 2389#define AR5K_PHY_TIMING_11_USE_SPUR_IN_AGC 0x40000000 /* Spur filter in AGC detector */
2404#define AR_PHY_TIMING_11_USE_SPUR_IN_SELFCOR 0x80000000 /* Spur filter in OFDM self correlator */ 2390#define AR5K_PHY_TIMING_11_USE_SPUR_IN_SELFCOR 0x80000000 /* Spur filter in OFDM self correlator */
2405 2391
2406/* 2392/*
2407 * Gain tables 2393 * Gain tables
@@ -2483,17 +2469,7 @@
2483#define AR5K_PHY_SDELAY 0x99f4 2469#define AR5K_PHY_SDELAY 0x99f4
2484#define AR5K_PHY_SDELAY_32MHZ 0x000000ff 2470#define AR5K_PHY_SDELAY_32MHZ 0x000000ff
2485#define AR5K_PHY_SPENDING 0x99f8 2471#define AR5K_PHY_SPENDING 0x99f8
2486#define AR5K_PHY_SPENDING_14 0x00000014 2472
2487#define AR5K_PHY_SPENDING_18 0x00000018
2488#define AR5K_PHY_SPENDING_RF5111 0x00000018
2489#define AR5K_PHY_SPENDING_RF5112 0x00000014
2490/* #define AR5K_PHY_SPENDING_RF5112A 0x0000000e */
2491/* #define AR5K_PHY_SPENDING_RF5424 0x00000012 */
2492#define AR5K_PHY_SPENDING_RF5413 0x00000018
2493#define AR5K_PHY_SPENDING_RF2413 0x00000018
2494#define AR5K_PHY_SPENDING_RF2316 0x00000018
2495#define AR5K_PHY_SPENDING_RF2317 0x00000018
2496#define AR5K_PHY_SPENDING_RF2425 0x00000014
2497 2473
2498/* 2474/*
2499 * PHY PAPD I (power?) table (?) 2475 * PHY PAPD I (power?) table (?)
@@ -2505,11 +2481,7 @@
2505/* 2481/*
2506 * PHY PCDAC TX power table 2482 * PHY PCDAC TX power table
2507 */ 2483 */
2508#define AR5K_PHY_PCDAC_TXPOWER_BASE_5211 0xa180 2484#define AR5K_PHY_PCDAC_TXPOWER_BASE 0xa180
2509#define AR5K_PHY_PCDAC_TXPOWER_BASE_2413 0xa280
2510#define AR5K_PHY_PCDAC_TXPOWER_BASE (ah->ah_radio >= AR5K_RF2413 ? \
2511 AR5K_PHY_PCDAC_TXPOWER_BASE_2413 :\
2512 AR5K_PHY_PCDAC_TXPOWER_BASE_5211)
2513#define AR5K_PHY_PCDAC_TXPOWER(_n) (AR5K_PHY_PCDAC_TXPOWER_BASE + ((_n) << 2)) 2485#define AR5K_PHY_PCDAC_TXPOWER(_n) (AR5K_PHY_PCDAC_TXPOWER_BASE + ((_n) << 2))
2514 2486
2515/* 2487/*
@@ -2590,3 +2562,9 @@
2590#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_3_S 16 2562#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_3_S 16
2591#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_4 0x0FC00000 2563#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_4 0x0FC00000
2592#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_4_S 22 2564#define AR5K_PHY_TPC_RG5_PD_GAIN_BOUNDARY_4_S 22
2565
2566/*
2567 * PHY PDADC Tx power table
2568 */
2569#define AR5K_PHY_PDADC_TXPOWER_BASE 0xa280
2570#define AR5K_PHY_PDADC_TXPOWER(_n) (AR5K_PHY_PDADC_TXPOWER_BASE + ((_n) << 2))