Lines Matching +full:gpio +full:- +full:line
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
55 * @GPIO_V2_LINE_FLAG_USED: line is not available for request
56 * @GPIO_V2_LINE_FLAG_ACTIVE_LOW: line active state is physical low
57 * @GPIO_V2_LINE_FLAG_INPUT: line is an input
58 * @GPIO_V2_LINE_FLAG_OUTPUT: line is an output
59 * @GPIO_V2_LINE_FLAG_EDGE_RISING: line detects rising (inactive to active)
61 * @GPIO_V2_LINE_FLAG_EDGE_FALLING: line detects falling (active to
63 * @GPIO_V2_LINE_FLAG_OPEN_DRAIN: line is an open drain output
64 * @GPIO_V2_LINE_FLAG_OPEN_SOURCE: line is an open source output
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
67 * @GPIO_V2_LINE_FLAG_BIAS_DISABLED: line has bias disabled
68 * @GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME: line events contain REALTIME timestamps
69 * @GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE: line events contain timestamps from
89 * struct gpio_v2_line_values - Values of GPIO lines
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
119 * line, with values from &enum gpio_v2_line_flag, such as
122 * gpio_v2_line_config for the associated line.
141 * struct gpio_v2_line_config_attribute - a configuration attribute
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
208 * struct gpio_v2_line_info - Information about a certain GPIO line
209 * @name: the name of this GPIO line, such as the output pin of the line on
211 * GPIO chip, may be empty (i.e. name[0] == '\0')
212 * @consumer: a functional name for the consumer of this GPIO line as set
215 * @offset: the local offset on this GPIO chip, fill this in when
216 * requesting the line information from the kernel
218 * @flags: flags for this GPIO line, with values from &enum
221 * @attrs: the configuration attributes associated with the line
236 * enum gpio_v2_line_changed_type - &struct gpio_v2_line_changed.event_type
238 * @GPIO_V2_LINE_CHANGED_REQUESTED: line has been requested
239 * @GPIO_V2_LINE_CHANGED_RELEASED: line has been released
240 * @GPIO_V2_LINE_CHANGED_CONFIG: line has been reconfigured
249 * struct gpio_v2_line_info_changed - Information about a change in status
250 * of a GPIO line
251 * @info: updated line information
261 /* Pad struct to 64-bit boundary and reserve space for future use. */
266 * enum gpio_v2_line_event_id - &struct gpio_v2_line_event.id values
276 * struct gpio_v2_line_event - The actual event being pushed to userspace
279 * @offset: the offset of the line that triggered the event
281 * all the lines in this line request
283 * events on this particular line
288 * It does not provide the wall-clock time.
311 #define GPIOLINE_FLAG_KERNEL (1UL << 0) /* Line used by the kernel */
321 * struct gpioline_info - Information about a certain GPIO line
322 * @line_offset: the local offset on this GPIO device, fill this in when
323 * requesting the line information from the kernel
324 * @flags: various flags for this line
325 * @name: the name of this GPIO line, such as the output pin of the line on the
326 * chip, a rail or a pin header name on a board, as specified by the gpio
328 * @consumer: a functional name for the consumer of this GPIO line as set by
345 /* Possible line status change events */
353 * struct gpioline_info_changed - Information about a change in status
354 * of a GPIO line
355 * @info: updated line information
361 * The &struct gpioline_info embedded here has 32-bit alignment on its own,
362 * but it works fine with 64-bit alignment too. With its 72 byte size, we can
364 * The 20-byte padding at the end makes sure we don't add any implicit padding
365 * at the end of the structure on 64-bit architectures.
388 * struct gpiohandle_request - Information about a GPIO handle request
390 * associated GPIO device
391 * @flags: desired flags for the desired GPIO lines, such as
399 * line, this specifies the default output value, should be 0 (low) or
401 * @consumer_label: a desired consumer label for the selected GPIO line(s)
402 * such as "my-bitbanged-relay"
404 * valid fields in the above arrays, set to 1 to request a single line
422 * struct gpiohandle_config - Configuration for a GPIO handle request
423 * @flags: updated flags for the requested GPIO lines, such as
441 * struct gpiohandle_data - Information of values on a GPIO handle
443 * state of a line, when setting the state of lines these should contain
459 * struct gpioevent_request - Information about a GPIO event request
460 * @lineoffset: the desired line to subscribe to events from, specified by
461 * offset index for the associated GPIO device
462 * @handleflags: desired handle flags for the desired GPIO line, such as
464 * @eventflags: desired flags for the desired GPIO event line, such as
466 * @consumer_label: a desired consumer label for the selected GPIO line(s)
467 * such as "my-listener"
484 * GPIO event types
490 * struct gpioevent_data - The actual event being pushed to userspace