SemiDrive SSDK Appication Program Interface PTG3.0
Data Structures | Typedefs | Enumerations | Functions
sdrv_pmu.h File Reference
#include <sdrv_common.h>
#include <types.h>
#include <part.h>

Go to the source code of this file.

Data Structures

struct  sdrv_pmu_edge_filter
 
struct  sdrv_pmu_level_filter
 
struct  sdrv_pmu_level_filter_enable
 
struct  sdrv_pmu_bc_config
 
struct  sdrv_pmu_wakeup_pin_config
 
struct  sdrv_pmu_wakeuppins_config
 
struct  sdrv_pmu_buttonctrl_config
 
struct  sdrv_pmu_pwron_wdt_config
 
struct  sdrv_pmu_pwron_wdt_enable
 
struct  sdrv_pmu_pwrctrl_config
 
struct  sdrv_pmu_pwrctrl_min_delay_config
 
struct  sdrv_pmu_pwron_config
 

Typedefs

typedef enum sdrv_pmu_wakeup_in_rtc sdrv_pmu_wakeup_in_rtc_e
 

Enumerations

enum  sdrv_pmu_wakeup_in_rtc { SDRV_PMU_WAKEUP_IN_RTC_IGNORE = 0 , SDRV_PMU_WAKEUP_IN_RTC_LATCH }
 

Functions

status_t sdrv_pmu_wakeup_enable (uint32_t enable_bitmap)
 
status_t sdrv_pmu_wakeup_disable (uint32_t disable_bitmap)
 
status_t sdrv_pmu_button_control_init (sdrv_pmu_bc_config_t *bc_config)
 
status_t sdrv_pmu_button_control_edge_filter_config (sdrv_pmu_edge_filter_t *filter_config)
 
status_t sdrv_pmu_button_control_level_filter_para (sdrv_pmu_level_filter_t *filter_config)
 
status_t sdrv_pmu_button_control_level_filter_config (sdrv_pmu_level_filter_enable_t *filter_config)
 
status_t sdrv_pmu_hardware_power_down_request_enable (uint32_t enable_bitmap, bool enable)
 
status_t sdrv_pmu_button_control_enable (bool enable)
 
status_t sdrv_pmu_button_control_fsm_enable (bool enable)
 
status_t sdrv_pmu_button_control_config (sdrv_pmu_buttonctrl_config_t *config)
 
status_t sdrv_pmu_wakeup_pin_init (sdrv_pmu_wakeup_pin_e wakeup_pin, sdrv_pmu_wakeup_pin_config_t *pin_config)
 
status_t sdrv_pmu_wakeup_pin_filter_config (sdrv_pmu_wakeup_pin_e wakeup_pin, sdrv_pmu_edge_filter_t *filter_config)
 
status_t sdrv_pmu_wakeup_pin_enable (sdrv_pmu_wakeup_pin_e wakeup_pin, bool enable)
 
status_t sdrv_pmu_wakeup_pin_logic_set (sdrv_pmu_wakeup_pin_logic_e logic)
 
status_t sdrv_pmu_wakeup_latch_set (sdrv_pmu_wakeup_in_rtc_e latch)
 
status_t sdrv_pmu_wakeup_pins_config (sdrv_pmu_wakeuppins_config_t *config)
 
status_t sdrv_pmu_power_down (void)
 
status_t sdrv_pmu_pwron_watchdog_config (sdrv_pmu_pwron_wdt_config_t *wdt_config)
 
status_t sdrv_pmu_pwron_watchdog_enable (sdrv_pmu_pwr_on_e pwron, sdrv_pmu_pwron_wdt_enable_t *enable_config)
 
status_t sdrv_pmu_pwrctrl_config (sdrv_pmu_pwr_ctrl_e ctrl, sdrv_pmu_mode_e mode, sdrv_pmu_pwrctrl_config_t *config)
 
status_t sdrv_pmu_pwrctrl_min_delay_config (sdrv_pmu_pwrctrl_min_delay_config_t *config)
 
status_t sdrv_pmu_pwrctrl_polarity_config (sdrv_pmu_pwr_ctrl_e ctrl, sdrv_pmu_pwr_ctrl_polarity_e pol)
 
status_t sdrv_pmu_pwrctrl_software_override_enable (sdrv_pmu_pwr_ctrl_e ctrl, bool enable)
 
status_t sdrv_pmu_pwrctrl_software_override_value (sdrv_pmu_pwr_ctrl_e ctrl, bool value)
 
status_t sdrv_pmu_pwrctrl_delay_config (sdrv_pmu_delay_period_e period, sdrv_pmu_pwr_ctrl_e ctrl, uint8_t delay, uint8_t delay_adj)
 
status_t sdrv_pmu_pwron_config (sdrv_pmu_pwr_on_e ctrl, sdrv_pmu_mode_e mode, sdrv_pmu_pwron_config_t *config)
 
status_t sdrv_pmu_pwron_target_config_with_mode (sdrv_pmu_pwr_on_e ctrl, sdrv_pmu_mode_e mode, sdrv_pmu_target_e target)
 
status_t sdrv_pmu_pwron_target_config (sdrv_pmu_pwr_on_e ctrl, sdrv_pmu_target_e target)
 
status_t sdrv_pmu_target_power_on_config (sdrv_pmu_target_e target, sdrv_pmu_mode_e mode, bool powered)
 
