Loading...
Searching...
No Matches
gpiod.h File Reference
`#include <stdbool.h>`
`#include <stddef.h>`
`#include <stdint.h>`
Include dependency graph for gpiod.h:

Go to the source code of this file.

## Enumerations

enum | gpiod_line_value { GPIOD_LINE_VALUE_ERROR = -1 , GPIOD_LINE_VALUE_INACTIVE = 0 , GPIOD_LINE_VALUE_ACTIVE = 1 }
| Logical line state. More...
enum | gpiod_line_direction { GPIOD_LINE_DIRECTION_AS_IS = 1 , GPIOD_LINE_DIRECTION_INPUT , GPIOD_LINE_DIRECTION_OUTPUT }
| Direction settings. More...
enum | gpiod_line_edge { GPIOD_LINE_EDGE_NONE = 1 , GPIOD_LINE_EDGE_RISING , GPIOD_LINE_EDGE_FALLING , GPIOD_LINE_EDGE_BOTH }
| Edge detection settings. More...
enum | gpiod_line_bias { GPIOD_LINE_BIAS_AS_IS = 1 , GPIOD_LINE_BIAS_UNKNOWN , GPIOD_LINE_BIAS_DISABLED , GPIOD_LINE_BIAS_PULL_UP , GPIOD_LINE_BIAS_PULL_DOWN }
| Internal bias settings. More...
enum | gpiod_line_drive { GPIOD_LINE_DRIVE_PUSH_PULL = 1 , GPIOD_LINE_DRIVE_OPEN_DRAIN , GPIOD_LINE_DRIVE_OPEN_SOURCE }
| Drive settings. More...
enum | gpiod_line_clock { GPIOD_LINE_CLOCK_MONOTONIC = 1 , GPIOD_LINE_CLOCK_REALTIME , GPIOD_LINE_CLOCK_HTE }
| Clock settings. More...
enum | gpiod_info_event_type { GPIOD_INFO_EVENT_LINE_REQUESTED = 1 , GPIOD_INFO_EVENT_LINE_RELEASED , GPIOD_INFO_EVENT_LINE_CONFIG_CHANGED }
| Line status change event types. More...
enum | gpiod_edge_event_type { GPIOD_EDGE_EVENT_RISING_EDGE = 1 , GPIOD_EDGE_EVENT_FALLING_EDGE }
| Event types. More...

## Functions

