brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · 09a9254 Raw
85 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3.. _GPIO_GET_LINEEVENT_IOCTL:4 5************************6GPIO_GET_LINEEVENT_IOCTL7************************8 9.. warning::10    This ioctl is part of chardev_v1.rst and is obsoleted by11    gpio-v2-get-line-ioctl.rst.12 13Name14====15 16GPIO_GET_LINEEVENT_IOCTL - Request a line with edge detection from the kernel.17 18Synopsis19========20 21.. c:macro:: GPIO_GET_LINEEVENT_IOCTL22 23``int ioctl(int chip_fd, GPIO_GET_LINEEVENT_IOCTL, struct gpioevent_request *request)``24 25Arguments26=========27 28``chip_fd``29    The file descriptor of the GPIO character device returned by `open()`.30 31``request``32    The :c:type:`event_request<gpioevent_request>` specifying the line33    to request and its configuration.34 35Description36===========37 38Request a line with edge detection from the kernel.39 40On success, the requesting process is granted exclusive access to the line41value and may receive events when edges are detected on the line, as42described in gpio-lineevent-data-read.rst.43 44The state of a line is guaranteed to remain as requested until the returned45file descriptor is closed. Once the file descriptor is closed, the state of46the line becomes uncontrolled from the userspace perspective, and may revert47to its default state.48 49Requesting a line already in use is an error (**EBUSY**).50 51Requesting edge detection on a line that does not support interrupts is an52error (**ENXIO**).53 54As with the :ref:`line handle<gpio-get-linehandle-config-support>`, the55bias configuration is best effort.56 57Closing the ``chip_fd`` has no effect on existing line events.58 59Configuration Rules60-------------------61 62The following configuration rules apply:63 64The line event is requested as an input, so no flags specific to output lines,65``GPIOHANDLE_REQUEST_OUTPUT``, ``GPIOHANDLE_REQUEST_OPEN_DRAIN``, or66``GPIOHANDLE_REQUEST_OPEN_SOURCE``, may be set.67 68Only one bias flag, ``GPIOHANDLE_REQUEST_BIAS_xxx``, may be set.69If no bias flags are set then the bias configuration is not changed.70 71The edge flags, ``GPIOEVENT_REQUEST_RISING_EDGE`` and72``GPIOEVENT_REQUEST_FALLING_EDGE``, may be combined to detect both rising73and falling edges.74 75Requesting an invalid configuration is an error (**EINVAL**).76 77Return Value78============79 80On success 0 and the :c:type:`request.fd<gpioevent_request>` contains the file81descriptor for the request.82 83On error -1 and the ``errno`` variable is set appropriately.84Common error codes are described in error-codes.rst.85