Skip to content

GPIO

bflb_gpio_init(dev, pin, cfgset)

Initialize gpio pin.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN
  • cfgset:gpio config mask

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_deinit(dev, pin)

Deinitialize gpio pin with input float.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_output_value_mode_enable(dev, pin)

Set gpio pin function.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin0_31_output(dev, value)

Write gpio0-31 output value.

Parameters:

  • dev:device handle
  • value:output value for GPIO0-31

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin32_63_output(dev, value)

Write gpio32-63 output value.

Parameters:

  • dev:device handle
  • value:output value for GPIO32-63

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_set(dev, pin)

Write gpio pin with high level.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin0_31_set(dev, value)

set gpio0-31 pin with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO0-31 to set

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin32_63_set(dev, value)

set gpio32-63 pin with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO32-63 to set

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_reset(dev, pin)

Write gpio pin with low level.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin0_31_reset(dev, value)

reset gpio0-31 pin with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO0-31 to reset

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_pin32_63_reset(dev, value)

reset gpio32-63 pin with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO32-63 to reset

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_read(dev, pin)

Read level from gpio pin.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means high level, otherwise low level

bflb_gpio_pin0_31_read(dev)

Read level from gpio pin 0~31.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: level of gpio pin 0~31

bflb_gpio_pin32_63_read(dev)

Read level from gpio pin 32~63.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: level of gpio pin32~63

bflb_gpio_int_init(dev, pin, trig_mode)

Config gpio pin interrupt.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN
  • trig_mode:mode to trigger interrupt

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_int_mask(dev, pin, mask)

Enable or disable gpio pin interrupt.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_get_intstatus(dev, pin)

Get gpio pin interrupt status.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means yes, false means no

bflb_gpio_get_intstatus_pin0_31(dev)

Get gpio0-31 pin interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: bitmap of gpio0-31 interrupt status

bflb_gpio_get_intstatus_pin32_63(dev)

Get gpio32-63 pin interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: bitmap of gpio32-63 interrupt status

bflb_gpio_int_clear_pin0_31(dev, value)

clear gpio0-31 interrupt status with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO0-31 to clear

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_int_clear_pin32_63(dev, value)

clear gpio32-63 interrupt status with bitmap.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO32-63 to clear

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_int_clear(dev, value)

Clear gpio pin interrupt status.

Parameters:

  • dev:device handle
  • value:bitmap value for GPIO0-31 to clear

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_uart_init(dev, pin, uart_func)

Config gpio pin with uart function.

Parameters:

  • dev:device handle
  • pin:gpio pin, use @ref GPIO_PIN
  • uart_func:uart function, use @ref GPIO_UART_FUNC

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_gpio_feature_control(dev, cmd, arg)

Control gpio feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref GPIO_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_gpio_irq_detach(dev, cmd, arg)

Control gpio feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref GPIO_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

UART

bflb_uart_init(dev, config)

Initialize uart.

Parameters:

  • dev:device handle
  • config:pointer to save uart config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_deinit(dev)

Deinitialize uart.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_enable(dev)

Enable uart.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_disable(dev)

Disable uart.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_link_txdma(dev, enable)

Enable uart tx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_link_rxdma(dev, enable)

Enable uart rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_putchar(dev, ch)

Put one char on uart.

Parameters:

  • dev:device handle
  • ch:char

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_uart_getchar(dev)

Get char from uart.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure, otherwise received char.

bflb_uart_put(dev, ch)

Put a block of data on uart.This is a poll api.

Parameters:

  • dev:device handle
  • ch:char

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_uart_put_block(dev, data, len)

Put a block of data on uart.Block before sending done.

Parameters:

  • dev:device handle
  • data:pointer to save send data
  • len:length to send

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_uart_get(dev)

Get a block of data from uart. This is a asynchronous api.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure, otherwise received char.

bflb_uart_wait_tx_done(dev)

Wait for tx transfer done and fifo is empty.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_uart_txready(dev)

Check if there is free space in tx fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Return true if the tranmsit hardware is ready to send another byte

bflb_uart_txempty(dev)

Check if there is no data in tx fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Return true if all characters have been sent

bflb_uart_rxavailable(dev)

Check if there is data in rx fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means yes.Otherwise there is no data in rx fifo

bflb_uart_txint_mask(dev, mask)

Enable or disable uart tx fifo threhold interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_rxint_mask(dev, mask)

Enable or disable uart rx fifo threhold interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_errint_mask(dev, mask)

Enable or disable uart error interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_get_intstatus(dev)

Get uart interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status, use @ref UART_INTSTS

bflb_uart_int_clear(dev, int_clear)

Clear uart interrupt status.

Parameters:

  • dev:device handle
  • int_clear:clear value, use @ref UART_INTCLR

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_uart_feature_control(dev, cmd, arg)

Control uart feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref UART_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

SPI

bflb_spi_init(dev, config)

Initialize spi.

Parameters:

  • dev:device handle
  • config:pointer to save spi config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_deinit(dev)

Deinitialize spi.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_link_txdma(dev, enable)

Enable spi tx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_link_rxdma(dev, enable)

Enable spi rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_poll_send(dev, data)

