clk子系统基础知识
在
clk_provider
中,常见的时钟类型包括以下几种:- Fixed Clock(固定时钟):固定频率的时钟,不可更改。它通常用于提供固定频率的时钟信号,例如系统时钟或者外设的时钟。
- Gate Clock(时钟门控):通过控制时钟门控信号来开关时钟。可以使用
clk_register_gate()
函数注册一个时钟门控器,在使用时可以通过clk_enable()
和clk_disable()
函数控制时钟的使能状态。 - Mux Clock(时钟选择器):从多个输入时钟中选择一个作为输出时钟。可以使用
clk_register_mux()
函数注册一个时钟选择器,在使用时可以通过clk_set_parent()
函数设置该时钟的父时钟。 - Divider Clock(时钟分频器):将输入时钟的频率分频后得到输出时钟。可以使用
clk_register_divider()
函数注册一个时钟分频器,在使用时可以通过clk_set_rate()
函数设置该时钟的频率。 - Fractional-N PLL Clock(分数-N锁相环时钟):利用锁相环(PLL)技术生成可变频率的时钟信号。可以使用
clk_register_pll()
函数注册一个分数-N锁相环时钟。 - Fixed Factor Clock(固定倍频时钟):表示一个时钟频率是父时钟频率的固定倍数。可以使用
clk_register_fixed_factor()
函数注册一个固定倍频时钟。 - Composite Clock(复合时钟):由多个子时钟组合而成的时钟,可以使用
clk_register_composite()
函数注册一个复合时钟。 - Notifier Clock(通知器时钟):当时钟频率发生变化时,会通知相关的观察者。可以使用
clk_register_notifier()
函数注册一个通知器时钟。