status_t sdrv_pmu_pwron_delay_config (sdrv_pmu_delay_period_e period, sdrv_pmu_pwr_on_e ctrl, uint8_t delay, uint8_t delay_adj)
 
status_t sdrv_pmu_pwron_software_override_enable (sdrv_pmu_pwr_on_e ctrl, bool enable)
 
status_t sdrv_pmu_pwron_software_override_value (sdrv_pmu_pwr_on_e ctrl, bool value)
 
status_t sdrv_pmu_minimal_delay_for_state_transition (sdrv_pmu_state_e state, uint8_t delay, uint8_t delay_adj)
 
status_t sdrv_pmu_interrupt_enable (uint32_t bitmap, bool enable)
 
uint32_t sdrv_pmu_get_interrupt_status (void)
 
status_t sdrv_pmu_clear_interrupt_status (uint32_t bitmap)
 
status_t sdrv_pmu_srcs_set (uint32_t bitmap)
 
status_t sdrv_pmu_srcs_clear (uint32_t bitmap)
 
status_t sdrv_pmu_vd_sf_ana_enable (bool enable)
 
status_t sdrv_pmu_por_sf_enable (bool enable)
 
status_t sdrv_pmu_rc24m_enable (bool enable)
 
status_t sdrv_pmu_bgr_sf_enable (bool enable)
 
status_t sdrv_pmu_bgr_ldo_enable (bool enable)
 
status_t sdrv_pmu_bgr_ana_sf1_sf2_enable (bool enable)
 
status_t sdrv_pmu_vd_ap_enable (bool enable)
 
status_t sdrv_pmu_por_ap_enable (bool enable)
 
status_t sdrv_pmu_bgr_ap_enable (bool enable)
 
status_t sdrv_pmu_bgr_disp_enable (bool enable)
 
status_t sdrv_pmu_analog_cven33_enable (bool enable)
 
status_t sdrv_pmu_pt_sns_enable (bool enable)
 
status_t sdrv_pmu_ana_sf_analog_enable (bool enable)
 
status_t sdrv_pmu_bgr_ldo_auto_disable (bool enable)
 
status_t sdrv_pmu_bgr_sf_auto_disable (bool enable)
 
status_t sdrv_pmu_wakeup0_glitch_enable (uint32_t mask)
 
status_t sdrv_pmu_wakeup0_glitch_disable (uint32_t mask)
 
status_t sdrv_pmu_saf_domain_power_good_monitor (sdrv_pmu_pg_e cfg)
 
status_t sdrv_pmu_ap_domain_power_good_monitor (sdrv_pmu_pg_e cfg)
 
status_t sdrv_pmu_rtc_to_off_saf_domain_power_good (sdrv_pmu_pg_e cfg)
 
status_t sdrv_pmu_rtc_to_off_ap_domain_power_good (sdrv_pmu_pg_e cfg)
 
uint32_t sdrv_pmu_get_wakeup_source (void)
 
status_t sdrv_pmu_clear_wakeup_source (void)
 
uint32_t sdrv_pmu_get_power_down_reason (void)
 
status_t sdrv_pmu_clear_power_down_reason (void)
 
uint32_t sdrv_pmu_get_state (void)
 

Detailed Description

Macro Definition Documentation

◆ SDRV_PMU_WAKEUP_BC_MASK

#define SDRV_PMU_WAKEUP_BC_MASK   (0X8U)

◆ SDRV_PMU_WAKEUP_PIN0_MASK

#define SDRV_PMU_WAKEUP_PIN0_MASK   (0X1U)

◆ SDRV_PMU_WAKEUP_PIN1_MASK

#define SDRV_PMU_WAKEUP_PIN1_MASK   (0X2U)

◆ SDRV_PMU_WAKEUP_RTC_MASK

#define SDRV_PMU_WAKEUP_RTC_MASK   (0X4U)

Typedef Documentation

◆ sdrv_pmu_bc_config_t

Definition for button config active level or pulse to enter/exit rtc mode.

◆ sdrv_pmu_buttonctrl_config_t

Definition for button control config parameters.

◆ sdrv_pmu_ctrl_e

Definition for pmu pwr_ctrl and pwr_on enable or disable.

◆ sdrv_pmu_delay_period_e

Definition for config pwrctrl and pwron delay setting in different period.

◆ sdrv_pmu_edge_filter_e

Definition for pmu select which edge needs to apply the filter.

◆ sdrv_pmu_edge_filter_t

Definition for PMU Wakeup pin and BC edge filter config. filter time = 32K cycle * (2 ^ sample interval) * (counter + 2)

◆ sdrv_pmu_hw_power_down_req_e

Definition for hardware power down request.

◆ sdrv_pmu_int_type_e

Definition for PMU interrupt type.

◆ sdrv_pmu_level_filter_enable_t

Definition for PMU BC level filter enable config.

◆ sdrv_pmu_level_filter_t

Definition for PMU BC level filter config.

◆ sdrv_pmu_mode_e

Definition for PMU work mode.

◆ sdrv_pmu_operate_e

Definition for pmu pwr_ctrl and pwr_on operate by hardware or software override.

◆ sdrv_pmu_pg_e

typedef enum sdrv_pmu_pg sdrv_pmu_pg_e

Definition for pmu power good config.

◆ sdrv_pmu_polarity_e