Send and receive one data on spi.

Parameters:

  • dev:device handle
  • data:data to send

📎 Device name lookup: Supported Device Names (BL616)

Return value: receive data

bflb_spi_poll_exchange(dev, txbuffer, rxbuffer, nbytes)

Send and receive a block of data on spi.

Parameters:

  • dev:device handle
  • txbuffer:pointer to send buffer
  • rxbuffer:pointer to receive buffer
  • nbytes:bytes to send

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_spi_isbusy(dev)

Check if spi is busy.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means busy, otherwise not.

bflb_spi_txint_mask(dev, mask)

Enable or disable spi rx fifo threhold interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_rxint_mask(dev, mask)

Enable or disable spi rx fifo threhold interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_tcint_mask(dev, mask)

Enable or disable spi transfer done interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_errint_mask(dev, mask)

Enable or disable spi error interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_rtoint_mask(dev, mask)

Enable or disable spi receive timeout interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_get_intstatus(dev)

Get spi interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status, use @ref SPI_INTSTS

bflb_spi_int_clear(dev, int_clear)

Clear spi interrupt status.

Parameters:

  • dev:device handle
  • int_clear:clear value, use @ref SPI_INTCLR

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_spi_feature_control(dev, cmd, arg)

Control spi feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref SPI_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

I2C

bflb_i2c_init(dev, frequency)

Initialize i2c.

Parameters:

  • dev:device handle
  • frequency:i2c frequency, range from 305Hz to 400KHz

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_deinit(dev)

Deinitialize i2c.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_link_txdma(dev, enable)

Enable i2c tx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_link_rxdma(dev, enable)

Enable i2c rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_transfer(dev, msgs, count)

Start transferring i2c message.

Parameters:

  • dev:device handle
  • msgs:pointer to i2c message
  • count:message count

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_i2c_int_mask(dev, int_type, mask)

Enable or disable i2c interrupt.

Parameters:

  • dev:device handle
  • int_type:interrupt type ,use @ref I2C_INTEN
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_int_clear(dev, int_clear)

Clear i2c interrupt status.

Parameters:

  • dev:device handle
  • int_clear:clear value, use @ref I2C_INTCLR

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_i2c_get_intstatus(dev)

Get i2c interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status value, use @ref I2C_INTSTS

bflb_i2c_feature_control(dev, cmd, arg)

Control i2c feature.

Parameters:

  • dev:device handle
  • cmd:feature command
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

ADC

bflb_adc_init(dev, config)

Initialize adc.

Parameters:

  • dev:device handle
  • config:pointer to save adc configuration

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_update_adc_trim(dev, config)

Update adc trim.

Parameters:

  • dev:device handle
  • config:pointer to save adc configuration

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_deinit(dev)

Deinitialize adc.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_link_rxdma(dev, enable)

Enable adc rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_set_reference_channel(channel, millivolt)

Select reference channel.

Parameters:

  • channel:channel number
  • millivolt:refercence millivolt

Return value: None

bflb_adc_channel_config(dev, chan, channels)

Config adc channels to sample.

Parameters:

  • dev:device handle
  • chan:pointer to the channel configurations.
  • channels:pair number of channels

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; a negated errno value on failure

bflb_adc_start_conversion(dev)

Start adc conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_stop_conversion(dev)

Stop adc conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_get_count(dev)

Get adc number of completed conversions

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: number of completed conversions

bflb_adc_read_raw(dev)

Read adc conversion value

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: conversion value

bflb_adc_rxint_mask(dev, mask)

Enable or disable adc conversion completion interrupt. Triggerring when a channel conversion is completed.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_errint_mask(dev, mask)

Enable or disable adc error interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_get_intstatus(dev)

Get adc interrupt instatus.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt instatus value, use @ref ADC_INTSTS

bflb_adc_int_clear(dev, int_clear)

Clear adc interrupt instatus.

Parameters:

  • dev:device handle
  • int_clear:interrupt clear value, use @ref ADC_INTCLR

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_parse_result(dev, buffer, result, count)

Parse adc conversion value into millivolt and actual numerical value.

Parameters:

  • dev:device handle
  • buffer:pointer to adc original value from bflb_adc_read_raw api
  • result:pointer to save parse result
  • count:count to parse

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_tsen_init(dev, tsen_mod)

Initialize adc temperature sensor

Parameters:

  • dev:device handle
  • tsen_mod:temperature sensor mode, use @ref ADC_TSEN_MOD

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_tsen_get_temp(dev)

Get adc temperature

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: temperature

bflb_adc_vbat_enable(dev)

Enable adc vbat power.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_vbat_disable(dev)

Disable adc vbat power.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_feature_control(dev, cmd, arg)

Control adc feature.

Parameters:

  • dev:device handle
  • cmd:feature command. use @ref ADC_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

ADC v2 (Ai-M64 only)

bflb_adc_init(dev, config)

Initialize adc.

Parameters:

  • dev:device handle
  • config:pointer to save adc configuration

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; -EBUSY if another initialization is in progress

bflb_adc_deinit(dev)

Deinitialize adc.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_link_rxdma(dev, enable)

