Add the GPIOHANDLE_SET_CONFIG_IOCTL to the gpio chardev. The ioctl allows some of the configuration of a requested handle to be changed without having to release the line. The primary use case is the changing of direction for bi-directional lines. Based on initial work by Bartosz Golaszewski <bgolaszewski@baylibre.com>
Showing the changes to include/uapi/linux (1 of 2 files). Show all
Unified · Split
| @@ -100,6 +100,24 @@ struct gpiohandle_request { · 99 unmodified lines | |||
| 100 | int fd; | 100 | int fd; |
| 101 | }; | 101 | }; |
| 102 | 102 | ||
| 103 | /** | ||
| 104 | * struct gpiohandle_config - Configuration for a GPIO handle request | ||
| 105 | * @flags: updated flags for the requested GPIO lines, such as | ||
| 106 | * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed | ||
| 107 | * together | ||
| 108 | * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags, | ||
| 109 | * this specifies the default output value, should be 0 (low) or | ||
| 110 | * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high) | ||
| 111 | * @padding: reserved for future use and should be zero filled | ||
| 112 | */ | ||
| 113 | struct gpiohandle_config { | ||
| 114 | __u32 flags; | ||
| 115 | __u8 default_values[GPIOHANDLES_MAX]; | ||
| 116 | __u32 padding[4]; /* padding for future use */ | ||
| 117 | }; | ||
| 118 | |||
| 119 | #define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config) | ||
| 120 | |||
| 103 | /** | 121 | /** |
| 104 | * struct gpiohandle_data - Information of values on a GPIO handle | 122 | * struct gpiohandle_data - Information of values on a GPIO handle |
| 105 | * @values: when getting the state of lines this contains the current | 123 | * @values: when getting the state of lines this contains the current |