2016-08-23 184 views
4

Linux設備驅動程序編程中的哪個GPIO API更可取,並且在以下條件下:gpio_set_value()gpiod_set_value()Linux內核中的gpiod_ *和gpio_ *方法

其中一個將GPIO desc作爲對象,另一個將GPIO從設備樹中解析出來。

回答

6

對於所有新驅動程序,建議使用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的細節: