GPIO_GET_LINEEVENT_IOCTL

警告

此 ioctl 是 GPIO 字元裝置使用者空間 API (v1) 的一部分,已被 GPIO_V2_GET_LINE_IOCTL 棄用。

名稱

GPIO_GET_LINEEVENT_IOCTL - 請求核心提供具有邊沿檢測的線路。

概要

GPIO_GET_LINEEVENT_IOCTL

int ioctl(int chip_fd, GPIO_GET_LINEEVENT_IOCTL, struct gpioevent_request *request)

引數

chip_fd

open() 返回的 GPIO 字元裝置的檔案描述符。

request

指定要請求的線路及其配置的 event_request

描述

請求核心提供具有邊沿檢測的線路。

成功後,請求程序將被授予對線路值的獨佔訪問許可權,並且當線上路上檢測到邊沿時,可以接收事件,如 GPIO_LINEEVENT_DATA_READ 中所述。

保證線路的狀態保持在請求狀態,直到返回的檔案描述符被關閉。一旦檔案描述符被關閉,從使用者空間的角度來看,線路的狀態將變得不受控制,並且可能會恢復到其預設狀態。

請求已在使用中的線路是一個錯誤 (EBUSY)。

請求不支援中斷的線路上的邊沿檢測是一個錯誤 (ENXIO)。

線路控制代碼 一樣,偏置配置是盡力而為。

關閉 chip_fd 對現有的線路事件沒有影響。

配置規則

以下配置規則適用

線路事件被請求作為輸入,因此不能設定特定於輸出線路的標誌,GPIOHANDLE_REQUEST_OUTPUTGPIOHANDLE_REQUEST_OPEN_DRAINGPIOHANDLE_REQUEST_OPEN_SOURCE

只能設定一個偏置標誌,GPIOHANDLE_REQUEST_BIAS_xxx。如果沒有設定偏置標誌,則偏置配置不會更改。

邊沿標誌,GPIOEVENT_REQUEST_RISING_EDGEGPIOEVENT_REQUEST_FALLING_EDGE,可以組合起來檢測上升沿和下降沿。

請求無效配置是一個錯誤 (EINVAL)。

返回值

成功時返回 0,並且 request.fd 包含請求的檔案描述符。

發生錯誤時返回 -1,並且會適當地設定 errno 變數。常見錯誤程式碼在 GPIO 錯誤程式碼 中描述。