日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

设备树与驱动的关系_Linux CommonClock Framework分析之四 gpio clk gate驱动实现

發(fā)布時間:2025/3/15 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设备树与驱动的关系_Linux CommonClock Framework分析之四 gpio clk gate驱动实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前面我們已經(jīng)完成了CCF子系統(tǒng)的分析,也說明了如何實現(xiàn)CCF驅(qū)動,本章為該專欄的最后一篇文章,

本章我們將實現(xiàn)一個虛擬的gpio clk gate驅(qū)動。本章大概分為如下幾個章節(jié):
一、 本次驅(qū)動開發(fā)涉及的知識點

二、clk provider driver的實現(xiàn)流程說明

三、gpio clk gate driver驅(qū)動設(shè)計

一、 本次驅(qū)動開發(fā)涉及的知識點

本次驅(qū)動實踐主要涉及如下幾個方面的知識點:

  • Platform device、platform drvier
  • Gpio 驅(qū)動使用
  • Clk provider驅(qū)動開發(fā)流程
  • 二、clk provider driver的實現(xiàn)流程說明

    關(guān)于clk provider driver的開發(fā)流程,在上一篇文章中已經(jīng)做了說明,此處再說明一下,主要實現(xiàn)

    流程包括如下兩步:

  • 完成clk的注冊,主要是調(diào)用clk_register接口,完成上述章節(jié)一所述的內(nèi)容;
  • 完成該clk provider的map,這種map機制可以理解為定義了clk consumer與clk_provider的映射關(guān)系,即該clk provider可以給哪些clk consumer提供時鐘(如針對非設(shè)備樹模式,則定義了clk consumer的設(shè)備名稱、clk consumer的時鐘使用名稱),而clk provider的map存在兩種方式:
  • 若linux不支持設(shè)備樹機制,則通過調(diào)用接口clk_register_clkdev,完成這種映射操作(即完成下圖中“非設(shè)備樹模式下clk_core的map”)。
  • 若linux支持設(shè)備樹機制,則通過調(diào)用接口of_clk_add_provider,完成map操作(即完成下圖中“設(shè)備樹模式下clk_core的map”)
  • 三、gpio clk gate driver驅(qū)動設(shè)計

    本次我們主要實現(xiàn)gpio clk gate driver,本次實現(xiàn)的平臺為ubuntu16.04,我們使用之前模擬的gpio chip driver,提供gpio index,從而通過gpio 的值實現(xiàn)gpio clk gate driver。。另外針對clk gate,僅需要提供enable、disable、is_enabled接口即可。

    相關(guān)數(shù)據(jù)結(jié)構(gòu)

    結(jié)構(gòu)體struct virt_gpio_clk_gate作為本次gpio clk gate driver的數(shù)據(jù)結(jié)構(gòu),主要包含clk provier device、gpio index描述信息;

    struct virt_gpio_clk_gate

    {

    struct gpio_desc *gpiod_clk_gate;

    struct clk_hw hw;

    };

    而結(jié)構(gòu)體gpio_clk_gate_platform_data主要用于傳遞platform device for clk provider的enable gpio index信息,因為此次我們使用ubuntu16.04進行驗證,因此使用該模式傳遞gpio 信息,包含gpio index、是否低有效等信息。

    struct gpio_clk_gate_platform_data

    {

    int enable_gpio_index;

    int active_low;

    };

    gpio clk provider driver實現(xiàn)

    Gpio clk provider driver的實現(xiàn)如下,主要完成clk provider device注冊、clk_ops的實現(xiàn)(enable、disable、is_enabled)等。如下即為clk provider driver的probe接口,主要調(diào)用clk_register完成clk provider的注冊、并調(diào)用of_clk_add_provider/clk_register_clkdev實現(xiàn)clk provider的map。

    該gpio clk gate provider 的clk_ops操作接口定義如下:

    gpio clk consumer driver實現(xiàn)

    該consumer driver驅(qū)動主要用于驗證gpio clk provider driver是否生效,我們在probe接口完成clk的enable操作;而在remove接口完成clk 的disable操作。接口實現(xiàn)如下:

    Virt gpio chip driver

    該驅(qū)動使用的是gpio driver子系統(tǒng)專欄中實現(xiàn)的虛擬gpio驅(qū)動,本處不再細述,想要了解的童鞋請參考之前的文章。

    測試驗證:

    • 加載virt gpio 驅(qū)動
  • insmod virt_gpio_dev.ko;
  • insmod virt_gpio.ko
    • 加載gpio clk gate 驅(qū)動
  • insmod gpio_clk_platform.ko
  • insmod gpio_clk_driver.ko
    • 加載clk consumer device驅(qū)動
  • insmod gpio_comsumer_device.ko
    • 查看當(dāng)前gpio的值:
    • 加載clk consumer driver驅(qū)動
  • insmod gpio_comsumer_driver.ko
    • 查看當(dāng)前gpio的值

    此時gpio已經(jīng)改變,clk已經(jīng)使能;

    • 卸載clk consumer driver驅(qū)動
  • insmod gpio_comsumer_driver.ko
    • 查看當(dāng)前gpio的值

    此時gpio已經(jīng)修改為0,clk 已經(jīng)關(guān)閉;

    以上就是本章的主要內(nèi)容,我們主要實現(xiàn)一個gpio clk gate provider driver,至此我們基本上已完成CCF子系統(tǒng)的學(xué)習(xí),本章的驅(qū)動代碼鏈接稍后給出。

    與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

    總結(jié)

    以上是生活随笔為你收集整理的设备树与驱动的关系_Linux CommonClock Framework分析之四 gpio clk gate驱动实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 丰满少妇一区二区三区视频 | 人妻一区二区三区四区 | av福利在线免费观看 | 一级黄色免费 | 中文字幕一二三四 | 偷拍青青草 | 拔插拔插海外华人免费视频 | 伊人tv| 在线亚洲网站 | 一级黄色免费大片 | 国产精品国产三级国产专区51 | 色91| 色悠悠视频 | 色香蕉网站 | 午夜影院 | 麻豆av片| 在线视频亚洲欧美 | 国产三级免费观看 | 性久久久久久久 | 奴色虐av一区二区三区 | 日韩性欧美 | 成人免费视频国产免费网站 | 欧美影视一区二区三区 | 日韩欧美在线观看一区二区三区 | 精品福利一区二区三区 | 91视频这里只有精品 | 一边摸一边抽搐一进一出视频 | 日韩专区中文字幕 | 97在线免费观看视频 | 香蕉一区二区 | 精品国产aⅴ | 亚洲黄色片子 | 污污的视频网站在线观看 | 国产一国产二国产三 | av看片在线 | 四虎一区二区 | 亚洲欧美日韩国产 | 草逼视频免费看 | 亚洲av综合色区 | 亚洲天堂av一区二区三区 | 91蜜桃传媒精品久久久一区二区 | 人妻奶水人妻系列 | 天天插天天操天天干 | 亚洲石原莉奈一区二区在线观看 | 国产在线一区二区三区四区 | av色先锋 | 致单身男女免费观看完整版 | 国产精品久久久久久久免费观看 | 噜噜色成人 | 欧美第五页 | 五月婷婷狠狠 | 欧美成人精品一区二区三区在线观看 | 国产黄色小视频在线观看 | 蜜桃9999| 丝袜美腿一区二区三区 | 999精品国产 | 成人短视频在线免费观看 | 操操操操操操 | 青青草久久久 | 午夜精品一二三区 | 久久亚洲精品无码va白人极品 | 丰满岳乱妇一区二区三区 | 在线观看日本一区二区 | 老色批永久免费网站www | 26uuu精品一区二区在线观看 | 成人福利网址 | 精品国产乱码久久久 | 欧美色老头 | 日本涩涩视频 | ,亚洲人成毛片在线播放 | 日韩久久久久久久久久 | 日韩和一区二区 | 超碰激情 | 成人国产精品免费 | 亚洲三级伦理 | 日韩欧美一区二区三区免费观看 | 久国久产久精永久网页 | 国产理论一区 | 男人操女人视频网站 | 日韩福利社 | 国产精品视频一区二区三区 | 欧美xxxx黑人xyx性爽 | 日本aaaa| 黄色小视频在线观看 | 性欧美在线 | 99ri国产精品 | 91av俱乐部 | 亚洲最新av网站 | 国产一卡二卡三卡 | 午夜啪啪网站 | 第一次破处视频 | 国内毛片毛片 | 成人美女免费网站视频 | 中文字幕一区二区在线观看视频 | 天天艹av | 在线天堂v | 91 高清 在线 制服 偷拍 | 国产精品国产三级国产aⅴ浪潮 | 久99精品|