问题

gpio-hog声明的目的和用例是什么?
可以将’hogged’gpio引脚与Userspace连接吗?
如果“hogged”gpio引脚无法与Userspace接口,那么是否有任何机制可以在dts文件中配置GPIO引脚以进行用户空间交互?

背景

我正在尝试配置许多(10)GPIO与用户空间的低级芯片对话.我已经使用sysfs导出轻松地与芯片通信了,但是内核和编程论坛中的文档都让我担心在我们的生产系统中使用这种机制.

阅读更多内核文档我读到了gpio-hog声明,它似乎是至少最初配置GPIO的理想机制.从文档:


GPIO hogging is a mechanism providing automatic GPIO request and
configuration as part of the gpio-controller’s driver probe function.

除了设置正确的低级别供应商设置外,我还在所需的gpio引脚上进行了占用,然后他们报告了正确的设置.问题是gpio似乎是内核所拥有的,并且不能被任何用户空间工具(如sysfs或libgpiod)接口.这使得对我来说基本上没用了,也让我想知道它的真正目的是什么.我正在探索libgpiod作为最后的手段,但文档使得似乎占用应该是我使用的机制.

解决方法:

hog meaning – to take or use a lot of something in a way that prevents other
people from having it

所以基本上gpio-hog属性告诉控制器在启动期间将引脚设置为高/低,并且没有其他驱动程序/用户空间会请求它.

如果您打算在用户空间中使用gpio,则不应该使用gpio-hog

标签: linux, gpio, linux-device-driver, device-tree

相关文章推荐

添加新评论,含*的栏目为必填