gpt4 book ai didi

linux - 环形振荡器设备驱动程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:54 24 4
gpt4 key购买 nike

有人要求我在 Linux 中调出环形振荡器。首先,我尝试直接读取控制和状态寄存器(有趣的位),我可以使用 devmem(使用寄存器的物理地址)访问它们。有两个环形振荡器模块 0 和 1。每个包含 4 个环形振荡器。模块 0 输出馈送到随机数生成器。模块 1 用于过程监控——关于此的信息还不多。每个模块都有单独的一组用于控制、状态等的寄存器。每个环形振荡器都有一个频率计数器,当适当设置环形振荡器的控制寄存器时,我可以从频率计数器的计数寄存器中读取频率计数。

现在我必须为 Ring Oscillator 编写一个设备驱动程序来启动它。我不太清楚的是,在 dts 文件中,我应该尝试将环形振荡器表示为时钟源还是将其视为平台设备。无法弄清楚有关 Linux 如何处理环形振荡器的信息。我是否应该寻找环形振荡器的设备地址并尝试将其添加为 dts 文件中的任何其他平台外围设备条目。这样我就可以在驱动程序文件中将其注册为平台设备,并通过探测功能控制其寄存器。或者我应该把它当作时钟源吗?但是,从可用的文档中我看不到它被用作任何其他外设的时钟源。任何人都可以对此有所了解吗?任何帮助将不胜感激。

谢谢。

问候

维克

最佳答案

我已将环形振荡器作为平台驱动程序实现。 dts/dtsi 变化如下:

dtsi:

ring_osc: ring-oscillator@F00xxxxx {
compatible = "abc,abc-ring";
reg = <0xF00xxxxx 0x14>;
status = "disabled";
};

数据:

&ring_osc {
status = "okay";
};

我编写的驱动程序使用它的配置寄存器简单地配置振荡器。此外,还提供了一个 sysfs 接口(interface),用于设置与其相连的频率计数器的周期值,并从频率计数器读回频率计数。

关于linux - 环形振荡器设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com