Enable adc regular rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_link_rxdma_inject(dev, enable)

Enable adc inject rx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_channel_config_internal(dev, chan, channels)

Config adc internal regular channels to sample.

Parameters:

  • dev:device handle
  • chan:pointer to the channel configurations.
  • channels:pair number of channels

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; a negated errno value on failure

bflb_adc_channel_config_external(dev, chan, channels)

Config adc external regular channels to sample.

Parameters:

  • dev:device handle
  • chan:pointer to the channel configurations.
  • channels:pair number of channels

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; a negated errno value on failure

bflb_adc_channel_config_internal_inject(dev, chan, channels)

Config adc internal inject channels to sample.

Parameters:

  • dev:device handle
  • chan:pointer to the channel configurations.
  • channels:pair number of channels

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; a negated errno value on failure

bflb_adc_channel_config_external_inject(dev, chan, channels)

Config adc external inject channels to sample.

Parameters:

  • dev:device handle
  • chan:pointer to the channel configurations.
  • channels:pair number of channels

📎 Device name lookup: Supported Device Names (BL616)

Return value: Zero on success; a negated errno value on failure

bflb_adc_start_conversion(dev)

Start adc regular channels conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_start_conversion_inject(dev)

Start adc inject channels conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_stop_conversion(dev)

Stop adc regular channels conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_stop_conversion_inject(dev)

Stop adc inject channels conversion

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_get_count(dev)

Get adc number of regular channels completed conversions

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: number of completed conversions

bflb_adc_get_count_inject(dev)

Get adc number of inject channels completed conversions

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: number of completed conversions

bflb_adc_read_raw(dev)

Read adc regular channels conversion value

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: conversion value

bflb_adc_read_raw_inject(dev)

Read adc inject channels conversion value

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: conversion value

bflb_adc_clear_fifo(dev)

Clear ADC regular channels fifo

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_clear_fifo_inject(dev)

Clear ADC inject channels fifo

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_inject_context_save(pos_chan, neg_chan, value, millivolt)

Acquire ADC inject configuration and save its context. All users sharing ADC inject conversion must acquire a context before changing inject configuration or starting a conversion. The context must be restored after the conversion data has been consumed. Every successful save call must be paired with exactly one restore call. Do not call restore when save returns an error.

Parameters:

  • pos_chan:ADC positive channel
  • neg_chan:ADC negative channel
  • value:ADC value
  • millivolt:ADC voltage result

Return value: see the SDK header

bflb_adc_inject_context_restore(pos_chan, neg_chan, value, millivolt)

Restore ADC inject configuration and release its ownership.

Parameters:

  • pos_chan:ADC positive channel
  • neg_chan:ADC negative channel
  • value:ADC value
  • millivolt:ADC voltage result

Return value: see the SDK header

bflb_adc_int_mask(dev, int_type, mask)

Enable or disable adc interrupt.

Parameters:

  • dev:device handle
  • int_type:interrupt type value, use @ref ADC_INT
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_get_int_status(dev, int_type)

Get adc interrupt status.

Parameters:

  • dev:device handle
  • int_type:interrupt type value, use @ref ADC_INT

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status value, use @ref ADC_INT

bflb_adc_int_clear(dev, int_type)

Clear adc interrupt status.

Parameters:

  • dev:device handle
  • int_type:interrupt type value, use @ref ADC_INT

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_parse_result(dev, buffer, result, count)

Parse adc conversion value into millivolt and actual numerical value.

Parameters:

  • dev:device handle
  • buffer:pointer to adc original value from bflb_adc_read_raw or bflb_adc_read_raw_inject api
  • result:pointer to save parse result
  • count:count to parse

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_tsen_raw_to_temperature(dev, rawdata_P, rawdata_N)

Calculate adc temperature from TSEN_N and TSEN_P raw words.

Parameters:

  • dev:device handle
  • rawdata_P:raw word from ADC_INTERNAL_CHANNEL_TSEN_P
  • rawdata_N:raw word from ADC_INTERNAL_CHANNEL_TSEN_N

📎 Device name lookup: Supported Device Names (BL616)

Return value: temperature

bflb_adc_vbat_enable(dev)

Enable adc vbat power.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_vbat_disable(dev)

Disable adc vbat power.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_adc_feature_control(dev, cmd, arg)

Control adc feature.

Parameters:

  • dev:device handle
  • cmd:feature command. use @ref ADC_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

Analog Comparator

bflb_acomp_init(acomp_id, config)

Initialize acomp.

Parameters:

  • acomp_id:acomp index
  • config:pointer to save acomp configuration

Return value: None

bflb_acomp_enable(acomp_id)

Enable acomp.

Parameters:

  • acomp_id:acomp index

Return value: None

bflb_acomp_disable(acomp_id)

Disable acomp.

Parameters:

  • acomp_id:acomp index

Return value: None

bflb_acomp_get_result(acomp_id)

Get acomp result.

Parameters:

  • acomp_id:acomp index

Return value: acomp result

bflb_acomp_gpio_2_chanid(pin, channel)

gpio change adc_chan_id.

Parameters:

  • pin:gpio index
  • channel:adc channel index

Return value: Zero on success; a negated errno value on failure

