Path: blob/main/sys/dev/ath/ath_hal/ar5416/ar5416phy.h
39566 views
/*-1* SPDX-License-Identifier: ISC2*3* Copyright (c) 2002-2008 Sam Leffler, Errno Consulting4* Copyright (c) 2002-2008 Atheros Communications, Inc.5*6* Permission to use, copy, modify, and/or distribute this software for any7* purpose with or without fee is hereby granted, provided that the above8* copyright notice and this permission notice appear in all copies.9*10* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES11* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF12* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR13* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES14* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN15* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF16* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.17*/18#ifndef _DEV_ATH_AR5416PHY_H_19#define _DEV_ATH_AR5416PHY_H_2021#include "ar5212/ar5212phy.h"2223#define AR_BT_COEX_MODE 0x817024#define AR_BT_TIME_EXTEND 0x000000ff25#define AR_BT_TIME_EXTEND_S 026#define AR_BT_TXSTATE_EXTEND 0x0000010027#define AR_BT_TXSTATE_EXTEND_S 828#define AR_BT_TX_FRAME_EXTEND 0x0000020029#define AR_BT_TX_FRAME_EXTEND_S 930#define AR_BT_MODE 0x00000c0031#define AR_BT_MODE_S 1032#define AR_BT_QUIET 0x0000100033#define AR_BT_QUIET_S 1234#define AR_BT_QCU_THRESH 0x0001e00035#define AR_BT_QCU_THRESH_S 1336#define AR_BT_RX_CLEAR_POLARITY 0x0002000037#define AR_BT_RX_CLEAR_POLARITY_S 1738#define AR_BT_PRIORITY_TIME 0x00fc000039#define AR_BT_PRIORITY_TIME_S 1840#define AR_BT_FIRST_SLOT_TIME 0xff00000041#define AR_BT_FIRST_SLOT_TIME_S 244243#define AR_BT_COEX_WEIGHT 0x817444#define AR_BT_BT_WGHT 0x0000ffff45#define AR_BT_BT_WGHT_S 046#define AR_BT_WL_WGHT 0xffff000047#define AR_BT_WL_WGHT_S 164849#define AR_BT_COEX_MODE2 0x817c50#define AR_BT_BCN_MISS_THRESH 0x000000ff51#define AR_BT_BCN_MISS_THRESH_S 052#define AR_BT_BCN_MISS_CNT 0x0000ff0053#define AR_BT_BCN_MISS_CNT_S 854#define AR_BT_HOLD_RX_CLEAR 0x0001000055#define AR_BT_HOLD_RX_CLEAR_S 1656#define AR_BT_DISABLE_BT_ANT 0x0010000057#define AR_BT_DISABLE_BT_ANT_S 205859#define AR_PHY_SPECTRAL_SCAN 0x991060#define AR_PHY_SPECTRAL_SCAN_ENA 0x0000000161#define AR_PHY_SPECTRAL_SCAN_ENA_S 062#define AR_PHY_SPECTRAL_SCAN_ACTIVE 0x0000000263#define AR_PHY_SPECTRAL_SCAN_ACTIVE_S 164#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD 0x000000F065#define AR_PHY_SPECTRAL_SCAN_FFT_PERIOD_S 466#define AR_PHY_SPECTRAL_SCAN_PERIOD 0x0000FF0067#define AR_PHY_SPECTRAL_SCAN_PERIOD_S 86869/* Scan count and Short repeat flags are different for Kiwi and Merlin */70#define AR_PHY_SPECTRAL_SCAN_COUNT 0x00FF000071#define AR_PHY_SPECTRAL_SCAN_COUNT_S 1672#define AR_PHY_SPECTRAL_SCAN_COUNT_KIWI 0x0FFF000073#define AR_PHY_SPECTRAL_SCAN_COUNT_KIWI_S 167475#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT 0x0100000076#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_S 2477#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_KIWI 0x1000000078#define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_KIWI_S 287980/*81* Kiwi only, bit 30 is used to set the error type, if set it is 0x5 (HAL_PHYERR_RADAR)82* Else it is 38 (new error type)83*/84#define AR_PHY_SPECTRAL_SCAN_PHYERR_MASK_SELECT_KIWI 0x40000000 /* Spectral Error select bit mask */85#define AR_PHY_SPECTRAL_SCAN_PHYERR_MASK_SELECT_KIWI_S 30 /* Spectral Error select bit 30 */8687#define AR_PHY_SPECTRAL_SCAN_PRIORITY_SELECT_KIWI 0x20000000 /* Spectral Error select bit mask */88#define AR_PHY_SPECTRAL_SCAN_PRIORITY_SELECT_SELECT_KIWI_S 29 /* Spectral Error select bit 30 */8990/* For AR_PHY_RADAR0 */91#define AR_PHY_RADAR_0_FFT_ENA 0x800000009293#define AR_PHY_RADAR_EXT 0x994094#define AR_PHY_RADAR_EXT_ENA 0x000040009596#define AR_PHY_RADAR_1 0x995897#define AR_PHY_RADAR_1_BIN_THRESH_SELECT 0x0700000098#define AR_PHY_RADAR_1_BIN_THRESH_SELECT_S 2499#define AR_PHY_RADAR_1_RELPWR_ENA 0x00800000100#define AR_PHY_RADAR_1_USE_FIR128 0x00400000101#define AR_PHY_RADAR_1_RELPWR_THRESH 0x003F0000102#define AR_PHY_RADAR_1_RELPWR_THRESH_S 16103#define AR_PHY_RADAR_1_BLOCK_CHECK 0x00008000104#define AR_PHY_RADAR_1_MAX_RRSSI 0x00004000105#define AR_PHY_RADAR_1_RELSTEP_CHECK 0x00002000106#define AR_PHY_RADAR_1_RELSTEP_THRESH 0x00001F00107#define AR_PHY_RADAR_1_RELSTEP_THRESH_S 8108#define AR_PHY_RADAR_1_MAXLEN 0x000000FF109#define AR_PHY_RADAR_1_MAXLEN_S 0110111#define AR_PHY_CHIP_ID_REV_0 0x80 /* 5416 Rev 0 (owl 1.0) BB */112#define AR_PHY_CHIP_ID_REV_1 0x81 /* 5416 Rev 1 (owl 2.0) BB */113114#define RFSILENT_BB 0x00002000 /* shush bb */115#define AR_PHY_RESTART 0x9970 /* restart */116#define AR_PHY_RESTART_DIV_GC 0x001C0000 /* bb_ant_fast_div_gc_limit */117#define AR_PHY_RESTART_DIV_GC_S 18118119/* PLL settling times */120#define RTC_PLL_SETTLE_DELAY 1000 /* 1 ms */121#define HT40_CHANNEL_CENTER_SHIFT 10 /* MHz */122123#define AR_PHY_RFBUS_REQ 0x997C124#define AR_PHY_RFBUS_REQ_EN 0x00000001125126#define AR_2040_MODE 0x8318127#define AR_2040_JOINED_RX_CLEAR 0x00000001 // use ctl + ext rx_clear for cca128129#define AR_PHY_FC_TURBO_SHORT 0x00000002 /* Set short symbols to turbo mode setting */130#define AR_PHY_FC_DYN2040_EN 0x00000004 /* Enable dyn 20/40 mode */131#define AR_PHY_FC_DYN2040_PRI_ONLY 0x00000008 /* dyn 20/40 - primary only */132#define AR_PHY_FC_DYN2040_PRI_CH 0x00000010 /* dyn 20/40 - primary ch offset (0=+10MHz, 1=-10MHz)*/133#define AR_PHY_FC_DYN2040_EXT_CH 0x00000020 /* dyn 20/40 - ext ch spacing (0=20MHz/ 1=25MHz) */134#define AR_PHY_FC_HT_EN 0x00000040 /* ht enable */135#define AR_PHY_FC_SHORT_GI_40 0x00000080 /* allow short GI for HT 40 */136#define AR_PHY_FC_WALSH 0x00000100 /* walsh spatial spreading for 2 chains,2 streams TX */137#define AR_PHY_FC_SINGLE_HT_LTF1 0x00000200 /* single length (4us) 1st HT long training symbol */138#define AR_PHY_FC_ENABLE_DAC_FIFO 0x00000800139140#define AR_PHY_TIMING2 0x9810 /* Timing Control 2 */141#define AR_PHY_TIMING2_USE_FORCE 0x00001000142#define AR_PHY_TIMING2_FORCE_VAL 0x00000fff143144#define AR_PHY_TIMING_CTRL4_CHAIN(_i) \145(AR_PHY_TIMING_CTRL4 + ((_i) << 12))146#define AR_PHY_TIMING_CTRL4_DO_CAL 0x10000 /* perform calibration */147#define AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF 0x01F /* Mask for kcos_theta-1 for q correction */148#define AR_PHY_TIMING_CTRL4_IQCORR_Q_Q_COFF_S 0 /* shift for Q_COFF */149#define AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF 0x7E0 /* Mask for sin_theta for i correction */150#define AR_PHY_TIMING_CTRL4_IQCORR_Q_I_COFF_S 5 /* Shift for sin_theta for i correction */151#define AR_PHY_TIMING_CTRL4_IQCORR_ENABLE 0x800 /* enable IQ correction */152#define AR_PHY_TIMING_CTRL4_IQCAL_LOG_COUNT_MAX 0xF000 /* Mask for max number of samples (logarithmic) */153#define AR_PHY_TIMING_CTRL4_IQCAL_LOG_COUNT_MAX_S 12 /* Shift for max number of samples */154155#define AR_PHY_TIMING_CTRL4_ENABLE_SPUR_RSSI 0x80000000156#define AR_PHY_TIMING_CTRL4_ENABLE_SPUR_FILTER 0x40000000 /* Enable spur filter */157#define AR_PHY_TIMING_CTRL4_ENABLE_CHAN_MASK 0x20000000158#define AR_PHY_TIMING_CTRL4_ENABLE_PILOT_MASK 0x10000000159160#define AR_PHY_ADC_SERIAL_CTL 0x9830161#define AR_PHY_SEL_INTERNAL_ADDAC 0x00000000162#define AR_PHY_SEL_EXTERNAL_RADIO 0x00000001163164#define AR_PHY_GAIN_2GHZ_BSW_MARGIN 0x00003C00165#define AR_PHY_GAIN_2GHZ_BSW_MARGIN_S 10166#define AR_PHY_GAIN_2GHZ_BSW_ATTEN 0x0000001F167#define AR_PHY_GAIN_2GHZ_BSW_ATTEN_S 0168169#define AR_PHY_GAIN_2GHZ_XATTEN2_MARGIN 0x003E0000170#define AR_PHY_GAIN_2GHZ_XATTEN2_MARGIN_S 17171#define AR_PHY_GAIN_2GHZ_XATTEN1_MARGIN 0x0001F000172#define AR_PHY_GAIN_2GHZ_XATTEN1_MARGIN_S 12173#define AR_PHY_GAIN_2GHZ_XATTEN2_DB 0x00000FC0174#define AR_PHY_GAIN_2GHZ_XATTEN2_DB_S 6175#define AR_PHY_GAIN_2GHZ_XATTEN1_DB 0x0000003F176#define AR_PHY_GAIN_2GHZ_XATTEN1_DB_S 0177178#define AR9280_PHY_RXGAIN_TXRX_ATTEN 0x00003F80179#define AR9280_PHY_RXGAIN_TXRX_ATTEN_S 7180#define AR9280_PHY_RXGAIN_TXRX_MARGIN 0x001FC000181#define AR9280_PHY_RXGAIN_TXRX_MARGIN_S 14182183#define AR_PHY_SEARCH_START_DELAY 0x9918 /* search start delay */184185#define AR_PHY_EXT_CCA 0x99bc186#define AR_PHY_EXT_CCA_CYCPWR_THR1 0x0000FE00187#define AR_PHY_EXT_CCA_CYCPWR_THR1_S 9188#define AR_PHY_EXT_MINCCA_PWR 0xFF800000189#define AR_PHY_EXT_MINCCA_PWR_S 23190#define AR_PHY_EXT_CCA_THRESH62 0x007F0000191#define AR_PHY_EXT_CCA_THRESH62_S 16192193#define AR9280_PHY_EXT_MINCCA_PWR 0x01FF0000194#define AR9280_PHY_EXT_MINCCA_PWR_S 16195196#define AR_PHY_HALFGI 0x99D0 /* Timing control 3 */197#define AR_PHY_HALFGI_DSC_MAN 0x0007FFF0198#define AR_PHY_HALFGI_DSC_MAN_S 4199#define AR_PHY_HALFGI_DSC_EXP 0x0000000F200#define AR_PHY_HALFGI_DSC_EXP_S 0201202#define AR_PHY_HEAVY_CLIP_ENABLE 0x99E0203204#define AR_PHY_HEAVY_CLIP_FACTOR_RIFS 0x99ec205#define AR_PHY_RIFS_INIT_DELAY 0x03ff0000206207#define AR_PHY_M_SLEEP 0x99f0 /* sleep control registers */208#define AR_PHY_REFCLKDLY 0x99f4209#define AR_PHY_REFCLKPD 0x99f8210211#define AR_PHY_CALMODE 0x99f0212/* Calibration Types */213#define AR_PHY_CALMODE_IQ 0x00000000214#define AR_PHY_CALMODE_ADC_GAIN 0x00000001215#define AR_PHY_CALMODE_ADC_DC_PER 0x00000002216#define AR_PHY_CALMODE_ADC_DC_INIT 0x00000003217/* Calibration results */218#define AR_PHY_CAL_MEAS_0(_i) (0x9c10 + ((_i) << 12))219#define AR_PHY_CAL_MEAS_1(_i) (0x9c14 + ((_i) << 12))220#define AR_PHY_CAL_MEAS_2(_i) (0x9c18 + ((_i) << 12))221/* This is AR9130 and later */222#define AR_PHY_CAL_MEAS_3(_i) (0x9c1c + ((_i) << 12))223224/*225* AR5416 still uses AR_PHY(263) for current RSSI;226* AR9130 and later uses AR_PHY(271).227*/228#define AR9130_PHY_CURRENT_RSSI 0x9c3c /* rssi of current frame rx'd */229230#define AR_PHY_CCA 0x9864231#define AR_PHY_MINCCA_PWR 0x0FF80000232#define AR_PHY_MINCCA_PWR_S 19233#define AR9280_PHY_MINCCA_PWR 0x1FF00000234#define AR9280_PHY_MINCCA_PWR_S 20235#define AR9280_PHY_CCA_THRESH62 0x000FF000236#define AR9280_PHY_CCA_THRESH62_S 12237238#define AR_PHY_CH1_CCA 0xa864239#define AR_PHY_CH1_MINCCA_PWR 0x0FF80000240#define AR_PHY_CH1_MINCCA_PWR_S 19241#define AR_PHY_CCA_THRESH62 0x0007F000242#define AR_PHY_CCA_THRESH62_S 12243#define AR9280_PHY_CH1_MINCCA_PWR 0x1FF00000244#define AR9280_PHY_CH1_MINCCA_PWR_S 20245246#define AR_PHY_CH2_CCA 0xb864247#define AR_PHY_CH2_MINCCA_PWR 0x0FF80000248#define AR_PHY_CH2_MINCCA_PWR_S 19249250#define AR_PHY_CH1_EXT_CCA 0xa9bc251#define AR_PHY_CH1_EXT_MINCCA_PWR 0xFF800000252#define AR_PHY_CH1_EXT_MINCCA_PWR_S 23253#define AR9280_PHY_CH1_EXT_MINCCA_PWR 0x01FF0000254#define AR9280_PHY_CH1_EXT_MINCCA_PWR_S 16255256#define AR_PHY_CH2_EXT_CCA 0xb9bc257#define AR_PHY_CH2_EXT_MINCCA_PWR 0xFF800000258#define AR_PHY_CH2_EXT_MINCCA_PWR_S 23259260#define AR_PHY_RX_CHAINMASK 0x99a4261262#define AR_PHY_NEW_ADC_DC_GAIN_CORR(_i) (0x99b4 + ((_i) << 12))263#define AR_PHY_NEW_ADC_GAIN_CORR_ENABLE 0x40000000264#define AR_PHY_NEW_ADC_DC_OFFSET_CORR_ENABLE 0x80000000265#define AR_PHY_MULTICHAIN_GAIN_CTL 0x99ac266267#define AR_PHY_EXT_CCA0 0x99b8268#define AR_PHY_EXT_CCA0_THRESH62 0x000000FF269#define AR_PHY_EXT_CCA0_THRESH62_S 0270271#define AR_PHY_CH1_EXT_CCA 0xa9bc272#define AR_PHY_CH1_EXT_MINCCA_PWR 0xFF800000273#define AR_PHY_CH1_EXT_MINCCA_PWR_S 23274275#define AR_PHY_CH2_EXT_CCA 0xb9bc276#define AR_PHY_CH2_EXT_MINCCA_PWR 0xFF800000277#define AR_PHY_CH2_EXT_MINCCA_PWR_S 23278#define AR_PHY_ANALOG_SWAP 0xa268279#define AR_PHY_SWAP_ALT_CHAIN 0x00000040280#define AR_PHY_CAL_CHAINMASK 0xa39c281282#define AR_PHY_SWITCH_CHAIN_0 0x9960283#define AR_PHY_SWITCH_COM 0x9964284285#define AR_PHY_RF_CTL2 0x9824286#define AR_PHY_TX_FRAME_TO_DATA_START 0x000000FF287#define AR_PHY_TX_FRAME_TO_DATA_START_S 0288#define AR_PHY_TX_FRAME_TO_PA_ON 0x0000FF00289#define AR_PHY_TX_FRAME_TO_PA_ON_S 8290291#define AR_PHY_RF_CTL3 0x9828292#define AR_PHY_TX_END_TO_A2_RX_ON 0x00FF0000293#define AR_PHY_TX_END_TO_A2_RX_ON_S 16294295#define AR_PHY_RF_CTL4 0x9834296#define AR_PHY_RF_CTL4_TX_END_XPAB_OFF 0xFF000000297#define AR_PHY_RF_CTL4_TX_END_XPAB_OFF_S 24298#define AR_PHY_RF_CTL4_TX_END_XPAA_OFF 0x00FF0000299#define AR_PHY_RF_CTL4_TX_END_XPAA_OFF_S 16300#define AR_PHY_RF_CTL4_FRAME_XPAB_ON 0x0000FF00301#define AR_PHY_RF_CTL4_FRAME_XPAB_ON_S 8302#define AR_PHY_RF_CTL4_FRAME_XPAA_ON 0x000000FF303#define AR_PHY_RF_CTL4_FRAME_XPAA_ON_S 0304305#define AR_PHY_SYNTH_CONTROL 0x9874306307#define AR_PHY_FORCE_CLKEN_CCK 0xA22C308#define AR_PHY_FORCE_CLKEN_CCK_MRC_MUX 0x00000040309310#define AR_PHY_POWER_TX_SUB 0xA3C8311#define AR_PHY_POWER_TX_RATE5 0xA38C312#define AR_PHY_POWER_TX_RATE6 0xA390313#define AR_PHY_POWER_TX_RATE7 0xA3CC314#define AR_PHY_POWER_TX_RATE8 0xA3D0315#define AR_PHY_POWER_TX_RATE9 0xA3D4316317#define AR_PHY_TPCRG1_PD_GAIN_1 0x00030000318#define AR_PHY_TPCRG1_PD_GAIN_1_S 16319#define AR_PHY_TPCRG1_PD_GAIN_2 0x000C0000320#define AR_PHY_TPCRG1_PD_GAIN_2_S 18321#define AR_PHY_TPCRG1_PD_GAIN_3 0x00300000322#define AR_PHY_TPCRG1_PD_GAIN_3_S 20323324#define AR_PHY_TPCRG1_PD_CAL_ENABLE 0x00400000325#define AR_PHY_TPCRG1_PD_CAL_ENABLE_S 22326327#define AR_PHY_VIT_MASK2_M_46_61 0xa3a0328#define AR_PHY_MASK2_M_31_45 0xa3a4329#define AR_PHY_MASK2_M_16_30 0xa3a8330#define AR_PHY_MASK2_M_00_15 0xa3ac331#define AR_PHY_MASK2_P_15_01 0xa3b8332#define AR_PHY_MASK2_P_30_16 0xa3bc333#define AR_PHY_MASK2_P_45_31 0xa3c0334#define AR_PHY_MASK2_P_61_45 0xa3c4335336#define AR_PHY_SPUR_REG 0x994c337#define AR_PHY_SFCORR_EXT 0x99c0338#define AR_PHY_SFCORR_EXT_M1_THRESH 0x0000007F339#define AR_PHY_SFCORR_EXT_M1_THRESH_S 0340#define AR_PHY_SFCORR_EXT_M2_THRESH 0x00003F80341#define AR_PHY_SFCORR_EXT_M2_THRESH_S 7342#define AR_PHY_SFCORR_EXT_M1_THRESH_LOW 0x001FC000343#define AR_PHY_SFCORR_EXT_M1_THRESH_LOW_S 14344#define AR_PHY_SFCORR_EXT_M2_THRESH_LOW 0x0FE00000345#define AR_PHY_SFCORR_EXT_M2_THRESH_LOW_S 21346#define AR_PHY_SFCORR_SPUR_SUBCHNL_SD_S 28347348/* enable vit puncture per rate, 8 bits, lsb is low rate */349#define AR_PHY_SPUR_REG_MASK_RATE_CNTL (0xFF << 18)350#define AR_PHY_SPUR_REG_MASK_RATE_CNTL_S 18351352#define AR_PHY_SPUR_REG_ENABLE_MASK_PPM 0x20000 /* bins move with freq offset */353#define AR_PHY_SPUR_REG_MASK_RATE_SELECT (0xFF << 9) /* use mask1 or mask2, one per rate */354#define AR_PHY_SPUR_REG_MASK_RATE_SELECT_S 9355#define AR_PHY_SPUR_REG_ENABLE_VIT_SPUR_RSSI 0x100356#define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH 0x7F357#define AR_PHY_SPUR_REG_SPUR_RSSI_THRESH_S 0358359#define AR_PHY_PILOT_MASK_01_30 0xa3b0360#define AR_PHY_PILOT_MASK_31_60 0xa3b4361362#define AR_PHY_CHANNEL_MASK_01_30 0x99d4363#define AR_PHY_CHANNEL_MASK_31_60 0x99d8364365#define AR_PHY_CL_CAL_CTL 0xA358 /* carrier leak cal control */366#define AR_PHY_CL_CAL_ENABLE 0x00000002367#define AR_PHY_PARALLEL_CAL_ENABLE 0x00000001368369/* empirically determined "good" CCA value ranges from atheros */370#define AR_PHY_CCA_NOM_VAL_5416_2GHZ -90371#define AR_PHY_CCA_NOM_VAL_5416_5GHZ -100372#define AR_PHY_CCA_MIN_GOOD_VAL_5416_2GHZ -100373#define AR_PHY_CCA_MIN_GOOD_VAL_5416_5GHZ -110374#define AR_PHY_CCA_MAX_GOOD_VAL_5416_2GHZ -80375#define AR_PHY_CCA_MAX_GOOD_VAL_5416_5GHZ -90376377/* ar9280 specific? */378#define AR_PHY_XPA_CFG 0xA3D8379#define AR_PHY_FORCE_XPA_CFG 0x000000001380#define AR_PHY_FORCE_XPA_CFG_S 0381382#define AR_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK 0x0000000C383#define AR_PHY_CCK_TX_CTRL_TX_DAC_SCALE_CCK_S 2384385#define AR_PHY_TX_PWRCTRL9 0xa27C386#define AR_PHY_TX_DESIRED_SCALE_CCK 0x00007C00387#define AR_PHY_TX_DESIRED_SCALE_CCK_S 10388#define AR_PHY_TX_PWRCTRL9_RES_DC_REMOVAL 0x80000000389#define AR_PHY_TX_PWRCTRL9_RES_DC_REMOVAL_S 31390391#define AR_PHY_MODE_ASYNCFIFO 0x80 /* Enable async fifo */392393#endif /* _DEV_ATH_AR5416PHY_H_ */394395396