Module kernel::hil::gpio

source ·
Expand description

HIL for General Purpose Input-Output (GPIO) pins.

Structs

  • Standard implementation of InterruptWithValue: handles an gpio::Client::fired and passes it up as a gpio::ClientWithValue::fired.

Enums

  • Whether a GPIO is in the ActivationState::Active when the signal is high or low.
  • Some GPIOs can be semantically active or not. For example:
  • Enum for which state the pin is in. Some MCUs can support Input/Output pins, so this is a valid option. Function means the pin has been configured to a special function. Determining which function it outside the scope of the HIL, and should instead use a chip-specific API.
  • Enum for configuring any pull-up or pull-down resistors on the GPIO pin.
  • Enum for selecting which edge to trigger interrupts on.

Traits

  • Interface for users of synchronous GPIO interrupts. In order to receive interrupts, the user must implement this Client interface.
  • Interfaces for users of GPIO interrupts who handle many interrupts with the same function. The value passed in the callback allows the callback to distinguish which interrupt fired.
  • Control and configure a GPIO pin.
  • Configuration trait for pins that can be simultaneously input and output. Having this trait allows an implementation to statically verify this is possible.
  • The InterruptPin trait allows a pin to be used as either input or output and also to source interrupts.
  • The InterruptValuePin trait allows a pin to be used as either input or output and also to source interrupts which pass a value.
  • Interface that wraps an interrupt to pass a value when it triggers. The standard use case for this trait is when several interrupts call the same callback function and it needs to distinguish which one is calling it by giving each one a unique value.
  • The Pin trait allows a pin to be used as either input or output and to be configured.