Definition for pmu wakeup pin and button control active level or pulse.

◆ sdrv_pmu_power_down_reason_e

Definition for power down reason.

◆ sdrv_pmu_pwr_ctrl_e

Definition for pmu pwr_ctrl.

◆ sdrv_pmu_pwr_ctrl_polarity_e

Definition for PWRCTRL active level.

◆ sdrv_pmu_pwr_on_e

Definition for pmu pwr_on, now pwr_on_0 use for internal DCDC, pwr_on_2 use for internal LDO.

◆ sdrv_pmu_pwrctrl_config_t

Definition for pmu pwr ctrl config.

◆ sdrv_pmu_pwrctrl_min_delay_config_t

Definition for setting for pwrctrl0-3 minimal delay enable config.

◆ sdrv_pmu_pwron_config_t

Definition for pmu pwr on config.

◆ sdrv_pmu_pwron_wdt_config_t

Definition for power good watchdog on pwron.

◆ sdrv_pmu_pwron_wdt_enable_t

Definition for WDT counter and enable config.

◆ sdrv_pmu_state_e

Definition for config minimal delay for state transition.

◆ sdrv_pmu_target_e

Definition for pmu pwr_on control target. It use for hardware power on sequence.

◆ sdrv_pmu_wakeup_glitch_e

Definition for wakeup pin glitch, glitch is enable if wakeup edge < 32K cycle.

◆ sdrv_pmu_wakeup_in_rtc_e

Definition for pmu action when receive wakeup during rtc state.

PMU has RTC and OFF state. During RTC state, pmu doesn't respond to wakeup event. It only responds to wakeup event in OFF state.

◆ sdrv_pmu_wakeup_pin_config_t

Definition for wakeup pin active level or pulse to wakeup.

◆ sdrv_pmu_wakeup_pin_e

Definition for pmu wakeup pin.

◆ sdrv_pmu_wakeup_pin_logic_e

Definition for pmu wakeup pin logic.

◆ sdrv_pmu_wakeup_src_e

Definition for wakeup source.

◆ sdrv_pmu_wakeuppins_config_t

Definition for wakeup pins config parameters.

Enumeration Type Documentation

◆ sdrv_pmu_ctrl

Definition for pmu pwr_ctrl and pwr_on enable or disable.

Enumerator
SDRV_PMU_CTRL_OFF 
SDRV_PMU_CTRL_ON 

◆ sdrv_pmu_delay_period

Definition for config pwrctrl and pwron delay setting in different period.

Enumerator
SDRV_PMU_PWRUP_DELAY 
SDRV_PMU_RUN_DELAY 
SDRV_PMU_SLEEP_DELAY 
SDRV_PMU_HIB_DELAY 
SDRV_PMU_RTC_DELAY 

◆ sdrv_pmu_edge_filter_enum

Definition for pmu select which edge needs to apply the filter.

Enumerator
SDRV_PMU_FILTER_RISING 
SDRV_PMU_FILTER_FALLING 
SDRV_PMU_FILTER_BOTH_EDGE 

◆ sdrv_pmu_error

PMU status error code.

Enumerator
SDRV_PMU_CONFIG_TYPE_WRONG 
SDRV_PMU_CONFIG_NOT_SUPPORT 

◆ sdrv_pmu_hw_power_down_req

Definition for hardware power down request.

Enumerator
SDRV_PMU_SEM_INT_POWER_DOWN_REQ 
SDRV_PMU_RESERVED_POWER_DOWN_REQ 
SDRV_PMU_FS32K_LVPG_POWER_DOWN_REQ 
SDRV_PMU_VD_SF_INT_POWER_DOWN_REQ 
SDRV_PMU_VD_AP_INT_POWER_DOWN_REQ 
SDRV_PMU_SF_PT_SENSOR_INT_POWER_DOWN_REQ 
SDRV_PMU_AP_PT_SENSOR_INT_POWER_DOWN_REQ 
SDRV_PMU_EFUSE_VIO_POWER_DOWN_REQ 

◆ sdrv_pmu_int_type

Definition for PMU interrupt type.

Enumerator
SDRV_PMU_INT_PWRON0_RDY_TIMEOUT 
SDRV_PMU_INT_PWRON2_RDY_TIMEOUT 
SDRV_PMU_INT_PWRUP_TO_RUN_TIMEOUT 
SDRV_PMU_INT_SLEEP_TO_RUN_TIMEOUT 
SDRV_PMU_INT_HIBERNATE_TO_RUN_TIMEOUT 
SDRV_PMU_INT_LOCKSTEP_ERR 
SDRV_PMU_INT_SWM_WARN 
SDRV_PMU_INT_SWM_FATAL 
SDRV_PMU_INT_POWER_DOWN_REQ 

◆ sdrv_pmu_mode

Definition for PMU work mode.

Enumerator
SDRV_PMU_RUN 
SDRV_PMU_SLEEP 
SDRV_PMU_HIBERNATE 
SDRV_PMU_RTC 

◆ sdrv_pmu_operate

Definition for pmu pwr_ctrl and pwr_on operate by hardware or software override.

Enumerator
SDRV_PMU_MANUAL 
SDRV_PMU_AUTO 

◆ sdrv_pmu_pg

Definition for pmu power good config.

Enumerator
SDRV_PMU_POWER_GOOD_ENABLE 
SDRV_PMU_POWER_GOOD_DISABLE 

