GPIO Device Interface Functions More...
#include <stdbool.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"Go to the source code of this file.
Data Structures | |
| struct | dif_gpio |
| A handle to gpio. More... | |
Typedefs | |
| typedef struct dif_gpio | dif_gpio_t |
| A handle to gpio. More... | |
| typedef enum dif_gpio_alert | dif_gpio_alert_t |
| A gpio alert type. | |
| typedef enum dif_gpio_irq | dif_gpio_irq_t |
| A gpio interrupt request type. | |
| typedef uint32_t | dif_gpio_irq_state_snapshot_t |
| A snapshot of the state of the interrupts for this IP. More... | |
| typedef uint32_t | dif_gpio_irq_enable_snapshot_t |
| A snapshot of the enablement state of the interrupts for this IP. More... | |
Enumerations | |
| enum | dif_gpio_alert { kDifGpioAlertFatalFault = 0 } |
| A gpio alert type. More... | |
| enum | dif_gpio_irq { kDifGpioIrqGpio0 = 0 , kDifGpioIrqGpio1 = 1 , kDifGpioIrqGpio2 = 2 , kDifGpioIrqGpio3 = 3 , kDifGpioIrqGpio4 = 4 , kDifGpioIrqGpio5 = 5 , kDifGpioIrqGpio6 = 6 , kDifGpioIrqGpio7 = 7 , kDifGpioIrqGpio8 = 8 , kDifGpioIrqGpio9 = 9 , kDifGpioIrqGpio10 = 10 , kDifGpioIrqGpio11 = 11 , kDifGpioIrqGpio12 = 12 , kDifGpioIrqGpio13 = 13 , kDifGpioIrqGpio14 = 14 , kDifGpioIrqGpio15 = 15 , kDifGpioIrqGpio16 = 16 , kDifGpioIrqGpio17 = 17 , kDifGpioIrqGpio18 = 18 , kDifGpioIrqGpio19 = 19 , kDifGpioIrqGpio20 = 20 , kDifGpioIrqGpio21 = 21 , kDifGpioIrqGpio22 = 22 , kDifGpioIrqGpio23 = 23 , kDifGpioIrqGpio24 = 24 , kDifGpioIrqGpio25 = 25 , kDifGpioIrqGpio26 = 26 , kDifGpioIrqGpio27 = 27 , kDifGpioIrqGpio28 = 28 , kDifGpioIrqGpio29 = 29 , kDifGpioIrqGpio30 = 30 , kDifGpioIrqGpio31 = 31 } |
| A gpio interrupt request type. More... | |
Functions | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_init (mmio_region_t base_addr, dif_gpio_t *gpio) |
| Creates a new handle for a(n) gpio peripheral. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_alert_force (const dif_gpio_t *gpio, dif_gpio_alert_t alert) |
| Forces a particular alert, causing it to be escalated as if the hardware had raised it. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_get_type (const dif_gpio_t *gpio, dif_gpio_irq_t irq, dif_irq_type_t *type) |
| Returns the type of a given interrupt (i.e., event or status) for this IP. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_get_state (const dif_gpio_t *gpio, dif_gpio_irq_state_snapshot_t *snapshot) |
| Returns the state of all interrupts (i.e., pending or not) for this IP. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_is_pending (const dif_gpio_t *gpio, dif_gpio_irq_t irq, bool *is_pending) |
| Returns whether a particular interrupt is currently pending. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_acknowledge_state (const dif_gpio_t *gpio, dif_gpio_irq_state_snapshot_t snapshot) |
| Acknowledges all interrupts that were pending at the time of the state snapshot. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_acknowledge_all (const dif_gpio_t *gpio) |
| Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_acknowledge (const dif_gpio_t *gpio, dif_gpio_irq_t irq) |
| Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_force (const dif_gpio_t *gpio, dif_gpio_irq_t irq, const bool val) |
| Forces a particular interrupt, causing it to be serviced as if hardware had asserted it. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_get_enabled (const dif_gpio_t *gpio, dif_gpio_irq_t irq, dif_toggle_t *state) |
| Checks whether a particular interrupt is currently enabled or disabled. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_set_enabled (const dif_gpio_t *gpio, dif_gpio_irq_t irq, dif_toggle_t state) |
| Sets whether a particular interrupt is currently enabled or disabled. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_disable_all (const dif_gpio_t *gpio, dif_gpio_irq_enable_snapshot_t *snapshot) |
| Disables all interrupts, optionally snapshotting all enable states for later restoration. More... | |
| OT_WARN_UNUSED_RESULT dif_result_t | dif_gpio_irq_restore_all (const dif_gpio_t *gpio, const dif_gpio_irq_enable_snapshot_t *snapshot) |
| Restores interrupts from the given (enable) snapshot. More... | |
GPIO Device Interface Functions
Definition in file dif_gpio_autogen.h.
| struct dif_gpio |
A handle to gpio.
This type should be treated as opaque by users.
Definition at line 32 of file dif_gpio_autogen.h.
| Data Fields | ||
|---|---|---|
| mmio_region_t | base_addr | The base address for the gpio hardware registers. |
| typedef uint32_t dif_gpio_irq_enable_snapshot_t |
A snapshot of the enablement state of the interrupts for this IP.
This is an opaque type, to be used with the dif_gpio_irq_disable_all() and dif_gpio_irq_restore_all() functions.
Definition at line 212 of file dif_gpio_autogen.h.
| typedef uint32_t dif_gpio_irq_state_snapshot_t |
A snapshot of the state of the interrupts for this IP.
This is an opaque type, to be used with the dif_gpio_irq_get_state() and dif_gpio_irq_acknowledge_state() functions.
Definition at line 121 of file dif_gpio_autogen.h.
| typedef struct dif_gpio dif_gpio_t |
A handle to gpio.
This type should be treated as opaque by users.
| enum dif_gpio_alert |
A gpio alert type.
| Enumerator | |
|---|---|
| kDifGpioAlertFatalFault | This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected. |
Definition at line 54 of file dif_gpio_autogen.h.
| enum dif_gpio_irq |
A gpio interrupt request type.
| Enumerator | |
|---|---|
| kDifGpioIrqGpio0 | Raised if any of GPIO pin detects configured interrupt mode. |
Definition at line 77 of file dif_gpio_autogen.h.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_alert_force | ( | const dif_gpio_t * | gpio, |
| dif_gpio_alert_t | alert | ||
| ) |
Forces a particular alert, causing it to be escalated as if the hardware had raised it.
| gpio | A gpio handle. |
| alert | The alert to force. |
Definition at line 27 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_init | ( | mmio_region_t | base_addr, |
| dif_gpio_t * | gpio | ||
| ) |
Creates a new handle for a(n) gpio peripheral.
This function does not actuate the hardware.
| base_addr | The MMIO base address of the gpio peripheral. | |
| [out] | gpio | Out param for the initialized handle. |
Definition at line 17 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_acknowledge | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq | ||
| ) |
Acknowledges a particular interrupt, indicating to the hardware that it has been successfully serviced.
| gpio | A gpio handle. |
| irq | An interrupt request. |
Definition at line 241 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_acknowledge_all | ( | const dif_gpio_t * | gpio | ) |
Acknowledges all interrupts, indicating to the hardware that all interrupts have been successfully serviced.
| gpio | A gpio handle. |
Definition at line 228 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_acknowledge_state | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_state_snapshot_t | snapshot | ||
| ) |
Acknowledges all interrupts that were pending at the time of the state snapshot.
| gpio | A gpio handle. |
| snapshot | Interrupt state snapshot. |
Definition at line 195 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_disable_all | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_enable_snapshot_t * | snapshot | ||
| ) |
Disables all interrupts, optionally snapshotting all enable states for later restoration.
| gpio | A gpio handle. | |
| [out] | snapshot | Out-param for the snapshot; may be NULL. |
Definition at line 324 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_force | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq, | ||
| const bool | val | ||
| ) |
Forces a particular interrupt, causing it to be serviced as if hardware had asserted it.
| gpio | A gpio handle. |
| irq | An interrupt request. |
| val | Value to be set. |
Definition at line 261 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_get_enabled | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq, | ||
| dif_toggle_t * | state | ||
| ) |
Checks whether a particular interrupt is currently enabled or disabled.
| gpio | A gpio handle. | |
| irq | An interrupt request. | |
| [out] | state | Out-param toggle state of the interrupt. |
Definition at line 280 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_get_state | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_state_snapshot_t * | snapshot | ||
| ) |
Returns the state of all interrupts (i.e., pending or not) for this IP.
| gpio | A gpio handle. | |
| [out] | snapshot | Out-param for interrupt state snapshot. |
Definition at line 182 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_get_type | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq, | ||
| dif_irq_type_t * | type | ||
| ) |
Returns the type of a given interrupt (i.e., event or status) for this IP.
| gpio | A gpio handle. | |
| irq | An interrupt request. | |
| [out] | type | Out-param for the interrupt type. |
Definition at line 170 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_is_pending | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq, | ||
| bool * | is_pending | ||
| ) |
Returns whether a particular interrupt is currently pending.
| gpio | A gpio handle. | |
| irq | An interrupt request. | |
| [out] | is_pending | Out-param for whether the interrupt is pending. |
Definition at line 208 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_restore_all | ( | const dif_gpio_t * | gpio, |
| const dif_gpio_irq_enable_snapshot_t * | snapshot | ||
| ) |
Restores interrupts from the given (enable) snapshot.
| gpio | A gpio handle. |
| snapshot | A snapshot to restore from. |
Definition at line 344 of file dif_gpio_autogen.c.
| OT_WARN_UNUSED_RESULT dif_result_t dif_gpio_irq_set_enabled | ( | const dif_gpio_t * | gpio, |
| dif_gpio_irq_t | irq, | ||
| dif_toggle_t | state | ||
| ) |
Sets whether a particular interrupt is currently enabled or disabled.
| gpio | A gpio handle. |
| irq | An interrupt request. |
| state | The new toggle state for the interrupt. |
Definition at line 301 of file dif_gpio_autogen.c.