我们有一个基于 i.MX6Q Sabresd 的板,但我们有一些修改。
其中一项修改是我们对其中一个外设使用不同的时钟。
我怎样才能知道这个用于更新设备树的时钟的编号是多少。
clocks = <&clks 200>;
正确答案是 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
这些是时钟驱动程序和设备树使用的值。
Alexandre 的回答已经足够了,但我希望我能在这里提供更多信息。
自此提交
(实际上也是之前)以来,imx6q 默认将内部 24MHz 振荡器
OSC
路由到 CKO
。 CKO
是 CCM_CCOSR
寄存器中的第 8 位。
我们得出的结论是
CKO
字符串在 Linux 内核中用于 CCM_CLKO1
输出,因为在参考手册中 CCM_CLKO1
标识符被重载:
它可以表示输出(内核中的门)和信号(内核中的多路复用器)。这是我的思维模型图:
这要归功于我的同事 Jan Š。用于解密代码和手册。