设备树 clocks
时间: 2024-06-12 08:11:22 浏览: 291
设备树中的clocks节点用于描述硬件设备中的时钟信息,包括时钟的名称、时钟的频率、时钟的父时钟等信息。时钟在硬件设备中非常重要,因为它们控制着设备中各个模块的工作频率,从而保证设备的正常运行。
在设备树中,clocks节点通常包含一个或多个子节点,每个子节点描述一个时钟。每个时钟节点通常包含以下属性:
- clock-frequency:时钟的频率,以赫兹为单位。
- clock-name:时钟的名称。
- clock-output-names:时钟输出的名称,通常用于描述时钟输出到哪些硬件模块。
- clock-parents:时钟的父时钟,通常是其他时钟节点的名称。
通过设备树中的clocks节点,操作系统可以获取硬件设备中各个模块的工作频率信息,并根据需要进行配置和调整。
相关问题
配置设备树 属性clocks、assigned-clocks、assigned-clock-rates、assigned-clock-parents
设备树中的时钟属性包括:
1. `clocks`:用于描述设备的时钟源。它是一个数组,每个元素都包含两个值,第一个是时钟源所在的设备节点的路径,第二个是时钟源在该设备上的编号。
2. `assigned-clocks`:用于描述该设备需要使用的时钟源。它是一个数组,每个元素都是时钟源在全局时钟源列表中的编号。
3. `assigned-clock-rates`:用于描述该设备需要使用的时钟频率。它是一个数组,每个元素都是一个时钟频率值。
4. `assigned-clock-parents`:用于描述该设备需要使用的时钟源的父时钟源。它是一个数组,每个元素都是时钟源在全局时钟源列表中的编号。
下面是一个示例设备节点的定义,其中包含了时钟属性:
```
timer@12345678 {
compatible = "vendor,timer";
reg = <0x12345678 0x1000>;
interrupts = <42>;
clocks = <&clocks 4>;
assigned-clocks = <4>;
assigned-clock-rates = <1000000>;
assigned-clock-parents = <&clocks 2>;
};
```
在这个示例中,设备节点名称为 `timer@12345678`,它有一个时钟源,该时钟源的路径为 `&clocks`,它在 `&clocks` 设备上的编号为 4。设备需要使用的时钟源编号为 4,在使用时钟源的时候,需要使用它的父时钟源 `&clocks` 中的第二个时钟源。设备需要的时钟频率为 1 MHz。
配置设备树时钟信号clocks、clock-names、assigned-clocks、assigned-clock-rates、assigned-clock-parents
在设备树中配置时钟信号需要使用以下属性:
- `clocks`: 该属性指定了时钟控制器所连接的时钟信号的数量和 ID。每个时钟信号的 ID 需要与时钟控制器的寄存器地址相匹配。
- `clock-names`: 该属性指定了时钟信号的名称,它们与 `clocks` 属性中的 ID 一一对应。这些名称可以被设备树中的其他节点使用来引用这些时钟信号。
- `assigned-clocks`: 该属性指定了设备节点需要使用的时钟信号的 ID。这些 ID 必须与 `clocks` 属性中定义的值相匹配。
- `assigned-clock-rates`: 该属性指定了设备节点需要使用的时钟信号的频率。这些频率必须与 `assigned-clocks` 属性中定义的时钟信号相匹配。
- `assigned-clock-parents`: 该属性指定了时钟信号的父时钟信号。这些父时钟信号可以是其他时钟信号或时钟控制器。这些父时钟信号必须与 `assigned-clocks` 属性中定义的时钟信号相匹配。
举个例子,以下是一个设备树节点的时钟属性配置:
```dts
clocks = <&clks 0>, <&clks 1>;
clock-names = "clk1", "clk2";
assigned-clocks = <&clks 0>, <&clks 1>;
assigned-clock-rates = <1000000>, <20000000>;
assigned-clock-parents = <&clks 0>, <&clks 1>;
```
这个节点连接了两个时钟信号,分别被命名为 `clk1` 和 `clk2`。这两个时钟信号的 ID 分别为 `0` 和 `1`。设备节点需要使用这两个时钟信号,并且需要分别设置它们的频率为 `1MHz` 和 `20MHz`。这两个时钟信号的父时钟信号为 `clks` 节点中的时钟信号。
阅读全文