| .. 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. |