2024-01-14 19:48:39 -05:00
|
|
|
.. 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``
|
|
|
|
|
2024-01-23 08:38:28 -05:00
|
|
|
- Typically returned when a feature requiring interrupt support was
|
|
|
|
requested, but the line does not support interrupts.
|
2024-01-14 19:48:39 -05:00
|
|
|
|
|
|
|
.. 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.
|