assigned-clocks
时间: 2023-07-23 12:08:28 浏览: 305
`assigned-clocks` 是设备树(Device Tree)中的一个属性,用于为设备节点指定所需的时钟源。
在设备树中,每个设备节点都可以依赖于一个或多个时钟源来进行操作。时钟源是系统中用于同步和定时设备操作的信号源。通过使用 `assigned-clocks` 属性,可以将适当的时钟源分配给设备节点,以确保设备能够按预期进行操作。
`assigned-clocks` 属性可以在设备节点的属性列表中进行配置,其值可以是一个或多个时钟源的引用。例如:
```dts
assigned-clocks = <&clock_source1>, <&clock_source2>;
```
上述代码片段将两个时钟源 `clock_source1` 和 `clock_source2` 分配给该设备节点。
具体的时钟源和其引用的方式可能因不同的硬件和设备树而有所不同。你需要参考相关的文档和资源,了解如何正确配置 `assigned-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` 节点中的时钟信号。
阅读全文