bf0_hal_aon.h

Defines

AON_PMR_ACTIVE
AON_PMR_LIGHT_SLEEP
AON_PMR_DEEP_SLEEP
AON_PMR_STANDBY
HAL_HPAON_SET_WER(wer)

Set hpsys wakeup enable register.

Parameters:
  • wer – wakeup enable register value

Return values:

void

HAL_HPAON_GET_WER()

Get hpsys wakeup enable register.

Return values:

wakeup – enable register

HAL_HPAON_GET_WSR()

Get hpsys wakeup source register.

Return values:

wsr – wakeup source register value

HAL_HPAON_GET_WSR_PIN()
HPSYS_AON_WSR_PIN_FIRST_POS
HAL_HPAON_CLEAR_WSR(wsr)

Clear hpsys wakeup source register.

Parameters:
  • wsr[in]

Return values:

wsr – wakeup source register value

HAL_HPAON_GET_POWER_MODE()

Get HPSYS power mode.

Return values:

power – mode

HAL_HPAON_SET_POWER_MODE(mode)

Set HPSYS power mode.

Parameters:
  • mode – power mode

Return values:

void

HAL_HPAON_CLEAR_POWER_MODE()

Clear HPSYS power mode.

Return values:

void

HAL_HPAON_SET_HP_ACTIVE()

Set ISSR.hp_active bit.

Return values:

void

HAL_HPAON_CLEAR_HP_ACTIVE()

Clear ISSR.hp_active bit.

Return values:

void

HAL_HPAON_CANCEL_LP_ACTIVE_REQUEST()
HAL_HPAON_IS_HP2LP_REQ_ACTIVE()

Check whether HP2LP_REQ is active.

Return values:

true – active, false: inactive

HAL_HPAON_IS_LP_ACTIVE()

Check whether LP is active.

Return values:

bool, true – active, false: not active

HAL_HPAON_DISABLE_PAD()

Disable PADA in HPSYS.

Return values:

void

HAL_HPAON_DISABLE_VHP()

Disable VHP in HPSYS.

Return values:

void

HAL_HPAON_ENABLE_PAD()

Enable PADA in HPSYS.

Return values:

void

HAL_HPAON_ENABLE_VHP()

Enable VHP in HPSYS.

Return values:

void

HAL_LPAON_SET_WER(wer)

Set lpsys wakeup enable register.

Parameters:
  • wer – wakeup enable register value

Return values:

void

HAL_LPAON_GET_WER()

Get lpsys wakeup enable register.

Return values:

wakeup – enable register

HAL_LPAON_GET_WSR()

Get lpsys wakeup source register.

Return values:

wsr – wakeup source register value

HAL_LPAON_CLEAR_WSR(wsr)

Clear lpsys wakeup source register.

Parameters:
  • wsr[in]

Return values:

wsr – wakeup source register value

HAL_LPAON_SET_POWER_MODE(mode)

Set LPSYS power mode.

Parameters:
  • mode – power mode

Return values:

void

HAL_LPAON_GET_POWER_MODE()

Get LPSYS power mode.

Return values:

power – mode

HAL_LPAON_CLEAR_POWER_MODE()

Clear LPSYS power mode.

Return values:

void

HAL_LPAON_SET_LP_ACTIVE()

Set ISSR.lp_active bit.

Return values:

void

HAL_LPAON_CLEAR_LP_ACTIVE()

Clear ISSR.lp_active bit.

Return values:

void

HAL_LPAON_CANCEL_HP_ACTIVE_REQUEST()

Cancel the HP active request.

Return values:

void

HAL_LPAON_IS_HP_ACTIVE()

Check whether HP is active.

Return values:

bool, true – active, false: not active

HAL_LPAON_GET_SBCR()

Get LPSYS AON.SBCR.

Return values:

power – mode

HAL_LPAON_SET_SBCR(sbcr)

Set LPSYS AON.SBCR.

Parameters:
  • sbcr – standby mode ctrl register value

Return values:

void

HAL_LPAON_DISABLE_PAD()

Disable PADB in LPSYS.

Return values:

void

HAL_LPAON_DISABLE_VLP()

Disable VLP in LPSYS.

Return values:

void

HAL_LPAON_DISABLE_AON_PAD()
HAL_LPAON_ENABLE_PAD()

Enable PADB in LPSYS.

Return values:

void

HAL_LPAON_ENABLE_VLP()

Enable VLP in LPSYS, it’s related to analog.

Return values:

void

HAL_LPAON_ENABLE_DS_PWR_REQ()

Enable Power Supply Request for Deep Sleep.

Return values:

void

HAL_LPAON_DISABLE_DS_PWR_REQ()

Disable Power Supply Request for Deep Sleep.

