Modules | |
PMU Exported Types | |
PMU export types. | |
PMU_LPSYS_PSW | |
PMU_BLESYS_PSW | |
PMU wakeup source | |
Macros | |
#define | HAL_PMU_DISABLE_LPSYS_LDO() do {hwp_pmuc->LDO_CR &= ~PMUC_LDO_CR_LPSYS_LDO_EN;} while (0) |
#define | PMUC_WSR_PIN_ALL (PMUC_WSR_PIN0 | PMUC_WSR_PIN1) |
#define | HAL_PMU_SELECT_LPSYS_PWR(psw) |
Select LPSYS Power Switch. More... | |
#define | HAL_PMU_SELECT_BLESYS_PWR(psw) |
Select LPSYS Power Switch. More... | |
#define | HAL_PMU_SET_BG1_VREF12(val) |
Config bandgap1 VREF12. More... | |
#define | HAL_PMU_SET_HPSYS_LDO_VREF(val) |
Config HPSYS LDO VREF. More... | |
#define | HAL_PMU_SET_HPSYS_LDO_VREF2(val) |
Config HPSYS LDO VREF2. More... | |
#define | HAL_PMU_SET_BUCK1_CCH(val) |
Config BUCK1 CCH. More... | |
#define | HAL_PMU_HPSYS_POWER_OFF() |
Turn off HCPU power switch entirely during standby. More... | |
#define | HAL_PMU_HPSYS_POWER_ON() |
Turn off HCPU power switch entirely during standby. More... | |
#define | HAL_PMU_SWITCH_VRET() |
Vret switch to 0.7v when standby. More... | |
#define | HAL_PMU_SWITCH_VRET_LOWER() |
Vret switch to 0.65v when standby. More... | |
#define | HAL_PMU_SET_LDO_RDY_DELAY(delay) |
Set the delay time of LDO ready. More... | |
#define | HAL_PMU_SET_HXT3_RDY_DELAY(delay) |
Set the delay time of xTal48M ready. More... | |
#define | HAL_PMU_LXT_ENABLED() ((hwp_pmuc->CR&PMUC_CR_SEL_LPCLK)!=PMU_LPCLK_RC10) |
Check weather LXT is enabled. More... | |
#define | HAL_PMU_LXT_DISABLED() ((hwp_pmuc->CR&PMUC_CR_SEL_LPCLK)!=PMU_LPCLK_XT32) |
Check weather LXT is disabled. More... | |
#define | HAL_PMU_CLEAR_WSR(wsr) (hwp_pmuc->WCR = (wsr)) |
Clear PMU wakeup source register. More... | |
#define | HAL_PMU_GET_WSR() (hwp_pmuc->WSR) |
Get wakeup source. More... | |
#define | HAL_PMU_SET_BUCK2_LOW_VOLTAGE() |
#define | HAL_PMU_SET_BUCK2_HIGH_VOLTAGE() |
#define | HAL_PMU_ENABLE_BOR() |
Functions | |
HAL_StatusTypeDef | HAL_PMU_EnablePinWakeup (uint8_t pin, uint8_t mode) |
Enable pin wakeup for hibernate. More... | |
HAL_StatusTypeDef | HAL_PMU_DisablePinWakeup (uint8_t pin) |
Disable pin wakeup for hibernate. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableRtcWakeup (void) |
Enable RTC wakeup for hibernate. More... | |
HAL_StatusTypeDef | HAL_PMU_DisableRtcWakeup (void) |
Disable RTC wakeup for hibernate. More... | |
void | HAL_PMU_EnterHibernate (void) |
Make system enter hibernate mode. More... | |
void | HAL_PMU_EnterShutdown (void) |
Make system enter shutdown mode. More... | |
HAL_StatusTypeDef | HAL_PMU_CheckBootMode (PMU_BootModeTypeDef *boot_mode, uint32_t *wakeup_src) |
Check PMU boot mode. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableXTAL32 (void) |
Enable XTAL32K. More... | |
HAL_StatusTypeDef | HAL_PMU_DisableXTAL32 (void) |
Disable XTAL32K. More... | |
HAL_StatusTypeDef | HAL_PMU_LXTReady (void) |
Check whether Low power crystal is ready. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableRC32K (int enable) |
Enable RC32K. More... | |
HAL_StatusTypeDef | HAL_PMU_RC32KReady (void) |
Check whether rc32k is ready. More... | |
HAL_StatusTypeDef | HAL_PMU_LpCLockSelect (PMU_LpClockTypeDef lp_clock) |
Select low power clock. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableRC48 (void) |
Enable RC48M. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableBuck2 (void) |
Enable BUCK2. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableDLL (int enable) |
Enable DLL buf, need by all DLLs, need to turn off when go low power, but need to make sure all DLL is turned off. More... | |
HAL_StatusTypeDef | HAL_PMU_EnableAudio (int enable) |
Enable audio buf, need to turn off when go low power. More... | |
void | HAL_PMU_Reboot (void) |
Reboot system. More... | |
void | HAL_PMU_SET_HXT_CBANK (uint32_t value) |
Set CABANK SEL after crystal calibration. More... | |
void | HAL_PMU_SetWdt (uint32_t instance) |
Enable watchdog as reboot cause. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgInit (PMU_ChgHandleTypeDef *handle, PMU_ChgCalParamTypeDef *cal_param) |
Init charger. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgEnable (PMU_ChgHandleTypeDef *handle, bool en) |
Enable or disable charger. More... | |
uint32_t | HAL_PMU_ChgConfigCcCurrent (PMU_ChgHandleTypeDef *handle, uint32_t current) |
Configure charger CC current. More... | |
float | HAL_PMU_ChgConfigPreCcCurrent (PMU_ChgHandleTypeDef *handle, float current) |
Configure PRECC current. More... | |
uint32_t | HAL_PMU_ChgConfigTargetVolt (PMU_ChgHandleTypeDef *handle, uint32_t volt_mv) |
Configure charging full target voltage. More... | |
uint32_t | HAL_PMU_ChgConfigRepVolt (PMU_ChgHandleTypeDef *handle, uint32_t volt_mv) |
Configure charging REP voltage. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgConfigIRQ (PMU_ChgHandleTypeDef *handle, PMU_ChgIrqStatusTypeDef irq, PMU_ChgIrqTrigModeTypeDef trig_mode) |
Enable/disable IRQ in specified trig mode. More... | |
void | HAL_PMU_ChgRegisterCallback (PMU_ChgHandleTypeDef *handle, PMU_ChgCallbackTypeDef callback) |
Register charger IRQ callback which is called when IRQ is triggered. More... | |
HAL_StatusTypeDef | HAL_PMU_IRQHandler (PMU_ChgHandleTypeDef *handle) |
PMU IRQ Handler. More... | |
int8_t | HAL_PMU_ChgReadStatus (PMU_ChgHandleTypeDef *handle, PMU_ChgIrqStatusTypeDef irq) |
Read raw charger event status. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgStartForceCharging (PMU_ChgHandleTypeDef *handle) |
Start force charging. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgSuspendForceCharging (PMU_ChgHandleTypeDef *handle) |
Suspend force charging. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgResumeForceCharging (PMU_ChgHandleTypeDef *handle) |
Resume force charging. More... | |
HAL_StatusTypeDef | HAL_PMU_ChgStopForceCharging (PMU_ChgHandleTypeDef *handle) |
Stop force charging. More... | |
HAL_PMU_ChgHwStateTypeDef | HAL_PMU_ChgGetHwState (PMU_ChgHandleTypeDef *handle) |
Read hardware state. More... | |
uint8_t | HAL_PMU_ChgConfigEocCc (PMU_ChgHandleTypeDef *handle, uint8_t percent) |
Configure EOC Current. More... | |
HAL_StatusTypeDef | HAL_PMU_ConfigPeriLdo (PMU_PeriLdoTypeDef ldo, bool en, bool wait) |
Open and close peripheral LDO. More... | |
void | HAL_PMU_LoadCalData (void) |
Load PMU calibration data to PMU register. More... | |
HAL_StatusTypeDef | HAL_PMU_GetHpsysVoutRef (uint8_t *vout_ref) |
Get HPSYS LDO (1.1V) calibration data. More... | |
HAL_StatusTypeDef | HAL_PMU_GetHpsysVoutRef2 (uint8_t *vout_ref) |
Get HPSYS LDO (1.2V) calibration data. More... | |
void | HAL_PMU_Init (void) |
Init PMU. More... | |
#define HAL_PMU_CLEAR_WSR | ( | wsr | ) | (hwp_pmuc->WCR = (wsr)) |
Clear PMU wakeup source register.
[in] | wsr |
wsr | wakeup source register value |
#define HAL_PMU_ENABLE_BOR | ( | ) |
#define HAL_PMU_GET_WSR | ( | ) | (hwp_pmuc->WSR) |
Get wakeup source.
wsr | wakeup source register value |
#define HAL_PMU_HPSYS_POWER_OFF | ( | ) |
Turn off HCPU power switch entirely during standby.
None |
#define HAL_PMU_HPSYS_POWER_ON | ( | ) |
Turn off HCPU power switch entirely during standby.
None |
#define HAL_PMU_LXT_DISABLED | ( | ) | ((hwp_pmuc->CR&PMUC_CR_SEL_LPCLK)!=PMU_LPCLK_XT32) |
Check weather LXT is disabled.
True | if using RC10k, False if using LXT |
#define HAL_PMU_LXT_ENABLED | ( | ) | ((hwp_pmuc->CR&PMUC_CR_SEL_LPCLK)!=PMU_LPCLK_RC10) |
Check weather LXT is enabled.
True | if LXT enabled, False if using RC10k |
#define HAL_PMU_SELECT_BLESYS_PWR | ( | psw | ) |
Select LPSYS Power Switch.
[in] | psw | power switch flag, see PMU_LPSYS_PSW |
None |
#define HAL_PMU_SELECT_LPSYS_PWR | ( | psw | ) |
Select LPSYS Power Switch.
[in] | psw | power switch flag, see PMU_LPSYS_PSW |
None |
#define HAL_PMU_SET_BG1_VREF12 | ( | val | ) |
Config bandgap1 VREF12.
[in] | val | vandgap1 vref12 value |
None |
#define HAL_PMU_SET_BUCK1_CCH | ( | val | ) |
Config BUCK1 CCH.
[in] | val | BUCK1 CCH value |
None |
#define HAL_PMU_SET_HPSYS_LDO_VREF | ( | val | ) |
Config HPSYS LDO VREF.
[in] | val | HPSYS LDO VREF value |
None |
#define HAL_PMU_SET_HPSYS_LDO_VREF2 | ( | val | ) |
Config HPSYS LDO VREF2.
[in] | val | HPSYS LDO VREF2 value |
None |
#define HAL_PMU_SET_HXT3_RDY_DELAY | ( | delay | ) |
Set the delay time of xTal48M ready.
None |
#define HAL_PMU_SET_LDO_RDY_DELAY | ( | delay | ) |
Set the delay time of LDO ready.
None |
#define HAL_PMU_SWITCH_VRET | ( | ) |
Vret switch to 0.7v when standby.
None |
#define HAL_PMU_SWITCH_VRET_LOWER | ( | ) |
Vret switch to 0.65v when standby.
None |
HAL_StatusTypeDef HAL_PMU_CheckBootMode | ( | PMU_BootModeTypeDef * | boot_mode, |
uint32_t * | wakeup_src | ||
) |
Check PMU boot mode.
It should be called only once after boot. PMU status would be cleared afterwards.
[out] | boot_mode | boot mode |
[out] | wakeup_src | wakeup source if boot mode is PMU_HIBERNATE_BOOT or PMU_SHUTDOWN_BOOT, see PMU wakeup source |
status |
uint32_t HAL_PMU_ChgConfigCcCurrent | ( | PMU_ChgHandleTypeDef * | handle, |
uint32_t | current | ||
) |
Configure charger CC current.
[in] | handle | charger handle |
[in] | current | CC current in mA |
actual | CC current configured to charger |
uint8_t HAL_PMU_ChgConfigEocCc | ( | PMU_ChgHandleTypeDef * | handle, |
uint8_t | percent | ||
) |
Configure EOC Current.
[in] | handle | charger handle |
[in] | percent | percentage of CC Curent, e.g. 10 is 10% of CC Current range: [4, 36] |
actual | percentage, 0 for invalid input |
HAL_StatusTypeDef HAL_PMU_ChgConfigIRQ | ( | PMU_ChgHandleTypeDef * | handle, |
PMU_ChgIrqStatusTypeDef | irq, | ||
PMU_ChgIrqTrigModeTypeDef | trig_mode | ||
) |
Enable/disable IRQ in specified trig mode.
[in] | handle | charger handle |
[in] | irq | irq needs to be enabled or disabled |
[in] | trig_mode | irq trig mode or disable |
status |
float HAL_PMU_ChgConfigPreCcCurrent | ( | PMU_ChgHandleTypeDef * | handle, |
float | current | ||
) |
Configure PRECC current.
[in] | handle | charger handle |
[in] | current | PRECC current in mA |
actual | PRECC current configured to charger |
uint32_t HAL_PMU_ChgConfigRepVolt | ( | PMU_ChgHandleTypeDef * | handle, |
uint32_t | volt_mv | ||
) |
Configure charging REP voltage.
[in] | handle | charger handle |
[in] | volt_mv | rep voltage in mV |
actual | rep voltage(mV) configured to charger |
uint32_t HAL_PMU_ChgConfigTargetVolt | ( | PMU_ChgHandleTypeDef * | handle, |
uint32_t | volt_mv | ||
) |
Configure charging full target voltage.
[in] | handle | charger handle |
[in] | volt_mv | target voltage in mV |
actual | target voltage(mV) configured to charger |
HAL_StatusTypeDef HAL_PMU_ChgEnable | ( | PMU_ChgHandleTypeDef * | handle, |
bool | en | ||
) |
Enable or disable charger.
[in] | handle | charger handle |
[in] | en | true: enable charger, false: disable charger |
status |
HAL_PMU_ChgHwStateTypeDef HAL_PMU_ChgGetHwState | ( | PMU_ChgHandleTypeDef * | handle | ) |
Read hardware state.
[in] | handle | charger handle |
hardware | state |
HAL_StatusTypeDef HAL_PMU_ChgInit | ( | PMU_ChgHandleTypeDef * | handle, |
PMU_ChgCalParamTypeDef * | cal_param | ||
) |
Init charger.
This function shoud be called before other APIs
[in] | handle | charger handle |
[in] | cal_param | calibration param |
status |
int8_t HAL_PMU_ChgReadStatus | ( | PMU_ChgHandleTypeDef * | handle, |
PMU_ChgIrqStatusTypeDef | irq | ||
) |
Read raw charger event status.
[in] | handle | charger handle |
[in] | irq | event type |
event | status, 0 or 1 |
void HAL_PMU_ChgRegisterCallback | ( | PMU_ChgHandleTypeDef * | handle, |
PMU_ChgCallbackTypeDef | callback | ||
) |
Register charger IRQ callback which is called when IRQ is triggered.
[in] | handle | charger handle |
[in] | callback | callback |
actual | rep voltage(mV) configured to charger |
HAL_StatusTypeDef HAL_PMU_ChgResumeForceCharging | ( | PMU_ChgHandleTypeDef * | handle | ) |
Resume force charging.
[in] | handle | charger handle |
status |
HAL_StatusTypeDef HAL_PMU_ChgStartForceCharging | ( | PMU_ChgHandleTypeDef * | handle | ) |
Start force charging.
HAL_PMU_ChgStopForceCharging should be called to stop force charging completely.
[in] | handle | charger handle |
status |
HAL_StatusTypeDef HAL_PMU_ChgStopForceCharging | ( | PMU_ChgHandleTypeDef * | handle | ) |
Stop force charging.
[in] | handle | charger handle |
status |
HAL_StatusTypeDef HAL_PMU_ChgSuspendForceCharging | ( | PMU_ChgHandleTypeDef * | handle | ) |
Suspend force charging.
Charging is stopped temporarily, but force control is not disbled. HAL_PMU_ChgStopForceCharging should be called to disable force control completely.
[in] | handle | charger handle |
status |
HAL_StatusTypeDef HAL_PMU_ConfigPeriLdo | ( | PMU_PeriLdoTypeDef | ldo, |
bool | en, | ||
bool | wait | ||
) |
Open and close peripheral LDO.
[in] | ldo | which LDO needs to be opened or closed |
[in] | en | true: open, false: close |
[in] | wait | true: wait for stable, false: no wait for stable |
hal | status |
HAL_StatusTypeDef HAL_PMU_DisablePinWakeup | ( | uint8_t | pin | ) |
Disable pin wakeup for hibernate.
pin | pin number, range: 0~5 |
status |
HAL_StatusTypeDef HAL_PMU_DisableRtcWakeup | ( | void | ) |
Disable RTC wakeup for hibernate.
status |
HAL_StatusTypeDef HAL_PMU_DisableXTAL32 | ( | void | ) |
Disable XTAL32K.
status |
HAL_StatusTypeDef HAL_PMU_EnableAudio | ( | int | enable | ) |
Enable audio buf, need to turn off when go low power.
[in] | enable | 1: enable Audio , 0: disable Audio |
status |
HAL_StatusTypeDef HAL_PMU_EnableBuck2 | ( | void | ) |
Enable BUCK2.
status |
HAL_StatusTypeDef HAL_PMU_EnableDLL | ( | int | enable | ) |
Enable DLL buf, need by all DLLs, need to turn off when go low power, but need to make sure all DLL is turned off.
[in] | enable | 1: enable DLL , 0: disable DLL |
status |
HAL_StatusTypeDef HAL_PMU_EnablePinWakeup | ( | uint8_t | pin, |
uint8_t | mode | ||
) |
Enable pin wakeup for hibernate.
pin | pin number, its range differs from each chips, sf32lb55x: 0~5, others: 0~1 |
mode | pin wakeup mode, 0: high level, 1: low level, 2: positive edge, 3: negative edge |
status |
HAL_StatusTypeDef HAL_PMU_EnableRC32K | ( | int | enable | ) |
Enable RC32K.
[in] | enable | 1: enable RC32K , 0: disable RC32K |
status |
HAL_StatusTypeDef HAL_PMU_EnableRC48 | ( | void | ) |
Enable RC48M.
status |
HAL_StatusTypeDef HAL_PMU_EnableRtcWakeup | ( | void | ) |
Enable RTC wakeup for hibernate.
status |
HAL_StatusTypeDef HAL_PMU_EnableXTAL32 | ( | void | ) |
Enable XTAL32K.
status |
void HAL_PMU_EnterHibernate | ( | void | ) |
Make system enter hibernate mode.
The function would wait for hibernation and not return. System can be woken up RTC and PIN precisely
void |
void HAL_PMU_EnterShutdown | ( | void | ) |
Make system enter shutdown mode.
The function would wait for shutdown and not return. System can be woken up RTC and PIN, but RTC wakeup time is not accurate.
void |
HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef | ( | uint8_t * | vout_ref | ) |
Get HPSYS LDO (1.1V) calibration data.
[in,out] | vout_ref | pointer to data |
hal | status |
HAL_StatusTypeDef HAL_PMU_GetHpsysVoutRef2 | ( | uint8_t * | vout_ref | ) |
Get HPSYS LDO (1.2V) calibration data.
[in,out] | vout_ref | pointer to data |
hal | status |
void HAL_PMU_Init | ( | void | ) |
Init PMU.
void |
HAL_StatusTypeDef HAL_PMU_IRQHandler | ( | PMU_ChgHandleTypeDef * | handle | ) |
PMU IRQ Handler.
It should be callbed by IRQ handler registered in vector table
[in] | handle | charger handle |
status |
void HAL_PMU_LoadCalData | ( | void | ) |
Load PMU calibration data to PMU register.
HAL_StatusTypeDef HAL_PMU_LpCLockSelect | ( | PMU_LpClockTypeDef | lp_clock | ) |
Select low power clock.
[in] | lp_clock | low power clock source |
status |
HAL_StatusTypeDef HAL_PMU_LXTReady | ( | void | ) |
Check whether Low power crystal is ready.
status |
HAL_StatusTypeDef HAL_PMU_RC32KReady | ( | void | ) |
Check whether rc32k is ready.
status |
void HAL_PMU_Reboot | ( | void | ) |
Reboot system.
Not support by Z0. The function would wait for reboot and not return. Need to call HAL_PMU_CheckBootMode to clear reboot bit after reboot. Boot mode is cold boot for reboot.
void |
void HAL_PMU_SET_HXT_CBANK | ( | uint32_t | value | ) |
Set CABANK SEL after crystal calibration.
[in] | value | HXT CBANK register value |
void |
void HAL_PMU_SetWdt | ( | uint32_t | instance | ) |
Enable watchdog as reboot cause.
[in] | instance | Base address of watch dog |
void |