◆ sdrv_pmu_polarity

Definition for pmu wakeup pin and button control active level or pulse.

Enumerator
SDRV_PMU_HIGH_LEVEL 
SDRV_PMU_LOW_LEVEL 
SDRV_PMU_RISING_EDGE 
SDRV_PMU_FALLING_EDGE 

◆ sdrv_pmu_power_down_reason

Definition for power down reason.

Enumerator
SDRV_PMU_POWER_DOWN_SMC_CHECK_FAIL 
SDRV_PMU_POWER_DOWN_RESERVED 
SDRV_PMU_POWER_DOWN_SEM_INT 
SDRV_PMU_POWER_DOWN_RESERVED_1 
SDRV_PMU_POWER_DOWN_FS32K_LVPG 
SDRV_PMU_POWER_DOWN_VD_SF_INT 
SDRV_PMU_POWER_DOWN_VD_AP_INT 
SDRV_PMU_POWER_DOWN_SF_PT_SENSOR_INT 
SDRV_PMU_POWER_DOWN_AP_PT_SENSOR_INT 
SDRV_PMU_POWER_DOWN_EFUSE_VIO 
SDRV_PMU_POWER_DOWN_SOFTWARE 
SDRV_PMU_POWER_DOWN_BC 

◆ sdrv_pmu_pwr_ctrl

Definition for pmu pwr_ctrl.

Enumerator
SDRV_PMU_PWR_CTRL_0 
SDRV_PMU_PWR_CTRL_1 
SDRV_PMU_PWR_CTRL_2 
SDRV_PMU_PWR_CTRL_3 

◆ sdrv_pmu_pwr_ctrl_polarity

Definition for PWRCTRL active level.

Enumerator
SDRV_PMU_PWR_CTRL_HIGH_ACTIVE 
SDRV_PMU_PWR_CTRL_LOW_ACTIVE 

◆ sdrv_pmu_pwr_on

Definition for pmu pwr_on, now pwr_on_0 use for internal DCDC, pwr_on_2 use for internal LDO.

Enumerator
SDRV_PMU_PWR_ON_0 
SDRV_PMU_PWR_ON_1 
SDRV_PMU_PWR_ON_2 
SDRV_PMU_PWR_ON_3 

◆ sdrv_pmu_state

Definition for config minimal delay for state transition.

Enumerator
SDRV_PMU_STATE_PWR_ON 
SDRV_PMU_STATE_PWRUP_RUN 
SDRV_PMU_STATE_SLEEP_RUN 
SDRV_PMU_STATE_HIBERNATE_RUN 

◆ sdrv_pmu_target

Definition for pmu pwr_on control target. It use for hardware power on sequence.

Enumerator
SDRV_PMU_SAF 
SDRV_PMU_AP 
SDRV_PMU_OTHER 

◆ sdrv_pmu_wakeup_glitch

Definition for wakeup pin glitch, glitch is enable if wakeup edge < 32K cycle.

Enumerator
SDRV_PMU_GLITCH_NONE 
SDRV_PMU_GLITCH_RISING 
SDRV_PMU_GLITCH_FALLING 
SDRV_PMU_GLITCH_BOTH 

◆ sdrv_pmu_wakeup_in_rtc

Definition for pmu action when receive wakeup during rtc state.

PMU has RTC and OFF state. During RTC state, pmu doesn't respond to wakeup event. It only responds to wakeup event in OFF state.

Enumerator
SDRV_PMU_WAKEUP_IN_RTC_IGNORE 

ignore wakeup event in rtc state

SDRV_PMU_WAKEUP_IN_RTC_LATCH 

latch wakeup event in rtc state

◆ sdrv_pmu_wakeup_pin

Definition for pmu wakeup pin.

Enumerator
SDRV_PMU_WAKEUP_PIN_0 
SDRV_PMU_WAKEUP_PIN_1 

◆ sdrv_pmu_wakeup_pin_logic

Definition for pmu wakeup pin logic.

Enumerator
SDRV_PMU_WAKEUP_PIN_OR 

generate wakeup event either pin0 or pin1 active.

SDRV_PMU_WAKEUP_PIN_AND 

generate wakeup event both pin0/1 active.

◆ sdrv_pmu_wakeup_src

Definition for wakeup source.

Enumerator
SDRV_PMU_WAKEUP_BY_BC 
SDRV_PMU_WAKEUP_BY_RTC 
SDRV_PMU_WAKEUP_BY_PIN 
SDRV_PMU_WAKEUP_BY_HW_RESET 

◆ srcs_bit

enum srcs_bit

Description for SRCS_BITS each bit.

