GPIO Device Interface Functions More...
#include <stddef.h>
#include <stdint.h>
#include "sw/device/lib/base/macros.h"
#include "sw/device/lib/base/mmio.h"
#include "sw/device/lib/dif/dif_base.h"
#include "sw/device/lib/dif/autogen/dif_gpio_autogen.h"
Go to the source code of this file.
Typedefs | |
typedef enum dif_gpio_irq_trigger | dif_gpio_irq_trigger_t |
A GPIO interrupt request trigger. More... | |
typedef uint32_t | dif_gpio_pin_t |
A GPIO pin index, ranging from 0 to kDifGpioNumPins - 1 . | |
typedef uint32_t | dif_gpio_state_t |
State for all 32 GPIO pins, given as bit fields. More... | |
typedef uint32_t | dif_gpio_mask_t |
A mask for selecting GPIO pins. More... | |
Enumerations | |
enum | { kDifGpioNumPins = 32 } |
enum | dif_gpio_irq_trigger { kDifGpioIrqTriggerEdgeRising, kDifGpioIrqTriggerEdgeFalling, kDifGpioIrqTriggerLevelLow, kDifGpioIrqTriggerLevelHigh, kDifGpioIrqTriggerEdgeRisingFalling, kDifGpioIrqTriggerEdgeRisingLevelLow, kDifGpioIrqTriggerEdgeFallingLevelHigh } |
A GPIO interrupt request trigger. More... | |
GPIO Device Interface Functions
Definition in file dif_gpio.h.
typedef enum dif_gpio_irq_trigger dif_gpio_irq_trigger_t |
A GPIO interrupt request trigger.
Each GPIO pin has an associated interrupt that can be independently configured to be edge and/or level sensitive. This enum defines supported configurations for these interrupts.
typedef uint32_t dif_gpio_mask_t |
A mask for selecting GPIO pins.
If the Nth bit is enabled, then the Nth pin is selected by the mask.
Definition at line 95 of file dif_gpio.h.
typedef uint32_t dif_gpio_state_t |
State for all 32 GPIO pins, given as bit fields.
The Nth bit represents the state of the Nth pin.
This type is also used as a vector of dif_toggle_t
s, to indicate toggle state across all 32 pins. A set bit corresponds to kDifGpioToggleEnabled
.
Definition at line 88 of file dif_gpio.h.
anonymous enum |
Enumerator | |
---|---|
kDifGpioNumPins | Number of pins. This constant is used to check that arguments of type |
Definition at line 26 of file dif_gpio.h.
enum dif_gpio_irq_trigger |
A GPIO interrupt request trigger.
Each GPIO pin has an associated interrupt that can be independently configured to be edge and/or level sensitive. This enum defines supported configurations for these interrupts.
Definition at line 43 of file dif_gpio.h.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_input_noise_filter_set_enabled | ( | const dif_gpio_t * | gpio, |
dif_gpio_mask_t | mask, | ||
dif_toggle_t | state | ||
) |
Enable noise filter for GPIO inputs.
When enabled, changes in the pin value will be ignored unless stable for 16 cycles.
gpio | A GPIO handle. |
mask | Mask that identifies pins to set the filter state of. |
state | The new toggle state for the filter. |
Definition at line 256 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_set_trigger | ( | const dif_gpio_t * | gpio, |
dif_gpio_mask_t | mask, | ||
dif_gpio_irq_trigger_t | trigger | ||
) |
Configures interrupt triggers for a set of pins.
This function configures interrupt triggers, i.e. rising-edge, falling-edge, level-high, and level-low, for the pins given by the mask. Note that interrupt of the pin must also be enabled to generate interrupts.
gpio | A GPIO handle. |
mask | Mask that identifies the pins whose interrupt triggers will be configured. |
trigger | New configuration of interrupt triggers. |
Definition at line 127 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_output_set_enabled | ( | const dif_gpio_t * | gpio, |
dif_gpio_pin_t | pin, | ||
dif_toggle_t | state | ||
) |
Sets output enable mode of a pin.
gpio | A GPIO handle. |
pin | A GPIO pin. |
state | Output mode of the pin. |
Definition at line 242 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_output_set_enabled_all | ( | const dif_gpio_t * | gpio, |
dif_gpio_state_t | state | ||
) |
Sets output modes of all pins.
gpio | A GPIO handle. |
state | Output modes of the pins. |
Definition at line 231 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_output_set_enabled_masked | ( | const dif_gpio_t * | gpio, |
dif_gpio_mask_t | mask, | ||
dif_gpio_state_t | state | ||
) |
Sets the output modes of the pins identified by a mask.
gpio | A GPIO handle. |
mask | Mask that identifies the pins whose output modes will be set. |
state | Output modes of the pins. |
Definition at line 249 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_read | ( | const dif_gpio_t * | gpio, |
dif_gpio_pin_t | pin, | ||
bool * | state | ||
) |
Reads from a pin.
The value returned by this function is independent of the output enable setting and includes the effects of the input noise filter and the load on the pin.
gpio | A GPIO handle. | |
pin | A GPIO pin. | |
[out] | state | Pin value. |
Definition at line 197 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_read_all | ( | const dif_gpio_t * | gpio, |
dif_gpio_state_t * | state | ||
) |
Reads from all pins.
The value returned by this function is independent of the output enable setting and includes the effects of the input noise filter and the load on the pins.
gpio | A GPIO handle. | |
[out] | state | Pin values. |
Definition at line 186 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_reset | ( | const dif_gpio_t * | gpio | ) |
Resets a GPIO device.
Resets the given GPIO device by setting its configuration registers to reset values. Disables interrupts, output, and input filter.
gpio | A GPIO handle. |
Definition at line 106 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_write | ( | const dif_gpio_t * | gpio, |
dif_gpio_pin_t | pin, | ||
bool | state | ||
) |
Writes to a pin.
The actual value on the pin depends on the output enable setting.
gpio | A GPIO handle. |
pin | A GPIO pin. |
state | Value to write. |
Definition at line 219 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_write_all | ( | const dif_gpio_t * | gpio, |
dif_gpio_state_t | state | ||
) |
Writes to all pins.
The actual values on the pins depend on the output enable setting.
gpio | A GPIO handle. |
state | Value to write. |
Definition at line 208 of file dif_gpio.c.
OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_write_masked | ( | const dif_gpio_t * | gpio, |
dif_gpio_mask_t | mask, | ||
dif_gpio_state_t | state | ||
) |
Writes to the pins identified by a mask.
The actual values on the pins depend on the output enable setting.
gpio | A GPIO handle. |
mask | Mask that identifies the pins to write to. |
state | Value to write. |
Definition at line 225 of file dif_gpio.c.