struct gpiod_chip * | gpiod_chip_open (const char *path)
| Open a chip by path.
void | gpiod_chip_close (struct gpiod_chip *chip)
| Close the chip and release all associated resources.
struct gpiod_chip_info * | gpiod_chip_get_info (struct gpiod_chip *chip)
| Get information about the chip.
const char * | gpiod_chip_get_path (struct gpiod_chip *chip)
| Get the path used to open the chip.
struct gpiod_line_info * | gpiod_chip_get_line_info (struct gpiod_chip *chip, unsigned int offset)
| Get a snapshot of information about a line.
struct gpiod_line_info * | gpiod_chip_watch_line_info (struct gpiod_chip *chip, unsigned int offset)
| Get a snapshot of the status of a line and start watching it for future changes.
int | gpiod_chip_unwatch_line_info (struct gpiod_chip *chip, unsigned int offset)
| Stop watching a line for status changes.
int | gpiod_chip_get_fd (struct gpiod_chip *chip)
| Get the file descriptor associated with the chip.
int | gpiod_chip_wait_info_event (struct gpiod_chip *chip, int64_t timeout_ns)
| Wait for line status change events on any of the watched lines on the chip.
struct gpiod_info_event * | gpiod_chip_read_info_event (struct gpiod_chip *chip)
| Read a single line status change event from the chip.
int | gpiod_chip_get_line_offset_from_name (struct gpiod_chip *chip, const char *name)
| Map a line's name to its offset within the chip.
struct gpiod_line_request * | gpiod_chip_request_lines (struct gpiod_chip *chip, struct gpiod_request_config *req_cfg, struct gpiod_line_config *line_cfg)
| Request a set of lines for exclusive usage.
void | gpiod_chip_info_free (struct gpiod_chip_info *info)
| Free a chip info object and release all associated resources.
const char * | gpiod_chip_info_get_name (struct gpiod_chip_info *info)
| Get the name of the chip as represented in the kernel.
const char * | gpiod_chip_info_get_label (struct gpiod_chip_info *info)
| Get the label of the chip as represented in the kernel.
size_t | gpiod_chip_info_get_num_lines (struct gpiod_chip_info *info)
| Get the number of lines exposed by the chip.
void | gpiod_line_info_free (struct gpiod_line_info *info)
| Free a line info object and release all associated resources.
struct gpiod_line_info * | gpiod_line_info_copy (struct gpiod_line_info *info)
| Copy a line info object.
unsigned int | gpiod_line_info_get_offset (struct gpiod_line_info *info)
| Get the offset of the line.
const char * | gpiod_line_info_get_name (struct gpiod_line_info *info)
| Get the name of the line.
bool | gpiod_line_info_is_used (struct gpiod_line_info *info)
| Check if the line is in use.
const char * | gpiod_line_info_get_consumer (struct gpiod_line_info *info)
| Get the name of the consumer of the line.
enum gpiod_line_direction | gpiod_line_info_get_direction (struct gpiod_line_info *info)
| Get the direction setting of the line.
enum gpiod_line_edge | gpiod_line_info_get_edge_detection (struct gpiod_line_info *info)
| Get the edge detection setting of the line.
enum gpiod_line_bias | gpiod_line_info_get_bias (struct gpiod_line_info *info)
| Get the bias setting of the line.
enum gpiod_line_drive | gpiod_line_info_get_drive (struct gpiod_line_info *info)
| Get the drive setting of the line.
bool | gpiod_line_info_is_active_low (struct gpiod_line_info *info)
| Check if the logical value of the line is inverted compared to the physical.
bool | gpiod_line_info_is_debounced (struct gpiod_line_info *info)
| Check if the line is debounced (either by hardware or by the kernel software debouncer).
unsigned long | gpiod_line_info_get_debounce_period_us (struct gpiod_line_info *info)
| Get the debounce period of the line, in microseconds.
enum gpiod_line_clock | gpiod_line_info_get_event_clock (struct gpiod_line_info *info)
| Get the event clock setting used for edge event timestamps for the line.
void | gpiod_info_event_free (struct gpiod_info_event *event)
| Free the info event object and release all associated resources.
enum gpiod_info_event_type | gpiod_info_event_get_event_type (struct gpiod_info_event *event)
| Get the event type of the status change event.
uint64_t | gpiod_info_event_get_timestamp_ns (struct gpiod_info_event *event)
| Get the timestamp of the event.
struct gpiod_line_info * | gpiod_info_event_get_line_info (struct gpiod_info_event *event)
| Get the snapshot of line-info associated with the event.
struct gpiod_line_settings * | gpiod_line_settings_new (void)
| Create a new line settings object.
void | gpiod_line_settings_free (struct gpiod_line_settings *settings)
| Free the line settings object and release all associated resources.
void | gpiod_line_settings_reset (struct gpiod_line_settings *settings)
| Reset the line settings object to its default values.
struct gpiod_line_settings * | gpiod_line_settings_copy (struct gpiod_line_settings *settings)
| Copy the line settings object.
int | gpiod_line_settings_set_direction (struct gpiod_line_settings *settings, enum gpiod_line_direction direction)
| Set direction.
enum gpiod_line_direction | gpiod_line_settings_get_direction (struct gpiod_line_settings *settings)
| Get direction.
int | gpiod_line_settings_set_edge_detection (struct gpiod_line_settings *settings, enum gpiod_line_edge edge)
| Set edge detection.
enum gpiod_line_edge | gpiod_line_settings_get_edge_detection (struct gpiod_line_settings *settings)
| Get edge detection.
int | gpiod_line_settings_set_bias (struct gpiod_line_settings *settings, enum gpiod_line_bias bias)
| Set bias.
enum gpiod_line_bias | gpiod_line_settings_get_bias (struct gpiod_line_settings *settings)
| Get bias.
int | gpiod_line_settings_set_drive (struct gpiod_line_settings *settings, enum gpiod_line_drive drive)
| Set drive.
enum gpiod_line_drive | gpiod_line_settings_get_drive (struct gpiod_line_settings *settings)
| Get drive.
void | gpiod_line_settings_set_active_low (struct gpiod_line_settings *settings, bool active_low)
| Set active-low setting.
bool | gpiod_line_settings_get_active_low (struct gpiod_line_settings *settings)
| Get active-low setting.
void | gpiod_line_settings_set_debounce_period_us (struct gpiod_line_settings *settings, unsigned long period)
| Set debounce period.
unsigned long | gpiod_line_settings_get_debounce_period_us (struct gpiod_line_settings *settings)
| Get debounce period.
int | gpiod_line_settings_set_event_clock (struct gpiod_line_settings *settings, enum gpiod_line_clock event_clock)
| Set event clock.
enum gpiod_line_clock | gpiod_line_settings_get_event_clock (struct gpiod_line_settings *settings)
| Get event clock setting.
int | gpiod_line_settings_set_output_value (struct gpiod_line_settings *settings, enum gpiod_line_value value)
| Set the output value.
enum gpiod_line_value | gpiod_line_settings_get_output_value (struct gpiod_line_settings *settings)
| Get the output value.
struct gpiod_line_config * | gpiod_line_config_new (void)
| Create a new line config object.
void | gpiod_line_config_free (struct gpiod_line_config *config)
| Free the line config object and release all associated resources.
void | gpiod_line_config_reset (struct gpiod_line_config *config)
| Reset the line config object.
int | gpiod_line_config_add_line_settings (struct gpiod_line_config *config, const unsigned int *offsets, size_t num_offsets, struct gpiod_line_settings *settings)
| Add line settings for a set of offsets.
struct gpiod_line_settings * | gpiod_line_config_get_line_settings (struct gpiod_line_config *config, unsigned int offset)
| Get line settings for offset.
int | gpiod_line_config_set_output_values (struct gpiod_line_config *config, const enum gpiod_line_value *values, size_t num_values)
| Set output values for a number of lines.
size_t | gpiod_line_config_get_num_configured_offsets (struct gpiod_line_config *config)
| Get the number of configured line offsets.
size_t | gpiod_line_config_get_configured_offsets (struct gpiod_line_config *config, unsigned int *offsets, size_t max_offsets)
| Get configured offsets.
struct gpiod_request_config * | gpiod_request_config_new (void)
| Create a new request config object.
void | gpiod_request_config_free (struct gpiod_request_config *config)
| Free the request config object and release all associated resources.
void | gpiod_request_config_set_consumer (struct gpiod_request_config *config, const char *consumer)
| Set the consumer name for the request.
const char * | gpiod_request_config_get_consumer (struct gpiod_request_config *config)
| Get the consumer name configured in the request config.
void | gpiod_request_config_set_event_buffer_size (struct gpiod_request_config *config, size_t event_buffer_size)
| Set the size of the kernel event buffer for the request.
size_t | gpiod_request_config_get_event_buffer_size (struct gpiod_request_config *config)
| Get the edge event buffer size for the request config.
void | gpiod_line_request_release (struct gpiod_line_request *request)
| Release the requested lines and free all associated resources.
const char * | gpiod_line_request_get_chip_name (struct gpiod_line_request *request)
| Get the name of the chip this request was made on.
size_t | gpiod_line_request_get_num_requested_lines (struct gpiod_line_request *request)
| Get the number of lines in the request.
size_t | gpiod_line_request_get_requested_offsets (struct gpiod_line_request *request, unsigned int *offsets, size_t max_offsets)
| Get the offsets of the lines in the request.
enum gpiod_line_value | gpiod_line_request_get_value (struct gpiod_line_request *request, unsigned int offset)
| Get the value of a single requested line.
int | gpiod_line_request_get_values_subset (struct gpiod_line_request *request, size_t num_values, const unsigned int *offsets, enum gpiod_line_value *values)
| Get the values of a subset of requested lines.
int | gpiod_line_request_get_values (struct gpiod_line_request *request, enum gpiod_line_value *values)
| Get the values of all requested lines.
int | gpiod_line_request_set_value (struct gpiod_line_request *request, unsigned int offset, enum gpiod_line_value value)
| Set the value of a single requested line.
int | gpiod_line_request_set_values_subset (struct gpiod_line_request *request, size_t num_values, const unsigned int *offsets, const enum gpiod_line_value *values)
| Set the values of a subset of requested lines.
int | gpiod_line_request_set_values (struct gpiod_line_request *request, const enum gpiod_line_value *values)
| Set the values of all lines associated with a request.
int | gpiod_line_request_reconfigure_lines (struct gpiod_line_request *request, struct gpiod_line_config *config)
| Update the configuration of lines associated with a line request.
int | gpiod_line_request_get_fd (struct gpiod_line_request *request)
| Get the file descriptor associated with a line request.
int | gpiod_line_request_wait_edge_events (struct gpiod_line_request *request, int64_t timeout_ns)
| Wait for edge events on any of the requested lines.
int | gpiod_line_request_read_edge_events (struct gpiod_line_request *request, struct gpiod_edge_event_buffer *buffer, size_t max_events)
| Read a number of edge events from a line request.
void | gpiod_edge_event_free (struct gpiod_edge_event *event)
| Free the edge event object.
struct gpiod_edge_event * | gpiod_edge_event_copy (struct gpiod_edge_event *event)
| Copy the edge event object.
enum gpiod_edge_event_type | gpiod_edge_event_get_event_type (struct gpiod_edge_event *event)
| Get the event type.
uint64_t | gpiod_edge_event_get_timestamp_ns (struct gpiod_edge_event *event)
| Get the timestamp of the event.
unsigned int | gpiod_edge_event_get_line_offset (struct gpiod_edge_event *event)
| Get the offset of the line which triggered the event.
unsigned long | gpiod_edge_event_get_global_seqno (struct gpiod_edge_event *event)
| Get the global sequence number of the event.
unsigned long | gpiod_edge_event_get_line_seqno (struct gpiod_edge_event *event)
| Get the event sequence number specific to the line.
struct gpiod_edge_event_buffer * | gpiod_edge_event_buffer_new (size_t capacity)
| Create a new edge event buffer.
size_t | gpiod_edge_event_buffer_get_capacity (struct gpiod_edge_event_buffer *buffer)
| Get the capacity (the max number of events that can be stored) of the event buffer.
void | gpiod_edge_event_buffer_free (struct gpiod_edge_event_buffer *buffer)
| Free the edge event buffer and release all associated resources.
struct gpiod_edge_event * | gpiod_edge_event_buffer_get_event (struct gpiod_edge_event_buffer *buffer, unsigned long index)
| Get an event stored in the buffer.
size_t | gpiod_edge_event_buffer_get_num_events (struct gpiod_edge_event_buffer *buffer)
| Get the number of events a buffer has stored.
bool | gpiod_is_gpiochip_device (const char *path)
| Check if the file pointed to by path is a GPIO chip character device.
const char * | gpiod_api_version (void)
| Get the API version of the library as a human-readable string.