在设备树中查找时钟编号

问题描述 投票:0回答:2

我们有一个基于 i.MX6Q Sabresd 的板,但我们有一些修改。

其中一项修改是我们对其中一个外设使用不同的时钟。

我怎样才能知道这个用于更新设备树的时钟的编号是多少。

 clocks = <&clks 200>;

它连接到 i.MX6Q 的 GPIO_3_CLK02 引脚,如果连接到 GPIO_O_CLK0,上述变量的值是多少 enter image description here

linux embedded-linux dts device-tree
2个回答
0
投票

正确答案是 201。获取该值的方法之一是查看应该在设备树中使用的正确定义。

您可以查看https://elixir.bootlin.com/linux/v4.16/source/include/dt-bindings/clock/imx6qdl-clock.h#L213

你会发现:

#define IMX6QDL_CLK_CKO2            200
#define IMX6QDL_CLK_CKO             201

这些是时钟驱动程序和设备树使用的值。


0
投票

Alexandre 的回答已经足够了,但我希望我能在这里提供更多信息。

此提交

(实际上也是之前)以来,
imx6q 默认将内部 24MHz 振荡器
OSC
路由到 CKO
CKO
CCM_CCOSR
寄存器中的第 8 位。

我们得出的结论是

CKO
字符串在 Linux 内核中用于
CCM_CLKO1
输出,因为在参考手册中
CCM_CLKO1
标识符被重载:

CCM_CCOSR - CLK_OUT_SEL

它可以表示输出(内核中的门)和信号(内核中的多路复用器)。这是我的思维模型图:

OSC ->CSI0_MCLK

这要归功于我的同事 Jan Š。用于解密代码和手册。

© www.soinside.com 2019 - 2024. All rights reserved.