本文整理汇总了C++中IS_RT3572函数的典型用法代码示例。如果您正苦于以下问题:C++ IS_RT3572函数的具体用法?C++ IS_RT3572怎么用?C++ IS_RT3572使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IS_RT3572函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: RT30xxHaltAction
VOID RT30xxHaltAction(
IN PRTMP_ADAPTER pAd)
{
UINT32 TxPinCfg = 0x00050F0F;
/* Turn off LNA_PE or TRSW_POL*/
if ((IS_RT3071(pAd) || IS_RT3572(pAd))
#ifdef RTMP_EFUSE_SUPPORT
&& (pAd->bUseEfuse)
#endif /* RTMP_EFUSE_SUPPORT */
)
{
TxPinCfg &= 0xFFFBF0F0; /* bit18 off */
}
else
{
TxPinCfg &= 0xFFFFF0F0;
}
#ifdef RT35xx
if (IS_RT3572(pAd))
RT30xxWriteRFRegister(pAd, RF_R08, (UCHAR)0x00);
#endif /* RT35xx */
RTMP_IO_WRITE32(pAd, TX_PIN_CFG, TxPinCfg);
}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:27,代码来源:rt30xx.c
示例2: RT30xxHaltAction
VOID RT30xxHaltAction(
IN PRTMP_ADAPTER pAd)
{
UINT32 TxPinCfg = 0x00050F0F;
//
// Turn off LNA_PE or TRSW_POL
//
if (IS_RT3070(pAd) || IS_RT3071(pAd) || IS_RT3572(pAd) || IS_RT5390(pAd))
{
if ((IS_RT3071(pAd) || IS_RT3572(pAd) || IS_RT5390(pAd))
#ifdef RTMP_EFUSE_SUPPORT
&& (pAd->bUseEfuse)
#endif // RTMP_EFUSE_SUPPORT //
)
{
TxPinCfg &= 0xFFFBF0F0; // bit18 off
}
else
{
TxPinCfg &= 0xFFFFF0F0;
}
RTMP_IO_WRITE32(pAd, TX_PIN_CFG, TxPinCfg);
}
}
开发者ID:schidler,项目名称:flyzjhz-rt-n56u,代码行数:26,代码来源:rt30xx.c
示例3: RT35xxLoadRFSleepModeSetup
VOID RT35xxLoadRFSleepModeSetup(
IN PRTMP_ADAPTER pAd)
{
UCHAR RFValue;
#ifdef RT35xx
if(IS_RT3572(pAd))
RT30xxWriteRFRegister(pAd, RF_R08, 0x00);
#endif /* RT35xx */
if(!IS_RT3572(pAd))
{
/* RF_BLOCK_en. RF R1 register Bit 0 to 0*/
RT30xxReadRFRegister(pAd, RF_R01, &RFValue);
RFValue &= (~0x01);
RT30xxWriteRFRegister(pAd, RF_R01, RFValue);
/* VCO_IC, RF R7 register Bit 4 & Bit 5 to 0*/
RT30xxReadRFRegister(pAd, RF_R07, &RFValue);
RFValue &= (~0x30);
RT30xxWriteRFRegister(pAd, RF_R07, RFValue);
/* Idoh, RF R9 register Bit 1, Bit 2 & Bit 3 to 0*/
RT30xxReadRFRegister(pAd, RF_R09, &RFValue);
RFValue &= (~0x0E);
RT30xxWriteRFRegister(pAd, RF_R09, RFValue);
/* RX_CTB_en, RF R21 register Bit 7 to 0*/
RT30xxReadRFRegister(pAd, RF_R21, &RFValue);
RFValue &= (~0x80);
RT30xxWriteRFRegister(pAd, RF_R21, RFValue);
}
}
开发者ID:schidler,项目名称:flyzjhz-rt-n56u,代码行数:32,代码来源:rt35xx.c
示例4: RT35xxLoadRFSleepModeSetup
VOID RT35xxLoadRFSleepModeSetup(
IN PRTMP_ADAPTER pAd)
{
UCHAR RFValue;
UINT32 MACValue;
#ifdef RT35xx
if(IS_RT3572(pAd))
RT30xxWriteRFRegister(pAd, RF_R08, 0x00);
#endif /* RT35xx */
if(!IS_RT3572(pAd))
{
/* RF_BLOCK_en. RF R1 register Bit 0 to 0*/
RT30xxReadRFRegister(pAd, RF_R01, &RFValue);
RFValue &= (~0x01);
RT30xxWriteRFRegister(pAd, RF_R01, RFValue);
/* VCO_IC, RF R7 register Bit 4 & Bit 5 to 0*/
RT30xxReadRFRegister(pAd, RF_R07, &RFValue);
RFValue &= (~0x30);
RT30xxWriteRFRegister(pAd, RF_R07, RFValue);
/* Idoh, RF R9 register Bit 1, Bit 2 & Bit 3 to 0*/
RT30xxReadRFRegister(pAd, RF_R09, &RFValue);
RFValue &= (~0x0E);
RT30xxWriteRFRegister(pAd, RF_R09, RFValue);
/* RX_CTB_en, RF R21 register Bit 7 to 0*/
RT30xxReadRFRegister(pAd, RF_R21, &RFValue);
RFValue &= (~0x80);
RT30xxWriteRFRegister(pAd, RF_R21, RFValue);
}
/* Don't touch LDO_CFG0 for 3090F & 3593, possibly the board is single power scheme*/
if (IS_RT3090(pAd) || /*IS_RT3090 including RT309x and RT3071/72*/
IS_RT3572(pAd) ||
(IS_RT3070(pAd) && ((pAd->MACVersion & 0xffff) < 0x0201)))
{
if (!IS_RT3572(pAd))
{
RT30xxReadRFRegister(pAd, RF_R27, &RFValue);
RFValue |= 0x77;
RT30xxWriteRFRegister(pAd, RF_R27, RFValue);
}
RTMP_IO_READ32(pAd, LDO_CFG0, &MACValue);
MACValue |= 0x1D000000;
RTMP_IO_WRITE32(pAd, LDO_CFG0, MACValue);
}
}
开发者ID:1950packard,项目名称:rt3573sta,代码行数:50,代码来源:rt35xx.c
示例5: rtmp_bbp_init
static INT rtmp_bbp_init(RTMP_ADAPTER *pAd)
{
INT Index = 0;
/* Read BBP register, make sure BBP is up and running before write new data*/
if (rtmp_bbp_is_ready(pAd)== FALSE)
return FALSE;
Index = 0;
/* Initialize BBP register to default value*/
for (Index = 0; Index < NUM_BBP_REG_PARMS; Index++)
{
#ifdef MICROWAVE_OVEN_SUPPORT
#endif /* MICROWAVE_OVEN_SUPPORT */
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd,
BBPRegTable[Index].Register,
BBPRegTable[Index].Value);
}
/* re-config specific BBP registers for individual chip */
if (pAd->chipCap.pBBPRegTable)
{
REG_PAIR *reg_list = pAd->chipCap.pBBPRegTable;
for (Index = 0; Index < pAd->chipCap.bbpRegTbSize; Index++)
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd,
reg_list[Index].Register,
reg_list[Index].Value);
DBGPRINT(RT_DEBUG_TRACE, ("BBP_R%d=0x%x\n",
reg_list[Index].Register,
reg_list[Index].Value));
}
}
if (pAd->chipOps.AsicBbpInit != NULL)
pAd->chipOps.AsicBbpInit(pAd);
/*
For rt2860E and after, init BBP_R84 with 0x19. This is for extension channel overlapping IOT.
RT3090 should not program BBP R84 to 0x19, otherwise TX will block.
3070/71/72,3090,3090A( are included in RT30xx),3572,3390
*/
if (((pAd->MACVersion & 0xffff) != 0x0101) &&
!(IS_RT30xx(pAd)|| IS_RT3572(pAd) || IS_RT5390(pAd) || IS_RT5392(pAd) || IS_RT3290(pAd) || IS_MT7601(pAd) || IS_RT6352(pAd) || IS_MT76x2(pAd)))
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R84, 0x19);
if (pAd->MACVersion == 0x28600100)
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x16);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x12);
}
return TRUE;
}
开发者ID:Brainiarc7,项目名称:mtk-wifi-gpl,代码行数:60,代码来源:rtmp_phy.c
示例6: RT30xxLoadRFSleepModeSetup
/*
==========================================================================
Description:
Load RF sleep-mode setup
==========================================================================
*/
void RT30xxLoadRFSleepModeSetup(struct rt_rtmp_adapter *pAd)
{
u8 RFValue;
u32 MACValue;
#ifdef RTMP_MAC_USB
if (!IS_RT3572(pAd))
#endif /* RTMP_MAC_USB // */
{
/* RF_BLOCK_en. RF R1 register Bit 0 to 0 */
RT30xxReadRFRegister(pAd, RF_R01, &RFValue);
RFValue &= (~0x01);
RT30xxWriteRFRegister(pAd, RF_R01, RFValue);
/* VCO_IC, RF R7 register Bit 4 & Bit 5 to 0 */
RT30xxReadRFRegister(pAd, RF_R07, &RFValue);
RFValue &= (~0x30);
RT30xxWriteRFRegister(pAd, RF_R07, RFValue);
/* Idoh, RF R9 register Bit 1, Bit 2 & Bit 3 to 0 */
RT30xxReadRFRegister(pAd, RF_R09, &RFValue);
RFValue &= (~0x0E);
RT30xxWriteRFRegister(pAd, RF_R09, RFValue);
/* RX_CTB_en, RF R21 register Bit 7 to 0 */
RT30xxReadRFRegister(pAd, RF_R21, &RFValue);
RFValue &= (~0x80);
RT30xxWriteRFRegister(pAd, RF_R21, RFValue);
}
if (IS_RT3090(pAd) || /* IS_RT3090 including RT309x and RT3071/72 */
IS_RT3572(pAd) ||
(IS_RT3070(pAd) && ((pAd->MACVersion & 0xffff) < 0x0201))) {
#ifdef RTMP_MAC_USB
if (!IS_RT3572(pAd))
#endif /* RTMP_MAC_USB // */
{
RT30xxReadRFRegister(pAd, RF_R27, &RFValue);
RFValue |= 0x77;
RT30xxWriteRFRegister(pAd, RF_R27, RFValue);
}
RTMP_IO_READ32(pAd, LDO_CFG0, &MACValue);
MACValue |= 0x1D000000;
RTMP_IO_WRITE32(pAd, LDO_CFG0, MACValue);
}
}
开发者ID:ANFS,项目名称:ANFS-kernel,代码行数:55,代码来源:rt30xx.c
示例7: rtmp_ee_prom_read16
// IRQL = PASSIVE_LEVEL
int rtmp_ee_prom_read16(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
OUT USHORT *pValue)
{
UINT32 x;
USHORT data;
#ifdef RT30xx
#ifdef ANT_DIVERSITY_SUPPORT
if (pAd->NicConfig2.field.AntDiversity)
{
pAd->EepromAccess = TRUE;
}
#endif // ANT_DIVERSITY_SUPPORT //
#endif // RT30xx //
Offset /= 2;
// reset bits and set EECS
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
x &= ~(EEDI | EEDO | EESK);
x |= EECS;
RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
// patch can not access e-Fuse issue
if (!(IS_RT3090(pAd) || IS_RT3572(pAd) || IS_RT3390(pAd) || IS_RT3593(pAd)))
{
// kick a pulse
RaiseClock(pAd, &x);
LowerClock(pAd, &x);
}
// output the read_opcode and register number in that order
ShiftOutBits(pAd, EEPROM_READ_OPCODE, 3);
ShiftOutBits(pAd, Offset, pAd->EEPROMAddressNum);
// Now read the data (16 bits) in from the selected EEPROM word
data = ShiftInBits(pAd);
EEpromCleanup(pAd);
#ifdef RT30xx
#ifdef ANT_DIVERSITY_SUPPORT
// Antenna and EEPROM access are both using EESK pin,
// Therefor we should avoid accessing EESK at the same time
// Then restore antenna after EEPROM access
if ((pAd->NicConfig2.field.AntDiversity)/* || (pAd->RfIcType == RFIC_3020)*/)
{
pAd->EepromAccess = FALSE;
AsicSetRxAnt(pAd, pAd->RxAnt.Pair1PrimaryRxAnt);
}
#endif // ANT_DIVERSITY_SUPPORT //
#endif // RT30xx //
*pValue = data;
return NDIS_STATUS_SUCCESS;
}
开发者ID:Erni88,项目名称:froyo-wm8505-utils,代码行数:59,代码来源:ee_prom.c
示例8: RT30xxHaltAction
void RT30xxHaltAction(struct rt_rtmp_adapter *pAd)
{
u32 TxPinCfg = 0x00050F0F;
/* */
/* Turn off LNA_PE or TRSW_POL */
/* */
if (IS_RT3070(pAd) || IS_RT3071(pAd) || IS_RT3572(pAd)) {
if ((IS_RT3071(pAd) || IS_RT3572(pAd))
#ifdef RTMP_EFUSE_SUPPORT
&& (pAd->bUseEfuse)
#endif /* RTMP_EFUSE_SUPPORT // */
) {
TxPinCfg &= 0xFFFBF0F0; /* bit18 off */
} else {
TxPinCfg &= 0xFFFFF0F0;
}
RTMP_IO_WRITE32(pAd, TX_PIN_CFG, TxPinCfg);
}
}
开发者ID:ANFS,项目名称:ANFS-kernel,代码行数:21,代码来源:rt30xx.c
示例9: RT35xx_ChipAGCAdjust
/*
==========================================================================
Description:
dynamic tune BBP R66 to find a balance between sensibility and
noise isolation
IRQL = DISPATCH_LEVEL
==========================================================================
*/
UCHAR RT35xx_ChipAGCAdjust(
IN RTMP_ADAPTER *pAd,
IN CHAR Rssi,
IN UCHAR OrigR66Value)
{
UCHAR R66 = OrigR66Value;
CHAR lanGain = GET_LNA_GAIN(pAd);
if (!(IS_RT3572(pAd) || IS_RT3593(pAd)))
{
DBGPRINT(RT_DEBUG_ERROR, ("RT35xx_ChipAGCAdjust - Mismatch MACVersion = 0x%x \n", pAd->MACVersion));
return R66;
}
if (pAd->LatchRfRegs.Channel <= 14)
{ /*BG band*/
R66 = 0x1C + 2 * lanGain;
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
R66 += 0x20;
}
else
{ /*A band*/
if (pAd->CommonCfg.BBPCurrentBW == BW_20)
{
R66 = 0x32 + (lanGain*5) / 3;
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
R66 += 0x10;
}
else
{
R66 = 0x3A + (lanGain*5)/3;
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
R66 += 0x10;
}
#ifdef RT3593
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY) {
RT3593_R66_MID_LOW_SENS_GET(pAd, R66);
} else {
RT3593_R66_NON_MID_LOW_SEMS_GET(pAd, R66);
}
#endif /* RT3593 */
}
if (OrigR66Value != R66)
AsicBBPWriteWithRxChain(pAd, BBP_R66, R66, RX_CHAIN_ALL);
return R66;
}
开发者ID:1950packard,项目名称:rt3573sta,代码行数:60,代码来源:rt35xx.c
示例10: RT35xx_RxSensitivityTuning
VOID RT35xx_RxSensitivityTuning(
IN PRTMP_ADAPTER pAd)
{
UCHAR R66;
R66 = 0x26 + GET_LNA_GAIN(pAd);
#ifdef RT35xx
if (IS_RT3572(pAd))
AsicBBPWriteWithRxChain(pAd, BBP_R66, R66, RX_CHAIN_ALL);
#endif /* RT35xx */
DBGPRINT(RT_DEBUG_TRACE,("turn off R17 tuning, restore to 0x%02x\n", R66));
}
开发者ID:1950packard,项目名称:rt3573sta,代码行数:14,代码来源:rt35xx.c
示例11: rtmp_ee_prom_write16
int rtmp_ee_prom_write16(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
IN USHORT Data)
{
UINT32 x;
#ifdef RT30xx
#endif // RT30xx //
Offset /= 2;
EWEN(pAd);
// reset bits and set EECS
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
x &= ~(EEDI | EEDO | EESK);
x |= EECS;
RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
// patch can not access e-Fuse issue
if (!(IS_RT3090(pAd) || IS_RT3572(pAd) || IS_RT3390(pAd) || IS_RT3593(pAd)))
{
// kick a pulse
RaiseClock(pAd, &x);
LowerClock(pAd, &x);
}
// output the read_opcode ,register number and data in that order
ShiftOutBits(pAd, EEPROM_WRITE_OPCODE, 3);
ShiftOutBits(pAd, Offset, pAd->EEPROMAddressNum);
ShiftOutBits(pAd, Data, 16); // 16-bit access
// read DO status
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
EEpromCleanup(pAd);
RTMPusecDelay(10000); //delay for twp(MAX)=10ms
EWDS(pAd);
EEpromCleanup(pAd);
#ifdef RT30xx
#endif // RT30xx //
return NDIS_STATUS_SUCCESS;
}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:50,代码来源:ee_prom.c
示例12: RT35xx_NICInitAsicFromEEPROM
VOID RT35xx_NICInitAsicFromEEPROM(
IN PRTMP_ADAPTER pAd)
{
UCHAR bbpreg = 0;
UCHAR RFValue = 0;
if (IS_RT3572(pAd))
{
/* enable DC filter*/
if ((pAd->MACVersion & 0xffff) >= 0x0201)
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R103, 0xc0);
}
/* improve power consumption */
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R138, &bbpreg);
if (pAd->Antenna.field.TxPath == 1)
{
/* turn off tx DAC_1 */
bbpreg = (bbpreg | 0x20);
}
if (pAd->Antenna.field.RxPath == 1)
{
/* turn off tx ADC_1*/
bbpreg &= (~0x2);
}
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R138, bbpreg);
if ((pAd->MACVersion & 0xffff) >= 0x0211)
{
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R31, &bbpreg);
bbpreg &= (~0x3);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R31, bbpreg);
}
/* TX_LO1_en*/
RT30xxReadRFRegister(pAd, RF_R16, &RFValue);
/* set RF_R16_bit[2:0] equal to EEPROM setting at 0x48h and the value should start from 2.*/
/*if (pAd->TxMixerGain24G >= 2)*/
{
RFValue &= (~0x7); /* clean bit [2:0]*/
RFValue |= pAd->TxMixerGain24G;
}
RT30xxWriteRFRegister(pAd, RF_R16, RFValue);
}
}
开发者ID:celeduc,项目名称:rt3572sta,代码行数:49,代码来源:rt35xx.c
示例13: RtmpChipOpsRFHook
VOID RtmpChipOpsRFHook(
IN RTMP_ADAPTER *pAd)
{
RTMP_CHIP_OP *pChipOps = &pAd->chipOps;
pChipOps->pRFRegTable = NULL;
pChipOps->pBBPRegTable = NULL;
pChipOps->bbpRegTbSize = 0;
pChipOps->AsicRfInit = NULL;
pChipOps->AsicRfTurnOn = NULL;
pChipOps->AsicRfTurnOff = NULL;
pChipOps->AsicReverseRfFromSleepMode = NULL;
pChipOps->AsicHaltAction = NULL;
/* We depends on RfICType and MACVersion to assign the corresponding operation callbacks. */
#ifdef RT30xx
#ifdef RT35xx
if (IS_RT3572(pAd))
{
pChipOps->AsicRfTurnOff = RT30xxLoadRFSleepModeSetup;
pChipOps->pRFRegTable = RF3572_RFRegTable;
pChipOps->AsicRfInit = NICInitRT3572RFRegisters;
pChipOps->AsicReverseRfFromSleepMode = RT3572ReverseRFSleepModeSetup;
pChipOps->AsicHaltAction = RT30xxHaltAction;
}
#endif // RT35xx //
if (IS_RT30xx(pAd))
{
/*
WARNING:
Currently following table are shared by all RT30xx based IC, change it carefully when you add a new IC here.
*/
pChipOps->pRFRegTable = RT3020_RFRegTable;
pChipOps->AsicHaltAction = RT30xxHaltAction;
pChipOps->AsicRfTurnOff = RT30xxLoadRFSleepModeSetup;
pChipOps->AsicReverseRfFromSleepMode = RT30xxReverseRFSleepModeSetup;
}
#endif // RT30xx //
DBGPRINT(RT_DEBUG_TRACE, ("Chip specific bbpRegTbSize=%d!\n", pChipOps->bbpRegTbSize));
}
开发者ID:jameshilliard,项目名称:stblinux-2.6.18_7405,代码行数:49,代码来源:rt_rf.c
示例14: RT30xxReverseRFSleepModeSetup
/*
==========================================================================
Description:
Reverse RF sleep-mode setup
==========================================================================
*/
VOID RT30xxReverseRFSleepModeSetup(
IN PRTMP_ADAPTER pAd,
IN BOOLEAN FlgIsInitState)
{
UCHAR RFValue;
UINT32 MACValue;
if(!IS_RT3572(pAd))
{
/* RF_BLOCK_en, RF R1 register Bit 0 to 1*/
RT30xxReadRFRegister(pAd, RF_R01, &RFValue);
RFValue |= 0x01;
RT30xxWriteRFRegister(pAd, RF_R01, RFValue);
/* VCO_IC, RF R7 register Bit 4 & Bit 5 to 1*/
RT30xxReadRFRegister(pAd, RF_R07, &RFValue);
RFValue |= 0x20;
RT30xxWriteRFRegister(pAd, RF_R07, RFValue);
/* Idoh, RF R9 register Bit 1, Bit 2 & Bit 3 to 1*/
RT30xxReadRFRegister(pAd, RF_R09, &RFValue);
RFValue |= 0x0E;
RT30xxWriteRFRegister(pAd, RF_R09, RFValue);
/* RX_CTB_en, RF R21 register Bit 7 to 1*/
RT30xxReadRFRegister(pAd, RF_R21, &RFValue);
RFValue |= 0x80;
RT30xxWriteRFRegister(pAd, RF_R21, RFValue);
}
if (IS_RT3090(pAd) || /* IS_RT3090 including RT309x and RT3071/72*/
IS_RT3390(pAd) ||
(IS_RT3070(pAd) && ((pAd->MACVersion & 0xffff) < 0x0201)))
{
{
RT30xxReadRFRegister(pAd, RF_R27, &RFValue);
if ((pAd->MACVersion & 0xffff) < 0x0211)
RFValue = (RFValue & (~0x77)) | 0x3;
else
RFValue = (RFValue & (~0x77));
RT30xxWriteRFRegister(pAd, RF_R27, RFValue);
}
/* RT3071 version E has fixed this issue*/
}
}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:56,代码来源:rt30xx.c
示例15: RT33xxLoadRFSleepModeSetup
/*
==========================================================================
Description:
Load RF sleep-mode setup
==========================================================================
*/
VOID RT33xxLoadRFSleepModeSetup(
IN PRTMP_ADAPTER pAd)
{
UCHAR RFValue;
UINT32 MACValue;
{
// RF_BLOCK_en. RF R1 register Bit 0 to 0
RT30xxReadRFRegister(pAd, RF_R01, &RFValue);
RFValue &= (~0x01);
RT30xxWriteRFRegister(pAd, RF_R01, RFValue);
// VCO_IC, RF R7 register Bit 4 & Bit 5 to 0
RT30xxReadRFRegister(pAd, RF_R07, &RFValue);
RFValue &= (~0x30);
RT30xxWriteRFRegister(pAd, RF_R07, RFValue);
// Idoh, RF R9 register Bit 1, Bit 2 & Bit 3 to 0
RT30xxReadRFRegister(pAd, RF_R09, &RFValue);
RFValue &= (~0x0E);
RT30xxWriteRFRegister(pAd, RF_R09, RFValue);
// RX_CTB_en, RF R21 register Bit 7 to 0
RT30xxReadRFRegister(pAd, RF_R21, &RFValue);
RFValue &= (~0x80);
RT30xxWriteRFRegister(pAd, RF_R21, RFValue);
}
if (IS_RT3090(pAd) || // IS_RT3090 including RT309x and RT3071/72
IS_RT3572(pAd) ||
IS_RT3390(pAd) ||
(IS_RT3070(pAd) && ((pAd->MACVersion & 0xffff) < 0x0201)))
{
{
RT30xxReadRFRegister(pAd, RF_R27, &RFValue);
RFValue |= 0x77;
RT30xxWriteRFRegister(pAd, RF_R27, RFValue);
}
RTMP_IO_READ32(pAd, LDO_CFG0, &MACValue);
MACValue |= 0x1D000000;
RTMP_IO_WRITE32(pAd, LDO_CFG0, MACValue);
}
}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:53,代码来源:rt33xx.c
示例16: rtmp_ee_prom_read16
// IRQL = PASSIVE_LEVEL
int rtmp_ee_prom_read16(
IN PRTMP_ADAPTER pAd,
IN USHORT Offset,
OUT USHORT *pValue)
{
UINT32 x;
USHORT data;
#ifdef RT30xx
#endif // RT30xx //
Offset /= 2;
// reset bits and set EECS
RTMP_IO_READ32(pAd, E2PROM_CSR, &x);
x &= ~(EEDI | EEDO | EESK);
x |= EECS;
RTMP_IO_WRITE32(pAd, E2PROM_CSR, x);
// patch can not access e-Fuse issue
if (!(IS_RT3090(pAd) || IS_RT3572(pAd) || IS_RT3390(pAd) || IS_RT3593(pAd)))
{
// kick a pulse
RaiseClock(pAd, &x);
LowerClock(pAd, &x);
}
// output the read_opcode and register number in that order
ShiftOutBits(pAd, EEPROM_READ_OPCODE, 3);
ShiftOutBits(pAd, Offset, pAd->EEPROMAddressNum);
// Now read the data (16 bits) in from the selected EEPROM word
data = ShiftInBits(pAd);
EEpromCleanup(pAd);
#ifdef RT30xx
#endif // RT30xx //
*pValue = data;
return NDIS_STATUS_SUCCESS;
}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:43,代码来源:ee_prom.c
示例17: RT35xx_RxSensitivityTuning
VOID RT35xx_RxSensitivityTuning(
IN PRTMP_ADAPTER pAd)
{
UCHAR R66;
R66 = 0x26 + GET_LNA_GAIN(pAd);
#ifdef RALINK_ATE
if (ATE_ON(pAd))
{
ATE_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R66, (0x26 + GET_LNA_GAIN(pAd)));
}
else
#endif /* RALINK_ATE */
#ifdef RT35xx
if (IS_RT3572(pAd))
AsicBBPWriteWithRxChain(pAd, BBP_R66, R66, RX_CHAIN_ALL);
#endif /* RT35xx */
DBGPRINT(RT_DEBUG_TRACE,("turn off R17 tuning, restore to 0x%02x\n", R66));
}
开发者ID:schidler,项目名称:flyzjhz-rt-n56u,代码行数:21,代码来源:rt35xx.c
示例18: RT3572WriteBBPR66
/*
========================================================================
Routine Description: 3572/3592 R66 writing must select BBP_R27
Arguments:
Return Value:
IRQL =
Note:
========================================================================
*/
NTSTATUS RT3572WriteBBPR66(
IN PRTMP_ADAPTER pAd,
IN UCHAR Value)
{
NTSTATUS NStatus = STATUS_UNSUCCESSFUL;
UCHAR bbpData = 0;
if (!IS_RT3572(pAd) && !IS_RT3593(pAd))
{
DBGPRINT(RT_DEBUG_ERROR, ("%s: Incorrect MAC version, pAd->MACVersion = 0x%X\n",
__FUNCTION__,
pAd->MACVersion));
return NStatus;
}
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R27, &bbpData);
/* R66 controls the gain of Rx0*/
bbpData &= ~(0x60); /*clear bit 5,6*/
#ifdef RTMP_MAC_USB
if (RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R27, bbpData) == STATUS_SUCCESS)
#endif /* RTMP_MAC_USB */
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R66, Value);
}
/* R66 controls the gain of Rx1*/
bbpData |= 0x20; /* set bit 5*/
#ifdef RTMP_MAC_USB
if (RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R27, bbpData) == STATUS_SUCCESS)
#endif /* RTMP_MAC_USB */
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R66, Value);
NStatus = STATUS_SUCCESS;
}
return NStatus;
}
开发者ID:celeduc,项目名称:rt3572sta,代码行数:53,代码来源:rt35xx.c
示例19: RT35xx_ChipBBPAdjust
VOID RT35xx_ChipBBPAdjust(
IN RTMP_ADAPTER *pAd)
{
UINT32 Value;
UCHAR byteValue = 0;
#ifdef DOT11_N_SUPPORT
if ((pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth == BW_40) &&
(pAd->CommonCfg.RegTransmitSetting.field.EXTCHA == EXTCHA_ABOVE))
{
pAd->CommonCfg.BBPCurrentBW = BW_40;
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel + 2;
/* TX : control channel at lower */
RTMP_IO_READ32(pAd, TX_BAND_CFG, &Value);
Value &= (~0x1);
RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
/* RX : control channel at lower */
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &byteValue);
byteValue &= (~0x20);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, byteValue);
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &byteValue);
byteValue &= (~0x18);
byteValue |= 0x10;
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, byteValue);
if (pAd->CommonCfg.Channel > 14)
{ /* request by Gary 20070208 for middle and long range A Band*/
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, 0x48);
}
else
{ /* request by Gary 20070208 for middle and long range G Band*/
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, 0x38);
}
/* */
if (pAd->MACVersion == 0x28600100)
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x1A);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R70, 0x0A);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x16);
}
else
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x12);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R70, 0x0A);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x10);
}
DBGPRINT(RT_DEBUG_TRACE, ("ApStartUp : ExtAbove, ChannelWidth=%d, Channel=%d, ExtChanOffset=%d(%d) \n",
pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth,
pAd->CommonCfg.Channel,
pAd->CommonCfg.RegTransmitSetting.field.EXTCHA,
pAd->CommonCfg.AddHTInfo.AddHtInfo.ExtChanOffset));
}
else if ((pAd->CommonCfg.Channel > 2) &&
(pAd->CommonCfg.HtCapability.HtCapInfo.ChannelWidth == BW_40) &&
(pAd->CommonCfg.RegTransmitSetting.field.EXTCHA == EXTCHA_BELOW))
{
pAd->CommonCfg.BBPCurrentBW = BW_40;
if (pAd->CommonCfg.Channel == 14)
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel - 1;
else
pAd->CommonCfg.CentralChannel = pAd->CommonCfg.Channel - 2;
/* TX : control channel at upper */
RTMP_IO_READ32(pAd, TX_BAND_CFG, &Value);
Value |= (0x1);
RTMP_IO_WRITE32(pAd, TX_BAND_CFG, Value);
/* RX : control channel at upper */
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R3, &byteValue);
byteValue |= (0x20);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R3, byteValue);
RTMP_BBP_IO_READ8_BY_REG_ID(pAd, BBP_R4, &byteValue);
byteValue &= (~0x18);
byteValue |= 0x10;
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R4, byteValue);
if (pAd->CommonCfg.Channel > 14)
{ /* request by Gary 20070208 for middle and long range A Band*/
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, 0x48);
}
else
{ /* request by Gary 20070208 for middle and long range G band*/
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, 0x38);
}
if (pAd->MACVersion == 0x28600100)
{
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R69, 0x1A);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R70, 0x0A);
RTMP_BBP_IO_WRITE8_BY_REG_ID(pAd, BBP_R73, 0x16);
}
//.........这里部分代码省略.........
开发者ID:celeduc,项目名称:rt3572sta,代码行数:101,代码来源:rt35xx.c
示例20: RT35xx_ChipStaBBPAdjust
/*
==========================================================================
Description:
dynamic tune BBP R66 to find a balance between sensibility and
noise isolation
IRQL = DISPATCH_LEVEL
==========================================================================
*/
UCHAR RT35xx_ChipStaBBPAdjust(
IN RTMP_ADAPTER *pAd,
IN CHAR Rssi,
IN UCHAR R66)
{
UCHAR OrigR66Value = 0;/*, R66UpperBound = 0x30, R66LowerBound = 0x30;*/
if (pAd->LatchRfRegs.Channel <= 14)
{ /*BG band*/
if (IS_RT3572(pAd)|| IS_RT3593(pAd))
{
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
{
R66 = 0x1C + 2*GET_LNA_GAIN(pAd) + 0x20;
if (OrigR66Value != R66)
{
RT3572WriteBBPR66(pAd, R66);
}
}
else
{
R66 = 0x1C + 2*GET_LNA_GAIN(pAd);
if (OrigR66Value != R66)
{
RT3572WriteBBPR66(pAd, R66);
}
}
}
else
DBGPRINT(RT_DEBUG_ERROR, ("RT35xx_ChipStaBBPAdjust - Mismatch MACVersion = 0x%x \n", pAd->MACVersion));
}
else
{ /*A band*/
if (pAd->CommonCfg.BBPCurrentBW == BW_20)
{
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
{
R66 = 0x32 + (GET_LNA_GAIN(pAd)*5)/3 + 0x10;
if (OrigR66Value != R66)
{
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, R66);
}
}
else
{
R66 = 0x32 + (GET_LNA_GAIN(pAd)*5)/3;
if (OrigR66Value != R66)
{
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, R66);
}
}
}
else
{
if (Rssi > RSSI_FOR_MID_LOW_SENSIBILITY)
{
R66 = 0x3A + (GET_LNA_GAIN(pAd)*5)/3 + 0x10;
if (OrigR66Value != R66)
{
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, R66);
}
}
else
{
R66 = 0x3A + (GET_LNA_GAIN(pAd)*5)/3;
if (OrigR66Value != R66)
{
if (IS_RT3572(pAd) || IS_RT3593(pAd))
RT3572WriteBBPR66(pAd, R66);
}
}
}
}
return 0;
}
开发者ID:celeduc,项目名称:rt3572sta,代码行数:92,代码来源:rt35xx.c
注:本文中的IS_RT3572函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论