47 #if defined(CHIP_LPC11AXX) || defined(CHIP_LPC11CXX) || defined(CHIP_LPC11EXX) || defined(CHIP_LPC11UXX) || defined(CHIP_LPC1125)
48 #if defined(CHIP_LPC1125)
49 #error "LPC1125 support for the PMU driver is not ready"
63 typedef enum CHIP_PMU_MCUPOWER {
65 #if defined(CHIP_LPC11AXX) || defined(CHIP_LPC11EXX) || defined(CHIP_LPC11UXX)
69 #elif defined(CHIP_LPC11CXX)
70 PMU_MCU_DEEP_PWRDOWN = 3
72 } CHIP_PMU_MCUPOWER_T;
77 #define PMU_PCON_PM_SLEEP (0x0)
78 #if defined(CHIP_LPC11AXX) || defined(CHIP_LPC11EXX) || defined(CHIP_LPC11UXX)
79 #define PMU_PCON_PM_DEEPSLEEP (0x1)
80 #define PMU_PCON_PM_POWERDOWN (0x2)
81 #define PMU_PCON_PM_DEEPPOWERDOWN (0x3)
82 #elif defined(CHIP_LPC11CXX)
83 #define PMU_PCON_PM_DEEPPOWERDOWN (0x2)
85 #define PMU_PCON_SLEEPFLAG (1 << 8)
86 #define PMU_PCON_DPDFLAG (1 << 11)
95 STATIC INLINE void Chip_PMU_WriteGPREG(LPC_PMU_T *pPMU, uint8_t regIndex, uint32_t value)
97 pPMU->GPREG[regIndex] = value;
108 return pPMU->GPREG[regIndex];
118 void Chip_PMU_SleepState(LPC_PMU_T *pPMU);
120 #if defined(CHIP_LPC11AXX) || defined(CHIP_LPC11EXX) || defined(CHIP_LPC11UXX)
130 void Chip_PMU_DeepSleepState(LPC_PMU_T *pPMU);
142 void Chip_PMU_PowerDownState(LPC_PMU_T *pPMU);
156 void Chip_PMU_DeepPowerDownState(LPC_PMU_T *pPMU);
164 void Chip_PMU_Sleep(LPC_PMU_T *pPMU, CHIP_PMU_MCUPOWER_T SleepMode);
175 return (pPMU->PCON & (PMU_PCON_SLEEPFLAG | PMU_PCON_DPDFLAG));
188 pPMU->PCON &= ~flags;