VSF Documented
Data Structures | Macros | Typedefs | Functions
gpio.c File Reference
#include "./gpio.h"
#include "bflb_gpio.h"
#include "hardware/gpio_reg.h"
#include "hal/driver/common/gpio/gpio_template.inc"

Data Structures

struct  vsf_hw_gpio_t
 

Macros

#define VSF_GPIO_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_GPIO_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED
 
#define VSF_GPIO_CFG_REIMPLEMENT_API_SET   ENABLED
 
#define VSF_GPIO_CFG_REIMPLEMENT_API_CLEAR   ENABLED
 
#define VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_SET   1
 
#define VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_CLEAR   1
 
#define VSF_HW_GPIO_CFG_MULTI_CLASS   VSF_GPIO_CFG_MULTI_CLASS
 
#define getreg64(a)   (*(volatile uint64_t *)(a))
 
#define putreg64(v, a)   (*(volatile uint64_t *)(a) = (v))
 
#define VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED
 
#define VSF_GPIO_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct vsf_hw_gpio_t vsf_hw_gpio_t
 

Functions

void __vsf_hw_bl61x_gpio_init (void)
 To ensure that the GPIO is working properly, it needs to be called inside vsf_driver_init()
 
void vsf_hw_gpio_port_config_pins (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_mode_t feature)
 
void vsf_hw_gpio_set_direction (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t direction_mask)
 
vsf_gpio_pin_mask_t vsf_hw_gpio_get_direction (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
 
void vsf_hw_gpio_set (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
 
void vsf_hw_gpio_clear (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
 
vsf_gpio_pin_mask_t vsf_hw_gpio_read (vsf_hw_gpio_t *hw_gpio_ptr)
 
void vsf_hw_gpio_write (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t value)
 
void vsf_hw_gpio_toggle (vsf_hw_gpio_t *hw_gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
 
vsf_gpio_capability_t vsf_hw_gpio_capability (vsf_hw_gpio_t *hw_gpio_ptr)
 

Macro Definition Documentation

◆ VSF_GPIO_CFG_IMP_PREFIX

#define VSF_GPIO_CFG_IMP_PREFIX   vsf_hw

◆ VSF_GPIO_CFG_IMP_UPCASE_PREFIX

#define VSF_GPIO_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY [1/2]

#define VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED

◆ VSF_GPIO_CFG_REIMPLEMENT_API_SET

#define VSF_GPIO_CFG_REIMPLEMENT_API_SET   ENABLED

◆ VSF_GPIO_CFG_REIMPLEMENT_API_CLEAR

#define VSF_GPIO_CFG_REIMPLEMENT_API_CLEAR   ENABLED

◆ VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_SET

#define VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_SET   1

◆ VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_CLEAR

#define VSF_GPIO_CFG_CAPABILITY_SUPPORT_OUTPUT_AND_CLEAR   1

◆ VSF_HW_GPIO_CFG_MULTI_CLASS

#define VSF_HW_GPIO_CFG_MULTI_CLASS   VSF_GPIO_CFG_MULTI_CLASS

◆ getreg64

#define getreg64 (   a)    (*(volatile uint64_t *)(a))

◆ putreg64

#define putreg64 (   v,
 
)    (*(volatile uint64_t *)(a) = (v))

◆ VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY [2/2]

#define VSF_GPIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED

◆ VSF_GPIO_CFG_IMP_LV0

#define VSF_GPIO_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
vsf_hw_gpio_t vsf_hw_gpio ## __IDX = { \
.dev_name = VSF_HW_IO_PORT ## __IDX ## _DEVNAME, \
__HAL_OP \
};
Definition gpio.c:64
const char * dev_name
Definition gpio.c:60

Typedef Documentation

◆ vsf_hw_gpio_t

typedef struct vsf_hw_gpio_t vsf_hw_gpio_t

Function Documentation

◆ __vsf_hw_bl61x_gpio_init()

void __vsf_hw_bl61x_gpio_init ( void  )

To ensure that the GPIO is working properly, it needs to be called inside vsf_driver_init()

◆ vsf_hw_gpio_port_config_pins()

void vsf_hw_gpio_port_config_pins ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask,
vsf_gpio_mode_t  feature 
)

◆ vsf_hw_gpio_set_direction()

void vsf_hw_gpio_set_direction ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask,
vsf_gpio_pin_mask_t  direction_mask 
)

◆ vsf_hw_gpio_get_direction()

vsf_gpio_pin_mask_t vsf_hw_gpio_get_direction ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask 
)

◆ vsf_hw_gpio_set()

void vsf_hw_gpio_set ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask 
)

◆ vsf_hw_gpio_clear()

void vsf_hw_gpio_clear ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask 
)

◆ vsf_hw_gpio_read()

vsf_gpio_pin_mask_t vsf_hw_gpio_read ( vsf_hw_gpio_t hw_gpio_ptr)

◆ vsf_hw_gpio_write()

void vsf_hw_gpio_write ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask,
vsf_gpio_pin_mask_t  value 
)

◆ vsf_hw_gpio_toggle()

void vsf_hw_gpio_toggle ( vsf_hw_gpio_t hw_gpio_ptr,
vsf_gpio_pin_mask_t  pin_mask 
)

◆ vsf_hw_gpio_capability()

vsf_gpio_capability_t vsf_hw_gpio_capability ( vsf_hw_gpio_t hw_gpio_ptr)