立即注册
查看: 2936|回复: 2

[MTK软件原创] FM支持短天线情况下,短天线通过一个GPIO来控制是否使能该如何实现

发表于 2016-5-28 11:00:03 | 显示全部楼层 |阅读模式 来自 广东省深圳市
[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;
}


已绑定手机
已实名认证
发表于 2016-5-28 12:14:19 | 显示全部楼层 来自 广东省中山市
谢谢分享
已绑定手机
已实名认证
发表于 2016-5-28 13:33:54 | 显示全部楼层 来自 广东省深圳市罗湖区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表