【问题标题】:gpiod_* vs gpio_* methods in the Linux KernelLinux 内核中的 gpiod_* 与 gpio_* 方法
【发布时间】:2016-08-23 13:54:16
【问题描述】:

Linux 设备驱动程序编程中哪个 GPIO API 更可取以及在什么条件下:gpio_set_value()gpiod_set_value()

一个将 GPIO desc 作为对象,而另一个将 GPIO 从设备树中解析出来。

【问题讨论】:

    标签: linux-kernel device-driver device-tree


    【解决方案1】:

    对于所有新驱动程序,建议使用gpiod_* API。旧的gpio_* API 现在被认为已弃用。

    来自this 提交:

    gpiolib:导出基于描述符的 GPIO 接口

    此补丁导出了gpiod_* 系列 API 函数,更安全 替代传统 GPIO 接口。 gpiod之间的差异 和旧的 gpio API 是:

    • gpio 处理整数,而 gpiod 处理不透明的处理程序 在正确获取之前不能伪造或使用
    • gpiod get/set 函数知道 GPIO 的低电平有效状态
    • gpio 消费者现在应该包含<linux/gpio/consumer.h> 以访问 新接口,而芯片驱动程序将使用 <linux/gpio/driver.h>

    旧版 gpio API 现在构建为 gpiod 之上的内联函数。

    有关新 gpiod API 的详细信息,请参阅下一个链接:

    【讨论】:

      猜你喜欢
      • 2020-01-18
      • 1970-01-01
      • 2016-11-28
      • 2020-10-30
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多