quasar_gpio.h
This module controls GPIO related features.
- Copyright
Copyright (C) 2023 SPARK Microsystems International Inc. All rights reserved.
- License
This source code is proprietary and subject to the SPARK Microsystems Software EULA found in this package in file EULA.txt.
- Author
SPARK FW Team.
Typedefs
-
typedef enum quasar_gpio_port quasar_gpio_port_t
Quasar BSP GPIO port selection.
-
typedef enum quasar_gpio_pin quasar_gpio_pin_t
Quasar BSP GPIO pin selection.
-
typedef enum quasar_gpio_mode quasar_gpio_mode_t
Quasar BSP GPIO mode configuration selection.
-
typedef enum quasar_gpio_type quasar_gpio_type_t
Quasar BSP GPIO type configuration selection.
-
typedef enum quasar_gpio_speed quasar_gpio_speed_t
Quasar BSP GPIO speed configuration selection.
-
typedef enum quasar_gpio_pull quasar_gpio_pull_t
Quasar BSP GPIO pull up/down configuration selection.
-
typedef enum quasar_gpio_alternate_function quasar_gpio_alternate_t
Quasar BSP GPIO alternate function configuration selection.
-
typedef struct quasar_gpio_config quasar_gpio_config_t
Quasar BSP GPIO configuration.
Enums
-
enum quasar_gpio_port
Quasar BSP GPIO port selection.
Values:
-
enumerator QUASAR_GPIO_PORT_A
GPIO port A
-
enumerator QUASAR_GPIO_PORT_B
GPIO port B
-
enumerator QUASAR_GPIO_PORT_C
GPIO port C
-
enumerator QUASAR_GPIO_PORT_D
GPIO port D
-
enumerator QUASAR_GPIO_PORT_E
GPIO port E
-
enumerator QUASAR_GPIO_PORT_F
GPIO port F
-
enumerator QUASAR_GPIO_PORT_G
GPIO port G
-
enumerator QUASAR_GPIO_PORT_H
GPIO port H
-
enumerator QUASAR_GPIO_PORT_I
GPIO port I
-
enumerator QUASAR_GPIO_PORT_A
-
enum quasar_gpio_pin
Quasar BSP GPIO pin selection.
Values:
-
enumerator QUASAR_GPIO_PIN_0 = 0
GPIO pin 0
-
enumerator QUASAR_GPIO_PIN_1 = 1
GPIO pin 1
-
enumerator QUASAR_GPIO_PIN_2 = 2
GPIO pin 2
-
enumerator QUASAR_GPIO_PIN_3 = 3
GPIO pin 3
-
enumerator QUASAR_GPIO_PIN_4 = 4
GPIO pin 4
-
enumerator QUASAR_GPIO_PIN_5 = 5
GPIO pin 5
-
enumerator QUASAR_GPIO_PIN_6 = 6
GPIO pin 6
-
enumerator QUASAR_GPIO_PIN_7 = 7
GPIO pin 7
-
enumerator QUASAR_GPIO_PIN_8 = 8
GPIO pin 8
-
enumerator QUASAR_GPIO_PIN_9 = 9
GPIO pin 9
-
enumerator QUASAR_GPIO_PIN_10 = 10
GPIO pin 10
-
enumerator QUASAR_GPIO_PIN_11 = 11
GPIO pin 11
-
enumerator QUASAR_GPIO_PIN_12 = 12
GPIO pin 12
-
enumerator QUASAR_GPIO_PIN_13 = 13
GPIO pin 13
-
enumerator QUASAR_GPIO_PIN_14 = 14
GPIO pin 14
-
enumerator QUASAR_GPIO_PIN_15 = 15
GPIO pin 15
-
enumerator QUASAR_GPIO_PIN_0 = 0
-
enum quasar_gpio_mode
Quasar BSP GPIO mode configuration selection.
Values:
-
enumerator QUASAR_GPIO_MODE_INPUT = 0
GPIO mode configured as digital input.
-
enumerator QUASAR_GPIO_MODE_OUTPUT = 1
GPIO mode configured as digital output.
-
enumerator QUASAR_GPIO_MODE_ALTERNATE = 2
GPIO mode configured for alternate functions.
-
enumerator QUASAR_GPIO_MODE_ANALOG = 3
GPIO mode configured for analog operations.
-
enumerator QUASAR_GPIO_MODE_INPUT = 0
-
enum quasar_gpio_type
Quasar BSP GPIO type configuration selection.
Values:
-
enumerator QUASAR_GPIO_TYPE_NONE = 0
No GPIO type selected.
-
enumerator QUASAR_GPIO_TYPE_PP = 0
GPIO configured as push-pull type.
-
enumerator QUASAR_GPIO_TYPE_OD = 1
GPIO configured as open-drain type.
-
enumerator QUASAR_GPIO_TYPE_NONE = 0
-
enum quasar_gpio_speed
Quasar BSP GPIO speed configuration selection.
Values:
-
enumerator QUASAR_GPIO_SPEED_NONE = 0
No GPIO speed configuration selected.
-
enumerator QUASAR_GPIO_SPEED_LOW = 0
GPIO configured for low speed operation.
-
enumerator QUASAR_GPIO_SPEED_MEDIUM = 1
GPIO configured for medium speed operation.
-
enumerator QUASAR_GPIO_SPEED_HIGH = 2
GPIO configured for high speed operation.
-
enumerator QUASAR_GPIO_SPEED_VERY_HIGH = 3
GPIO configured for very high speed operation.
-
enumerator QUASAR_GPIO_SPEED_NONE = 0
-
enum quasar_gpio_pull
Quasar BSP GPIO pull up/down configuration selection.
Values:
-
enumerator QUASAR_GPIO_PULL_NONE = 0
No pull-up or pull down resistor configuration selected.
-
enumerator QUASAR_GPIO_PULL_UP = 1
GPIO configured with pull-up resistor.
-
enumerator QUASAR_GPIO_PULL_DOWN = 2
GPIO configured with pull-down resistor.
-
enumerator QUASAR_GPIO_PULL_NONE = 0
-
enum quasar_gpio_alternate_function
Quasar BSP GPIO alternate function configuration selection.
Values:
-
enumerator QUASAR_GPIO_ALTERNATE_NONE = 0
No alternate function selected.
-
enumerator QUASAR_GPIO_ALTERNATE_AF0 = 0
GPIO alternate function 0.
-
enumerator QUASAR_GPIO_ALTERNATE_AF1 = 1
GPIO alternate function 1
-
enumerator QUASAR_GPIO_ALTERNATE_AF2 = 2
GPIO alternate function 2
-
enumerator QUASAR_GPIO_ALTERNATE_AF3 = 3
GPIO alternate function 3
-
enumerator QUASAR_GPIO_ALTERNATE_AF4 = 4
GPIO alternate function 4
-
enumerator QUASAR_GPIO_ALTERNATE_AF5 = 5
GPIO alternate function 5
-
enumerator QUASAR_GPIO_ALTERNATE_AF6 = 6
GPIO alternate function 6
-
enumerator QUASAR_GPIO_ALTERNATE_AF7 = 7
GPIO alternate function 7
-
enumerator QUASAR_GPIO_ALTERNATE_AF8 = 8
GPIO alternate function 8
-
enumerator QUASAR_GPIO_ALTERNATE_AF9 = 9
GPIO alternate function 9
-
enumerator QUASAR_GPIO_ALTERNATE_AF10 = 10
GPIO alternate function 10
-
enumerator QUASAR_GPIO_ALTERNATE_AF11 = 11
GPIO alternate function 11
-
enumerator QUASAR_GPIO_ALTERNATE_AF12 = 12
GPIO alternate function 12
-
enumerator QUASAR_GPIO_ALTERNATE_AF13 = 13
GPIO alternate function 13
-
enumerator QUASAR_GPIO_ALTERNATE_AF14 = 14
GPIO alternate function 14
-
enumerator QUASAR_GPIO_ALTERNATE_AF15 = 15
GPIO alternate function 15
-
enumerator QUASAR_GPIO_ALTERNATE_NONE = 0
Functions
-
void quasar_gpio_init(quasar_gpio_config_t gpio_config)
Initialize GPIO peripheral.
- Parameters:
gpio_config – [in] Selected GPIO configuration.
-
void quasar_gpio_deinit(quasar_gpio_port_t gpio_port, quasar_gpio_pin_t gpio_pin)
Deinitialize GPIO peripheral.
- Parameters:
gpio_port – [in] The GPIO port to set.
gpio_pin – [in] Selected GPIO pin.
-
void quasar_gpio_configure_irq(quasar_gpio_port_t gpio_port, quasar_gpio_pin_t gpio_pin, quasar_irq_priority_t irq_priority)
Configure the GPIO’s global interrupt on rising edge.
Note
This function should not be used with a QUASAR_IRQ_PRIORITY_NONE.
- Parameters:
port – [in] The GPIO port to set.
gpio_pin – [in] Selected GPIO pin.
irq_priority – [in] IRQ priority.
-
void quasar_gpio_configure_rising_and_falling_edges_irq(quasar_gpio_port_t gpio_port, quasar_gpio_pin_t gpio_pin, quasar_irq_priority_t irq_priority)
Configure the GPIO’s global interrupt on both edges.
Note
This function should not be used with a QUASAR_IRQ_PRIORITY_NONE.
- Parameters:
port – [in] The GPIO port to set.
gpio_pin – [in] Selected GPIO pin.
irq_priority – [in] IRQ priority.
-
void quasar_gpio_enable_irq(quasar_gpio_pin_t gpio_pin)
Enable the GPIO’s global interrupt.
Note
This function should only be use if the GPIO has a interrupt configured.
- Parameters:
gpio_pin – [in] Selected GPIO pin.
-
void quasar_gpio_disable_irq(quasar_gpio_pin_t gpio_pin)
Disable the GPIO’s global interrupt.
Note
This function should only be use if the GPIO has a interrupt configured.
- Parameters:
gpio_pin – [in] Selected GPIO pin.
-
void quasar_gpio_set_pending(quasar_gpio_pin_t gpio_pin)
Set the specified GPIO pin’s interrupt as pending.
This function manually forces an interrupt to enter the pending state for a specified GPIO pin.
Note
This function doesn’t configure the interrupt itself; the interrupt for the specified GPIO pin should be already configured properly before calling this function.
- Parameters:
gpio_pin – [in] Selected GPIO pin.
-
void quasar_gpio_clock_enable(void)
Enable all GPIO’s peripheral clock.
-
void quasar_gpio_set(quasar_gpio_port_t port, quasar_gpio_pin_t pin)
Set GPIO output.
Note
The GPIO must have been initialized in output mode.
- Parameters:
port – [in] The GPIO port to set.
pin – [in] The GPIO pin to set.
-
void quasar_gpio_clear(quasar_gpio_port_t port, quasar_gpio_pin_t pin)
Clear GPIO output.
Note
The GPIO must have been initialized in output mode.
- Parameters:
port – [in] The GPIO port to clear.
pin – [in] The GPIO pin to clear.
-
void quasar_gpio_toggle(quasar_gpio_port_t port, quasar_gpio_pin_t pin)
Toggle GPIO output.
Note
The GPIO must have been initialized in output mode.
- Parameters:
port – [in] The GPIO port to toggle.
pin – [in] The GPIO pin to toggle.
-
bool quasar_gpio_read_state(quasar_gpio_port_t port, quasar_gpio_pin_t pin)
Read GPIO state.
Note
The GPIO must have been initialized in input mode.
- Parameters:
port – [in] The GPIO port to read.
pin – [in] The output GPIO pin to read.
- Returns:
Return true if the input value is high, false otherwise.
-
struct quasar_gpio_config
- #include <quasar_gpio.h>
Quasar BSP GPIO configuration.
Public Members
-
quasar_gpio_port_t port
GPIO port selection.
-
quasar_gpio_mode_t mode
GPIO mode selection.
-
quasar_gpio_type_t type
GPIO type selection.
-
quasar_gpio_speed_t speed
GPIO speed selection.
-
quasar_gpio_pull_t pull
GPIO pull-up/down configuration.
-
quasar_gpio_alternate_t alternate
GPIO alternate function selection.
-
quasar_gpio_port_t port