GPIO-Hog声明的目的和用法

Purpose and usage of GPIO-Hog declaration

问题

  1. gpio-hog 声明的目的和用例是什么?
  2. 可以从用户空间连接 'hogged' gpio 引脚吗?
  3. 如果 'hogged' gpio 引脚无法与用户空间交互,那么是否有任何机制可以在 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 似乎归内核所有,无法与任何用户空间工具(如 sysfslibgpiod 进行交互。这使得 hogging 对我来说基本上毫无用处,也让我想知道它的真正目的是什么。我正在探索 libgpiod 作为最后的手段,但文档显示 hogging 应该是我使用的机制。

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

所以基本上 gpio-hog 属性 告诉控制器在启动期间设置引脚 high/low,没有其他 driver/user space 会请求它。

如果你打算在用户 space 中使用 gpio,你不应该使用 gpio-hog