| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- .. 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``
- - Typically returned when a feature requiring interrupt support was
- requested, but the line does not support interrupts.
- .. 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.
|