Return values:

void

HAL_HPAON_READ_GTIMER()

Read GTimer value by HPSYS.

Return values:

gtimer – value

HAL_LPAON_READ_GTIMER()

Read GTimer value by LPSYS.

Return values:

gtimer – value

HAL_GTIMER_READ()
HAL_AON_GetWakePinMode(pin, mode)
HAL_AON_QueryWakeupGpioPin(wakeup_pin, gpio_pin)
HAL_GTIMER_ENABLE()
HAL_GTIMER_IS_ENABLED()
HAL_GTIMER_DISABLE()

Enums

enum AON_PinModeTypeDef

AON Pin wakeup mode, should be consistent with PMU_PinModeTypeDef

Values:

enumerator AON_PIN_MODE_HIGH

high level to trigger pin wakeup

enumerator AON_PIN_MODE_LOW

low level to trigger pin wakeup

enumerator AON_PIN_MODE_POS_EDGE

postive edge to trigger pin wakeup

enumerator AON_PIN_MODE_NEG_EDGE

negative edge to trigger pin wakeup

enumerator AON_PIN_MODE_DOUBLE_EDGE

positive or negative edge to trigger pin wakeup

Functions

HAL_StatusTypeDef HAL_HPAON_WakeCore(uint8_t core_id)

HPSYS wakeup the specified LPSYS or BLESYS.

Parameters:
  • core_id – core id, CORE_ID_LCPU or CORE_ID_BCPU

Return values:

status

HAL_StatusTypeDef HAL_HPAON_EnterLightSleep(uint32_t lscr)

Indicate HPSYS to enter light sleep mode.

Parameters:
  • lscr – light sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_HPAON_EnterDeepSleep(uint32_t dscr)

Indicate HPSYS to enter deep sleep mode.

Parameters:
  • dscr – deep sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_HPAON_EnterStandby(uint32_t sbcr)

Indicate HPSYS to enter standby mode.

Parameters:
  • sbcr – standby sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_HPAON_EnableWakeupSrc(HPAON_WakeupSrcTypeDef src, AON_PinModeTypeDef mode)

Enable HPSYS wakeup source.

Parameters:
  • src – wakeup source

  • mode – pin mode, needed when wakeup source is pin

Return values:

status

HAL_StatusTypeDef HAL_HPAON_DisableWakeupSrc(HPAON_WakeupSrcTypeDef src)

Disable specified HPSYS wakeup source.

Parameters:
  • src – wakeup source

Return values:

status

HAL_StatusTypeDef HAL_HPAON_EnablePinWakeup(pin_pad pad, AON_PinModeTypeDef mode)

Enable HPSYS pin wakeup source.

Parameters:
  • pad – pad

  • mode – pin mode

Return values:

status

HAL_StatusTypeDef HAL_HPAON_DisablePinWakeup(pin_pad pad)

Disable HPSYS pin wakeup source.

Parameters:
  • pad – pad

Return values:

status

int8_t HAL_HPAON_QueryWakeupPin(GPIO_TypeDef *gpio, uint16_t gpio_pin)

Query wakeup pin bound with corresponding gpio pin.

Parameters:
  • gpio – GPIO instance, e.g. hwp_gpio1

  • gpio_pin – gpio pin, start from 0, 0 is the first pin of the gpio instance

Return values:
  • -1 – invalid

  • 0~3 – for sf32lb55x, PA77~PA80

  • 0~17 – for sf32lb58x, PB54~PB59, PA64~PA69, PBR0~PBR5

  • 0~13 – for sf32lb56x, PB32~PB36, PA50~PA54, PBR0~PBR3

  • 0~20 – for sf32lb52x, PA24~PA44

  • 0~13 – for sf32lb57x, PA33~PA42, PA24~PA27

Returns:

wakeup pin number, its range varies with different chips

GPIO_TypeDef *HAL_HPAON_QueryWakeupGpioPin(uint8_t wakeup_pin, uint16_t *gpio_pin)

Query gpio pin bound with corresponding wakeup pin.

Parameters:
  • wakeup_pin[in] wakeup pin, range: 0~5 (Z0), 0~3 (A0)

  • gpio_pin[inout] pointer to output gpio pin

Return values:

gpio – instance, NULL: not found

HAL_StatusTypeDef HAL_HPAON_GetWakeupPinMode(uint8_t wakeup_pin, AON_PinModeTypeDef *mode)

Get wakeup pin mode.

Parameters:
  • wakeup_pin[in] wakeup pin, range: 0~5 (Z0), 0~3 (A0)

  • mode[inout] pointer to output pin mode

Return values:

status

void HAL_HPAON_Deactivate(void)

Deactivate HPSYS.

Return values:

void

