openwrt之WIFI驱动结构的一点简单分析


1. 第一层的 config.in 和 makefile文件

中,make 文件会调用

build 文件夹下的 kconfig 和makefile 文件

在包含的文件中  -DRT6352_EL_SUPPORT  表示  RT6352_EL_SUPPORT  做了宏定义了

ifeq ($(CONFIG_INTERNAL_PA_EXTERNAL_LNA),y)
EXTRA_CFLAGS += -DRT6352_EL_SUPPORT
endif


在驱动中可以找到这样的定义 :

#if defined(RT6352_EP_SUPPORT) || defined(RT6352_EL_SUPPORT)
VOID RT6352_Init_ExtPA_ExtLNA(
IN PRTMP_ADAPTER pAd,
IN BOOLEAN ReInit)
{
ULONG GpioMode;


/* Check the gpio setting first */
RTMP_SYS_IO_READ32(0xb0000060, &GpioMode);
if ((GpioMode & 0x100000) == 0x100000)
{
GpioMode &= (~0x100000);
RTMP_SYS_IO_WRITE32(0xb0000060, GpioMode);

DBGPRINT(RT_DEBUG_ERROR,("Change as Normal Mode(0x%x)\n", GpioMode));
RTMP_SYS_IO_READ32(0xb0000060, &GpioMode);
DBGPRINT(RT_DEBUG_ERROR,("After Change, now GPIO_MODE value is 0x%x\n", GpioMode));
}


#ifdef RT6352_EP_SUPPORT
if (pAd->bExtPA)
{
UINT32 MacValue;


DBGPRINT_RAW(RT_DEBUG_ERROR, ("%s: Enable Ext-PA. init MAC \n", __FUNCTION__));
RTMP_IO_READ32(pAd, RF_CONTROL3, &MacValue);
MacValue |= 0x00000101;
RTMP_IO_WRITE32(pAd, RF_CONTROL3, MacValue);


RTMP_IO_READ32(pAd, RF_BYPASS3, &MacValue);
MacValue |= 0x00000101;
RTMP_IO_WRITE32(pAd, RF_BYPASS3, MacValue);
}
#endif /* RT6352_EP_SUPPORT */


#ifdef RT6352_EL_SUPPORT
if ((pAd->CommonCfg.PKG_ID == 1) && (pAd->NicConfig2.field.ExternalLNAForG))
{
DBGPRINT_RAW(RT_DEBUG_ERROR, ("%s: Enable Ext-LNA. \n", __FUNCTION__));


/* TFBGA Ext-LNA */
RT635xWriteRFRegister(pAd, RF_BANK4, RF_R14, 0x66);
RT635xWriteRFRegister(pAd, RF_BANK6, RF_R14, 0x66);
RT635xWriteRFRegister(pAd, RF_BANK4, RF_R17, 0x20);
RT635xWriteRFRegister(pAd, RF_BANK6, RF_R17, 0x20);
RT635xWriteRFRegister(pAd, RF_BANK4, RF_R18, 0x42);
RT635xWriteRFRegister(pAd, RF_BANK6, RF_R18, 0x42);
}
#endif /* RT6352_EL_SUPPORT */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mcusun2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值