bflb_acomp_chanid_2_gpio(channel, pin)

adc_chan_id change gpio index.

Parameters:

  • channel:adc channel index
  • pin:gpio index

Return value: Zero on success; a negated errno value on failure

bflb_acomp_get_postive_input(acomp_id)

get ACOMP positive channel select of acomp index.

Parameters:

  • acomp_id:acomp index

Return value: ACOMP positive channel select

DAC

bflb_dac_init(dev, frequence)

Initialize dac frequence. Dac clk = 512K/clk_div, source clock must be 512K

Parameters:

  • dev:device handle
  • frequence:dac clock div, use @ref DAC_CLK_DIV

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_deinit(dev)

Deinitialize dac.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_link_txdma(dev, enable)

Enable dac tx dma.

Parameters:

  • dev:device handle
  • enable:true means enable, otherwise disable.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_set_dma_format(dev, format)

Set dac format in dma mode.

Parameters:

  • dev:device handle
  • format:format type

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_channel_enable(dev, ch)

Enable dac channel.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_channel_disable(dev, ch)

Disable dac channel.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dac_set_value(dev, ch, value)

Set dac output value

Parameters:

  • dev:device handle
  • ch:channel number
  • value:output value

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

DMA

bflb_dma_channel_init(dev, config)

Initialize dma channel.

Parameters:

  • dev:device handle
  • config:pointer to save dma channel configuration

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_deinit(dev)

Deinitialize dma channel.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_start(dev)

Start dma channel transfer.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_stop(dev)

Stop dma channel transfer.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_isbusy(dev)

Check if dma channel is in busy.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means dma channel does not transfer completely, otherwise transfers completely.

bflb_dma_channel_irq_detach(dev)

Unregister dma channel transmission completion interrupt callback.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_lli_reload(dev, lli_pool, max_lli_count, transfer, count)

Config dma channel lli.

Parameters:

  • dev:device handle
  • lli_pool:pointer to lli pool
  • max_lli_count:lli pool size
  • transfer:pointer to transfer structure
  • count:transfer count.

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure, otherwise means number of used lli.

bflb_dma_channel_lli_insert(dev, lli_pool, max_lli_count, transfer, count)

Insert dma channel lli node.

Parameters:

  • dev:device handle
  • lli_pool:pointer to lli pool
  • max_lli_count:lli pool size
  • transfer:pointer to transfer structure
  • count:transfer count.

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure, otherwise means number of used lli.

bflb_dma_channel_lli_link_head(dev, lli_pool, used_lli_count)

Enable lli continueous mode.

Parameters:

  • dev:device handle
  • lli_pool:pointer to lli pool
  • used_lli_count:number of used lli.

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_rx_cycle_dma_process(rx_dma, in_dma_isr)

Rx cycle dma process

Parameters:

  • rx_dma:rx dma handle
  • in_dma_isr:if called in dma isr

Return value: None

bflb_dma_feature_control(dev, cmd, arg)

Control dma feature.

Parameters:

  • dev:device handle
  • cmd:feature command. use @ref DMA_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_dma_channel_tcint_mask(dev, mask)

Enable or disable dma channel transmission completion interrupt.

Parameters:

  • dev:device handle
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_dma_channel_get_tcint_status(dev)

Check if dma channel transfers completely.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: true means yes, false means no.

bflb_dma_channel_tcint_clear(dev)

Clear dma channel transmission completion interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

PWM

bflb_pwm_v2_init(dev, config)

Initialize pwm.

Parameters:

  • dev:device handle
  • config:pointer to save pwm config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_deinit(dev)

Deinitialize pwm.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_start(dev)

Start pwm output.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_stop(dev)

Stop pwm output.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_set_period(dev, period)

Set pwm period to change pwm frequence. Frequcence(hz) = pwm source clock /div/period.

Parameters:

  • dev:device handle
  • period:pwm period

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_get_frequency(dev)

Get pwm frequency.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: frequency

bflb_pwm_v2_get_duty(dev, ch, delta, period)

Get pwm duty.

Parameters:

  • dev:device handle
  • ch:channel number
  • delta:pointer to save delta of threshold
  • period:pointer to save period

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_init(dev, ch, config)

Config pwm channel.

Parameters:

  • dev:device handle
  • ch:channel number
  • config:pointer to save pwm channel config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_set_threshold(dev, ch, low_threhold, high_threhold)

Set pwm dutycycle. Dutycycle(%) = (high_threhold - low_threhold)/period * 100%.

Parameters:

  • dev:device handle
  • ch:channel number
  • low_threhold:pwm low threhold
  • high_threhold:pwm high threhold

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_positive_start(dev, ch)

Start pwm positive output.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_negative_start(dev, ch)

Start pwm negative output.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_positive_stop(dev, ch)

Stop pwm positive output.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_channel_negative_stop(dev, ch)

Stop pwm negative output.

Parameters:

  • dev:device handle
  • ch:channel number

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_int_enable(dev, int_en, enable)

Enable pwm interrupt.

Parameters:

  • dev:device handle
  • int_en:interrupt type
  • enable:true means enable, otherwise disable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_get_intstatus(dev)

