0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驅(qū)動開發(fā)時鐘API的使用

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 14:30 ? 次閱讀

時鐘API的使用

對于一般的驅(qū)動開發(fā)(非clock驅(qū)動),我們只需要在dts中配置時鐘,然后在驅(qū)動調(diào)用通用的時鐘API接口即可。

1、設備樹中配置時鐘

mmc0:mmc0@0x12345678{
  compatible = "xx,xx-mmc0";
  ......
  clocks = < &peri PERI_MCI0 >;//指定mmc0的時鐘來自PERI_MCI0,PERI_MCI0的父時鐘是peri
  clocks-names = "mmc0"; //時鐘名,調(diào)用devm_clk_get獲取時鐘時,可以傳入該名字
        ......
 };

以mmc的設備節(jié)點為例,上述mmc0指定了時鐘來自PERI_MCI0,PERI_MCI0的父時鐘是peri,并將所指定的時鐘給它命名為"mmc0"。

2、驅(qū)動中使用API接口

簡單的使用:

/* 1、獲取時鐘 */
host- >clk = devm_clk_get(&pdev- >dev, NULL); //或者devm_clk_get(&pdev- >dev, "mmc0")
 if (IS_ERR(host- >clk)) {
  dev_err(dev, "failed to find clock sourcen");
  ret = PTR_ERR(host- >clk);
  goto probe_out_free_dev;
 }

/* 2、使能時鐘 */
ret = clk_prepare_enable(host- >clk);
if (ret) {
 dev_err(dev, "failed to enable clock source.n");
 goto probe_out_free_dev;
}

probe_out_free_dev:
 kfree(host);

在驅(qū)動中操作時鐘,第一步需要獲取struct clk指針句柄,后續(xù)都通過該指針進行操作,例如:設置頻率:

ret = clk_set_rate(host- >clk, 300000);

獲得頻率:

ret = clk_get_rate(host- >clk);

注意:devm_clk_get()的兩個參數(shù)是二選一,可以都傳入,也可以只傳入一個參數(shù)。

i2c、mmc等這些外設驅(qū)動,通常只需要使能門控即可,因為這些外設并不是時鐘源,它們只有開關(guān)。如果直接調(diào)用clk_ser_rate函數(shù)設置頻率,clk_set_rate會向上傳遞,即設置它的父時鐘頻率。例如在該例子中直接調(diào)用clk_set_rate函數(shù),最終設置的是時鐘源peri的頻率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11327

    瀏覽量

    209966
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1507

    瀏覽量

    62217
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    370

    瀏覽量

    40878
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1740

    瀏覽量

    131633
