1. 时钟设备
晶振:提供基础时钟源的(可分为有源晶振、无源晶振两种);
PLL: 用于倍频的锁相环;
mux: 用于多路时钟源选择;
Divider: 用于分频的;
gate: 用于时钟使能的与门电路等
注册函数:
driver/clk/clk-fixed-rate.c clk_fixed_rate_op // 对应 clk_fixed_rate_ops
driver/clk/clk-mux.c clk_register_mux // 对应 clk_mux_ops
driver/clk/clk-gate.c clk_hw_register_gate // 对应 clk_gate_ops
driver/clk/clk-divider.c clk_hw_register_divider // 对应 clk_divider_ops1. 不同类型的时钟,进行抽象,提供相同的操作函数
2. 相同类型的不同时钟,通过传递不同的参数(reg等)进行差别控制
2. CCF ,Provider, Consumer 框图
CCF: common clock framework
3. 常用linux命令
cat /sys/kernel/debug/clk/clk_summary
参考链接:
SOC时钟系统驱动分析
Linux clock子系统及驱动实例-阿里云开发者社区