mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
Documentation: gpio: add chardev userspace API documentation
Add documentation for the GPIO character device userspace API. Added to the userspace-api book, but also provide a link from the admin-guide book, as historically the GPIO documentation has been there. Signed-off-by: Kent Gibson <warthog618@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
committed by
Bartosz Golaszewski
parent
b6747ef69f
commit
32a0a0da53
78
Documentation/userspace-api/gpio/error-codes.rst
Normal file
78
Documentation/userspace-api/gpio/error-codes.rst
Normal file
@@ -0,0 +1,78 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
.. _gpio_errors:
|
||||
|
||||
*******************
|
||||
GPIO Error Codes
|
||||
*******************
|
||||
|
||||
.. _gpio-errors:
|
||||
|
||||
.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
|
||||
|
||||
.. flat-table:: Common GPIO error codes
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
:widths: 1 16
|
||||
|
||||
- - ``EAGAIN`` (aka ``EWOULDBLOCK``)
|
||||
|
||||
- The device was opened in non-blocking mode and a read can't
|
||||
be performed as there is no data available.
|
||||
|
||||
- - ``EBADF``
|
||||
|
||||
- The file descriptor is not valid.
|
||||
|
||||
- - ``EBUSY``
|
||||
|
||||
- The ioctl can't be handled because the device is busy. Typically
|
||||
returned when an ioctl attempts something that would require the
|
||||
usage of a resource that was already allocated. The ioctl must not
|
||||
be retried without performing another action to fix the problem
|
||||
first.
|
||||
|
||||
- - ``EFAULT``
|
||||
|
||||
- There was a failure while copying data from/to userspace, probably
|
||||
caused by an invalid pointer reference.
|
||||
|
||||
- - ``EINVAL``
|
||||
|
||||
- One or more of the ioctl parameters are invalid or out of the
|
||||
allowed range. This is a widely used error code.
|
||||
|
||||
- - ``ENODEV``
|
||||
|
||||
- Device not found or was removed.
|
||||
|
||||
- - ``ENOMEM``
|
||||
|
||||
- There's not enough memory to handle the desired operation.
|
||||
|
||||
- - ``EPERM``
|
||||
|
||||
- Permission denied. Typically returned in response to an attempt
|
||||
to perform an action incompatible with the current line
|
||||
configuration.
|
||||
|
||||
- - ``EIO``
|
||||
|
||||
- I/O error. Typically returned when there are problems communicating
|
||||
with a hardware device or requesting features that hardware does not
|
||||
support. This could indicate broken or flaky hardware.
|
||||
It's a 'Something is wrong, I give up!' type of error.
|
||||
|
||||
- - ``ENXIO``
|
||||
|
||||
- No device corresponding to this device special file exists.
|
||||
|
||||
.. note::
|
||||
|
||||
#. This list is not exhaustive; ioctls may return other error codes.
|
||||
Since errors may have side effects such as a driver reset,
|
||||
applications should abort on unexpected errors, or otherwise
|
||||
assume that the device is in a bad state.
|
||||
|
||||
#. Request-specific error codes are listed in the individual
|
||||
requests descriptions.
|
||||
Reference in New Issue
Block a user