MTK MT6580 clock buffer XO_NFC_TP3输出控制方法

在开启的时候NFC有26M输出

关则无输出
源码如下
./kernel-3.10/drivers/misc/mediatek/nfc/mt6580/mt6605.c
static long mt6605_dev_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
        ...
       case MTK_NFC_IOCTL_CMD_CLOCK_BUF_ENABLE:
#ifndef CONFIG_MTK_FPGA
            /* enable nfc clock buffer */
            clk_buf_ctrl(CLK_BUF_NFC, 1);
#endif
            break;
            
        case MTK_NFC_IOCTL_CMD_CLOCK_BUF_DISABLE:

#ifndef CONFIG_MTK_FPGA
            /* disable nfc clock buffer */
            clk_buf_ctrl(CLK_BUF_NFC, 0);
            ...
}
上电默认为关,
;
static CLK_BUF_SWCTRL_STATUS_T  clk_buf_swctrl_default[CLKBUF_NUM] =
{
    CLK_BUF_SW_ENABLE,
    CLK_BUF_SW_CONNSRC,
#ifdef CONFIG_MTK_NFC
    CLK_BUF_SW_NFC_NFCSRC,
#else
    CLK_BUF_SW_DISABLE,
#endif
    CLK_BUF_SW_DISABLE
};
#endif
./kernel-3.10/drivers/misc/mediatek/mach/mt6580/mt_pm_init.c:546:       clk_buf_init();

static int __init mt_pm_late_init(void)
{
 mt_idle_init();
 clk_buf_init();
 return 0;
}

late_initcall(mt_pm_late_init);   //开机初始化 ,
clk_buf_init();
{
    clk_buf_ctrl_by_reg(clk_buf_swctrl_default);
}
static void clk_buf_ctrl_by_reg(CLK_BUF_SWCTRL_STATUS_T *status)
{
    // CLK_BUF_CONN
    clk_buf_ctrl_buf1(status);

    // CLK_BUF_NFC
    clk_buf_ctrl_buf2(status);

    // CLK_BUF_AUDIO
    clk_buf_ctrl_buf3(status);
}
static void clk_buf_ctrl_buf2(CLK_BUF_SWCTRL_STATUS_T *status)
{
    clk_buf_dbg("#@# CLKBUF %d %d %d %d\n", status[0], status[1], status[2], status[3]);
#ifndef RF_CLK_BUF_BRING_UP // test for bring up
    if (CLK_BUF3_STATUS != CLOCK_BUFFER_HW_CO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值