Get pwm interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status, use @ref PWM_INTSTS

bflb_pwm_v2_int_clear(dev, int_clear)

Clear pwm interrupt status.

Parameters:

  • dev:device handle
  • int_clear:clear value, use @ref PWM_INTCLR

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_pwm_v2_feature_control(dev, cmd, arg)

Control pwm feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref PWM_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

Hardware Timer

bflb_timer_init(dev, config)

Initialize timer.

Parameters:

  • dev:device handle
  • config:pointer to save timer config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_deinit(dev)

Deinitialize timer.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_start(dev)

Start timer.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_stop(dev)

Stop timer.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_set_preloadvalue(dev, val)

Set timer preload value.

Parameters:

  • dev:device handle
  • val:preload value

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_set_compvalue(dev, cmp_no, val)

Set compare value of corresponding compare id.

Parameters:

  • dev:device handle
  • cmp_no:compare id, use @ref TIMER_COMP_ID
  • val:compare value

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_get_compvalue(dev, cmp_no)

Get compare value of corresponding compare id.

Parameters:

  • dev:device handle
  • cmp_no:compare id, use @ref TIMER_COMP_ID

📎 Device name lookup: Supported Device Names (BL616)

Return value: uint32_t

bflb_timer_get_countervalue(dev)

Get timer counter value.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: counter value

bflb_timer_compint_mask(dev, cmp_no, mask)

Enable or disable timer interrupt of corresponding compare id.

Parameters:

  • dev:device handle
  • cmp_no:compare id, use @ref TIMER_COMP_ID
  • mask:true means disable, false means enable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_get_compint_status(dev, cmp_no)

Get timer interrupt status of corresponding compare id.

Parameters:

  • dev:device handle
  • cmp_no:compare id, use @ref TIMER_COMP_ID

📎 Device name lookup: Supported Device Names (BL616)

Return value: true mean yes, otherwise no.

bflb_timer_compint_clear(dev, cmp_no)

Clear timer interrupt status of corresponding compare id.

Parameters:

  • dev:device handle
  • cmp_no:compare id, use @ref TIMER_COMP_ID

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_feature_control(dev, cmd, arg)

Control timer feature.

Parameters:

  • dev:device handle
  • cmd:feature command, use @ref TIMER_CMD
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure.

bflb_timer_capture_init(dev, config)

Initialize the timer capture feature.

Parameters:

  • dev:device handle
  • config:pointer to the timer capture configuration structure

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_timer_capture_start(dev)

Start the timer capture process.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: 0 on success, or a negative error code on failure.

bflb_timer_capture_stop(dev)

Stop the timer capture process.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: 0 on success, or a negative error code on failure.

bflb_timer_capture_get_latch_value(dev, gpio_lat)

Get the captured latch values.

Parameters:

  • dev:device handle
  • gpio_lat:pointer to the structure where the latch values will be stored.

📎 Device name lookup: Supported Device Names (BL616)

Return value: 0 on success, or a negative error code on failure.

bflb_timer_capture_get_pulsewidth(gpio_lat)

Calculate the pulse width from the captured latch values.

Parameters:

  • gpio_lat:pointer to the structure containing the latch values.

Return value: The calculated pulse width, or 0 if the pulse width cannot be determined.

MTimer

bflb_mtimer_get_freq()

Get mtimer current frequence.

Return value: frequence

bflb_mtimer_delay_ms(time)

Mtimer delay with ms.

Parameters:

  • time:delay time

Return value: None

bflb_mtimer_delay_us(time)

Mtimer delay with us.

Parameters:

  • time:delay time

Return value: None

bflb_mtimer_get_time_us()

Get current mtimer time with us.

Return value: time with us

bflb_mtimer_get_time_ms()

Get current mtimer time with ms.

Return value: time with ms

bflb_mtimer_set_val(val)

Set the value of mtimer.

Parameters:

  • val:value of mtimer

Return value: None

Flash

bflb_flash_init()

Initialize flash.

Return value: Zero on success; a negated errno value on failure

bflb_flash_get_jedec_id()

Get flash jedec id.

Return value: uint32_t

bflb_flash_get_size()

get flash size

Return value: flash size

bflb_flash2_get_size()

get flash2 size

Return value: flash2 size

bflb_flash_get_cfg(cfg_addr, len)

Get flash config.

Parameters:

  • cfg_addr:pointer to save config
  • len:flash config size

Return value: None

bflb_flash_set_iomode(iomode)

Set flash iomode.

Parameters:

  • iomode:flash iomode, use @ref FLASH_IOMODE

Return value: None

bflb_flash_get_image_offset()

Get flash image offset.

Return value: flash image offset

bflb_flash_resource_lock(timeout_ms)

Acquire exclusive access to the flash/XIP resource. The weak default implementation returns -ENOSYS. A platform that defines CONFIG_DISABLE_FLASH_OP_IRQ_SAVE_RESTORE must override this hook. The hook, its complete call path, and all state accessed while flash XIP is unavailable must reside in RAM, PSRAM, or ROM. ISR implementations must not block. DMA users that access flash XIP must hold the same resource for the complete DMA transfer.

Parameters:

  • timeout_ms:maximum wait time in milliseconds, or