Enumerator
SRCS_RSTGEN_SF_I_IST_EN_RTC_OVRD 
SRCS_RSTGEN_SF_I_IST_EN_RTC_OVVAL 
SRCS_ISTC_RTC_SS_POST_EN_OVVAL 
SRCS_ISTC_RTC_SS_POST_EN_OVRD 
SRCS_ISTC_PLL_CFG_POST_EN_OVVAL 
SRCS_ISTC_PLL_CFG_POST_EN_OVRD 
SRCS_ISTC_POWER_CFG_POST_EN_OVVAL 
SRCS_ISTC_POWER_CFG_POST_EN_OVRD 
SRCS_PT_SNS_SF_PT_SNS_AP_CVEN33_FORCE_OFF 
SRCS_ANA_SF_ANALOG_IP_CVEN33_FORCE_OFF 
SRCS_DCDC_ISO_EN_B 
SRCS_LDO_ISO_EN_B 
SRCS_BGR_LDO_AUTO_DISABLE_BY_PMU_EN 
SRCS_BGR_SF_AUTO_DISABLE_BY_SMC_EN 
SRCS_WAKEUP0_FALL_EDGE_TO_PULSE_EN 
SRCS_POR_SF_PU33_B 
SRCS_RC24M_PU33_B 
SRCS_VD_SF_PU33_B 
SRCS_BGR_ANA_PU33_B 
SRCS_BGR_SF_PU33_B 
SRCS_BGR_LDO_PU33_B 
SRCS_POR_AP_PU33_B 
SRCS_VD_AP_PU33_B 
SRCS_BGR_AP_PU33_B 
SRCS_BGR_DISP_PU33_B 
SRCS_WAKEUP0_RISE_EDGE_TO_PULSE_EN 

Function Documentation

◆ sdrv_pmu_ana_sf_analog_enable()

status_t sdrv_pmu_ana_sf_analog_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control ana_sf analog IP cven33 power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_analog_cven33_enable()

status_t sdrv_pmu_analog_cven33_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control pt_sns_sf/pt_sns_ap, analog ip, such as adc, acmp cven33 power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_ap_domain_power_good_monitor()

status_t sdrv_pmu_ap_domain_power_good_monitor ( sdrv_pmu_pg_e  cfg)

Config ap domain 3.3v and 0.8v power good monitor.

This function config ap domain power monitor , when enabled, once 3.3v or 0.8v is not good, ap isolate and sf_por_b is assert. After power is good, ap isolate and sf_por_b deassert.

Parameters
[in]cfgSDRV_PMU_POWER_GOOD_ENABLE/SDRV_PMU_POWER_GOOD_DISABLE
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_ana_sf1_sf2_enable()

status_t sdrv_pmu_bgr_ana_sf1_sf2_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control bgr ana sf1 sf2 power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_ap_enable()

status_t sdrv_pmu_bgr_ap_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control bgr ap power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_disp_enable()

status_t sdrv_pmu_bgr_disp_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control bgr display power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_ldo_auto_disable()

status_t sdrv_pmu_bgr_ldo_auto_disable ( bool  enable)

Config bgr_ldo auto-disable.

This function config whether bgr_ldo auto-disable with rc24m/xtal24m when enter low power mode.

Parameters
[in]enabletrue represents auto-disable with rc24m/xtal24m, false represents not.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_ldo_enable()

status_t sdrv_pmu_bgr_ldo_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control bgr ldo power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_sf_auto_disable()

status_t sdrv_pmu_bgr_sf_auto_disable ( bool  enable)

Config bgr_sf auto-disable.

This function config whether bgr_sf auto-disable with rc24m/xtal24m when enter low power mode.

Parameters
[in]enabletrue represents auto-disable with rc24m/xtal24m, false represents not.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_bgr_sf_enable()

status_t sdrv_pmu_bgr_sf_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control bgr_sf power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_config()

status_t sdrv_pmu_button_control_config ( sdrv_pmu_buttonctrl_config_t config)

Initialize button control parameter config.

Parameters
[in]configbc config parameter.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_edge_filter_config()

status_t sdrv_pmu_button_control_edge_filter_config ( sdrv_pmu_edge_filter_t filter_config)

Config edge filter for button control.

Parameters
[in]filter_configedge filter parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_enable()

status_t sdrv_pmu_button_control_enable ( bool  enable)

Enable or Disable button control function.

This function config whether use button control or not.

Parameters
[in]enabletrue represents enable, false represents disable.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_fsm_enable()

status_t sdrv_pmu_button_control_fsm_enable ( bool  enable)

Enable status monitor for button control.

This function enable satus monitor for button control. When enabled, only responds the valid power on request in BC_OFF state, and only respond the valid power off request in BC_ON state.

Parameters
[in]enabletrue represents enable fsm check, false represents disable fsm check.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_init()

status_t sdrv_pmu_button_control_init ( sdrv_pmu_bc_config_t bc_config)

Config button control register.

This function config button control enter/exit rtc mode active level or pulse.

Parameters
[in]bc_configbutton control config.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_level_filter_config()

status_t sdrv_pmu_button_control_level_filter_config ( sdrv_pmu_level_filter_enable_t filter_config)

Enable level filter for button control.

Parameters
[in]filter_configlevel filter config.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_button_control_level_filter_para()

status_t sdrv_pmu_button_control_level_filter_para ( sdrv_pmu_level_filter_t filter_config)

Config level filter parameters for button control.

Parameters
[in]filter_configlevel filter parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_clear_interrupt_status()

status_t sdrv_pmu_clear_interrupt_status ( uint32_t  bitmap)

Clear PMU internal interrupt status.

Parameters
[in]bitmapOR'Value defined in sdrv_pmu_int_type_e.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_clear_power_down_reason()

status_t sdrv_pmu_clear_power_down_reason ( void  )

Clear system power down reason.

Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_clear_wakeup_source()

status_t sdrv_pmu_clear_wakeup_source ( void  )

Clear system wakeup source.

Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_get_interrupt_status()

