es8388节点里的 assigned-clock-rates = <12288000>;属性
时间: 2024-04-21 08:26:14 浏览: 11
这个属性是指定了es8388节点使用的时钟频率。具体来说,这里的值是12288000,意味着es8388节点使用的时钟频率为12.288MHz。时钟频率在芯片的工作中是非常重要的,它影响着芯片的性能和稳定性。因此,需要根据具体的芯片规格来设置时钟频率。在这里,12288000是es8388芯片规格中规定的时钟频率。
相关问题
配置设备树 属性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。
配置设备树时钟信号assigned-clocks、assigned-clock-rates、assigned-clock-parents
在设备树中,时钟信号的配置通常需要使用三个属性:`assigned-clocks`、`assigned-clock-rates` 和 `assigned-clock-parents`。
`assigned-clocks` 属性用于指定该设备需要使用的时钟信号。这个属性的值是一个整数数组,每个元素对应一个时钟信号,表示该设备需要使用哪些时钟。
`assigned-clock-rates` 属性用于指定每个时钟信号的频率。这个属性的值也是一个整数数组,每个元素对应一个时钟信号,表示该时钟信号的频率。
`assigned-clock-parents` 属性用于指定时钟信号的父时钟。这个属性的值是一个字符串数组,每个元素对应一个时钟信号,表示该时钟信号的父时钟。
举个例子,假设我们有一个设备需要使用两个时钟信号,一个叫做 `clk1`,一个叫做 `clk2`,它们的频率分别为 100 MHz 和 50 MHz,而且 `clk2` 的父时钟是 `clk1`。那么这个设备在设备树中的时钟配置应该如下所示:
```dts
clocks {
#address-cells = <1>;
#size-cells = <0>;
clk1: clk1 {
compatible = "fixed-clock";
clock-frequency = <100000000>;
};
clk2: clk2 {
compatible = "fixed-clock";
clock-parents = <&clk1>;
clock-frequency = <50000000>;
};
};
...
my-device {
compatible = "my-device";
...
assigned-clocks = <&clk1 0>, <&clk2 0>;
assigned-clock-rates = <100000000>, <50000000>;
assigned-clock-parents = "", "clk1";
};
```
在这个例子中,我们首先定义了两个时钟 `clk1` 和 `clk2`,并且指定了它们的频率和父时钟。然后在 `my-device` 的设备树节点中,我们将 `assigned-clocks` 属性设置为 `<&clk1 0>, <&clk2 0>`,表示它需要使用 `clk1` 和 `clk2` 两个时钟。同时,我们将 `assigned-clock-rates` 设置为 `<100000000>, <50000000>`,表示 `clk1` 的频率是 100 MHz,`clk2` 的频率是 50 MHz。最后,我们将 `assigned-clock-parents` 设置为 `""` 和 `"clk1"`,表示 `clk1` 没有父时钟,而 `clk2` 的父时钟是 `clk1`。这样,我们就完成了设备树中的时钟信号配置。