bf0_hal_aon.h

Header file of RCC HAL module.

Author

Sifli software development team

Attention

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.

参数:
  • wer – wakeup enable register value

返回值:

void

HAL_HPAON_GET_WER()

Get hpsys wakeup enable register.

返回值:

wakeup – enable register

HAL_HPAON_GET_WSR()

Get hpsys wakeup source register.

返回值:

wsr – wakeup source register value

HAL_HPAON_CLEAR_WSR(wsr)

Clear hpsys wakeup source register.

参数:
  • wsr[in]

返回值:

wsr – wakeup source register value

HAL_HPAON_GET_POWER_MODE()

Get HPSYS power mode.

返回值:

power – mode

HAL_HPAON_SET_POWER_MODE(mode)

Set HPSYS power mode.

参数:
  • mode – power mode

返回值:

void

HAL_HPAON_CLEAR_POWER_MODE()

Clear HPSYS power mode.

返回值:

void

HAL_HPAON_SET_HP_ACTIVE()

Set ISSR.hp_active bit.

返回值:

void

HAL_HPAON_CLEAR_HP_ACTIVE()

Clear ISSR.hp_active bit.

返回值:

void

HAL_HPAON_CANCEL_LP_ACTIVE_REQUEST()
HAL_HPAON_IS_HP2LP_REQ_ACTIVE()

Check whether HP2LP_REQ is active.

返回值:

true – active, false: inactive

HAL_HPAON_IS_LP_ACTIVE()

Check whether LP is active.

返回值:

bool, true – active, false: not active

HAL_HPAON_DISABLE_PAD()

Disable PADA in HPSYS.

返回值:

void

HAL_HPAON_DISABLE_VHP()

Disable VHP in HPSYS.

返回值:

void

HAL_HPAON_ENABLE_PAD()

Enable PADA in HPSYS.

返回值:

void

HAL_HPAON_ENABLE_VHP()

Enable VHP in HPSYS.

返回值:

void

HAL_LPAON_SET_WER(wer)

Set lpsys wakeup enable register.

参数:
  • wer – wakeup enable register value

返回值:

void

HAL_LPAON_GET_WER()

Get lpsys wakeup enable register.

返回值:

wakeup – enable register

HAL_LPAON_GET_WSR()

Get lpsys wakeup source register.

返回值:

wsr – wakeup source register value

HAL_LPAON_CLEAR_WSR(wsr)

Clear lpsys wakeup source register.

参数:
  • wsr[in]

返回值:

wsr – wakeup source register value

HAL_LPAON_SET_POWER_MODE(mode)

Set LPSYS power mode.

参数:
  • mode – power mode

返回值:

void

HAL_LPAON_GET_POWER_MODE()

Get LPSYS power mode.

返回值:

power – mode

HAL_LPAON_CLEAR_POWER_MODE()

Clear LPSYS power mode.

返回值:

void

HAL_LPAON_SET_LP_ACTIVE()

Set ISSR.lp_active bit.

返回值:

void

HAL_LPAON_CLEAR_LP_ACTIVE()

Clear ISSR.lp_active bit.

返回值:

void

HAL_LPAON_CANCEL_HP_ACTIVE_REQUEST()

Cancel the HP active request.

返回值:

void

HAL_LPAON_IS_HP_ACTIVE()

Check whether HP is active.

返回值:

bool, true – active, false: not active

HAL_LPAON_GET_SBCR()

Get LPSYS AON.SBCR.

返回值:

power – mode

HAL_LPAON_SET_SBCR(sbcr)

Set LPSYS AON.SBCR.

参数:
  • sbcr – standby mode ctrl register value

返回值:

void

HAL_LPAON_DISABLE_PAD()

Disable PADB in LPSYS.

返回值:

void

HAL_LPAON_DISABLE_VLP()

Disable VLP in LPSYS.

返回值:

void

HAL_LPAON_DISABLE_AON_PAD()
HAL_LPAON_ENABLE_PAD()

Enable PADB in LPSYS.

返回值:

void

HAL_LPAON_ENABLE_VLP()

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

返回值:

void

HAL_LPAON_ENABLE_DS_PWR_REQ()

Enable Power Supply Request for Deep Sleep.

返回值:

void

HAL_LPAON_DISABLE_DS_PWR_REQ()

Disable Power Supply Request for Deep Sleep.

返回值:

void

HAL_HPAON_READ_GTIMER()

Read GTimer value by HPSYS.

返回值:

gtimer – value

HAL_LPAON_READ_GTIMER()

Read GTimer value by LPSYS.

返回值:

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

Pin wakeup mode

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

enum HPAON_WakeupSrcTypeDef

hpsys wakeup source

Values:

enumerator HPAON_WAKEUP_SRC_RTC

RTC wakeup source

enumerator HPAON_WAKEUP_SRC_LPTIM1

LPTIM1 wakeup source

