时钟树
Linux 时钟提供者通过公共时钟框架(CCF)导出根时钟、部分父时钟关系、分频器及外设控制。下表描述该提供者的注册项及频率计算。
已注册的父时钟与分频关系
时钟 |
已注册的父时钟 |
提供者中的频率关系 |
|---|---|---|
|
无 |
从配置读取晶振频率;回退值为 40 MHz |
|
无 |
固定的模型频率:17.5 MHz、136 kHz、32.768 kHz |
|
|
根据分频寄存器计算 PLL 频率;APLL 还包含小数部分配置 |
|
|
固定的模型频率 480 MHz |
|
|
父时钟频率除以已配置的分频值 |
|
|
父时钟频率除以已配置的分频值 |
|
|
选中的父时钟除以已配置的分频值 |
|
|
固定的模型频率 20 MHz |
|
|
选中的父时钟除以 CPU 分频值 |
|
|
CPU 频率除以 1 或 2 |
|
|
CPU 频率除以系统分频值 |
|
|
系统频率除以 APB 分频值 |
|
|
可编程的发送时钟分频器 |
CPU 工作频点
两个 HP 核共用 cpu 时钟及同一张 OPP 表。项目提供的设备树公开 80、160、240 和 320 MHz。时钟驱动配置以下时钟源与分频组合:mem 和 sys 对 CPU 时钟分频,apb 对 sys 分频。
CPU 频率 |
时钟源 |
CPU 分频值 |
内存分频值 |
系统分频值 |
APB 分频值 |
|---|---|---|---|---|---|
80 MHz |
|
4 |
1 |
1 |
2 |
160 MHz |
|
2 |
1 |
2 |
2 |
240 MHz |
|
1 |
2 |
3 |
2 |
320 MHz |
|
1 |
2 |
3 |
2 |
驱动还提供用于关机交接的 40 MHz XTAL 配置;它不属于项目 CPU 表公开的 OPP。时钟源选择与分频器的更新会一起锁存。参见分频表与更新流程及共享 OPP 表。 频率控制方法见电源管理。
定时器与外设输入时钟
提供者条目 / 定时器 |
本移植使用的频率 |
使用者 |
|---|---|---|
|
16 MHz |
Linux 时间管理和每 CPU 定时事件 |
每个定时器组的定时器 1 |
40 MHz XTAL / 40 = 1 MHz |
OpenSBI 空闲唤醒保护;不分配给 Linux GPTimer 驱动 |
|
提供者输入为 40 MHz |
外设驱动再配置波特率、总线或输出分频 |
|
提供者输入为 80 MHz |
SPI 传输时钟分频器 |
外设输入时钟频率不等于最终的 UART 波特率、I2C/SPI 总线速率或 PWM 频率。参见外设时钟注册及保留的中断路由。
驱动获取时钟的方法和 clocks 诊断属性统一见时钟、复位与电源。