MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Power Driver

Overview

Power driver provides APIs to control peripherals power and control the system power mode.

Macros

#define FSL_SDK_ENABLE_DRIVER_POWER_CONTROL   (1)
 Enable power control.
 

Enumerations

enum  pd_bit_t {
  kPDRUNCFG_PD_FLASH = SYSCON_PDRUNCFG_FLASH_PD_MASK,
  kPDRUNCFG_PD_TSEN = SYSCON_PDRUNCFG_TSENS_PD_MASK,
  kPDRUNCFG_PD_EEPROM = SYSCON_PDRUNCFG_EEPROM_PD_MASK
}
 power down configurations mask More...
 
enum  power_gen_reg_t {
  kPmu_GenReg0 = 0U,
  kPmu_GenReg1 = 1U,
  kPmu_GenReg2 = 2U,
  kPmu_GenReg3 = 3U,
  kPmu_GenReg4 = 4U
}
 pmu general purpose register index More...
 
enum  power_src_sel_t {
  kPmu_PowerSourceFromVBAT = 1U,
  kPmu_PowerSourceFromNFC = 2U,
  kPmu_PowerSourceAutoSwitch = 3U
}
 Power source selection. More...
 
enum  power_dpd_wakeup_pin_t { kPmu_Dpd_WakeupPin_PIO0_0 = PMU_PCON_WAKEUP_MASK }
 Power deep power down mode wakeup pin selection. More...
 
enum  _power_interrupt_status {
  kPmu_StatusBOD = 1U << 0U,
  kPmu_StatusDetectedRFPower = 1U << 1U
}
 power interrupt status More...
 
enum  _power_status {
  kPmu_NFCPowerSwitchEnabled = PMU_PSTAT_PSWNFC_MASK,
  kPmu_BatteryPowerSwitchEnabled = PMU_PSTAT_PSWBAT_MASK,
  kPmu_BodDetectVddLowerThan1V8 = PMU_PSTAT_BOD1V8_MASK,
  kPmu_RFDetected = PMU_PSTAT_RFPOW_MASK
}
 power status More...
 
enum  _power_deep_power_down_wakeup_src {
  kPmu_DeepPowerDownWakeupSrcReset = 0,
  kPmu_DeepPowerDownWakeupSrcLDO = 1,
  kPmu_DeepPowerDownWakeupSrcRTC = 2,
  kPmu_DeepPowerDownWakeupSrcWakeupPin = 3
}
 deep power down wakeup source More...
 

Driver version

#define FSL_POWER_DRIVER_VERSION   (MAKE_VERSION(2, 0, 3))
 power driver version 2.0.3. More...
 

SYSCON Power Configuration

static void POWER_EnablePD (pd_bit_t en)
 API to enable PDRUNCFG bit in the Syscon. More...
 
static void POWER_DisablePD (pd_bit_t en)
 API to disable PDRUNCFG bit in the Syscon. More...
 
static void POWER_EnableFlashRemap (bool enable)
 API to enable flash remap feature for deep sleep mode. More...
 

ARM core Power Configuration

static void POWER_EnableDeepSleep (void)
 API to enable deep sleep bit in the ARM Core. More...
 
static void POWER_DisableDeepSleep (void)
 API to disable deep sleep bit in the ARM Core. More...
 

PMU functionality

void POWER_EnterSleep (void)
 API to enter sleep power mode. More...
 
void POWER_EnterDeepSleep (void)
 API to enter deep sleep power mode. More...
 
void POWER_EnterDeepPowerDownMode (void)
 API to enter deep power down mode. More...
 
uint32_t POWER_ReadPmuReg (void *regAddr)
 API to read PMU register. More...
 
void POWER_WritePmuReg (void *regAddr, uint32_t regValue)
 API to write PMU register. More...
 
void POWER_SetPmuRegBit (void *regAddr, uint32_t mask)
 API to set PMU register bit. More...
 
void POWER_ClrPmuRegBit (void *regAddr, uint32_t mask)
 API to clr PMU register bit. More...
 
static void POWER_EnablePmuInterrupt (uint32_t mask, bool enable)
 API to enable PMU interrupt. More...
 