uint32_t sdrv_pmu_get_interrupt_status ( void  )

Get PMU internal interrupt status.

Returns
OR'Value defined in sdrv_pmu_int_type_e.

◆ sdrv_pmu_get_power_down_reason()

uint32_t sdrv_pmu_get_power_down_reason ( void  )

Get system power down reason.

This function return last power down reason, each bit represent reason see sdrv_pmu_power_down_reason_e.

Returns
uint32_t power down reason.

◆ sdrv_pmu_get_state()

uint32_t sdrv_pmu_get_state ( void  )

Get PMU internal state.

Returns
PMU_STATE register value.

◆ sdrv_pmu_get_wakeup_source()

uint32_t sdrv_pmu_get_wakeup_source ( void  )

Get system wakeup source.

This function read pmu wakeup source, return value is OR'ed value of sdrv_pmu_wakeup_src_e

Returns
uint32_t OR'ed value of sdrv_pmu_wakeup_src_e

◆ sdrv_pmu_hardware_power_down_request_enable()

status_t sdrv_pmu_hardware_power_down_request_enable ( uint32_t  enable_bitmap,
bool  enable 
)

Config hardware power down request enable.

Parameters
[in]enable_bitmapOR' value defined in sdrv_pmu_hw_power_down_req_e.
[in]enableenable or disable.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_interrupt_enable()

status_t sdrv_pmu_interrupt_enable ( uint32_t  bitmap,
bool  enable 
)

Enable PMU internal interrupt.

Parameters
[in]bitmapOR'Value defined in sdrv_pmu_int_type_e.
[in]enabletrue or false.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_minimal_delay_for_state_transition()

status_t sdrv_pmu_minimal_delay_for_state_transition ( sdrv_pmu_state_e  state,
uint8_t  delay,
uint8_t  delay_adj 
)

Config minimal delay for pmu state transition.

Delay time = 32Kcycle * (2^delay) * (delay_adj * 2 + 1)

Parameters
[in]statestate defined in sdrv_pmu_state_e.
[in]delaydelay value.
[in]delay_adjdelay adjust.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_por_ap_enable()

status_t sdrv_pmu_por_ap_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control AP POR analog power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_por_sf_enable()

status_t sdrv_pmu_por_sf_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control SF POR analog power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_power_down()

status_t sdrv_pmu_power_down ( void  )

Software trigger power down.

This function write register to trigger power down request. After call this function, system will enter RTC mode at once.

Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pt_sns_enable()

status_t sdrv_pmu_pt_sns_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control pt_sns_sf/pt_sns_ap cven33 power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_config()

Config pwr ctrl output level for different mode.

This function config pwr ctrl output level under run/sleep/hibernate/rtc mode.

Parameters
[in]ctrlpwr ctrl pin defined in sdrv_pmu_pwr_ctrl_e.
[in]modepmu work mode defined in sdrv_pmu_mode_e.
[in]configconfig parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_delay_config()

status_t sdrv_pmu_pwrctrl_delay_config ( sdrv_pmu_delay_period_e  period,
sdrv_pmu_pwr_ctrl_e  ctrl,
uint8_t  delay,
uint8_t  delay_adj 
)

Config pwrctrl delay setting in different period.

Delay time = 32Kcycle * (2^delay) * (delay_adj * 2 + 1)

Parameters
[in]periodperiod defined in sdrv_pmu_delay_period_e.
[in]ctrlpwr ctrl pin defined in sdrv_pmu_pwr_ctrl_e.
[in]delaydelay value.
[in]delay_adjdelay adjust value.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_min_delay_config()

Config pwrctrl0-3 minimal delay enable config during pwrup/sleep/hibernate to run mode.

Parameters
[in]configminimal delay enable config.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_polarity_config()

status_t sdrv_pmu_pwrctrl_polarity_config ( sdrv_pmu_pwr_ctrl_e  ctrl,
sdrv_pmu_pwr_ctrl_polarity_e  pol 
)

Config pwrctrl0-3 active level.

Parameters
[in]ctrlpwr ctrl pin defined in sdrv_pmu_pwr_ctrl_e.
[in]polhigh or low level represents pwrctrl on.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_software_override_enable()

status_t sdrv_pmu_pwrctrl_software_override_enable ( sdrv_pmu_pwr_ctrl_e  ctrl,
bool  enable 
)

Enable software override pwrctrl.

Parameters
[in]ctrlpwr ctrl pin defined in sdrv_pmu_pwr_ctrl_e.
[in]enabletrue or false.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwrctrl_software_override_value()

status_t sdrv_pmu_pwrctrl_software_override_value ( sdrv_pmu_pwr_ctrl_e  ctrl,
bool  value 
)

Software override pwrctrl value.

Parameters
[in]ctrlpwr ctrl pin defined in sdrv_pmu_pwr_ctrl_e.
[in]valuetrue or false.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_config()

Config pwr on whether work for different mode.

This function config pwr on whether work under run/sleep/hibernate/rtc mode.

Parameters
[in]ctrlpwr on defined in sdrv_pmu_pwr_on_e.
[in]modepmu work mode defined in sdrv_pmu_mode_e.
[in]configconfig parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_delay_config()

status_t sdrv_pmu_pwron_delay_config ( sdrv_pmu_delay_period_e  period,
sdrv_pmu_pwr_on_e  ctrl,
uint8_t  delay,
uint8_t  delay_adj 
)

