从零开始之驱动发开、linux驱动(四十一、Linux中旧的时钟管理体系)

本文介绍了Linux老的时钟管理框架与新的common clock framework的区别,包括时钟类型的区分、ops函数的抽象、动态分配、时钟链表的维护以及内核定义的clk结构。详细分析了老时钟框架的注册、选择、启用和频率操作,展示了三星平台的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老的时钟管理和新的时钟管理并无本质的差别。

这里先列出新的新的common clock framework和老的区别,后面再分析老的实现。

1.老的时钟框架没有区分各种时钟类型,新的框架把时钟分成了五个不同的时钟类型,固定频率的,分频的,开关类型的,多选一类型。

2.老的时钟框架需要厂商自己提供ops函数,新的时钟框架因为已经抽象出了5种时钟,所以这五种时钟的ops内核框架都已经抽象出来实现了。

3.老的时钟框架所有的时钟都是用同一个struct clksrc_clk(见下面)维护,所有的信息都是采用静态分配方式的clk,而新的框架分成五类时钟后,都是在注册时动态分配的clk。

4.老的时钟框架只维护了一个clock链表,而新的时钟框架因为抽象了时钟类型,采用树形结构有维护了一个链表。

5.老的时钟框架clk结构厂商自己定义,新的框架有内核定义。

 

下面这就是老的时钟框架对一个时钟资源的描述


/**
 * struct clksrc_clk - class of clock for newer style samsung devices.
 * @clk: the standard clock representation
 * @sources: the sources for this clock
 *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值