static void POWER_SetRetainData (power_gen_reg_t index, uint32_t data)
 API to retore data to general purpose register which can be retain during deep power down mode. More...
 
static uint32_t POWER_GetRetainData (power_gen_reg_t index)
 API to get data from general purpose register which retain during deep power down mode. More...
 
static uint32_t POWER_GetSleepModeFlag (void)
 API to get sleep mode flag. More...
 
static void POWER_ClrSleepModeFlag (void)
 API to clear sleep mode flag.
 
static uint32_t POWER_GetDeepPowerDownModeFlag (void)
 API to get deep power down mode flag. More...
 
static uint32_t POWER_GetDeepPowerDownWakeupSrc (void)
 API to get deep power down mode exit source. More...
 
static void POWER_ClrDeepPowerDownModeFlag (void)
 API to clear deep power down mode flag.
 
static void POWER_EnableAutoPowerSwitch (bool enable)
 API to enable auto power mode switch. More...
 
static void POWER_EnableAutoBatterySwitch (bool enable)
 API to enable auto battery switch. More...
 
static void POWER_EnableDetectBrownOut (bool enable)
 API to enable detection of VDD_ALON is falls below the threshold level(1.8v) More...
 
static void POWER_EnableWakeupPinForDeepPowerDown (power_dpd_wakeup_pin_t pin, bool enable)
 API to enable detection of VDD_ALON is falls below the threshold level(1.8v) More...
 
static bool POWER_GetPmuAccessReadyStat (void)
 API to get PMU access ready status. More...
 
void POWER_SelectPowerSource (power_src_sel_t sel)
 API to select power source. More...
 

PMU status

static uint32_t PMU_GetStatus (void)
 API to get PMU status,. More...
 
static uint32_t PMU_GetRawIntStatus (void)
 API to get PMU raw interrupt status,. More...
 
static uint32_t PMU_GetIntStatus (void)
 API to get PMU interrupt status. More...
 
static void PMU_ClrInterruptStatus (uint32_t mask)
 API to clear PMU interrupt status. More...
 

Macro Definition Documentation

#define FSL_POWER_DRIVER_VERSION   (MAKE_VERSION(2, 0, 3))

Enumeration Type Documentation

enum pd_bit_t
Enumerator
kPDRUNCFG_PD_FLASH 

Flash power down.

kPDRUNCFG_PD_TSEN 

Temperature sensor power down.

kPDRUNCFG_PD_EEPROM 

Eeprom power down.

Enumerator
kPmu_GenReg0 

general purpose register0

kPmu_GenReg1 

general purpose register1

kPmu_GenReg2 

general purpose register2

kPmu_GenReg3 

general purpose register3

kPmu_GenReg4 

general purpose register4

Enumerator
kPmu_PowerSourceFromVBAT 

power source from VBAT, external power

kPmu_PowerSourceFromNFC 

power source from NFC

kPmu_PowerSourceAutoSwitch 

power source is switch automatically

Enumerator
kPmu_Dpd_WakeupPin_PIO0_0 

Wake up function assign to PIO0_0.

Enumerator
kPmu_StatusBOD 

BOD interrupt.

kPmu_StatusDetectedRFPower 

Detected RF power interrupt.

Enumerator
kPmu_NFCPowerSwitchEnabled 

NFC power switch enabled.

kPmu_BatteryPowerSwitchEnabled 

Battery power switch enabled.

kPmu_BodDetectVddLowerThan1V8 

BOD detected VDD < 1.8V.

kPmu_RFDetected 

RF power field detected.

Enumerator
kPmu_DeepPowerDownWakeupSrcReset 

wakeup source is POR or reset pin

kPmu_DeepPowerDownWakeupSrcLDO 

wakeup source is LDO enabled

kPmu_DeepPowerDownWakeupSrcRTC 

wakeup source is RTC timer event

kPmu_DeepPowerDownWakeupSrcWakeupPin 

wakeup source is Wakeup pin

Function Documentation

static void POWER_EnablePD ( pd_bit_t  en)
inlinestatic

Note that enabling the bit powers down the peripheral

Parameters
enperipheral for which to enable the PDRUNCFG bit
Returns
none
static void POWER_DisablePD ( pd_bit_t  en)
inlinestatic