Config pwron delay setting in different period.

Delay time = 32Kcycle * (2^delay) * (delay_adj * 2 + 1)

Parameters
[in]periodperiod defined in sdrv_pmu_delay_period_e.
[in]ctrlpwron defined in sdrv_pmu_pwr_on_e.
[in]delaydelay value.
[in]delay_adjdelay adjust value.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_software_override_enable()

status_t sdrv_pmu_pwron_software_override_enable ( sdrv_pmu_pwr_on_e  ctrl,
bool  enable 
)

Enable software override pwron.

Parameters
[in]ctrlpwron defined in sdrv_pmu_pwr_on_e.
[in]enabletrue or false.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_software_override_value()

status_t sdrv_pmu_pwron_software_override_value ( sdrv_pmu_pwr_on_e  ctrl,
bool  value 
)

Software override pwron value.

Parameters
[in]ctrlpwron defined in sdrv_pmu_pwr_on_e.
[in]valuetrue or false.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_target_config()

status_t sdrv_pmu_pwron_target_config ( sdrv_pmu_pwr_on_e  ctrl,
sdrv_pmu_target_e  target 
)

Config internal DCDC/LDO power supply.

This function config internal DCDC/LDO power supply to SAF/AP/Others. It will effect hardware power on sequence.

Parameters
[in]ctrlpwr on defined in sdrv_pmu_pwr_on_e.
[in]targettarget defined in sdrv_pmu_target_e.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_target_config_with_mode()

status_t sdrv_pmu_pwron_target_config_with_mode ( sdrv_pmu_pwr_on_e  ctrl,
sdrv_pmu_mode_e  mode,
sdrv_pmu_target_e  target 
)

Config pwron power supply target under different mode.

Parameters
[in]ctrlpwr on defined in sdrv_pmu_pwr_on_e.
[in]modepmu work mode defined in sdrv_pmu_mode_e.
[in]targettarget defined in sdrv_pmu_target_e.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_watchdog_config()

status_t sdrv_pmu_pwron_watchdog_config ( sdrv_pmu_pwron_wdt_config_t wdt_config)

Config power good watchdog parameters for pwron.

Parameters
[in]wdt_configpwron watchdog config parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_pwron_watchdog_enable()

status_t sdrv_pmu_pwron_watchdog_enable ( sdrv_pmu_pwr_on_e  pwron,
sdrv_pmu_pwron_wdt_enable_t enable_config 
)

Enable power good watchdog counter for specific pwron.

Parameters
[in]pwronpwron defined in sdrv_pmu_pwr_on_e.
[in]enable_configenable config.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_rc24m_enable()

status_t sdrv_pmu_rc24m_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control rc24m analog power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_rtc_to_off_ap_domain_power_good()

status_t sdrv_pmu_rtc_to_off_ap_domain_power_good ( sdrv_pmu_pg_e  cfg)

Config ap domain power good consider or ignore when switching from RTC state to OFF state.

This function config ap domain power good whether consider when enter RTC mode. If enabled, switching from RTC state to OFF state only when the power down counter is done and ap domain power are not good. If disabled, switching from RTC state to OFF state only when the power down counter is done, but ignore ap domain power good.

Parameters
[in]cfgSDRV_PMU_POWER_GOOD_ENABLE/SDRV_PMU_POWER_GOOD_DISABLE
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_rtc_to_off_saf_domain_power_good()

status_t sdrv_pmu_rtc_to_off_saf_domain_power_good ( sdrv_pmu_pg_e  cfg)

Config saf domain power good consider or ignore when switching from RTC state to OFF state.

This function config saf domain power good whether consider when enter RTC mode. If enabled, switching from RTC state to OFF state only when the power down counter is done and saf domain power are not good. If disabled, switching from RTC state to OFF state only when the power down counter is done, but ignore saf domain power good.

Parameters
[in]cfgSDRV_PMU_POWER_GOOD_ENABLE/SDRV_PMU_POWER_GOOD_DISABLE
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_saf_domain_power_good_monitor()

status_t sdrv_pmu_saf_domain_power_good_monitor ( sdrv_pmu_pg_e  cfg)

Config saf domain 3.3v and 0.8v power good monitor.

This function config saf domain power monitor , when enabled, once 3.3v or 0.8v is not good, saf isolate and sf_por_b is assert. After power is good, saf isolate and sf_por_b deassert.

Parameters
[in]cfgSDRV_PMU_POWER_GOOD_ENABLE/SDRV_PMU_POWER_GOOD_DISABLE
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_srcs_clear()

status_t sdrv_pmu_srcs_clear ( uint32_t  bitmap)

Clear corresponding bit to 0 for 32bit state retention bits register.

Parameters
[in]bitmapeach bit description in enum srcs_bit
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_srcs_set()

status_t sdrv_pmu_srcs_set ( uint32_t  bitmap)

Set corresponding bit to 1 for 32bit state retention bits register.

Parameters
[in]bitmapeach bit description in enum srcs_bit
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_target_power_on_config()

status_t sdrv_pmu_target_power_on_config ( sdrv_pmu_target_e  target,
sdrv_pmu_mode_e  mode,
bool  powered 
)

Config SAF/AP domain whether powered under different mode.

