首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环形振荡器设备驱动程序

环形振荡器设备驱动程序
EN

Stack Overflow用户
提问于 2017-03-28 09:49:46
回答 1查看 85关注 0票数 1

我被要求在Linux中启动一个Ring振荡器。首先,我尝试直接读取控制和状态寄存器(感兴趣的位),并且可以使用devmem访问它们(使用寄存器的物理地址)。有两个环形振荡器模块0和1。每个模块由4个环形振荡器组成。模块0的输出提供给随机数生成器。模块1用于进程监控-关于这方面的信息还不多。每个模块都有一组独立的寄存器,用于控制、状态等。每个环形振荡器都有一个频率计数器,当适当设置环形振荡器的控制寄存器时,我可以从频率计数器的计数寄存器中读取频率计数。

现在,我必须为Ring振荡器编写一个设备驱动程序来实现这个目的。我不太清楚的是,在dts文件中,我应该尝试将Ring振荡器表示为时钟源,还是将其视为平台设备。我不知道Linux是如何处理Ring振荡器的。我是否应该查找Ring振荡器的设备地址,并尝试将其作为任何其他平台外围设备条目添加到dts文件中。这样,我就可以在驱动程序文件中将其注册为平台设备,并从探测函数控制其寄存器。或者我应该把它当做时钟源?但是,从可用的文档中,我看不到它被用作任何其他外围设备的时钟源。有谁能解释一下这个问题吗?任何帮助都将受到高度的感谢。

谢谢。

问候

Vivek

EN

回答 1

Stack Overflow用户

发布于 2017-04-03 22:54:14

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

dtsi:

代码语言:javascript
复制
ring_osc: ring-oscillator@F00xxxxx {
    compatible = "abc,abc-ring";
    reg = <0xF00xxxxx 0x14>;
    status = "disabled";
};

dts:

代码语言:javascript
复制
&ring_osc {
    status = "okay";
};

我所写的驱动程序只是使用振荡器的配置寄存器来配置振荡器。此外,还提供了一个sysfs接口,用于设置与其连接的频率计数器的周期值,并从频率计数器中读回频率计数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43059300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档