General-purpose I/O pin control.
More...
|
| typedef void(* | ove_gpio_irq_cb) (unsigned int port, unsigned int pin, void *user_data) |
| | GPIO interrupt callback type.
|
| |
|
| int | ove_gpio_configure (unsigned int port, unsigned int pin, ove_gpio_mode_t mode) |
| | Configure the direction and drive mode of a GPIO pin.
|
| |
| int | ove_gpio_set (unsigned int port, unsigned int pin, int value) |
| | Set the output level of a GPIO pin.
|
| |
| int | ove_gpio_get (unsigned int port, unsigned int pin) |
| | Read the current logical level of a GPIO pin.
|
| |
| int | ove_gpio_irq_register (unsigned int port, unsigned int pin, ove_gpio_irq_mode_t mode, ove_gpio_irq_cb callback, void *user_data) |
| | Register an interrupt callback for a GPIO pin.
|
| |
| int | ove_gpio_irq_enable (unsigned int port, unsigned int pin) |
| | Enable a previously registered GPIO interrupt.
|
| |
| int | ove_gpio_irq_disable (unsigned int port, unsigned int pin) |
| | Disable a previously enabled GPIO interrupt without unregistering it.
|
| |
General-purpose I/O pin control.
Provides pin configuration, digital read/write, and interrupt registration for GPIO ports and pins.
- Note
- Requires
CONFIG_OVE_GPIO. When the option is disabled every function is replaced by a no-op stub that returns OVE_ERR_NOT_SUPPORTED.
◆ ove_gpio_irq_cb
| typedef void(* ove_gpio_irq_cb) (unsigned int port, unsigned int pin, void *user_data) |
GPIO interrupt callback type.
Called from interrupt context (or a deferred work item, depending on the backend) when the configured edge is detected.
- Parameters
-
| [in] | port | GPIO port index that generated the interrupt. |
| [in] | pin | GPIO pin index that generated the interrupt. |
| [in] | user_data | Opaque pointer supplied at registration time. |
◆ ove_gpio_mode_t
GPIO pin direction and drive mode.
| Enumerator |
|---|
| OVE_GPIO_MODE_INPUT | High-impedance digital input.
|
| OVE_GPIO_MODE_OUTPUT_PP | Push-pull digital output.
|
| OVE_GPIO_MODE_OUTPUT_OD | Open-drain digital output.
|
◆ ove_gpio_irq_mode_t
GPIO interrupt trigger edge selection.
| Enumerator |
|---|
| OVE_GPIO_IRQ_RISING | Trigger on rising edge only.
|
| OVE_GPIO_IRQ_FALLING | Trigger on falling edge only.
|
| OVE_GPIO_IRQ_BOTH | Trigger on both edges.
|
◆ ove_gpio_configure()
| int ove_gpio_configure |
( |
unsigned int |
port, |
|
|
unsigned int |
pin, |
|
|
ove_gpio_mode_t |
mode |
|
) |
| |
Configure the direction and drive mode of a GPIO pin.
- Parameters
-
| [in] | port | GPIO port index (0-based). |
| [in] | pin | GPIO pin index within the port (0-based). |
| [in] | mode | Desired pin mode (ove_gpio_mode_t). |
- Returns
- OVE_OK on success, negative error code on failure.
◆ ove_gpio_set()
| int ove_gpio_set |
( |
unsigned int |
port, |
|
|
unsigned int |
pin, |
|
|
int |
value |
|
) |
| |
Set the output level of a GPIO pin.
The pin must have been configured as an output (OVE_GPIO_MODE_OUTPUT_PP or OVE_GPIO_MODE_OUTPUT_OD) before calling this function.
- Parameters
-
| [in] | port | GPIO port index. |
| [in] | pin | GPIO pin index within the port. |
| [in] | value | Non-zero to drive the pin high, zero to drive it low. |
- Returns
- OVE_OK on success, negative error code on failure.
◆ ove_gpio_get()
| int ove_gpio_get |
( |
unsigned int |
port, |
|
|
unsigned int |
pin |
|
) |
| |
Read the current logical level of a GPIO pin.
- Parameters
-
| [in] | port | GPIO port index. |
| [in] | pin | GPIO pin index within the port. |
- Returns
- 1 if the pin is high, 0 if low, negative error code on failure.
◆ ove_gpio_irq_register()
Register an interrupt callback for a GPIO pin.
The interrupt is registered but not enabled; call ove_gpio_irq_enable() to arm it.
- Parameters
-
| [in] | port | GPIO port index. |
| [in] | pin | GPIO pin index within the port. |
| [in] | mode | Edge(s) that should trigger the interrupt. |
| [in] | callback | Function called when the interrupt fires. |
| [in] | user_data | Opaque pointer forwarded to callback. |
- Returns
- OVE_OK on success, negative error code on failure.
◆ ove_gpio_irq_enable()
| int ove_gpio_irq_enable |
( |
unsigned int |
port, |
|
|
unsigned int |
pin |
|
) |
| |
Enable a previously registered GPIO interrupt.
- Parameters
-
| [in] | port | GPIO port index. |
| [in] | pin | GPIO pin index within the port. |
- Returns
- OVE_OK on success, negative error code on failure.
◆ ove_gpio_irq_disable()
| int ove_gpio_irq_disable |
( |
unsigned int |
port, |
|
|
unsigned int |
pin |
|
) |
| |
Disable a previously enabled GPIO interrupt without unregistering it.
The callback and trigger edge are retained; call ove_gpio_irq_enable() to re-arm.
- Parameters
-
| [in] | port | GPIO port index. |
| [in] | pin | GPIO pin index within the port. |
- Returns
- OVE_OK on success, negative error code on failure.