void HAL_HPAON_EnableRC(void)

Enable Oscillator from HPSYS.

Return values:

void

void HAL_HPAON_DisableRC(void)

Revoke Oscillator from HPSYS.

Return values:

void

void HAL_HPAON_EnableXT48(void)

Enable XTAL48 from HPSYS.

Return values:

void

void HAL_HPAON_DisableXT48(void)

Revoke XTAL48 from HPSYS.

Return values:

void

HAL_StatusTypeDef HAL_HPAON_StartGTimer(void)

Start GTimer.

LPSYS must be awake, recommend to call this function at system intialization stage

Return values:

status

HAL_StatusTypeDef HAL_HPAON_StopGTimer(void)

Stop GTimer.

LPSYS must be awake

Return values:

status

HAL_StatusTypeDef HAL_LPAON_WakeCore(uint8_t core_id)

LPSYS wakeup the specified HPSYS or BLESYS.

Parameters:
  • core_id – core id, CORE_ID_HCPU or CORE_ID_BCPU

Return values:

status

HAL_StatusTypeDef HAL_LPAON_EnterLightSleep(uint32_t lscr)

Indicate LPSYS to enter light sleep mode.

Parameters:
  • lscr – light sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_LPAON_EnterDeepSleep(uint32_t dscr)

Indicate LSYS to enter deep sleep mode.

Parameters:
  • dscr – deep sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_LPAON_EnterStandby(uint32_t sbcr)

Indicate LPSYS to enter deep sleep mode.

Parameters:
  • sbcr – deep sleep control register value

Return values:

status

HAL_StatusTypeDef HAL_LPAON_EnableWakeupSrc(LPAON_WakeupSrcTypeDef src, AON_PinModeTypeDef mode)

Enable LPSYS wakeup source.

Parameters:
  • src – wakeup source

  • mode – pin mode, needed when wakeup source is pin

Return values:

status

HAL_StatusTypeDef HAL_LPAON_DisableWakeupSrc(LPAON_WakeupSrcTypeDef src)

Disable specified LPSYS wakeup source.

Parameters:
  • src – wakeup source

Return values:

status

int8_t HAL_LPAON_QueryWakeupPin(GPIO_TypeDef *gpio, uint16_t gpio_pin)

Query wakeup pin bound with corresponding gpio pin.

Parameters:
  • gpio – GPIO instance, e.g. hwp_gpio1

  • gpio_pin – gpio pin, start from 1

Return values:

wakeup – pin, valid range 0~5, invalid: -1

GPIO_TypeDef *HAL_LPAON_QueryWakeupGpioPin(uint8_t wakeup_pin, uint16_t *gpio_pin)

Query gpio pin bound with corresponding wakeup pin.

Parameters:
  • wakeup_pin[in] wakeup pin, range: 0~5

  • gpio_pin[inout] pointer to output gpio pin

Return values:

gpio – instance, NULL: not found

HAL_StatusTypeDef HAL_LPAON_GetWakeupPinMode(uint8_t wakeup_pin, AON_PinModeTypeDef *mode)

Get wakeup pin mode.

Parameters:
  • wakeup_pin[in] wakeup pin, range: 0~5

  • mode[inout] pointer to output pin mode

Return values:

status

void HAL_LPAON_ConfigStartAddr(uint32_t *start_addr)

Configure LCPU start address.

Return values:

void

void HAL_LPAON_Deactivate(void)

Deactivate LPSYS.

Return values:

void

void HAL_LPAON_EnableRC(void)

Enable Oscillator from LPSYS.

Return values:

void

void HAL_LPAON_DisableRC(void)

Revoke Oscillator from LPSYS.

Return values:

void

void HAL_LPAON_EnableXT48(void)

Enable XTAL48 from LPSYS.

Return values:

void

void HAL_LPAON_DisableXT48(void)

Revoke XTAL48 from LPSYS.

Return values:

void

void HAL_LPAON_Sleep(void)

The lcpu sleep function.

Force the low-power core (LCPU) to enter sleep mode when it is not activated.

HAL_StatusTypeDef HAL_GTIMER_Check(uint32_t ctx, uint32_t timeout_count)

Check GTimer timeout or not.

Parameters:
  • ctx[in] Context for GTimer, should be start GTimer read

  • timeout_count[in] Count for timeout

Return values:

HAL_OK – Not timeout HAL_TIMEOUT:Timeout

Variables

uint8_t g_hal_hpaon_lcpu_wakeup_ref_cnt

Cancel the LP active request.

Retval void:

struct AON_WakeupPinTypeDef
#include <bf0_hal_aon.h>

AON wakeup pin type

Public Members

GPIO_TypeDef *gpio

GPIO instance

uint16_t pin

pin id, starting from 0