HPM SDK
HPMicro Software Development Kit
GPIO driver APIs

GPIO driver APIs. More...

Typedefs

typedef enum gpio_interrupt_trigger gpio_interrupt_trigger_t
 Interrupt trigger type. More...
 

Enumerations

enum  gpio_interrupt_trigger { gpio_interrupt_trigger_level_high = 0 , gpio_interrupt_trigger_level_low , gpio_interrupt_trigger_edge_rising , gpio_interrupt_trigger_edge_falling }
 Interrupt trigger type. More...
 

Functions

static uint8_t gpio_read_pin (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Read target pin level. More...
 
static uint32_t gpio_get_pin_output_status (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Read target pin output state. More...
 
static void gpio_toggle_pin (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Toggle pin level. More...
 
static void gpio_write_pin (GPIO_Type *ptr, uint32_t port, uint8_t pin, uint8_t high)
 Write pin level. More...
 
static void gpio_set_pin_input (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Set pin to input mode. More...
 
static void gpio_set_pin_output (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Set pin to output mode. More...
 
void gpio_set_pin_output_with_initial (GPIO_Type *ptr, uint32_t port, uint8_t pin, uint8_t initial)
 Set pin to output mode with initial value. More...
 
static bool gpio_check_pin_interrupt_flag (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Check specific pin interrupt status. More...
 
static void gpio_clear_pin_interrupt_flag (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Clear specific pin interrupt flag. More...
 
static bool gpio_check_pin_interrupt_enabled (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Check if specific pin interrupt is enabled or not. More...
 
static void gpio_enable_pin_interrupt (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Enable interrupt for specific pin. More...
 
static void gpio_disable_pin_interrupt (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Disable interrupt for specific pin. More...
 
static bool gpio_check_clear_interrupt_flag (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Check interrupt flag of specific pin and clear if it is set. More...
 
static uint32_t gpio_read_port (GPIO_Type *ptr, uint32_t port)
 Read all pins level on specific port. More...
 
static void gpio_toggle_port_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Toggle port with specific pin mask. More...
 
static void gpio_write_port (GPIO_Type *ptr, uint32_t port, uint32_t value)
 Write specific port with value. More...
 
static void gpio_set_port_low_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Set spcific port pin high according to the given mask. More...
 
static void gpio_set_port_high_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Set spcific port pin high according to the given mask. More...
 
static void gpio_enable_port_output_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Enable pins output of specific port according to the given mask. More...
 
static void gpio_disable_port_output_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Disable pins output of specific port according to the given mask. More...
 
static uint32_t gpio_get_port_interrupt_flags (GPIO_Type *ptr, uint32_t port)
 Get current interrupt flags on specific port. More...
 
static void gpio_clear_port_interrupt_flags_with_mask (GPIO_Type *ptr, uint32_t port, uint32_t mask)
 Clear interrupt flags with given mask on specific port. More...
 
static void gpio_enable_port_interrupt_with_mask (GPIO_Type *ptr, uint32_t port, uint8_t mask)
 Enable interrupts with given mask on specific port. More...
 
static void gpio_disable_port_interrupt_with_mask (GPIO_Type *ptr, uint32_t port, uint8_t mask)
 Disable interrupts with given mask on specific port. More...
 
void gpio_config_pin_interrupt (GPIO_Type *ptr, uint32_t port, uint8_t pin, gpio_interrupt_trigger_t trigger)
 Config pin interrupt. More...
 
void gpio_toggle_pin_interrupt_trigger_polarity (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Toggle pin interrupt trigger polarity. More...
 
void gpio_toggle_pin_interrupt_trigger_type (GPIO_Type *ptr, uint32_t port, uint8_t pin)
 Toggle pin interrupt trigger type. More...
 

Detailed Description

GPIO driver APIs.

Typedef Documentation

◆ gpio_interrupt_trigger_t

#include <drivers/inc/hpm_gpio_drv.h>

Interrupt trigger type.

Enumeration Type Documentation

◆ gpio_interrupt_trigger

#include <drivers/inc/hpm_gpio_drv.h>

Interrupt trigger type.

Enumerator
gpio_interrupt_trigger_level_high 
gpio_interrupt_trigger_level_low 
gpio_interrupt_trigger_edge_rising 
gpio_interrupt_trigger_edge_falling 

Function Documentation

◆ gpio_check_clear_interrupt_flag()

static bool gpio_check_clear_interrupt_flag ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Check interrupt flag of specific pin and clear if it is set.

Parameters
ptrGPIO base address
portPort index
pinPin index
Returns
true if the interrupt flag is set and cleared
false if the interrupt flag is not set

◆ gpio_check_pin_interrupt_enabled()

static bool gpio_check_pin_interrupt_enabled ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Check if specific pin interrupt is enabled or not.

Parameters
ptrGPIO base address
portPort index
pinPin index
Returns
true if interrupt is enabled

◆ gpio_check_pin_interrupt_flag()

static bool gpio_check_pin_interrupt_flag ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Check specific pin interrupt status.

Parameters
ptrGPIO base address
portPort index
pinPin index
Returns
true if interrupt flag is set

◆ gpio_clear_pin_interrupt_flag()

static void gpio_clear_pin_interrupt_flag ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Clear specific pin interrupt flag.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_clear_port_interrupt_flags_with_mask()

static void gpio_clear_port_interrupt_flags_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Clear interrupt flags with given mask on specific port.

Parameters
ptrGPIO base address
portPort index
maskMask of interrupts to be cleared

◆ gpio_config_pin_interrupt()

void gpio_config_pin_interrupt ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin,
gpio_interrupt_trigger_t  trigger 
)

#include <drivers/inc/hpm_gpio_drv.h>

Config pin interrupt.

Parameters
ptrGPIO base address
portPort index
pinPin index
triggerTrigger type

◆ gpio_disable_pin_interrupt()

static void gpio_disable_pin_interrupt ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Disable interrupt for specific pin.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_disable_port_interrupt_with_mask()

static void gpio_disable_port_interrupt_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint8_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Disable interrupts with given mask on specific port.

Parameters
ptrGPIO base address
portPort index
maskMask of interrupts to be disabled

◆ gpio_disable_port_output_with_mask()

static void gpio_disable_port_output_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Disable pins output of specific port according to the given mask.

Parameters
ptrGPIO base address
portPort index
maskMask of pins to be disabled

◆ gpio_enable_pin_interrupt()

static void gpio_enable_pin_interrupt ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Enable interrupt for specific pin.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_enable_port_interrupt_with_mask()

static void gpio_enable_port_interrupt_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint8_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Enable interrupts with given mask on specific port.

Parameters
ptrGPIO base address
portPort index
maskMask of interrupts to be enabled

◆ gpio_enable_port_output_with_mask()

static void gpio_enable_port_output_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Enable pins output of specific port according to the given mask.

Parameters
ptrGPIO base address
portPort index
maskMask of pins to be enabled

◆ gpio_get_pin_output_status()

static uint32_t gpio_get_pin_output_status ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Read target pin output state.

Parameters
ptrGPIO base address
portPort index
pinPin index
Returns
Pin output state

◆ gpio_get_port_interrupt_flags()

static uint32_t gpio_get_port_interrupt_flags ( GPIO_Type ptr,
uint32_t  port 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Get current interrupt flags on specific port.

Parameters
ptrGPIO base address
portPort index
Returns
Current interrupt flags on specific port

◆ gpio_read_pin()

static uint8_t gpio_read_pin ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Read target pin level.

Parameters
ptrGPIO base address
portPort index
pinPin index
Returns
Pin status mask

◆ gpio_read_port()

static uint32_t gpio_read_port ( GPIO_Type ptr,
uint32_t  port 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Read all pins level on specific port.

Parameters
ptrGPIO base address
portPort index
Returns
Port pin level status

◆ gpio_set_pin_input()

static void gpio_set_pin_input ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Set pin to input mode.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_set_pin_output()

static void gpio_set_pin_output ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Set pin to output mode.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_set_pin_output_with_initial()

void gpio_set_pin_output_with_initial ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin,
uint8_t  initial 
)

#include <drivers/inc/hpm_gpio_drv.h>

Set pin to output mode with initial value.

Parameters
ptrGPIO base address
portPort index
pinPin index
initialInitial value

◆ gpio_set_port_high_with_mask()

static void gpio_set_port_high_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Set spcific port pin high according to the given mask.

Parameters
ptrGPIO base address
portPort index
maskMask of pins to be set to high

◆ gpio_set_port_low_with_mask()

static void gpio_set_port_low_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Set spcific port pin high according to the given mask.

Parameters
ptrGPIO base address
portPort index
maskMask of pins to be set to low

◆ gpio_toggle_pin()

static void gpio_toggle_pin ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Toggle pin level.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_toggle_pin_interrupt_trigger_polarity()

void gpio_toggle_pin_interrupt_trigger_polarity ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)

#include <drivers/inc/hpm_gpio_drv.h>

Toggle pin interrupt trigger polarity.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_toggle_pin_interrupt_trigger_type()

void gpio_toggle_pin_interrupt_trigger_type ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin 
)

#include <drivers/inc/hpm_gpio_drv.h>

Toggle pin interrupt trigger type.

Parameters
ptrGPIO base address
portPort index
pinPin index

◆ gpio_toggle_port_with_mask()

static void gpio_toggle_port_with_mask ( GPIO_Type ptr,
uint32_t  port,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Toggle port with specific pin mask.

Parameters
ptrGPIO base address
portPort index
maskMask pins to be toggled

◆ gpio_write_pin()

static void gpio_write_pin ( GPIO_Type ptr,
uint32_t  port,
uint8_t  pin,
uint8_t  high 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Write pin level.

Parameters
ptrGPIO base address
portPort index
pinPin index
highPin level set to high when it is set to true

◆ gpio_write_port()

static void gpio_write_port ( GPIO_Type ptr,
uint32_t  port,
uint32_t  value 
)
inlinestatic

#include <drivers/inc/hpm_gpio_drv.h>

Write specific port with value.

Parameters
ptrGPIO base address
portPort index
valueValue to be written