The KSDK provides a Peripheral driver for the System Mode Controller (SMC) module of Kinetis devices. The SMC module is responsible for sequencing the system into and out of all low-power Stop and Run modes
API functions are provided for configuring the system working in a dedicated power mode. For different power modes, function SMC_SetPowerModexxx
accepts different parameters. System power mode state transitions are not available for between power modes. For details about available transitions, see the Power mode transitions section in the SoC reference manual.
|
enum | smc_power_mode_protection_t {
kSMC_AllowPowerModeVlp = SMC_PMPROT_AVLP_MASK,
kSMC_AllowPowerModeAll
} |
| Power Modes Protection. More...
|
|
enum | smc_power_state_t {
kSMC_PowerStateRun = 0x01U << 0U,
kSMC_PowerStateStop = 0x01U << 1U,
kSMC_PowerStateVlpr = 0x01U << 2U,
kSMC_PowerStateVlpw = 0x01U << 3U,
kSMC_PowerStateVlps = 0x01U << 4U
} |
| Power Modes in PMSTAT. More...
|
|
enum | smc_run_mode_t {
kSMC_RunNormal = 0U,
kSMC_RunVlpr = 2U
} |
| Run mode definition. More...
|
|
enum | smc_stop_mode_t {
kSMC_StopNormal = 0U,
kSMC_StopVlps = 2U
} |
| Stop mode definition. More...
|
|
enum | smc_partial_stop_option_t {
kSMC_PartialStop = 0U,
kSMC_PartialStop1 = 1U,
kSMC_PartialStop2 = 2U
} |
| Partial STOP option. More...
|
|
enum | _smc_status { kStatus_SMC_StopAbort = MAKE_STATUS(kStatusGroup_POWER, 0)
} |
| SMC configuration status. More...
|
|
Enumerator |
---|
kSMC_AllowPowerModeVlp |
Allow Very-Low-Power Mode.
|
kSMC_AllowPowerModeAll |
Allow all power mode.
|
Enumerator |
---|
kSMC_PowerStateRun |
0000_0001 - Current power mode is RUN
|
kSMC_PowerStateStop |
0000_0010 - Current power mode is STOP
|
kSMC_PowerStateVlpr |
0000_0100 - Current power mode is VLPR
|
kSMC_PowerStateVlpw |
0000_1000 - Current power mode is VLPW
|
kSMC_PowerStateVlps |
0001_0000 - Current power mode is VLPS
|
Enumerator |
---|
kSMC_RunNormal |
normal RUN mode.
|
kSMC_RunVlpr |
Very-Low-Power RUN mode.
|
Enumerator |
---|
kSMC_StopNormal |
Normal STOP mode.
|
kSMC_StopVlps |
Very-Low-Power STOP mode.
|
Enumerator |
---|
kSMC_PartialStop |
STOP - Normal Stop mode.
|
kSMC_PartialStop1 |
Partial Stop with both system and bus clocks disabled.
|
kSMC_PartialStop2 |
Partial Stop with system clock disabled and bus clock enabled.
|
Enumerator |
---|
kStatus_SMC_StopAbort |
Entering Stop mode is abort.
|
static void SMC_SetPowerModeProtection |
( |
SMC_Type * |
base, |
|
|
uint8_t |
allowedModes |
|
) |
| |
|
inlinestatic |
This function configures the power mode protection settings for supported power modes in the specified chip family. The available power modes are defined in the smc_power_mode_protection_t. This should be done at an early system level initialization stage. See the reference manual for details. This register can only write once after the power reset.
The allowed modes are passed as bit map, for example, to allow LLS and VLLS, use SMC_SetPowerModeProtection(kSMC_AllowPowerModeVlls | kSMC_AllowPowerModeVlps). To allow all modes, use SMC_SetPowerModeProtection(kSMC_AllowPowerModeAll).
- Parameters
-
base | SMC peripheral base address. |
allowedModes | Bitmap of the allowed power modes. |
This function returns the current power mode stat. Once application switches the power mode, it should always check the stat to check whether it runs into the specified mode or not. An application should check this mode before switching to a different mode. The system requires that only certain modes can switch to other specific modes. See the reference manual for details and the smc_power_state_t for information about the power stat.
- Parameters
-
base | SMC peripheral base address. |
- Returns
- Current power mode status.
status_t SMC_SetPowerModeRun |
( |
SMC_Type * |
base | ) |
|
- Parameters
-
base | SMC peripheral base address. |
- Returns
- SMC configuration error code.
status_t SMC_SetPowerModeWait |
( |
SMC_Type * |
base | ) |
|
- Parameters
-
base | SMC peripheral base address. |
- Returns
- SMC configuration error code.
- Parameters
-
base | SMC peripheral base address. |
option | Partial Stop mode option. |
- Returns
- SMC configuration error code.
status_t SMC_SetPowerModeVlpr |
( |
SMC_Type * |
base | ) |
|
- Parameters
-
base | SMC peripheral base address. |
- Returns
- SMC configuration error code.
status_t SMC_SetPowerModeVlpw |
( |
SMC_Type * |
base | ) |
|
- Parameters
-
base | SMC peripheral base address. |
- Returns
- SMC configuration error code.
status_t SMC_SetPowerModeVlps |
( |
SMC_Type * |
base | ) |
|
- Parameters
-
base | SMC peripheral base address. |
- Returns
- SMC configuration error code.