Return value: Zero on success; a negated errno value on failure

bflb_flash_resource_unlock()

Release exclusive access to the flash/XIP resource. This must be paired with a successful bflb_flash_resource_lock() call and released by an execution context permitted by the platform lock policy.

Return value: None

bflb_flash_erase(addr, len)

Erase flash with sectors.

Parameters:

  • addr:—
  • len:—

Return value: Zero on success; a negated errno value on failure

bflb_flash_write(addr, data, len)

Write data into flash.

Parameters:

  • addr:flash physical address
  • data:pointer to data buffer
  • len:length of data

Return value: Zero on success; a negated errno value on failure

bflb_flash_read(addr, data, len)

Read data from flash.

Parameters:

  • addr:flash physical address
  • data:pointer to data buffer
  • len:length of data

Return value: Zero on success; a negated errno value on failure

bflb_flash_get_unique_id(data, id_len)

read flash unique id

Parameters:

  • data:—
  • id_len:—

Return value: int

bflb_flash_set_cache(cont_read, cache_enable, cache_way_disable, flash_offset)

Config flash cache.

Parameters:

  • cont_read:enable or not continuous read mode.
  • cache_enable:enable cache or not
  • cache_way_disable:ways of cache to disable
  • flash_offset:flash image offset

Return value: Zero on success; a negated errno value on failure

bflb_flash_aes_init(config)

Initialize flash aes controller.

Parameters:

  • config:pointer to flash aes config.

Return value: None

bflb_flash_aes_enable()

Enable flash decrypt with aes.

Return value: None

bflb_flash_aes_disable()

Disable flash decrypt with aes.

Return value: None

bflb_flash_jump_encrypted_app(index, flash_addr, len)

Initialize flash jump to encrypted app.

Parameters:

  • index:region index
  • flash_addr:flash physical address.
  • len:firmware length.

Return value: None

bflb_flash_jump_app(flash_addr)

Jump to application in flash.

Parameters:

  • flash_addr:flash physical address.

Return value: None

RTC

bflb_rtc_disable(dev)

clear and disable rtc.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_rtc_set_time(dev, time)

Set rtc alarming time.

Parameters:

  • dev:device handle
  • time:alarming time, unit is (1/32768 s)

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_rtc_get_time(dev)

Get rtc current time.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: current rtc running time

bflb_rtc_set_utc_time(time)

Set current utc time.

Parameters:

  • time:tm handle

Return value: None

bflb_rtc_get_utc_time(time)

Get current utc time.

Parameters:

  • time:tm handle

Return value: None

bflb_rtc_get_utc_timestamp()

Get current utc timestamp(s).

Return value: see the SDK header

IR

bflb_ir_tx_init(dev, config)

Initialize ir tx.

Parameters:

  • dev:device handle
  • config:pointer to ir tx configure structure

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_send(dev, data, length)

Send data in NEC/RC5/customize mode.

Parameters:

  • dev:device handle
  • data:data buffer to send
  • length:length of data buffer

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_swm_send(dev, data, length)

Send data in software mode.

Parameters:

  • dev:device handle
  • data:data data buffer to send
  • length:length of data buffer

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_tx_enable(dev, enable)

Enable or disable ir tx.

Parameters:

  • dev:device handle
  • enable:enable or disable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_txint_mask(dev, int_type, mask)

Mask or unmask ir tx interrupt.

Parameters:

  • dev:device handle
  • int_type:ir tx interrupt type, use @ref IR_TX_INTEN
  • mask:mask or unmask

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_get_txint_status(dev)

Get ir tx interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Ir tx interrupt status

bflb_ir_txint_clear(dev)

Clear ir tx interrupt.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_link_txdma(dev, enable)

Enable or disable ir tx dma mode.

Parameters:

  • dev:device handle
  • enable:enable or disable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_get_txfifo_cnt(dev)

Get ir tx fifo available count.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Ir tx fifo available count

bflb_ir_txfifo_clear(dev)

Clear ir tx fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_rx_init(dev, config)

Initialize ir rx.

Parameters:

  • dev:device handle
  • config:config pointer to ir rx configure structure

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_receive(dev, data)

Receive data in NEC/RC5/customize mode.

Parameters:

  • dev:device handle
  • data:data received

📎 Device name lookup: Supported Device Names (BL616)

Return value: Bit count of data received

bflb_ir_swm_receive(dev, data, length)

Receive data in software mode.

Parameters:

  • dev:device handle
  • data:data buffer to receive
  • length:of data buffer

📎 Device name lookup: Supported Device Names (BL616)

Return value: Length of data received

bflb_ir_rx_enable(dev, enable)

Enable or disable ir rx.

Parameters:

  • dev:device handle
  • enable:enable or disable

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_get_rxfifo_cnt(dev)

Get ir rx fifo available count.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Ir rx fifo available count

bflb_ir_rxfifo_clear(dev)

Clear ir rx fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_rxint_mask(dev, int_type, mask)

Mask ir rx interrupt.

Parameters:

  • dev:device handle
  • int_type:ir rx interrupt type, use @ref IR_RX_INTEN
  • mask:mask or unmask

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_get_rxint_status(dev)

