Lines Matching +full:a +full:- +full:gpio
1 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
3 * <linux/gpio.h> - userspace ABI for the GPIO character devices
21 * Must be a multiple of 8 to ensure 32/64-bit alignment of structs.
26 * struct gpiochip_info - Information about a certain GPIO chip
27 * @name: the Linux kernel name of this GPIO chip
28 * @label: a functional name for this GPIO chip, such as a product
30 * @lines: number of GPIO lines on this chip
41 * Must be no greater than 64, as bitmaps are restricted here to 64-bits
42 * for simplicity, and a multiple of 2 to ensure 32/64-bit alignment of
48 * The maximum number of configuration attributes associated with a line
54 * enum gpio_v2_line_flag - &struct gpio_v2_line_attribute.flags values
65 * @GPIO_V2_LINE_FLAG_BIAS_PULL_UP: line has pull-up bias enabled
66 * @GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN: line has pull-down bias enabled
89 * struct gpio_v2_line_values - Values of GPIO lines
90 * @bits: a bitmap containing the value of the lines, set to 1 for active
92 * @mask: a bitmap identifying the lines to get or set, with each bit
102 * enum gpio_v2_line_attr_id - &struct gpio_v2_line_attribute.id values
115 * struct gpio_v2_line_attribute - a configurable attribute of a line
118 * @flags: if id is %GPIO_V2_LINE_ATTR_ID_FLAGS, the flags for the GPIO
123 * @values: if id is %GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES, a bitmap
141 * struct gpio_v2_line_config_attribute - a configuration attribute
144 * @mask: a bitmap identifying the lines to which the attribute applies,
154 * struct gpio_v2_line_config - Configuration for GPIO lines
155 * @flags: flags for the GPIO lines, with values from &enum
163 * lines. Any attribute should only be associated with a particular line
164 * once. If an attribute is associated with a line multiple times then the
176 * struct gpio_v2_line_request - Information about a request for GPIO lines
178 * associated GPIO chip
179 * @consumer: a desired consumer label for the selected GPIO lines such as
180 * "my-bitbanged-relay"
184 * request a single line
185 * @event_buffer_size: a suggested minimum number of line events that the
187 * enabled in the configuration. Note that this is only a suggested value
188 * and the kernel may allocate a larger buffer or cap the size of the
189 * buffer. If this field is zero then the buffer size defaults to a minimum
192 * @fd: after a successful %GPIO_V2_GET_LINE_IOCTL operation, contains
193 * a valid anonymous file descriptor representing the request
207 * struct gpio_v2_line_info - Information about a certain GPIO line
208 * @name: the name of this GPIO line, such as the output pin of the line on
209 * the chip, a rail or a pin header name on a board, as specified by the
210 * GPIO chip, may be empty (i.e. name[0] == '\0')
211 * @consumer: a functional name for the consumer of this GPIO line as set
214 * @offset: the local offset on this GPIO chip, fill this in when
217 * @flags: flags for this GPIO line, with values from &enum
235 * enum gpio_v2_line_changed_type - &struct gpio_v2_line_changed.event_type
248 * struct gpio_v2_line_info_changed - Information about a change in status
249 * of a GPIO line
252 * @event_type: the type of change with a value from &enum
260 /* Pad struct to 64-bit boundary and reserve space for future use. */
265 * enum gpio_v2_line_event_id - &struct gpio_v2_line_event.id values
266 * @GPIO_V2_LINE_EVENT_RISING_EDGE: event triggered by a rising edge
267 * @GPIO_V2_LINE_EVENT_FALLING_EDGE: event triggered by a falling edge
275 * struct gpio_v2_line_event - The actual event being pushed to userspace
287 * It does not provide the wall-clock time.
324 * struct gpioline_info - Information about a certain GPIO line
325 * @line_offset: the local offset on this GPIO device, fill this in when
328 * @name: the name of this GPIO line, such as the output pin of the line on the
329 * chip, a rail or a pin header name on a board, as specified by the gpio
331 * @consumer: a functional name for the consumer of this GPIO line as set by
356 * struct gpioline_info_changed - Information about a change in status
357 * of a GPIO line
364 * The &struct gpioline_info embedded here has 32-bit alignment on its own,
365 * but it works fine with 64-bit alignment too. With its 72 byte size, we can
367 * The 20-byte padding at the end makes sure we don't add any implicit padding
368 * at the end of the structure on 64-bit architectures.
391 * struct gpiohandle_request - Information about a GPIO handle request
393 * associated GPIO device
394 * @flags: desired flags for the desired GPIO lines, such as
399 * a batch of input or output lines, but they must all have the same
401 * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set for a requested
404 * @consumer_label: a desired consumer label for the selected GPIO line(s)
405 * such as "my-bitbanged-relay"
407 * valid fields in the above arrays, set to 1 to request a single line
408 * @fd: after a successful %GPIO_GET_LINEHANDLE_IOCTL operation, contains
409 * a valid anonymous file descriptor representing the request
424 * struct gpiohandle_config - Configuration for a GPIO handle request
425 * @flags: updated flags for the requested GPIO lines, such as
443 * struct gpiohandle_data - Information of values on a GPIO handle
445 * state of a line, when setting the state of lines these should contain
462 * struct gpioevent_request - Information about a GPIO event request
464 * offset index for the associated GPIO device
465 * @handleflags: desired handle flags for the desired GPIO line, such as
467 * @eventflags: desired flags for the desired GPIO event line, such as
469 * @consumer_label: a desired consumer label for the selected GPIO line(s)
470 * such as "my-listener"
471 * @fd: after a successful %GPIO_GET_LINEEVENT_IOCTL operation, contains a
486 * GPIO event types
492 * struct gpioevent_data - The actual event being pushed to userspace