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...
└────────────────────────┘
posted @ 2025-11-03 15:38  潇汀  阅读(4)  评论(0)    收藏  举报