Bouffalo SDK  1.0
Bouffalolab Software Development Kit
GPIO
Collaboration diagram for GPIO:

Modules

 gpio pin definition
 Gpio pin definitions.
 
 gpio interrupt trigger mode definition
 
 gpio uart function definition
 
 gpio feature control cmd definition
 

Macros

#define GPIO_FUNC_SHIFT   (0) /* Bits 0-4: GPIO function */
 
#define GPIO_FUNC_MASK   (0x1f << GPIO_FUNC_SHIFT)
 
#define GPIO_MODE_SHIFT   (5) /* Bits 5-6: Port Mode */
 
#define GPIO_MODE_MASK   (3 << GPIO_MODE_SHIFT)
 
#define GPIO_INPUT   (0 << GPIO_MODE_SHIFT) /* Input Enable */
 
#define GPIO_OUTPUT   (1 << GPIO_MODE_SHIFT) /* Output Enable */
 
#define GPIO_ANALOG   (2 << GPIO_MODE_SHIFT) /* Analog Enable */
 
#define GPIO_ALTERNATE   (3 << GPIO_MODE_SHIFT) /* Alternate Enable */
 
#define GPIO_PUPD_SHIFT   (7) /* Bits 7-8: Pull-up/down */
 
#define GPIO_PUPD_MASK   (3 << GPIO_PUPD_SHIFT)
 
#define GPIO_FLOAT   (0 << GPIO_PUPD_SHIFT) /* No pull-up, pull-down */
 
#define GPIO_PULLUP   (1 << GPIO_PUPD_SHIFT) /* Pull-up */
 
#define GPIO_PULLDOWN   (2 << GPIO_PUPD_SHIFT) /* Pull-down */
 
#define GPIO_SMT_SHIFT   (9) /* Bits 9: SMT Enable */
 
#define GPIO_SMT_MASK   (1 << GPIO_SMT_SHIFT)
 
#define GPIO_SMT_DIS   (0 << GPIO_SMT_SHIFT)
 
#define GPIO_SMT_EN   (1 << GPIO_SMT_SHIFT)
 
#define GPIO_DRV_SHIFT   (10) /* Bits 10-11: Drive */
 
#define GPIO_DRV_MASK   (3 << GPIO_DRV_SHIFT)
 
#define GPIO_DRV_0   (0 << GPIO_DRV_SHIFT)
 
#define GPIO_DRV_1   (1 << GPIO_DRV_SHIFT)
 
#define GPIO_DRV_2   (2 << GPIO_DRV_SHIFT)
 
#define GPIO_DRV_3   (3 << GPIO_DRV_SHIFT)
 

Functions

void bflb_gpio_init (struct bflb_device_s *dev, uint8_t pin, uint32_t cfgset)
 Initialize gpio pin. More...
 
void bflb_gpio_deinit (struct bflb_device_s *dev, uint8_t pin)
 Deinitialize gpio pin with input float. More...
 
void bflb_gpio_set (struct bflb_device_s *dev, uint8_t pin)
 Write gpio pin with high level. More...
 
void bflb_gpio_reset (struct bflb_device_s *dev, uint8_t pin)
 Write gpio pin with low level. More...
 
bool bflb_gpio_read (struct bflb_device_s *dev, uint8_t pin)
 Read level from gpio pin. More...
 
void bflb_gpio_pin0_31_write (struct bflb_device_s *dev, uint32_t val)
 Write gpio pin 0~31. More...
 
void bflb_gpio_pin32_63_write (struct bflb_device_s *dev, uint32_t val)
 Write gpio pin 32~63. More...
 
uint32_t bflb_gpio_pin0_31_read (struct bflb_device_s *dev)
 Read level from gpio pin 0~31. More...
 
uint32_t bflb_gpio_pin32_63_read (struct bflb_device_s *dev)
 Read level from gpio pin 32~63. More...
 
void bflb_gpio_int_init (struct bflb_device_s *dev, uint8_t pin, uint8_t trig_mode)
 Config gpio pin interrupt. More...
 
void bflb_gpio_int_mask (struct bflb_device_s *dev, uint8_t pin, bool mask)
 Enable or disable gpio pin interrupt. More...
 
