Power driver provides APIs to control peripherals power and control the system power mode.
|
#define | LOWPOWER_CFG_LPMODE_ACTIVE 0 |
| ACTIVE mode.
|
|
#define | LOWPOWER_CFG_LPMODE_DEEPSLEEP 1 |
| DEEP SLEEP mode.
|
|
#define | LOWPOWER_CFG_LPMODE_POWERDOWN 2 |
| POWER DOWN mode.
|
|
#define | LOWPOWER_CFG_LPMODE_DEEPPOWERDOWN 3 |
| DEEP POWER DOWN mode.
|
|
#define | LOWPOWER_CFG_LPMODE_SLEEP 4 |
| SLEEP mode.
|
|
#define | LOWPOWER_CFG_SELCLOCK_1MHZ 0 |
| The 1 MHz clock is used during the configuration of the PMC.
|
|
#define | LOWPOWER_CFG_SELCLOCK_12MHZ 1 |
| The 12 MHz clock is used during the configuration of the PMC (to speed up PMC configuration process)
|
|
#define | LOWPOWER_CFG_SELMEMSUPPLY_LDOMEM 0 |
| In DEEP SLEEP power mode, the Memories are supplied by the LDO_MEM.
|
|
#define | LOWPOWER_CFG_SELMEMSUPPLY_LDODEEPSLEEP 1 |
| In DEEP SLEEP power mode, the Memories are supplied by the LDO_DEEP_SLEEP (or DCDC)
|
|
#define | LOWPOWER_CFG_MEMLOWPOWERMODE_SOURCEBIASING 0 |
| All SRAM instances use "Source Biasing" as low power mode technic (it is recommended to set LDO_MEM as high \ as possible – 1.1V typical – during low power mode)
|
|
#define | LOWPOWER_CFG_MEMLOWPOWERMODE_VOLTAGESCALING 1 |
| All SRAM instances use "Voltage Scaling" as low power mode technic (it is recommended to set LDO_MEM as low \ as possible – down to 0.7V – during low power mode)
|
|
#define | LOWPOWER_CFG_LDODEEPSLEEPREF_FLASHBUFFER 0 |
| LDO DEEP SLEEP uses Flash Buffer as reference.
|
|
#define | LOWPOWER_CFG_LDODEEPSLEEPREF_BANDGAG0P8V 1 |
| LDO DEEP SLEEP uses Band Gap 0.8V as reference.
|
|
#define | LOWPOWER_CPURETCTRL_ENA_DISABLE 0 |
| In POWER DOWN mode, CPU Retention is disabled.
|
|
#define | LOWPOWER_CPURETCTRL_ENA_ENABLE 1 |
| In POWER DOWN mode, CPU Retention is enabled.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAMX0 (1UL << 0) |
| SRAM instances retention control during low power modes. More...
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAMX1 (1UL << 1) |
| Enable SRAMX_1 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAMX2 (1UL << 2) |
| Enable SRAMX_2 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAMX3 (1UL << 3) |
| Enable SRAMX_3 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM00 (1UL << 4) |
| Enable SRAM0_0 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM01 (1UL << 5) |
| Enable SRAM0_1 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM10 (1UL << 6) |
| Enable SRAM1_0 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM20 (1UL << 7) |
| Enable SRAM2_0 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM30 (1UL << 8) |
| Enable SRAM3_0 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM31 (1UL << 9) |
| Enable SRAM3_1 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM40 (1UL << 10) |
| Enable SRAM4_0 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM41 (1UL << 11) |
| Enable SRAM4_1 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM42 (1UL << 12) |
| Enable SRAM4_2 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM43 (1UL << 13) |
| Enable SRAM4_3 retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM_USB_HS (1UL << 14) |
| Enable SRAM USB HS retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAMRETCTRL_RETEN_RAM_PUF (1UL << 15) |
| Enable SRAM PUFF retention when entering in Low power modes.
|
|
#define | LOWPOWER_SRAM_LPMODE_MASK (0xFUL) |
| SRAM Low Power Modes.
|
|
#define | LOWPOWER_SRAM_LPMODE_ACTIVE (0x6UL) |
| SRAM functional mode.
|
|
#define | LOWPOWER_SRAM_LPMODE_SLEEP (0xFUL) |
| SRAM Sleep mode (Data retention, fast wake up)
|
|
#define | LOWPOWER_SRAM_LPMODE_DEEPSLEEP (0x8UL) |
| SRAM Deep Sleep mode (Data retention, slow wake up)
|
|
#define | LOWPOWER_SRAM_LPMODE_SHUTDOWN (0x9UL) |
| SRAM Shut Down mode (no data retention)
|
|
#define | LOWPOWER_SRAM_LPMODE_POWERUP (0xAUL) |
| SRAM is powering up.
|
|
#define | LOWPOWER_VOLTAGE_LDO_PMU_INDEX 0 |
| LDO Voltage control in Low Power Modes.
|
|
#define | WAKEUP_SYS (1ULL << 0) /*!< [SLEEP, DEEP SLEEP ] */ /* WWDT0_IRQ and BOD_IRQ*/ |
| Low Power Modes Wake up sources.
|
|
#define | WAKEUP_SDMA0 (1ULL << 1) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_GLOBALINT0 (1ULL << 2) |
| [SLEEP, DEEP SLEEP, POWER DOWN ]
|
|
#define | WAKEUP_GPIO_GLOBALINT1 (1ULL << 3) |
| [SLEEP, DEEP SLEEP, POWER DOWN ]
|
|
#define | WAKEUP_GPIO_INT0_0 (1ULL << 4) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_1 (1ULL << 5) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_2 (1ULL << 6) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_3 (1ULL << 7) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_UTICK (1ULL << 8) |
| [SLEEP, ]
|
|
#define | WAKEUP_MRT (1ULL << 9) |
| [SLEEP, ]
|
|
#define | WAKEUP_CTIMER0 (1ULL << 10) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_CTIMER1 (1ULL << 11) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_SCT (1ULL << 12) |
| [SLEEP, ]
|
|
#define | WAKEUP_CTIMER3 (1ULL << 13) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM0 (1ULL << 14) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM1 (1ULL << 15) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM2 (1ULL << 16) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM3 (1ULL << 17) |
| [SLEEP, DEEP SLEEP, POWER DOWN ]
|
|
#define | WAKEUP_FLEXCOMM4 (1ULL << 18) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM5 (1ULL << 19) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM6 (1ULL << 20) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_FLEXCOMM7 (1ULL << 21) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_ADC (1ULL << 22) |
| [SLEEP, ]
|
|
#define | WAKEUP_ACMP_CAPT (1ULL << 24) |
| [SLEEP, DEEP SLEEP, POWER DOWN ]
|
|
#define | WAKEUP_USB0_NEEDCLK (1ULL << 27) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_USB0 (1ULL << 28) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_RTC_LITE_ALARM_WAKEUP (1ULL << 29) |
| [SLEEP, DEEP SLEEP, POWER DOWN, DEEP POWER DOWN]
|
|
#define | WAKEUP_EZH_ARCH_B (1ULL << 30) |
| [SLEEP, ]
|
|
#define | WAKEUP_WAKEUP_MAILBOX (1ULL << 31) |
| [SLEEP, DEEP SLEEP, POWER DOWN ]
|
|
#define | WAKEUP_GPIO_INT0_4 (1ULL << 32) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_5 (1ULL << 33) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_6 (1ULL << 34) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_GPIO_INT0_7 (1ULL << 35) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_CTIMER2 (1ULL << 36) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_CTIMER4 (1ULL << 37) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_OS_EVENT_TIMER (1ULL << 38) |
| [SLEEP, DEEP SLEEP, POWER DOWN, DEEP POWER DOWN]
|
|
#define | WAKEUP_SDIO (1ULL << 42) |
| [SLEEP, ]
|
|
#define | WAKEUP_USB1 (1ULL << 47) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_USB1_NEEDCLK (1ULL << 48) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_SEC_HYPERVISOR_CALL (1ULL << 49) |
| [SLEEP, ]
|
|
#define | WAKEUP_SEC_GPIO_INT0_0 (1ULL << 50) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_SEC_GPIO_INT0_1 (1ULL << 51) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_PLU (1ULL << 52) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_SHA (1ULL << 54) |
| [SLEEP, ]
|
|
#define | WAKEUP_CASPER (1ULL << 55) |
| [SLEEP, ]
|
|
#define | WAKEUP_PUFF (1ULL << 56) |
| [SLEEP, ]
|
|
#define | WAKEUP_PQ (1ULL << 57) |
| [SLEEP, ]
|
|
#define | WAKEUP_SDMA1 (1ULL << 58) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_LSPI_HS (1ULL << 59) |
| [SLEEP, DEEP SLEEP ]
|
|
#define | WAKEUP_ALLWAKEUPIOS (1ULL << 63) |
| [ , DEEP POWER DOWN]
|
|
#define | LOWPOWER_HWWAKE_FORCED (1UL << 0) |
| Sleep Postpone. More...
|
|
#define | LOWPOWER_HWWAKE_PERIPHERALS (1UL << 1) |
| Wake for Flexcomms. More...
|
|
#define | LOWPOWER_HWWAKE_SDMA0 (1UL << 3) |
| Wake for DMA0. More...
|
|
#define | LOWPOWER_HWWAKE_SDMA1 (1UL << 5) |
| Wake for DMA1. More...
|
|
#define | LOWPOWER_HWWAKE_ENABLE_FRO192M (1UL << 31) |
| Need to be set if FRO192M is disable - via PDCTRL0 - in Deep Sleep mode and any of \ LOWPOWER_HWWAKE_PERIPHERALS, LOWPOWER_HWWAKE_SDMA0 or LOWPOWER_HWWAKE_SDMA1 is set.
|
|
#define | LOWPOWER_WAKEUPIOSRC_PIO0_INDEX 0 |
| Wake up I/O sources. More...
|
|
#define | LOWPOWER_WAKEUPIOSRC_PIO1_INDEX 2 |
| Pin P0(28)
|
|
#define | LOWPOWER_WAKEUPIOSRC_PIO2_INDEX 4 |
| Pin P1(18)
|
|
#define | LOWPOWER_WAKEUPIOSRC_PIO3_INDEX 6 |
| Pin P1(30)
|
|
#define | LOWPOWER_WAKEUPIOSRC_DISABLE 0 |
| Wake up is disable.
|
|
#define | LOWPOWER_WAKEUPIOSRC_RISING 1 |
| Wake up on rising edge.
|
|
#define | LOWPOWER_WAKEUPIOSRC_FALLING 2 |
| Wake up on falling edge.
|
|
#define | LOWPOWER_WAKEUPIOSRC_RISING_FALLING 3 |
| Wake up on both rising or falling edges.
|
|
#define | LOWPOWER_WAKEUPIO_PIO0_PULLUPDOWN_INDEX 8 |
| Wake-up I/O 0 pull-up/down configuration index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO1_PULLUPDOWN_INDEX 9 |
| Wake-up I/O 1 pull-up/down configuration index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO2_PULLUPDOWN_INDEX 10 |
| Wake-up I/O 2 pull-up/down configuration index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO3_PULLUPDOWN_INDEX 11 |
| Wake-up I/O 3 pull-up/down configuration index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO0_PULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO0_PULLUPDOWN_INDEX) |
| Wake-up I/O 0 pull-up/down mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO1_PULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO1_PULLUPDOWN_INDEX) |
| Wake-up I/O 1 pull-up/down mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO2_PULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO2_PULLUPDOWN_INDEX) |
| Wake-up I/O 2 pull-up/down mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO3_PULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO3_PULLUPDOWN_INDEX) |
| Wake-up I/O 3 pull-up/down mask.
|
|
#define | LOWPOWER_WAKEUPIO_PULLDOWN 0 |
| Select pull-down.
|
|
#define | LOWPOWER_WAKEUPIO_PULLUP 1 |
| Select pull-up.
|
|
#define | LOWPOWER_WAKEUPIO_PIO0_DISABLEPULLUPDOWN_INDEX 12 |
| Wake-up I/O 0 pull-up/down disable/enable control index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO1_DISABLEPULLUPDOWN_INDEX 13 |
| Wake-up I/O 1 pull-up/down disable/enable control index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO2_DISABLEPULLUPDOWN_INDEX 14 |
| Wake-up I/O 2 pull-up/down disable/enable control index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO3_DISABLEPULLUPDOWN_INDEX 15 |
| Wake-up I/O 3 pull-up/down disable/enable control index.
|
|
#define | LOWPOWER_WAKEUPIO_PIO0_DISABLEPULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO0_DISABLEPULLUPDOWN_INDEX) |
| Wake-up I/O 0 pull-up/down disable/enable mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO1_DISABLEPULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO1_DISABLEPULLUPDOWN_INDEX) |
| Wake-up I/O 1 pull-up/down disable/enable mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO2_DISABLEPULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO2_DISABLEPULLUPDOWN_INDEX) |
| Wake-up I/O 2 pull-up/down disable/enable mask.
|
|
#define | LOWPOWER_WAKEUPIO_PIO3_DISABLEPULLUPDOWN_MASK (1UL << LOWPOWER_WAKEUPIO_PIO3_DISABLEPULLUPDOWN_INDEX) |
| Wake-up I/O 3 pull-up/down disable/enable mask.
|
|
#define | LOWPOWER_TIMERCFG_CTRL_INDEX 0 |
| Wake up timers configuration in Low Power Modes.
|
|
#define | LOWPOWER_TIMERCFG_CTRL_DISABLE 0 |
| Wake Timer Disable.
|
|
#define | LOWPOWER_TIMERCFG_CTRL_ENABLE 1 |
| Wake Timer Enable.
|
|
#define | LOWPOWER_TIMERCFG_TIMER_RTC1KHZ 0 |
| Primary Wake up timers configuration in Low Power Modes. More...
|
|
#define | LOWPOWER_TIMERCFG_TIMER_RTC1HZ 1 |
| 1 Hz Real Time Counter (RTC) used as wake up source
|
|
#define | LOWPOWER_TIMERCFG_TIMER_OSTIMER 2 |
| OS Event Timer used as wake up source.
|
|
#define | LOWPOWER_TIMERCFG_OSC32K_FRO32KHZ 0 |
| Wake up Timers uses FRO 32 KHz as clock source.
|
|
#define | LOWPOWER_TIMERCFG_OSC32K_XTAL32KHZ 1 |
| Wake up Timers uses Chrystal 32 KHz as clock source.
|
|
|
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_SetBodVbatLevel (power_bod_vbat_level_t level, power_bod_hyst_t hyst, bool enBodVbatReset) |
| set BOD VBAT level. More...
|
|
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...
|
|
static void | POWER_PowerDownFlash (void) |
| API to power down flash controller. More...
|
|
static void | POWER_PowerUpFlash (void) |
| API to power up flash controller. More...
|
|
void | POWER_EnterLowPower (LPC_LOWPOWER_T *p_lowpower_cfg) |
| Configures and enters in low power mode. More...
|
|
void | POWER_CycleCpuAndFlash (void) |
| Shut off the Flash and execute the _WFI(), then power up the Flash after wake-up event This MUST BE EXECUTED outside the Flash: either from ROM or from SRAM. The rest could stay in Flash. But, for consistency, it is preferable to have all functions defined in this file implemented in ROM. More...
|
|
void | POWER_EnterDeepSleep (uint32_t exclude_from_pd, uint32_t sram_retention_ctrl, uint64_t wakeup_interrupts, uint32_t hardware_wake_ctrl) |
| Configures and enters in DEEP-SLEEP low power mode. More...
|
|
void | POWER_EnterPowerDown (uint32_t exclude_from_pd, uint32_t sram_retention_ctrl, uint64_t wakeup_interrupts, uint32_t cpu_retention_ctrl) |
| Configures and enters in POWERDOWN low power mode. More...
|
|
void | POWER_EnterDeepPowerDown (uint32_t exclude_from_pd, uint32_t sram_retention_ctrl, uint64_t wakeup_interrupts, uint32_t wakeup_io_ctrl) |
| Configures and enters in DEEPPOWERDOWN low power mode. More...
|
|
void | POWER_EnterSleep (void) |
| Configures and enters in SLEEP low power mode. More...
|
|
void | POWER_SetVoltageForFreq (uint32_t system_freq_hz) |
| Power Library API to choose normal regulation and set the voltage for the desired operating frequency. More...
|
|
uint32_t | POWER_GetLibVersion (void) |
| Power Library API to return the library version. More...
|
|
void | POWER_Xtal16mhzCapabankTrim (int32_t pi32_16MfXtalIecLoadpF_x100, int32_t pi32_16MfXtalPPcbParCappF_x100, int32_t pi32_16MfXtalNPcbParCappF_x100) |
| Sets board-specific trim values for 16MHz XTAL. More...
|
|
void | POWER_Xtal32khzCapabankTrim (int32_t pi32_32kfXtalIecLoadpF_x100, int32_t pi32_32kfXtalPPcbParCappF_x100, int32_t pi32_32kfXtalNPcbParCappF_x100) |
| Sets board-specific trim values for 32kHz XTAL. More...
|
|
void | POWER_SetXtal16mhzLdo (void) |
| Enables and sets LDO for 16MHz XTAL. More...
|
|
void | POWER_SetXtal16mhzTrim (uint32_t amp, uint32_t gm) |
| Set up 16-MHz XTAL Trimmings. More...
|
|