收藏 人收藏

    評論

    相關(guān)推薦

    SDK、API、Open API有什么區(qū)別(iot開發(fā)平臺)

    的SDK已經(jīng)被當作一個產(chǎn)品來運營。開發(fā)者不需要再對產(chǎn)品的每個功能進行開發(fā),選擇合適穩(wěn)定的SDK服務并花費很少的經(jīng)歷就可以在產(chǎn)品中集成某項功能。[ API的概念]API即“應用程序編程接
    發(fā)表于 07-09 15:32

    HarmonyOS應用開發(fā)-API參考

    API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件的以訪問一組例程的能力,而又無需訪問
    發(fā)表于 09-22 15:14

    OpenHarmony 應用開發(fā)SDK、API 與基礎工具

    一、整體說明 ArkTS 語言是鴻蒙系統(tǒng)主推的應用開發(fā)語言。因此鴻蒙系統(tǒng)提供給開發(fā)者的 API 絕大部分也是 ArkTS 語言的。 鴻蒙系統(tǒng)提供的 API 范圍非常全面,包括應用服務、
    發(fā)表于 09-19 15:45

    分析API都有哪些特點

    。因此,理解好的API特性是至關(guān)重要的。那么什么是好的API呢? API一詞似乎是對軟件開發(fā)人員的一種Rorschach Test。Web開發(fā)
    發(fā)表于 09-28 17:38 ?11次下載

    Android開發(fā)手冊—API函數(shù)詳解

    Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-17 09:01 ?13次下載
    Android<b class='flag-5'>開發(fā)</b>手冊—<b class='flag-5'>API</b>函數(shù)詳解

    基于Android開發(fā)手冊—API函數(shù)詳解

    基于Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-24 09:06 ?18次下載
    基于Android<b class='flag-5'>開發(fā)</b>手冊—<b class='flag-5'>API</b>函數(shù)詳解

    《Linux設備驅(qū)動開發(fā)詳解》第10章、中斷與時鐘PDF免費下載

    《Linux設備驅(qū)動開發(fā)詳解》第10章、中斷與時鐘
    發(fā)表于 10-27 11:29 ?0次下載
    《Linux設備<b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>詳解》第10章、中斷與<b class='flag-5'>時鐘</b>PDF免費下載

    TI網(wǎng)絡開發(fā)套件v2.21 API 參考指南

    本參考指南NDK主要編程API參考指南。它旨在幫助開發(fā)網(wǎng)絡應用程序,并描述由堆棧庫提供的各種API函數(shù)。
    發(fā)表于 04-13 16:35 ?3次下載
    TI網(wǎng)絡<b class='flag-5'>開發(fā)</b>套件v2.21 <b class='flag-5'>API</b> 參考指南

    用于 Linux 管理 API 手冊的 PTP 時鐘管理器

    用于 Linux 管理 API 手冊的 PTP 時鐘管理器
    發(fā)表于 02-02 18:44 ?1次下載
    用于 Linux 管理 <b class='flag-5'>API</b> 手冊的 PTP <b class='flag-5'>時鐘</b>管理器

    API+DevOps:華為云API Arts一體化平臺,端到端呵護您的API

    、API托管、API運維、API變現(xiàn),助力企業(yè)數(shù)字化轉(zhuǎn)型。 API和微服務已經(jīng)成為核心的數(shù)字化變革驅(qū)動引擎,數(shù)字企業(yè)RD始終圍繞著
    的頭像 發(fā)表于 02-17 19:05 ?1142次閱讀

    API+DevOps:華為云API Arts一體化平臺,端到端呵護您的API

    華為云API Arts是API全生命周期一體化協(xié)作平臺,支持開發(fā)者一站式高效實現(xiàn)API設計、API開發(fā)
    的頭像 發(fā)表于 03-01 15:45 ?820次閱讀
    <b class='flag-5'>API</b>+DevOps:華為云<b class='flag-5'>API</b> Arts一體化平臺,端到端呵護您的<b class='flag-5'>API</b>

    用于 Linux 管理 API 手冊的 PTP 時鐘管理器

    用于 Linux 管理 API 手冊的 PTP 時鐘管理器
    發(fā)表于 07-04 18:31 ?1次下載
    用于 Linux 管理 <b class='flag-5'>API</b> 手冊的 PTP <b class='flag-5'>時鐘</b>管理器

    基于Java的接口快速開發(fā)框架——magic-api

    magic-api 是一個基于Java的接口快速開發(fā)框架,編寫接口將通過magic-api提供的UI界面完成,自動映射為HTTP接口,無需定義Controller、Service、Dao、Mapper、XML、VO等Java對象
    發(fā)表于 07-19 11:42 ?945次閱讀
    基于Java的接口快速<b class='flag-5'>開發(fā)</b>框架——magic-<b class='flag-5'>api</b>

    華納云:使用 WireMock 在開發(fā)和測試中模擬 API 服務

    在本地開發(fā)和測試期間,經(jīng)常會遇到您的應用依賴于遠程 API 的情況。網(wǎng)絡問題、速率限制,甚至 API 提供商的停機都可能阻礙您的進度。這會嚴重影響您的工作效率并使測試更具挑戰(zhàn)性。這就
    的頭像 發(fā)表于 10-25 16:46 ?400次閱讀

    api驅(qū)動的云服務是什么意思?

    API驅(qū)動的云服務是指利用API技術(shù)來驅(qū)動和提供云服務的模式。在這種模式下,云服務提供商會公開一系列的API接口,允許
    的頭像 發(fā)表于 11-14 10:06 ?220次閱讀