RUI3 (RAK Unified Interface 3) - RAK4631
udrv_gpio.h File Reference

Provide a hardware independent GPIO driver layer for API layer to use. More...

Go to the source code of this file.

Typedefs

typedef void(* gpio_isr_func) (uint32_t irq_num)
 

Enumerations

enum  gpio_dir_t {
  GPIO_DIR_IN = 0,
  GPIO_DIR_OUT = 1
}
 
enum  gpio_pull_t {
  GPIO_PULL_DOWN = 0,
  GPIO_PULL_UP = 1,
  GPIO_PULL_NONE = 2,
  GPIO_PULL_ERROR = 3
}
 
enum  gpio_logic_t {
  GPIO_LOGIC_LOW = 0,
  GPIO_LOGIC_HIGH = 1
}
 
enum  gpio_intc_trigger_mode_t {
  GPIO_INTC_HIGH_LEVEL = 2,
  GPIO_INTC_RISING_EDGE = 3,
  GPIO_INTC_LOW_LEVEL = 4,
  GPIO_INTC_FALLING_EDGE = 5,
  GPIO_INTC_RISING_FALLING_EDGE = 6
}
 

Functions

void udrv_gpio_init (uint32_t pin, gpio_dir_t dir, gpio_pull_t pull, gpio_logic_t logic)
 Initialize a GPIO pin. More...
 
void udrv_gpio_set_dir (uint32_t pin, gpio_dir_t dir)
 Set GPIO direction. More...
 
void udrv_gpio_set_pull (uint32_t pin, gpio_pull_t pull)
 Setup GPIO input pull down or pull up or none. More...
 
void udrv_gpio_set_logic (uint32_t pin, gpio_logic_t logic)
 Setup GPIO output logic. More...
 
gpio_logic_t udrv_gpio_get_logic (uint32_t pin)
 Get GPIO logic status. More...
 
void udrv_gpio_toggle_logic (uint32_t pin)
 Toggle GPIO output logic. More...
 
void udrv_gpio_intc_trigger_mode (uint32_t pin, gpio_intc_trigger_mode_t mode)
 Setting gpio interrupt trigger mode. More...
 
int32_t udrv_gpio_register_isr (uint32_t pin, gpio_isr_func handler)
 Setting an interrupt handler that interrupt occurs. More...
 
void udrv_gpio_intc_clear (uint32_t pin)
 clear the interrupt trigger. More...
 
void udrv_gpio_set_wakeup_enable (uint32_t pin)
 Enable GPIO wake up pmu. More...
 
void udrv_gpio_set_wakeup_disable (uint32_t pin)
 Disable GPIO wake up pmu. More...
 
void udrv_gpio_set_wakeup_disable_all (void)
 Disable all GPIO wake up pmu. More...
 
void udrv_gpio_set_wakeup_mode (gpio_intc_trigger_mode_t mode)
 Set the wakeup trigger mode. More...
 
void udrv_gpio_suspend ()
 Suspend GPIO hardware before entering sleep mode. More...
 
void udrv_gpio_resume ()
 Resume GPIO hardware after leaving sleep mode. More...
 
void udrv_gpio_handler_handler (void *pdata)
 

Detailed Description

Provide a hardware independent GPIO driver layer for API layer to use.

Author
Rakwireless
Version
0.0.0
Date
2021.2

Typedef Documentation

◆ gpio_isr_func

typedef void(* gpio_isr_func) (uint32_t irq_num)

Enumeration Type Documentation

◆ gpio_dir_t

enum gpio_dir_t
Enumerator
GPIO_DIR_IN 

GPIO direction INPUT

GPIO_DIR_OUT 

GPIO direction OUTPUT

◆ gpio_pull_t

Enumerator
GPIO_PULL_DOWN 

GPIO Pull Down

GPIO_PULL_UP 

GPIO Pull Up

GPIO_PULL_NONE 
GPIO_PULL_ERROR 

◆ gpio_logic_t

Enumerator
GPIO_LOGIC_LOW 

GPIO logic state LOW

