Loading...
Note: File does not exist in v4.10.11.
1.. SPDX-License-Identifier: GPL-2.0
2
3.. _gpio_errors:
4
5*******************
6GPIO Error Codes
7*******************
8
9.. _gpio-errors:
10
11.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
12
13.. flat-table:: Common GPIO error codes
14 :header-rows: 0
15 :stub-columns: 0
16 :widths: 1 16
17
18 - - ``EAGAIN`` (aka ``EWOULDBLOCK``)
19
20 - The device was opened in non-blocking mode and a read can't
21 be performed as there is no data available.
22
23 - - ``EBADF``
24
25 - The file descriptor is not valid.
26
27 - - ``EBUSY``
28
29 - The ioctl can't be handled because the device is busy. Typically
30 returned when an ioctl attempts something that would require the
31 usage of a resource that was already allocated. The ioctl must not
32 be retried without performing another action to fix the problem
33 first.
34
35 - - ``EFAULT``
36
37 - There was a failure while copying data from/to userspace, probably
38 caused by an invalid pointer reference.
39
40 - - ``EINVAL``
41
42 - One or more of the ioctl parameters are invalid or out of the
43 allowed range. This is a widely used error code.
44
45 - - ``ENODEV``
46
47 - Device not found or was removed.
48
49 - - ``ENOMEM``
50
51 - There's not enough memory to handle the desired operation.
52
53 - - ``EPERM``
54
55 - Permission denied. Typically returned in response to an attempt
56 to perform an action incompatible with the current line
57 configuration.
58
59 - - ``EIO``
60
61 - I/O error. Typically returned when there are problems communicating
62 with a hardware device or requesting features that hardware does not
63 support. This could indicate broken or flaky hardware.
64 It's a 'Something is wrong, I give up!' type of error.
65
66 - - ``ENXIO``
67
68 - Typically returned when a feature requiring interrupt support was
69 requested, but the line does not support interrupts.
70
71.. note::
72
73 #. This list is not exhaustive; ioctls may return other error codes.
74 Since errors may have side effects such as a driver reset,
75 applications should abort on unexpected errors, or otherwise
76 assume that the device is in a bad state.
77
78 #. Request-specific error codes are listed in the individual
79 requests descriptions.