Note that disabling the bit powers up the peripheral

Parameters
enperipheral for which to disable the PDRUNCFG bit
Returns
none
static void POWER_EnableFlashRemap ( bool  enable)
inlinestatic
Parameters
enable,:true is enable remap feature, false is disable the feature.
static void POWER_EnableDeepSleep ( void  )
inlinestatic
Returns
none
static void POWER_DisableDeepSleep ( void  )
inlinestatic
Returns
none
void POWER_EnterSleep ( void  )
Returns
none
void POWER_EnterDeepSleep ( void  )
Returns
none
void POWER_EnterDeepPowerDownMode ( void  )
Returns
none
uint32_t POWER_ReadPmuReg ( void *  regAddr)
Parameters
regAddraddress of PMU register.
Returns
register value.
void POWER_WritePmuReg ( void *  regAddr,
uint32_t  regValue 
)
Parameters
regAddraddress of PMU register.
regValuevalue to write.
Returns
none
void POWER_SetPmuRegBit ( void *  regAddr,
uint32_t  mask 
)
Parameters
regAddraddress of PMU register.
maskbit mask.
Returns
none
void POWER_ClrPmuRegBit ( void *  regAddr,
uint32_t  mask 
)
Parameters
regAddraddress of PMU register.
maskbit mask.
Returns
none
static void POWER_EnablePmuInterrupt ( uint32_t  mask,
bool  enable 
)
inlinestatic
Parameters
maskinterrupt mask.
enabletrue is enable, false is disable.
Returns
none
static void POWER_SetRetainData ( power_gen_reg_t  index,
uint32_t  data 
)
inlinestatic

Note the kPMU_GenReg4 can retore 3 byte data only, so the general purpose register can store 19bytes data.

Parameters
index,:general purpose data register index.
data,:data to restore.
static uint32_t POWER_GetRetainData ( power_gen_reg_t  index)
inlinestatic

Note the kPMU_GenReg4 can retore 3 byte data only, so the general purpose register can store 19bytes data.

Parameters
index,:general purpose data register index.
Returns
data stored in the general purpose register.
static uint32_t POWER_GetSleepModeFlag ( void  )
inlinestatic
Returns
sleep mode flag: 0 is active mode, 1 is sleep mode/deep sleep mode entered.
static uint32_t POWER_GetDeepPowerDownModeFlag ( void  )
inlinestatic
Returns
sleep mode flag: 0 not deep power down, 1 is deep power down mode entered.
static uint32_t POWER_GetDeepPowerDownWakeupSrc ( void  )
inlinestatic
Returns
wakeup source of deep power down mode, reference _power_deep_power_down_wakeup_src.
static void POWER_EnableAutoPowerSwitch ( bool  enable)
inlinestatic
Parameters
enabletrue is enable, false is disable.
static void POWER_EnableAutoBatterySwitch ( bool  enable)
inlinestatic
Parameters
enabletrue is enable, false is disable.
static void POWER_EnableDetectBrownOut ( bool  enable)
inlinestatic
Parameters
enabletrue is enable, false is disable.
static void POWER_EnableWakeupPinForDeepPowerDown ( power_dpd_wakeup_pin_t  pin,
bool  enable 
)
inlinestatic
Parameters
pinpin used as wakeup source
enabletrue is enable, false is disable.
static bool POWER_GetPmuAccessReadyStat ( void  )
inlinestatic
Returns
true is PMU ready for access, false is PMU not ready for access.
void POWER_SelectPowerSource ( power_src_sel_t  sel)
Parameters
selpower source.
static uint32_t PMU_GetStatus ( void  )
inlinestatic
Returns
PMU statue, reference _power_status.
static uint32_t PMU_GetRawIntStatus ( void  )
inlinestatic
Returns
status for each interrupt condition that is asserted, regardless of whether the interrupt is enabled.
static uint32_t PMU_GetIntStatus ( void  )
inlinestatic
Returns
status for each interrupt that is enabled.
static void PMU_ClrInterruptStatus ( uint32_t  mask)
inlinestatic
Parameters
maskinterrupt mask value to clear.