This function config SAF/AP domain whether powered in run/sleep/hibernate/rtc mode. For example, if AP domain config powered in run mode and not powered in hibernate mode, after wakeup from hibernate to run, hardware will auto reset ap domain.

Parameters
[in]targettarget defined in sdrv_pmu_target_e.
[in]modemode defined in sdrv_pmu_mode_e.
[in]poweredtrue represents powered, false represents not powered.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_vd_ap_enable()

status_t sdrv_pmu_vd_ap_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control AP voltage detect analog power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_vd_sf_ana_enable()

status_t sdrv_pmu_vd_sf_ana_enable ( bool  enable)

Enable or disable analog IP power.

This function config PMU to control SF voltage detect analog power. Default is power on.

Parameters
[in]enabletrue represents power on, false represents power down.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup0_glitch_disable()

status_t sdrv_pmu_wakeup0_glitch_disable ( uint32_t  mask)

Disable glitch circle for wakeup pin 0.

This function disable glitch circle for wakeup pin 0, in this case, it can't glitch < 32khz pulse. When both edge disabled, filter for wakeup 0 will be re-enabled.

Parameters
[in]maskOR'ed value, bit0: rising edge, bit1: falling edge. for example: (1<<0) | (1<<1) means both edge.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup0_glitch_enable()

status_t sdrv_pmu_wakeup0_glitch_enable ( uint32_t  mask)

Enable glitch circle for wakeup pin 0.

This function enable glitch circle for wakeup pin 0, in this case, it can glitch < 32khz pulse. When enable this feature, filter for wakeup 0 will be disabled.

Parameters
[in]maskOR'ed value, bit0: rising edge, bit1: falling edge. for example: (1<<0) | (1<<1) means both edge.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_disable()

status_t sdrv_pmu_wakeup_disable ( uint32_t  disable_bitmap)

Disable wakeup source when in RTC mode.

This function disable which source can use to wakeup from RTC mode. Source are: SDRV_PMU_WAKEUP_PIN0_MASK, SDRV_PMU_WAKEUP_PIN1_MASK SDRV_PMU_WAKEUP_RTC_MASK, SDRV_PMU_WAKEUP_BC_MASK

Parameters
[in]disable_bitmapOR'ed value of the source.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_enable()

status_t sdrv_pmu_wakeup_enable ( uint32_t  enable_bitmap)

Enable wakeup source when in RTC mode.

This function enable which source can use to wakeup from RTC mode. Source are: SDRV_PMU_WAKEUP_PIN0_MASK, SDRV_PMU_WAKEUP_PIN1_MASK SDRV_PMU_WAKEUP_RTC_MASK, SDRV_PMU_WAKEUP_BC_MASK

Parameters
[in]enable_bitmapOR'ed value of the source.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_latch_set()

status_t sdrv_pmu_wakeup_latch_set ( sdrv_pmu_wakeup_in_rtc_e  latch)

Config pmu action when receive wakeup event during rtc state.

PMU has RTC and OFF state. During RTC state, pmu doesn't respond to wakeup event. It only responds to wakeup event in OFF state. This function config whether pmu ignore rtc state wakeup event or latch wakeup when enter off state.

Parameters
[in]latchdefined in sdrv_pmu_wakeup_in_rtc_e.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_pin_enable()

status_t sdrv_pmu_wakeup_pin_enable ( sdrv_pmu_wakeup_pin_e  wakeup_pin,
bool  enable 
)

Enable or Disable specific system wakeup pin.

This function config whether specific wakeup pin use or not.

Parameters
[in]wakeup_pinwakeup pin defined in sdrv_pmu_wakeup_pin_e.
[in]enabletrue represents enable, false represents disable.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_pin_filter_config()

status_t sdrv_pmu_wakeup_pin_filter_config ( sdrv_pmu_wakeup_pin_e  wakeup_pin,
sdrv_pmu_edge_filter_t filter_config 
)

Config edge filter for wakeup pin.

This function config edge filter parameters for specific wakeup pin.

Parameters
[in]wakeup_pinwakeup pin defined in sdrv_pmu_wakeup_pin_e.
[in]filter_configwakeup pin filter parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_pin_init()

status_t sdrv_pmu_wakeup_pin_init ( sdrv_pmu_wakeup_pin_e  wakeup_pin,
sdrv_pmu_wakeup_pin_config_t pin_config 
)

Config specific wakeup pin.

This function config wakeup pin active level or pulse.

Parameters
[in]wakeup_pinwakeup pin defined in sdrv_pmu_wakeup_pin_e.
[in]pin_configwakeup pin config parameters.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_pin_logic_set()

status_t sdrv_pmu_wakeup_pin_logic_set ( sdrv_pmu_wakeup_pin_logic_e  logic)

Config wakeup pin 0/1 generate wakeup event logic.

This function config whether generate wakeup event needs both wakeup pins active or not.

Parameters
[in]logicdefined in sdrv_pmu_wakeup_pin_logic_e.
Returns
SDRV_STATUS_OK or error code.

◆ sdrv_pmu_wakeup_pins_config()

status_t sdrv_pmu_wakeup_pins_config ( sdrv_pmu_wakeuppins_config_t config)

Config Wake pin 0 and 1 enable and active level.

Parameters
[in]configconfig parameters defined in sdrv_pmu_wakeuppins_config_t.
Returns
SDRV_STATUS_OK or error code.