yangyefeng820803 阅读(46) 评论(0)

实,既然说到时钟管理这块儿了,必然必然是跟设备相关的, 既然如此,正好甘巴拉查的说也没什么意思,干脆就拿三星的时钟做例子分析,正所谓一通百通。/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入群,人总有特殊的,不是吗?

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

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

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

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

        

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

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

         37 是获取,都很简单

         38 不精确的设置时钟频率

         39 设置它的父时钟

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

         

         21行,链表结点

         22行  所属设备id

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

         24行 查找表包含的时钟

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

顶 0 踩