首页 存档 技术 查看内容

linux设备驱动程序之时钟管理(2)----又见结构

2018-3-30 13:00 |来自: 互联网 327 0

摘要: 点击上方“蓝字”可以关注我们哦 |本文来自:ChinaUnix博客 |作者:yangyefeng820803 |原文链接:http://blog.chinaunix.net/uid-31087949-id-5760829.html 既然说到时钟管理这块儿了,必然必然是跟设备相关的, 既 ...

点击上方“蓝字”可以关注我们哦



|本文来自:ChinaUnix博客

|作者:yangyefeng820803

|原文链接:http://blog.chinaunix.net/uid-31087949-id-5760829.html



既然说到时钟管理这块儿了,必然必然是跟设备相关的, 既然如此,正好甘巴拉查的说也没什么意思,干脆就拿三星的时钟做例子分析,正所谓一通百通。/arch/arm/plat-samsung/clock.h。


上图前所点儿题外话吧,话说上周末去国际关系学院打了打乒乓球还是非常爽的,好久不运动的丝躯壳确实需要见见阳光,昨天的雨确实下的比较爽,哎,深秋来了,时间真的非常快,不知不觉已经深秋了快,好像自己一点儿时间管理的观念都太差,不像内核中,好多优秀的程序员的时间管理观念还是非常强大的,所以学习了。上代码:


  • 43行,链表节点,到了这了,也不防告诉你,所有的时钟都是连接到一个全局的时钟链表上的,你只要是一注册,都会连接到上面,这样查询的时候好找,也便于管理。

  • 44 模块的拥有者

  • 45 父时钟,什么是父时钟 ,话说人是人他妈生的,妖是妖他妈生的,时钟也是时钟他妈生的,无论哪个时钟你总得有个来源吧?

  • 46 时钟的名字

  • 47 所属设备的名字

  • 48 id

  • 49 引用计数

  • 50 速率

  • 51 控制位,是用来说明控制什么类型的时钟的,比如i2c的时钟,比如nand的时钟

  • 53 时钟的操作函数,单有一个结构体struct clk_ops*ops;稍后再将

  • 54 话说这个操作函数比较独特啊,它就是不跟struct clk_ops*ops入群,人总有特殊的,不是吗?

  • 55struct clk_lookuplookup;时钟的查找表,话说查找时钟时就是根据这个结构体里的信息查的,也是稍后说

  • 56 如果定义了那两个宏,就有这个成员函数,文件系统相关的,暂时忽略掉,我们要集中力量,各个突破


好了,这个结构体被剖析的体无完肤 ,呵呵。。也算满全了咱们的刨根问底的精神。


刚才忽略的两个结构体,现在是时候看了,一个是struct clk_ops ,上代码:

哎,公司有走一个,还是个beautiful girl,这让我情何以堪啊,本来还可以有点儿精神支柱,这下。。哎,坑爹啊。。


  • 36行就是设置时钟频率,速度的函数

  • 37 是获取,都很简单

  • 38 不精确的设置时钟频率

  • 39 设置它的父时钟


哎,人还是简单点儿好,太复杂了有时候不招人喜欢


  • 21行,链表结点

  • 22行 所属设备id

  • 23 行 匹配条件id,这在查找相应的时钟时会用到

  • 24行 查找表包含的时钟


哎,是不是年纪大了,这点儿简单的东西讲了一泡,还觉得有点儿累呢,昨晚没睡好,还是因为那个妹子要走,没了精神支柱?



我知道一种学习

于坚





声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部