Get ir rx interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: Ir rx interrupt status

bflb_ir_rxint_clear(dev)

Clear ir rx interrupt.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_ir_feature_control(dev, cmd, arg)

Control ir feature.

Parameters:

  • dev:device handle
  • cmd:feature command
  • arg:user data

📎 Device name lookup: Supported Device Names (BL616)

Return value: A negated errno value on failure

CKS

bflb_cks_reset(dev)

Reset checksum module.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_cks_set_endian(dev, endian)

Set checksum bitorder.

Parameters:

  • dev:device handle
  • endian:cks endian, use @ref CKS_ENDIAN

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_cks_compute(dev, data, length)

Compute data with checksum.

Parameters:

  • dev:device handle
  • data:input data buffer
  • length:data length

📎 Device name lookup: Supported Device Names (BL616)

Return value: checksum value

eFuse

bflb_efuse_get_chipid(chipid)

Efuse read chipid

Parameters:

  • chipid:[8]: chip id buffer

Return value: 0 or -1

bflb_efuse_get_device_info(device_info)

Efuse read device info

Parameters:

  • device_info:: device info pointer

Return value: 0 or -1

bflb_efuse_read_mac_address(slot, mac, reload)

Efuse read optional MAC address

Parameters:

  • slot:: MAC address slot
  • mac:[6]: MAC address buffer
  • reload:: Whether reload

Return value: 0 or -1

bflb_efuse_is_mac_address_slot_empty(slot, reload)

Whether MAC address slot is empty

Parameters:

  • slot:: MAC address slot
  • reload:: whether reload to check

Return value: 0 for all slots full,1 for others

bflb_efuse_write_mac_address_opt(slot, mac, program)

Efuse write optional MAC address

Parameters:

  • slot:: MAC address slot
  • mac:[6]: MAC address buffer
  • program:: Whether program

Return value: 0 or -1

bflb_efuse_read_mac_address_opt(slot, mac, reload)

Efuse read optional MAC address

Parameters:

  • slot:: MAC address slot
  • mac:[6]: MAC address buffer
  • reload:: Whether reload

Return value: 0 or -1

bflb_efuse_get_adc_vref_trim(dev)

Efuse read adc vref trim

Parameters:

  • dev:: ADC device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: vref trim value

bflb_efuse_get_adc_offset_trim(dev)

Efuse read adc offset trim

Parameters:

  • dev:: ADC device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: offset trim value

bflb_efuse_get_adc_gain_trim(dev)

Efuse read adc gain trim

Parameters:

  • dev:: ADC device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: coe

bflb_efuse_get_adc_trim(None)

Efuse read adc trim

Parameters:

  • None:—

Return value: coe

bflb_efuse_get_adc_tsen_trim(None)

Efuse read adc tsen trim

Parameters:

  • None:—

Return value: int

bflb_efuse_read_secure_boot(sign, aes)

Efuse read secure boot

Parameters:

  • sign:: sign type
  • aes:: aes type

Return value: None

bflb_efuse_enable_aes(aes_type, xts_mode)

Efuse write secure boot AES

Parameters:

  • aes_type:: aes type
  • xts_mode:: xts type

Return value: 0 for success

bflb_efuse_rw_lock_aes_key(aes_type, xts_mode)

Efuse write AES key lock

Parameters:

  • aes_type:: aes type
  • xts_mode:: xts type

Return value: 0 for success

bflb_efuse_rw_lock_dbg_key(rd_lock, wr_lock)

Efuse write dbg key lock

Parameters:

  • rd_lock:: read lock
  • wr_lock:: write lock

Return value: 0 for success

bflb_efuse_write_lock_pk_hash(pkhash_len)

Efuse write public key hash lock

Parameters:

  • pkhash_len:: public key length

Return value: 0 for success

bflb_efuse_write_lock_usb_pid_vid(None)

Efuse write usb pid vid lock

Parameters:

  • None:—

Return value: 0 for success

SDIO

bflb_sdio2_init(dev, dnld_size_max)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_deinit(dev)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_dnld_port_push(dev, trans_desc)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_upld_port_push(dev, trans_desc)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_dnld_port_pop(dev, trans_desc)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_upld_port_pop(dev, trans_desc)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_feature_control(dev, cmd, arg)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_sdio2_irq_attach(dev, irq_event_cb, arg)

@}

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

WO

bflb_wo_pin_init(dev, pin, mode)

Initialize wo pin.

Parameters:

  • dev:device handle
  • pin:assert this pin to wo
  • mode:use @ref WO_MODE

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_init(dev, pin, mode)

Initialize wo.

Parameters:

  • dev:device handle
  • pin:assert this pin to wo
  • mode:use @ref WO_MODE

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_set_clk_div(dev, pin, mode)

Set wo clock divider. This API is only valid for BL616CL.

Parameters:

  • dev:device handle
  • pin:assert this pin to wo
  • mode:use @ref WO_MODE

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_enable(dev)

Enable wo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_disable(dev)

Disable wo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_get_fifo_available_cnt(dev)

Get the count of available space in fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: the count of available space in fifo

bflb_wo_push_fifo(dev, data, len)

