配置设备树时钟信号clocks、clock-names、assigned-clocks、assigned-clock-rates、assigned-clock-parents
时间: 2023-08-12 11:05:32 浏览: 896
在设备树中配置时钟信号需要使用以下属性:
- `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` 节点中的时钟信号。
阅读全文