24#define FSL_SMC_DRIVER_VERSION (MAKE_VERSION(2, 0, 4))
32#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
35#if (defined(FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE)
39#if (defined(FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE) && FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE)
43#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
47#if (defined(FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE)
53#if (defined(FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE) && FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE)
70#if (defined(FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE)
73#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
76#if (defined(FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE) && FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE)
88#if (defined(FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE) && FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE)
100#if (defined(FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE)
103#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
108#if (defined(FSL_FEATURE_SMC_USE_VLLSCTRL_REG) && FSL_FEATURE_SMC_USE_VLLSCTRL_REG) || \
109 (defined(FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM) && FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM) || \
110 (defined(FSL_FEATURE_SMC_HAS_LLS_SUBMODE) && FSL_FEATURE_SMC_HAS_LLS_SUBMODE)
141#if (defined(FSL_FEATURE_SMC_HAS_VERID) && FSL_FEATURE_SMC_HAS_VERID)
153#if (defined(FSL_FEATURE_SMC_HAS_PARAM) && FSL_FEATURE_SMC_HAS_PARAM)
166#if (defined(FSL_FEATURE_SMC_HAS_LLS_SUBMODE) && FSL_FEATURE_SMC_HAS_LLS_SUBMODE) || \
167 (defined(FSL_FEATURE_SMC_HAS_LPOPO) && FSL_FEATURE_SMC_HAS_LPOPO)
173#if (defined(FSL_FEATURE_SMC_HAS_LLS_SUBMODE) && FSL_FEATURE_SMC_HAS_LLS_SUBMODE)
176#if (defined(FSL_FEATURE_SMC_HAS_LPOPO) && FSL_FEATURE_SMC_HAS_LPOPO)
182#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
188#if (defined(FSL_FEATURE_SMC_USE_VLLSCTRL_REG) && FSL_FEATURE_SMC_USE_VLLSCTRL_REG) || \
189 (defined(FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM) && FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM) || \
190 (defined(FSL_FEATURE_SMC_HAS_LLS_SUBMODE) && FSL_FEATURE_SMC_HAS_LLS_SUBMODE)
193#if (defined(FSL_FEATURE_SMC_HAS_PORPO) && FSL_FEATURE_SMC_HAS_PORPO)
196#if (defined(FSL_FEATURE_SMC_HAS_RAM2_POWER_OPTION) && FSL_FEATURE_SMC_HAS_RAM2_POWER_OPTION)
199#if (defined(FSL_FEATURE_SMC_HAS_LPOPO) && FSL_FEATURE_SMC_HAS_LPOPO)
209#if defined(__cplusplus)
216#if (defined(FSL_FEATURE_SMC_HAS_VERID) && FSL_FEATURE_SMC_HAS_VERID)
228 *((uint32_t *)versionId) = base->VERID;
232#if (defined(FSL_FEATURE_SMC_HAS_PARAM) && FSL_FEATURE_SMC_HAS_PARAM)
262 base->PMPROT = allowedModes;
322#if (defined(FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE) && FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE)
349#if (defined(FSL_FEATURE_SMC_HAS_LPWUI) && FSL_FEATURE_SMC_HAS_LPWUI)
384#if (defined(FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE)
385#if ((defined(FSL_FEATURE_SMC_HAS_LLS_SUBMODE) && FSL_FEATURE_SMC_HAS_LLS_SUBMODE) || \
386 (defined(FSL_FEATURE_SMC_HAS_LPOPO) && FSL_FEATURE_SMC_HAS_LPOPO))
406#if (defined(FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE) && FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE)
419#if defined(__cplusplus)
static constexpr persistent_config_s * config
int32_t status_t
Type used for all status and error return values.
struct _smc_power_mode_vlls_config smc_power_mode_vlls_config_t
SMC Very Low-Leakage Stop power mode configuration.
_smc_stop_submode
VLLS/LLS stop sub mode definition.
void SMC_GetParam(SMC_Type *base, smc_param_t *param)
Gets the SMC parameter.
_smc_stop_mode
Stop mode definition.
enum _smc_stop_mode smc_stop_mode_t
Stop mode definition.
struct _smc_power_mode_lls_config smc_power_mode_lls_config_t
SMC Low-Leakage Stop power mode configuration.
void SMC_PostExitStopModes(void)
Recovers after wake up from stop modes.
static void SMC_GetVersionId(SMC_Type *base, smc_version_id_t *versionId)
Gets the SMC version ID.
smc_stop_submode_t subMode
void SMC_PreEnterWaitModes(void)
Prepares to enter wait modes.
status_t SMC_SetPowerModeVlpr(SMC_Type *base, bool wakeupMode)
Configures the system to VLPR power mode.
void SMC_PreEnterStopModes(void)
Prepares to enter stop modes.
_smc_power_mode_protection
Power Modes Protection.
struct _smc_param smc_param_t
IP parameter definition.
status_t SMC_SetPowerModeLls(SMC_Type *base, const smc_power_mode_lls_config_t *config)
Configures the system to LLS power mode.
status_t SMC_SetPowerModeVlpw(SMC_Type *base)
Configures the system to VLPW power mode.
enum _smc_partial_stop_mode smc_partial_stop_option_t
Partial STOP option.
struct _smc_version_id smc_version_id_t
IP version ID definition.
status_t SMC_SetPowerModeVlps(SMC_Type *base)
Configures the system to VLPS power mode.
static void SMC_SetPowerModeProtection(SMC_Type *base, uint8_t allowedModes)
Configures all power mode protection settings.
static smc_power_state_t SMC_GetPowerModeState(SMC_Type *base)
Gets the current power mode status.
status_t SMC_SetPowerModeRun(SMC_Type *base)
Configures the system to RUN power mode.
enum _smc_power_mode_protection smc_power_mode_protection_t
Power Modes Protection.
status_t SMC_SetPowerModeStop(SMC_Type *base, smc_partial_stop_option_t option)
Configures the system to Stop power mode.
_smc_partial_stop_mode
Partial STOP option.
status_t SMC_SetPowerModeWait(SMC_Type *base)
Configures the system to WAIT power mode.
enum _smc_stop_submode smc_stop_submode_t
VLLS/LLS stop sub mode definition.
_smc_status
SMC configuration status.
_smc_run_mode
Run mode definition.
_smc_power_state
Power Modes in PMSTAT.
enum _smc_power_state smc_power_state_t
Power Modes in PMSTAT.
smc_stop_submode_t subMode
void SMC_PostExitWaitModes(void)
Recovers after wake up from stop modes.
enum _smc_run_mode smc_run_mode_t
Run mode definition.
bool enablePorDetectInVlls0
status_t SMC_SetPowerModeVlls(SMC_Type *base, const smc_power_mode_vlls_config_t *config)
Configures the system to VLLS power mode.
status_t SMC_SetPowerModeHsrun(SMC_Type *base)
Configures the system to HSRUN power mode.
@ kSMC_AllowPowerModeVlls
@ kSMC_AllowPowerModeHsrun
SMC Low-Leakage Stop power mode configuration.
SMC Very Low-Leakage Stop power mode configuration.
IP version ID definition.
static tstrWifiInitParam param