bool bflb_gpio_get_intstatus (struct bflb_device_s *dev, uint8_t pin)
 Get gpio pin interrupt status. More...
 
void bflb_gpio_int_clear (struct bflb_device_s *dev, uint8_t pin)
 Clear gpio pin interrupt status. More...
 
void bflb_gpio_uart_init (struct bflb_device_s *dev, uint8_t pin, uint8_t uart_func)
 Config gpio pin with uart function. More...
 
int bflb_gpio_feature_control (struct bflb_device_s *dev, int cmd, size_t arg)
 Control gpio feature. More...
 

Detailed Description

Macro Definition Documentation

◆ GPIO_ALTERNATE

#define GPIO_ALTERNATE   (3 << GPIO_MODE_SHIFT) /* Alternate Enable */

Definition at line 169 of file bflb_gpio.h.

◆ GPIO_ANALOG

#define GPIO_ANALOG   (2 << GPIO_MODE_SHIFT) /* Analog Enable */

Definition at line 168 of file bflb_gpio.h.

◆ GPIO_DRV_0

#define GPIO_DRV_0   (0 << GPIO_DRV_SHIFT)

Definition at line 184 of file bflb_gpio.h.

◆ GPIO_DRV_1

#define GPIO_DRV_1   (1 << GPIO_DRV_SHIFT)

Definition at line 185 of file bflb_gpio.h.

◆ GPIO_DRV_2

#define GPIO_DRV_2   (2 << GPIO_DRV_SHIFT)

Definition at line 186 of file bflb_gpio.h.

◆ GPIO_DRV_3

#define GPIO_DRV_3   (3 << GPIO_DRV_SHIFT)

Definition at line 187 of file bflb_gpio.h.

◆ GPIO_DRV_MASK

#define GPIO_DRV_MASK   (3 << GPIO_DRV_SHIFT)

Definition at line 183 of file bflb_gpio.h.

◆ GPIO_DRV_SHIFT

#define GPIO_DRV_SHIFT   (10) /* Bits 10-11: Drive */

Definition at line 182 of file bflb_gpio.h.

◆ GPIO_FLOAT

#define GPIO_FLOAT   (0 << GPIO_PUPD_SHIFT) /* No pull-up, pull-down */

Definition at line 173 of file bflb_gpio.h.

◆ GPIO_FUNC_MASK

#define GPIO_FUNC_MASK   (0x1f << GPIO_FUNC_SHIFT)

Definition at line 86 of file bflb_gpio.h.

◆ GPIO_FUNC_SHIFT

#define GPIO_FUNC_SHIFT   (0) /* Bits 0-4: GPIO function */

Definition at line 85 of file bflb_gpio.h.

◆ GPIO_INPUT

#define GPIO_INPUT   (0 << GPIO_MODE_SHIFT) /* Input Enable */

Definition at line 166 of file bflb_gpio.h.

◆ GPIO_MODE_MASK

#define GPIO_MODE_MASK   (3 << GPIO_MODE_SHIFT)

Definition at line 165 of file bflb_gpio.h.

◆ GPIO_MODE_SHIFT

#define GPIO_MODE_SHIFT   (5) /* Bits 5-6: Port Mode */

Definition at line 164 of file bflb_gpio.h.

◆ GPIO_OUTPUT

#define GPIO_OUTPUT   (1 << GPIO_MODE_SHIFT) /* Output Enable */

Definition at line 167 of file bflb_gpio.h.

◆ GPIO_PULLDOWN

#define GPIO_PULLDOWN   (2 << GPIO_PUPD_SHIFT) /* Pull-down */

Definition at line 175 of file bflb_gpio.h.

◆ GPIO_PULLUP

#define GPIO_PULLUP   (1 << GPIO_PUPD_SHIFT) /* Pull-up */

Definition at line 174 of file bflb_gpio.h.

◆ GPIO_PUPD_MASK

#define GPIO_PUPD_MASK   (3 << GPIO_PUPD_SHIFT)

Definition at line 172 of file bflb_gpio.h.

◆ GPIO_PUPD_SHIFT

#define GPIO_PUPD_SHIFT   (7) /* Bits 7-8: Pull-up/down */

Definition at line 171 of file bflb_gpio.h.

◆ GPIO_SMT_DIS

#define GPIO_SMT_DIS   (0 << GPIO_SMT_SHIFT)

