如何通过设备树配置时钟?

时间:2014-12-01 13:59:34

标签: linux-kernel linux-device-driver device-tree

我正在尝试为内核中包含的新设备配置时钟。 我有一个较旧版本的内核,其中已包含该设备。

所以我尝试对时钟进行类似的内核更改。 但是在旧版本的内核中,有一个C文件用于配置几乎所有设备的时钟, 但我在新的内核中找不到任何类似的文件。

经过我的调查后发现,在较新版本的内核中,配置时钟的参数通过设备树传递给内核。 所以我试图改变DT以包含新设备的时钟,但我无法完全成功。 所以我的问题是:

1)内核如何获取参数和寄存器地址以配置特定器件的时钟

2)我们可以在内核或驱动程序中访问此信息(如注册加法器)吗?

3)还有其他方法,我们可以直接在驱动程序或内核中使用寄存器进行设置   时钟(如频率)

1 个答案:

答案 0 :(得分:1)

在设备树文件中,您可以指定设备的时钟频率。例如,考虑设备树,其中串行端口(UART)时钟频率被设置为“clock-frequency =< 3686400&gt ;;”。至于你的问题的下一部分是关于内核如何获取参数,驱动程序使用api“of_get_property”从设备树中获取任何数据都很容易。作为示例,请参阅legacy_serial.c文件,还可以查看上面示例中的“Documentation / devicetree / bindings / serial”。