微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > FM支持短天线情况下,短天线通过一个GPIO来控制是否使能该如何实现

FM支持短天线情况下,短天线通过一个GPIO来控制是否使能该如何实现

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
目前客户项目FM 短天线可能会连接到一个硬件switch ,switch的打开或者关闭控制天线的是否使
能。一般switch的打开或者关闭会通过一个GPIO来控制。目前Mediatek 原生代码中并没有包含此需
求的客制化部分,需要用户自行修改代码来实现,具体如下。
[SOLUTION]
1、请确认projectConfig.mk文件中的mtk_FM_SHORT_antENNA_SUPPORT=yes
2、按照此需求,需要在FM 天线切换api中增加对GPIO的操作,以便打开或者关闭switch 。具体实现有两种方法:
方法一: 可以在alps\mediatek\external\fmradio\fmr\libfm_jni.cpp中如下红色字体部分增加GPIO的控制:
jint switchAntenna(JNIEnv *env, jobject thiz, jint antenna)
{
int ret = 0;
jint jret = 0;
int ana = -1;
if(0 == antenna){
ana = FM_LONG_ANA;
//注意此处增加GPIO的设定,关闭switch
}else if(1 == antenna){
ana = FM_SHORT_ANA;
//注意此处增加GPIO的设定,打开switch
}else{
LOGE("%s:fail, para error\n", __func__);
jret = JNI_FALSE;
goto out;
}
ret = FMR_ana_switch(g_idx, ana);
方法二:可以在
alps\mediatek\kernel\drivers\fmradio\MT6627\pub\mt6627_fm_lib.c中如下红色
字体位置增加GPIO的控制:
static fm_s32 mt6627_SetAntennaType(fm_s32 type)
{
fm_u16 dataRead;
WCN_DBG(FM_DBG | CHIP, "set ana to %s\n", type ? "short" : "long");
mt6627_read(FM_MAIN_CG2_CTRL, &dataRead);
if (type) {
//此处增加贵司GPIO的设定
dataRead |= ANTENNA_TYPE;
} else {
//此处增加贵司GPIO的设定
dataRead &= (~ANTENNA_TYPE);
}
mt6627_write(FM_MAIN_CG2_CTRL, dataRead);
return 0;
}

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top