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

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

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

驅(qū)動(dòng)開發(fā)時(shí)鐘API的使用

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

時(shí)鐘API的使用

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

1、設(shè)備樹中配置時(shí)鐘

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

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

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

簡單的使用:

/* 1、獲取時(shí)鐘 */
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、使能時(shí)鐘 */
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ū)動(dòng)中操作時(shí)鐘,第一步需要獲取struct clk指針句柄,后續(xù)都通過該指針進(jìn)行操作,例如:設(shè)置頻率:

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

獲得頻率:

ret = clk_get_rate(host- >clk);

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

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

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

    關(guān)注

    87

    文章

    11177

    瀏覽量

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

    關(guān)注

    2

    文章

    1465

    瀏覽量

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

    關(guān)注

    0

    文章

    360

    瀏覽量

    40773
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1702

    瀏覽量

    131189
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    OpenHarmony 應(yīng)用開發(fā)SDK、API 與基礎(chǔ)工具

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

    分析API都有哪些特點(diǎn)

    。因此,理解好的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設(shè)備驅(qū)動(dòng)開發(fā)詳解》第10章、中斷與時(shí)鐘PDF免費(fèi)下載

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

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

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

    linux adc驅(qū)動(dòng)(基于三星通用adc api)

    驅(qū)動(dòng)基于三星提供的通用api函數(shù)來實(shí)現(xiàn)的,具體adc寄存器操作有三星公司實(shí) 現(xiàn),我們要做的是調(diào)用三星公司提供的api來實(shí)現(xiàn)我們自己的功能。下面對相關(guān)的結(jié)構(gòu)體和api函數(shù)進(jìn)行解析
    發(fā)表于 04-26 16:31 ?3037次閱讀

    如何開發(fā)一個(gè)CTP綜合交易平臺(tái)API技術(shù)開發(fā)指南合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何開發(fā)一個(gè)CTP綜合交易平臺(tái)API技術(shù)開發(fā)指南合集免費(fèi)下載包括了:CTP Client Development Guidance-20141107
    發(fā)表于 03-03 08:00 ?6次下載
    如何<b class='flag-5'>開發(fā)</b>一個(gè)CTP綜合交易平臺(tái)<b class='flag-5'>API</b>技術(shù)<b class='flag-5'>開發(fā)</b>指南合集免費(fèi)下載

    用于 Linux 管理 API 手冊的 PTP 時(shí)鐘管理器

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

    API+DevOps:華為云API Arts一體化平臺(tái),端到端呵護(hù)您的API

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

    API+DevOps:華為云API Arts一體化平臺(tái),端到端呵護(hù)您的API

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

    用于 Linux 管理 API 手冊的 PTP 時(shí)鐘管理器

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

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

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

    時(shí)鐘子系統(tǒng)中clock驅(qū)動(dòng)實(shí)例

    clock驅(qū)動(dòng)實(shí)例 clock驅(qū)動(dòng)時(shí)鐘子系統(tǒng)中屬于provider,provider是時(shí)鐘的提供者,即具體的clock驅(qū)動(dòng)。 clock
    的頭像 發(fā)表于 09-27 14:39 ?695次閱讀
    <b class='flag-5'>時(shí)鐘</b>子系統(tǒng)中clock<b class='flag-5'>驅(qū)動(dòng)</b>實(shí)例