NFC时钟BBCLK2改为常供

diff --git a/arch/arm/boot/dts/qcom/msm8976-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8976-qrd.dtsi
index 6433ca5..edf3b66 100644
--- a/arch/arm/boot/dts/qcom/msm8976-qrd.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8976-qrd.dtsi
@@ -40,7 +40,8 @@
                pinctrl-names = "nfc_active", "nfc_suspend";
                pinctrl-0 = <&nfc_int_active &nfc_disable_active>;
                pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>;
-               clocks = <&clock_gcc clk_bb_clk2_pin>;
+               //clocks = <&clock_gcc clk_bb_clk2_pin>;
+               clocks = <&clock_gcc clk_bb_clk2>;
                clock-names = "ref_clk";
        };
        /*
diff --git a/drivers/nfc/nq-nci.c b/drivers/nfc/nq-nci.c
index 407f5df..f782e5f 100644
--- a/drivers/nfc/nq-nci.c
+++ b/drivers/nfc/nq-nci.c
@@ -26,6 +26,7 @@
 #include "nq-nci.h"
 #include <linux/dma-mapping.h>
 #include <linux/dmapool.h>
+#include <linux/clk.h>
 #ifdef CONFIG_COMPAT
 #include <linux/compat.h>
 #endif
@@ -36,6 +37,9 @@ struct nqx_platform_data {
        unsigned int clkreq_gpio;
        unsigned int firm_gpio;
        const char *clk_src_name;
+
+        /*CLK control*/
+        struct clk              *s_clk;
 };

static struct of_device_id msm_match_table[] = {
@@ -412,11 +416,27 @@ static int nfc_parse_dt(struct device *dev, struct nqx_platform_data *pdata)
        }
 
        r = of_property_read_string(np, "qcom,clk-src", &pdata->clk_src_name);
+       if (r)
+               return -EINVAL;
 
        pdata->clkreq_gpio = of_get_named_gpio(np, "qcom,nq-clkreq", 0);
 
-       if (r)
-               return -EINVAL;
+        /*constant clock*/
+        if (!strcmp(pdata->clk_src_name, "BBCLK2"))
+        {
+            pdata->s_clk = clk_get(dev, "ref_clk");
+        }
+        if (pdata->s_clk == NULL)
+        {
+            dev_err(dev, "%s: failed to get clk.\n", __func__);
+            return -ENOMEM;
+        }
+        r = clk_prepare_enable(pdata->s_clk);
+        if(r){
+            dev_err(dev, "%s: failed to enable clk.\n", __func__);
+            return -ENOMEM;
+        }
+
        return r;
 }

时间: 2024-10-22 15:02:44

NFC时钟BBCLK2改为常供的相关文章

[转] STM32各种时钟的区别

[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32.     下面是从网上找的一个STM32时钟框图,比<STM32中文参考手册>里面的是中途看起来清晰一些:         重要的时钟:   PLLCLK,SYSCLK,HCKL,PCLK1,PCLK2 之间的关系要弄清楚; 1.HSI:高速内部时钟信号 stm3

(转)stm32时钟分析

原文传送门 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. 其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE是低速外部时钟,接频率为32.768kHz的石英晶体. ⑤.PLL为锁相环倍频输出,其时钟输入源可选择为HS

NFC会员管理-转载自http://technews.cn/2014/09/13/nfc-sticker/

基隆的百年名店“李鹄饼店”误用馊水油,客人纷纷上门退货,因退货条件宽松,客人一货两退,造成巨大的损失.为了平息客人的愤怒,店家允许客人凭发 票或商品办理退货,有的客人先用发票退一次钱,再用商品退一次钱,让店家损失惨重.更夸张的是,还有客人只用塑胶袋或包装盒就要求退钱.在这样的事件当 中,消费者与店家双输. 一张贴纸解决烦恼 其实这样的问题,可以利用现今的科技来解决,NFC 防窜改贴纸(Tamper Proof Label/Sticker)正是解决一货两退的最佳方案.以此事件为例,商家在其出售的每

stm32时钟分析

文章来源:http://blog.chinaunix.net/uid-21658993-id-3129667.html 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. 其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE

32系统时钟配置

 时钟是STM32单片机的驱动源,使用任何一个外设都必须打开相应的时钟.这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果.(低功耗) 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE是低速

楞严经——14.10.10

楞严经原文 大佛顶如来密因修证了义 般剌密帝译 卷一 如是我闻.一时.佛在室罗筏城.祇桓精舍.与大比丘众.千二百五十人俱.皆是无漏大阿罗汉.佛子住持.善超诸有.能于国土.成就威仪.从佛转轮.妙堪 遗嘱.严净毗尼.弘范三界.应身无量.度脱众生.拔济未来.越诸尘累.其名曰.大智舍利弗.摩诃目犍连.摩诃拘絺罗.富楼那弥多罗尼子.须菩提.优波尼沙 陀等.而为上首.复有无量辟支无学.并其初心.同来佛所.嘱诸比丘.休夏自恣.十方菩萨.咨决心疑.钦奉慈严.将求密义.即时.如来敷座宴安.为诸会中. 宣示深奥.法

【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题

关于bmp图片的格式,网上有很多文章,具体可以参考百度百科,也有例子程序.这里只提要注意的问题. (1)结构体定义问题:首先按照百度百科介绍的定义了结构体,但是编译发现重定义BITMAPFILEHEADER等.其实只要包含了Windows.h,里面的wingdi.h就已经定义了处理bmp的结构体,故不需要自己再重复定义. (2)读取文件的字节对其问题:要使用#pragma pack (1)来方便读取文件头的结构体,否则结构体的大小会由于字节对齐问题改变.不知是否头文件中已经使用了该宏,在我的代码

天兔(Lepus)监控操作系统(OS)安装配置

http://suifu.blog.51cto.com/9167728/1770703 监控和被监控端都要安装和配置snmp: [[email protected]]# yum install net-snmp* [[email protected]]# vi /etc/snmp/snmpd.conf 41行将default均改为监控服务器ip;团体名被监控机和监控机一致,示例如下: com2secnotConfigUser  192.168.1.250       ikongjian 62行将

[自动化-脚本]001.自动领淘金币:Anyweb模拟操作

通过模拟手工操作的方法领取淘金币.该方法万能且通用,有能力的还可以自行修改脚本. 工具 软件下载 anywebscript.com 方法/步骤 1.安装软件如图所示 2.设置脚本: (1)进入网站:[脚本商店\模拟点击领取淘金币]并复制脚本 (2)打开软件的“新建”按钮 (3)将脚本粘贴到“功能代码”处 3.测试脚本: (1)设置用户名.密码: 方法一:可以直接在脚本中改(仅供测试使用) 方法二:把脚本的用户名.密码那两行去掉,并在下面的测试框中输入用户名.密码(实际使用时请采用方法二) (2)