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 |