GPIO_LOGIC_HIGH 

GPIO logic state HIGH

◆ gpio_intc_trigger_mode_t

Enumerator
GPIO_INTC_HIGH_LEVEL 
GPIO_INTC_RISING_EDGE 
GPIO_INTC_LOW_LEVEL 
GPIO_INTC_FALLING_EDGE 
GPIO_INTC_RISING_FALLING_EDGE 

Function Documentation

◆ udrv_gpio_init()

void udrv_gpio_init ( uint32_t  pin,
gpio_dir_t  dir,
gpio_pull_t  pull,
gpio_logic_t  logic 
)

Initialize a GPIO pin.

Parameters
pinGPIO pin number.
dirThe GPIO direction(in or out).
pullGPIO pull up or down.
logicGPIO logic high or low.

◆ udrv_gpio_set_dir()

void udrv_gpio_set_dir ( uint32_t  pin,
gpio_dir_t  dir 
)

Set GPIO direction.

Parameters
pinGPIO pin number.
dirThe GPIO direction(in or out).

◆ udrv_gpio_set_pull()

void udrv_gpio_set_pull ( uint32_t  pin,
gpio_pull_t  pull 
)

Setup GPIO input pull down or pull up or none.

Parameters
pinGPIO pin number.
pullGPIO pull up or down.

◆ udrv_gpio_set_logic()

void udrv_gpio_set_logic ( uint32_t  pin,
gpio_logic_t  logic 
)

Setup GPIO output logic.

Parameters
pinGPIO pin number.
logicGPIO logic high or low.

◆ udrv_gpio_get_logic()

gpio_logic_t udrv_gpio_get_logic ( uint32_t  pin)

Get GPIO logic status.

Parameters
pinGPIO pin number.
Returns
0 GPIO logic state LOW. 1 GPIO logic state HIGH.

◆ udrv_gpio_toggle_logic()

void udrv_gpio_toggle_logic ( uint32_t  pin)

Toggle GPIO output logic.

Parameters
pinGPIO pin number.

◆ udrv_gpio_intc_trigger_mode()

void udrv_gpio_intc_trigger_mode ( uint32_t  pin,
gpio_intc_trigger_mode_t  mode 
)

Setting gpio interrupt trigger mode.

Parameters
pinGPIO pin number.
modegpio input interrupt trigger mode.

◆ udrv_gpio_register_isr()

int32_t udrv_gpio_register_isr ( uint32_t  pin,
gpio_isr_func  handler 
)

Setting an interrupt handler that interrupt occurs.

Parameters
pinGPIO pin number.
handlerA pointer to an interrupt handler that interrupt occurs.
Returns
-1 The operation error.
0 The operation completed successfully.

◆ udrv_gpio_intc_clear()

void udrv_gpio_intc_clear ( uint32_t  pin)

clear the interrupt trigger.

Parameters
pinGPIO pin number.

◆ udrv_gpio_set_wakeup_enable()

void udrv_gpio_set_wakeup_enable ( uint32_t  pin)

Enable GPIO wake up pmu.

Parameters
pinGPIO pin number.

◆ udrv_gpio_set_wakeup_disable()

void udrv_gpio_set_wakeup_disable ( uint32_t  pin)

Disable GPIO wake up pmu.

Parameters
pinGPIO pin number.

◆ udrv_gpio_set_wakeup_disable_all()

void udrv_gpio_set_wakeup_disable_all ( void  )

Disable all GPIO wake up pmu.

◆ udrv_gpio_set_wakeup_mode()

void udrv_gpio_set_wakeup_mode ( gpio_intc_trigger_mode_t  mode)

Set the wakeup trigger mode.

Parameters
modeInterrupt mode.

◆ udrv_gpio_suspend()

void udrv_gpio_suspend ( )

Suspend GPIO hardware before entering sleep mode.

◆ udrv_gpio_resume()

void udrv_gpio_resume ( )

Resume GPIO hardware after leaving sleep mode.

◆ udrv_gpio_handler_handler()

void udrv_gpio_handler_handler ( void *  pdata)