Expand description

libgpiod in Rust

github crate docs MIT CI

Rust crate for interfacing with Linux GPIO character devices.

It provides an interface to the Linux GPIO using the chardev module. This interface involves calling ioctl funcions which are unsafe and require some unintuitive variable mapping. The functionality provided here is highly inspired by libgpiod.

Since all functionality is dependent on Linux function calls, this crate only compiles for Linux systems.

ABI compatibility

Both v1 (>= 4.0) and v2 (>= v5.10) ABI currently supported but edge detection implemented for v2 only. Sysfs-based API (< 4.0) does not supported.

Crates

Structs

GPIO chip interface info

The error type for I/O operations of the Read, Write, Seek, and associated traits.

Signal edge detection event

Input direction

Wrapper to hide internals

The information of a specific GPIO line

Line offset to bit offset mapping

Line values with mask

GPIO line values request options

Output direction

A Duration type to represent a span of time, typically used for system timeouts.

GPIO lines values interface info

Enums

Active state condition of a line

Input bias of a GPIO line

Direction of a GPIO line

Output drive mode of a GPIO line

Signal edge or level transition of a GPIO line

Edge detection setting for GPIO line

Constants

Maximum number of bits which can be get or set per time

Maximum number of values which can be get or set per time

Traits

Something that can be used to get GPIO line values

Something that can be used to get and set GPIO line values

Direction trait

Functions

Type Definitions

Bit offset

Value bits and mask

Line offset

Raw event ro read from fd

A specialized Result type for I/O operations.

Default values representation