老的时钟管理和新的时钟管理并无本质的差别。
这里先列出新的新的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
*