GPIO Error Codes¶
| 
 | The device was opened in non-blocking mode and a read can’t be performed as there is no data available. | 
| 
 | The file descriptor is not valid. | 
| 
 | 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. | 
| 
 | There was a failure while copying data from/to userspace, probably caused by an invalid pointer reference. | 
| 
 | One or more of the ioctl parameters are invalid or out of the allowed range. This is a widely used error code. | 
| 
 | Device not found or was removed. | 
| 
 | There’s not enough memory to handle the desired operation. | 
| 
 | Permission denied. Typically returned in response to an attempt to perform an action incompatible with the current line configuration. | 
| 
 | 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. | 
| 
 | 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.