enumerator HPAON_WAKEUP_SRC_LP2HP_REQ

LP2HP manual wakeup source

enumerator HPAON_WAKEUP_SRC_LP2HP_IRQ

LP2HP mailbox interrupt wakeup source

enumerator HPAON_WAKEUP_SRC_GPIO1

GPIO1 wakeup source

enumerator HPAON_WAKEUP_SRC_PIN0

PIN0 wakeup source

enumerator HPAON_WAKEUP_SRC_PIN1

PIN1 wakeup source

enumerator HPAON_WAKEUP_SRC_PIN2

PIN2 wakeup source

enumerator HPAON_WAKEUP_SRC_PIN3

PIN3 wakeup source

enumerator HPAON_WAKEUP_SRC_PIN4
enumerator HPAON_WAKEUP_SRC_PIN5
enumerator HPAON_WAKEUP_SRC_PIN6
enumerator HPAON_WAKEUP_SRC_PIN7
enumerator HPAON_WAKEUP_SRC_PIN8
enumerator HPAON_WAKEUP_SRC_PIN9
enumerator HPAON_WAKEUP_SRC_PIN10
enumerator HPAON_WAKEUP_SRC_PIN11
enumerator HPAON_WAKEUP_SRC_PIN12
enumerator HPAON_WAKEUP_SRC_PIN13
enumerator HPAON_WAKEUP_SRC_PIN14
enumerator HPAON_WAKEUP_SRC_PIN15
enumerator HPAON_WAKEUP_SRC_PIN16
enumerator HPAON_WAKEUP_SRC_PIN17
enumerator HPAON_WAKEUP_SRC_PIN18
enumerator HPAON_WAKEUP_SRC_PIN19
enumerator HPAON_WAKEUP_SRC_PIN20
enumerator HPAON_WAKEUP_SRC_PIN_LAST
enumerator HPAON_WAKEUP_SRC_PBR_PIN_FIRST
enum LPAON_WakeupSrcTypeDef

lpsys wakeup source

Values:

enumerator LPAON_WAKEUP_SRC_RTC

RTC wakeup source

enumerator LPAON_WAKEUP_SRC_HP2LP_REQ

HP2LP manual wakeup source

enumerator LPAON_WAKEUP_SRC_HP2LP_IRQ

HP2LP mailbox interrupt wakeup source

enumerator LPAON_WAKEUP_SRC_GPIO2

GPIO2 wakeup source

enumerator LPAON_WAKEUP_SRC_LPTIM3

LPTIM2 wakeup source

enumerator LPAON_WAKEUP_SRC_BT

BT wakeup source

enumerator LPAON_WAKEUP_SRC_PIN0

PIN0 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN1

PIN1 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN2

PIN2 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN3

PIN3 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN4

PIN4 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN5

PIN5 wakeup source

enumerator LPAON_WAKEUP_SRC_PIN6
enumerator LPAON_WAKEUP_SRC_PIN7
enumerator LPAON_WAKEUP_SRC_PIN8
enumerator LPAON_WAKEUP_SRC_PIN9
enumerator LPAON_WAKEUP_SRC_PIN10
enumerator LPAON_WAKEUP_SRC_PIN11
enumerator LPAON_WAKEUP_SRC_PIN12
enumerator LPAON_WAKEUP_SRC_PIN13
enumerator LPAON_WAKEUP_SRC_PIN14
enumerator LPAON_WAKEUP_SRC_PIN15
enumerator LPAON_WAKEUP_SRC_PIN16
enumerator LPAON_WAKEUP_SRC_PIN17
enumerator LPAON_WAKEUP_SRC_PIN18
enumerator LPAON_WAKEUP_SRC_PIN19
enumerator LPAON_WAKEUP_SRC_PIN20
enumerator LPAON_WAKEUP_SRC_PIN_LAST
enumerator LPAON_WAKEUP_SRC_PBR_PIN_FIRST

Functions

HAL_StatusTypeDef HAL_HPAON_WakeCore(uint8_t core_id)

HPSYS wakeup the specified LPSYS or BLESYS.

参数:
  • core_id – core id, CORE_ID_LCPU or CORE_ID_BCPU

返回值:

status

HAL_StatusTypeDef HAL_HPAON_EnterLightSleep(uint32_t lscr)

Indicate HPSYS to enter light sleep mode.

参数:
  • lscr – light sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_HPAON_EnterDeepSleep(uint32_t dscr)

Indicate HPSYS to enter deep sleep mode.

参数:
  • dscr – deep sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_HPAON_EnterStandby(uint32_t sbcr)

Indicate HPSYS to enter standby mode.

参数:
  • sbcr – standby sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_HPAON_EnableWakeupSrc(HPAON_WakeupSrcTypeDef src, AON_PinModeTypeDef mode)

Enable HPSYS wakeup source.

参数:
  • src – wakeup source

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