Put len count of data on wo.

Parameters:

  • dev:device handle
  • data:pointer to save send data
  • len:length to send

📎 Device name lookup: Supported Device Names (BL616)

Return value: count has been sent successfully.

bflb_wo_push_fifo_force(dev, data, len)

Put len count of data on wo.

Parameters:

  • dev:device handle
  • data:pointer to save send data
  • len:length to send

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_clear_fifo(dev)

Clear wo fifo.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_enable_dma(dev)

Enable wo dma.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_disable_dma(dev)

Disable wo dma.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_get_int_status(dev)

Get wo interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: interrupt status, use @ref WO_INT

bflb_wo_int_mask(dev, int_type)

Disable or mask wo interrupt.

Parameters:

  • dev:device handle
  • int_type:mask value, use @ref WO_INT

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_int_unmask(dev, int_type)

Enable or unmask wo interrupt.

Parameters:

  • dev:device handle
  • int_type:unmask value, use @ref WO_INT

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_int_clear(dev, int_type)

Clear wo interrupt status.

Parameters:

  • dev:device handle
  • int_type:clear value, use @ref WO_INT

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_uart_init(dev, baudrate, pin)

Initialize wo uart.

Parameters:

  • dev:device handle
  • baudrate:baudrate of uart
  • pin:pin assert to uart_tx

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_uart_putchar(dev, ch)

Put one char on wo uart.

Parameters:

  • dev:device handle
  • ch:char

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wo_uart_put(dev, ch)

Put a block of data on wo uart. This is a poll api.

Parameters:

  • dev:device handle
  • ch:char

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

WDG

bflb_wdg_init(dev, config)

Initialize watchdog.

Parameters:

  • dev:device handle
  • config:pointer to save watchdog config

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wdg_start(dev)

Start watchdog.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wdg_stop(dev)

Stop watchdog.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wdg_get_countervalue(dev)

Get watchdog counter value.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: counter value

bflb_wdg_set_countervalue(dev, counter)

Set watchdog counter value.

Parameters:

  • dev:device handle
  • counter:value

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wdg_reset_countervalue(dev)

Reset watchdog counter value.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

bflb_wdg_compint_clear(dev)

Clear watchdog compare interrupt status.

Parameters:

  • dev:device handle

📎 Device name lookup: Supported Device Names (BL616)

Return value: None

L1 Cache

bflb_l1c_icache_enable()

Enable the instruction cache (I-Cache)

Return value: None

bflb_l1c_icache_disable()

Disable the instruction cache

Return value: None

bflb_l1c_icache_invalid_all()

Invalidate the whole instruction cache

Return value: None

bflb_l1c_icache_invalid_range(addr, size)

Invalidate an instruction cache address range

Parameters:

  • addr:—
  • size:—

Return value: None

bflb_l1c_dcache_enable()

Enable the data cache (D-Cache)

Return value: None

bflb_l1c_dcache_disable()

Clean-invalidate and disable the data cache

Return value: None

bflb_l1c_dcache_clean_all()

Write back the whole data cache to memory

Return value: None

bflb_l1c_dcache_invalidate_all()

Invalidate the whole data cache

Return value: None

bflb_l1c_dcache_clean_invalidate_all()

Clean and invalidate the whole data cache

Return value: None

bflb_l1c_dcache_clean_range(addr, size)

Write back a data cache address range

Parameters:

  • addr:—
  • size:—

Return value: None

bflb_l1c_dcache_invalidate_range(addr, size)

Invalidate a data cache address range

Parameters:

  • addr:—
  • size:—

Return value: None

bflb_l1c_dcache_clean_invalidate_range(addr, size)

Clean and invalidate a data cache range

Parameters:

  • addr:—
  • size:—

Return value: None

bflb_l1c_hit_count_get(addr, size)

Read the cache hit counter

Parameters:

  • addr:—
  • size:—

Return value: None

bflb_l1c_miss_count_get(addr, size)

Read the cache miss counter

Parameters:

  • addr:—
  • size:—

Return value: see the SDK header

bflb_l1c_cache_write_set(addr, size)

Set the cache write policy (write-through/write-back/write-allocate)

Parameters:

  • addr:—
  • size:—

Return value: None

Ethernet EMAC

bflb_emac_init(dev, config)

Initialize the Ethernet MAC (common entry)

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_deinit(dev)

Deinitialize the Ethernet MAC

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_queue_tx_push(dev, tx_desc)

Push data into the MAC transmit queue

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_queue_rx_push(dev, rx_desc)

Push data into the MAC receive queue

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_md_read(dev, phy_addr, reg_addr, data)

Read a PHY management (MDIO) register

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_md_write(dev, phy_addr, reg_addr, data)

Write a PHY management (MDIO) register

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_bd_ctrl_clean(dev)

Clean the Ethernet descriptor control state

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_feature_control(dev, cmd, arg)

Ethernet MAC extended control command

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

bflb_emac_irq_attach(dev, irq_event_cb, arg)

Attach the Ethernet MAC interrupt callback

📎 Device name lookup: Supported Device Names (BL616)

Return value: see the SDK header

Have questions?

For any other questions, visit the unified Q&A and discussion board: Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23