rk3568时钟驱动
rk3568时钟驱动 正在施工
说明
参考SDK内的 Rockchip_Developer_Guide_Clock_CN.pdf 文件,以及代码。
重要概念
时钟⼦系统
这⾥讲的时钟是给SOC 各组件提供时钟的树状框架,并不是内核使⽤的时间,和其他模块⼀样,CLOCK 也有框架,⽤以适配不同的平台。适配层之上是客⼾代码和接口,也就是各模块(如需要时钟信号的外设,USB 等)的驱动。适配层之下是具体的SOC 台的时钟操作细节。
时钟树结构
可运⾏LINUX 的主流处理器平台,都有⾮常复杂的CLOCK TREE,我们随便拿⼀个处理器的SPEC,查看CLOCK 相关的章节,⼀定会有⼀个⾮常庞⼤和复杂的树状图,这个图由CLOCK 相关的器件,以及这些器件输出的CLOCK 组成。
相关器件
CLOCK 相关的器件包括:⽤于产⽣CLOCK 的Oscillator(有源振荡器,也称作谐振荡器)或者Crystal(⽆源振荡器,也称晶振);⽤于倍频的PLL(锁相环,Phase Locked Loop);⽤于分频的Divider;⽤于多路选择的MUX;⽤于CLOCK ENABLE控制的与⻔;使⽤CLOCK 的硬件模块(可称作CONSUMER);等等。
RK3568时钟
┌─────────────┐
│ 外部晶振 │ ←— xin24m, xin32k (输入时钟)
└─────────────┘
│
▼
┌─────────────┐
│ PLLs │ ←— APLL, GPLL, CPLL, NPLL, VPLL, DPLL, PPLL, HPLL
└─────────────┘
│
▼
┌──────────────────────────┐
│ 时钟分频器 & 多路选择器 │←— MUX + DIViders
└──────────────────────────┘
│
▼
┌────────────────────────┐
│ 各个时钟域(PD) & 模块 │←— PD_CORE, PD_GPU, PD_NPU, PD_DDR, PD_VI...
└────────────────────────┘
│
▼
┌────────────────────────┐
│ 门控时钟 & 外设输出 │←— UART, I2S, HDMI, USB, PCIe, GPU, NPU...
└────────────────────────┘
本文来自博客园,作者:潇汀,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/19187283,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号