返回值:

status

HAL_StatusTypeDef HAL_HPAON_DisableWakeupSrc(HPAON_WakeupSrcTypeDef src)

Disable specified HPSYS wakeup source.

参数:
  • src – wakeup source

返回值:

status

int8_t HAL_HPAON_QueryWakeupPin(GPIO_TypeDef *gpio, uint16_t gpio_pin)

Query wakeup pin bound with corresponding gpio pin.

参数:
  • gpio – GPIO instance, e.g. hwp_gpio1

  • gpio_pin – gpio pin, start from 1

返回值:

wakeup – pin, valid range: 0~5 (Z0), 0~3 (A0), invalid: -1

GPIO_TypeDef *HAL_HPAON_QueryWakeupGpioPin(uint8_t wakeup_pin, uint16_t *gpio_pin)

Query gpio pin bound with corresponding wakeup pin.

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

  • gpio_pin[inout] pointer to output gpio pin

返回值:

gpio – instance, NULL: not found

HAL_StatusTypeDef HAL_HPAON_GetWakeupPinMode(uint8_t wakeup_pin, AON_PinModeTypeDef *mode)

Get wakeup pin mode.

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

  • mode[inout] pointer to output pin mode

返回值:

status

void HAL_HPAON_Deactivate(void)

Deactivate HPSYS.

返回值:

void

void HAL_HPAON_EnableRC(void)

Enable Oscillator from HPSYS.

返回值:

void

void HAL_HPAON_DisableRC(void)

Revoke Oscillator from HPSYS.

返回值:

void

void HAL_HPAON_EnableXT48(void)

Enable XTAL48 from HPSYS.

返回值:

void

void HAL_HPAON_DisableXT48(void)

Revoke XTAL48 from HPSYS.

返回值:

void

HAL_StatusTypeDef HAL_HPAON_StartGTimer(void)

Start GTimer.

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

返回值:

status

HAL_StatusTypeDef HAL_HPAON_StopGTimer(void)

Stop GTimer.

LPSYS must be awake

返回值:

status

HAL_StatusTypeDef HAL_LPAON_WakeCore(uint8_t core_id)

LPSYS wakeup the specified HPSYS or BLESYS.

参数:
  • core_id – core id, CORE_ID_HCPU or CORE_ID_BCPU

返回值:

status

HAL_StatusTypeDef HAL_LPAON_EnterLightSleep(uint32_t lscr)

Indicate LPSYS to enter light sleep mode.

参数:
  • lscr – light sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_LPAON_EnterDeepSleep(uint32_t dscr)

Indicate LSYS to enter deep sleep mode.

参数:
  • dscr – deep sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_LPAON_EnterStandby(uint32_t sbcr)

Indicate LPSYS to enter deep sleep mode.

参数:
  • sbcr – deep sleep control register value

返回值:

status

HAL_StatusTypeDef HAL_LPAON_EnableWakeupSrc(LPAON_WakeupSrcTypeDef src, AON_PinModeTypeDef mode)

Enable LPSYS wakeup source.

参数:
  • src – wakeup source

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

返回值:

status

HAL_StatusTypeDef HAL_LPAON_DisableWakeupSrc(LPAON_WakeupSrcTypeDef src)

Disable specified LPSYS wakeup source.

参数:
  • src – wakeup source

返回值:

status

int8_t HAL_LPAON_QueryWakeupPin(GPIO_TypeDef *gpio, uint16_t gpio_pin)

Query wakeup pin bound with corresponding gpio pin.

参数:
  • gpio – GPIO instance, e.g. hwp_gpio1

  • gpio_pin – gpio pin, start from 1

返回值:

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.

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

  • gpio_pin[inout] pointer to output gpio pin

返回值:

gpio – instance, NULL: not found

HAL_StatusTypeDef HAL_LPAON_GetWakeupPinMode(uint8_t wakeup_pin, AON_PinModeTypeDef *mode)

Get wakeup pin mode.

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

  • mode[inout] pointer to output pin mode

返回值:

status

void HAL_LPAON_ConfigStartAddr(uint32_t *start_addr)

Configure LCPU start address.

返回值:

void

void HAL_LPAON_Deactivate(void)

Deactivate LPSYS.

返回值:

void

void HAL_LPAON_EnableRC(void)

Enable Oscillator from LPSYS.

返回值:

void

void HAL_LPAON_DisableRC(void)

Revoke Oscillator from LPSYS.

返回值:

void

void HAL_LPAON_EnableXT48(void)

Enable XTAL48 from LPSYS.

返回值:

void

void HAL_LPAON_DisableXT48(void)

Revoke XTAL48 from LPSYS.

返回值:

void

HAL_StatusTypeDef HAL_GTIMER_Check(uint32_t ctx, uint32_t timeout_count)

Check GTimer timeout or not.

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

  • timeout_count[in] Count for timeout

返回值:

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