Definition at line 179 of file bflb_gpio.h.

◆ GPIO_SMT_EN

#define GPIO_SMT_EN   (1 << GPIO_SMT_SHIFT)

Definition at line 180 of file bflb_gpio.h.

◆ GPIO_SMT_MASK

#define GPIO_SMT_MASK   (1 << GPIO_SMT_SHIFT)

Definition at line 178 of file bflb_gpio.h.

◆ GPIO_SMT_SHIFT

#define GPIO_SMT_SHIFT   (9) /* Bits 9: SMT Enable */

Definition at line 177 of file bflb_gpio.h.

Function Documentation

◆ bflb_gpio_deinit()

void bflb_gpio_deinit ( struct bflb_device_s dev,
uint8_t  pin 
)

Deinitialize gpio pin with input float.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition

◆ bflb_gpio_feature_control()

int bflb_gpio_feature_control ( struct bflb_device_s dev,
int  cmd,
size_t  arg 
)

Control gpio feature.

Parameters
[in]devdevice handle
[in]cmdfeature command, use gpio feature control cmd definition
[in]arguser data
Returns
A negated errno value on failure.

◆ bflb_gpio_get_intstatus()

bool bflb_gpio_get_intstatus ( struct bflb_device_s dev,
uint8_t  pin 
)

Get gpio pin interrupt status.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
Returns
true means yes, false means no

◆ bflb_gpio_init()

void bflb_gpio_init ( struct bflb_device_s dev,
uint8_t  pin,
uint32_t  cfgset 
)

Initialize gpio pin.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
[in]cfgsetgpio config mask

◆ bflb_gpio_int_clear()

void bflb_gpio_int_clear ( struct bflb_device_s dev,
uint8_t  pin 
)

Clear gpio pin interrupt status.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition

◆ bflb_gpio_int_init()

void bflb_gpio_int_init ( struct bflb_device_s dev,
uint8_t  pin,
uint8_t  trig_mode 
)

Config gpio pin interrupt.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
[in]trig_modemode to trigger interrupt

◆ bflb_gpio_int_mask()

void bflb_gpio_int_mask ( struct bflb_device_s dev,
uint8_t  pin,
bool  mask 
)

Enable or disable gpio pin interrupt.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
[in]masktrue means disable, false means enable

◆ bflb_gpio_pin0_31_read()

uint32_t bflb_gpio_pin0_31_read ( struct bflb_device_s dev)

Read level from gpio pin 0~31.

Parameters
[in]devdevice handle
Returns
level of gpio pin 0~31

◆ bflb_gpio_pin0_31_write()

void bflb_gpio_pin0_31_write ( struct bflb_device_s dev,
uint32_t  val 
)

Write gpio pin 0~31.

Parameters
[in]devdevice handle
[in]valgpio pin 0~31 value

◆ bflb_gpio_pin32_63_read()

uint32_t bflb_gpio_pin32_63_read ( struct bflb_device_s dev)

Read level from gpio pin 32~63.

Parameters
[in]devdevice handle
Returns
level of gpio pin32~63

◆ bflb_gpio_pin32_63_write()

void bflb_gpio_pin32_63_write ( struct bflb_device_s dev,
uint32_t  val 
)

Write gpio pin 32~63.

Parameters
[in]devdevice handle
[in]valgpio pin 32~63 value

◆ bflb_gpio_read()

bool bflb_gpio_read ( struct bflb_device_s dev,
uint8_t  pin 
)

Read level from gpio pin.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
Returns
true means high level, otherwise low level

◆ bflb_gpio_reset()

void bflb_gpio_reset ( struct bflb_device_s dev,
uint8_t  pin 
)

Write gpio pin with low level.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition

◆ bflb_gpio_set()

void bflb_gpio_set ( struct bflb_device_s dev,
uint8_t  pin 
)

Write gpio pin with high level.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition

◆ bflb_gpio_uart_init()

void bflb_gpio_uart_init ( struct bflb_device_s dev,
uint8_t  pin,
uint8_t  uart_func 
)

Config gpio pin with uart function.

Parameters
[in]devdevice handle
[in]pingpio pin, use gpio pin definition
[in]uart_funcuart function, use gpio uart function definition