在Rockchip RK3399平台上,如何通过clk-uclass通用框架进行时钟频率的配置?
时间: 2024-11-25 11:35:43 浏览: 21
在Rockchip RK3399平台上,clk-uclass通用框架提供了一套丰富的API来配置时钟频率。首先,需要在系统初始化阶段通过`rkclk_init`函数设置时钟参数,该函数定义在RK3399的时钟配置文件中。在这个函数里,会对不同组件的时钟源进行配置,比如APLL可以设置为600MHz以加速启动过程。
参考资源链接:[Rockchip SoC时钟驱动详解:以RK3399为例](https://wenku.csdn.net/doc/7f96kd9jnz?spm=1055.2569.3001.10343)
时钟分频的配置通常涉及到对cru(clock resource unit)节点的操作。以PERIHP为例,A、H、P时钟的配置需要计算合适的分频器值,并通过写入相应的寄存器来完成。这个计算基于期望的输出频率和PLL输出的频率。在设置分频值时,需要确保最终的输出频率符合要求,并且分频值在硬件支持的范围内。
此外,`clk_set_defaults`函数会在加载设备树后被调用,用于设置默认的时钟配置。这个函数会解析设备树中的cru节点,并根据assigned-clock设置默认频率。如果这个函数调用失败,开发人员应当检查调试信息来确定问题所在。
在进行时钟频率配置时,建议阅读《Rockchip SoC时钟驱动详解:以RK3399为例》一书,该书详细介绍了RK3399平台上时钟驱动的设计和实现,将帮助你更好地理解和应用clk-uclass框架。特别需要注意的是,该书也提供了关于如何在U-Boot环境中使用设备树和宏配置来管理时钟设置的详细指南,这对于嵌入式系统开发来说非常有用。
参考资源链接:[Rockchip SoC时钟驱动详解:以RK3399为例](https://wenku.csdn.net/doc/7f96kd9jnz?spm=1055.2569.3001.10343)
阅读全文