MAX32665 Peripheral Driver API
Peripheral Driver API for the MAX32665
lp.h
1 
6 /* ****************************************************************************
7  * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
8  *
9  * Permission is hereby granted, free of charge, to any person obtaining a
10  * copy of this software and associated documentation files (the "Software"),
11  * to deal in the Software without restriction, including without limitation
12  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13  * and/or sell copies of the Software, and to permit persons to whom the
14  * Software is furnished to do so, subject to the following conditions:
15  *
16  * The above copyright notice and this permission notice shall be included
17  * in all copies or substantial portions of the Software.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22  * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
23  * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  *
27  * Except as contained in this notice, the name of Maxim Integrated
28  * Products, Inc. shall not be used except as stated in the Maxim Integrated
29  * Products, Inc. Branding Policy.
30  *
31  * The mere transfer of this software does not imply any licenses
32  * of trade secrets, proprietary technology, copyrights, patents,
33  * trademarks, maskwork rights, or any other form of intellectual
34  * property whatsoever. Maxim Integrated Products, Inc. retains all
35  * ownership rights.
36  *
37  * $Date: 2019-11-07 13:07:17 -0600 (Thu, 07 Nov 2019) $
38  * $Revision: 48499 $
39  *
40  *************************************************************************** */
41 
42 /* Define to prevent redundant inclusion */
43 #ifndef _LP_H_
44 #define _LP_H_
45 
46 /* **** Includes **** */
47 #include "gpio.h"
48 #include "pwrseq_regs.h"
49 #include <stdint.h>
50 #include "mcr_regs.h"
51 #include "gcr_regs.h"
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
63 typedef enum {
64  MXC_RETAIN_NONE= MXC_S_PWRSEQ_LPCN_RAMRET_DIS,
65  MXC_RETAIN_32k = MXC_S_PWRSEQ_LPCN_RAMRET_EN1,
66  MXC_RETAIN_64k = MXC_S_PWRSEQ_LPCN_RAMRET_EN2,
67  MXC_RETAIN_ALL = MXC_S_PWRSEQ_LPCN_RAMRET_EN3
68 } mxc_ram_retained_t;
69 
74 typedef enum {
75  MXC_LP_V0_9 = 0,
76  MXC_LP_V1_0,
77  MXC_LP_V1_1
78 } mxc_lp_ovr_t;
79 
84 typedef enum {
85  MXC_LP_HIRC = MXC_F_GCR_PMR_HIRCPD,
86  MXC_LP_HIRC96M = MXC_F_GCR_PMR_HIRC96MPD,
87  MXC_LP_HIRC8M = MXC_F_GCR_PMR_HIRC8MPD,
88  MXC_LP_XTAL = MXC_F_GCR_PMR_XTALPB,
90 
95 
104 
112 
117 
122 
127 
132 
137 
142 
147 
152 
157 
162 
167 
172 
177 
182 
187 
192 
197 
202 
207 
212 
217 
222 
227 
232 
237 
242 
247 
252 
257 
262 
267 
272 
277 
282 
287 
292 
297 
302 
307 
312 
317 
322 
327 
332 
337 
342 
347 
352 
357 
362 
367 
372 
377 void MXC_LP_SetRAMRetention(mxc_ram_retained_t ramRetained);
378 
383 
388 
393 
402 void MXC_LP_EnterBackupMode(void* func(void));
403 
409 
410 /*------------------------------------------------------------------------------------------------------------------------------------------------------*/
411 
418 
422 void MXC_LP_BandgapOn (void);
423 
427 void MXC_LP_BandgapOff (void);
428 
435 
442 
447 
452 
463 int MXC_LP_ConfigDeepSleepClocks (uint32_t mask);
464 
469 
474 
479 
484 
489 
494 
499 
504 
509 
514 
519 
524 
529 
534 
539 
544 
549 
554 
559 
564 
568 void MXC_LP_SRCCPowerUp (void);
569 
574 
579 
584 
585 #ifdef __cplusplus
586 }
587 #endif
588 
589 #endif /* _LP_H_ */
MXC_LP_VDD4PowerUp
void MXC_LP_VDD4PowerUp(void)
Power Up VDD4.
MXC_LP_ICache0LightSleepEnable
void MXC_LP_ICache0LightSleepEnable(void)
Enable Icache 0 in light sleep.
MXC_LP_SRCCLightSleepDisable
void MXC_LP_SRCCLightSleepDisable(void)
Disable System Cache in light sleep.
MXC_LP_DisableUSBWakeup
void MXC_LP_DisableUSBWakeup(void)
Disables the USB from waking up the device.
MXC_F_GCR_PMR_XTALPB
#define MXC_F_GCR_PMR_XTALPB
Definition: gcr_regs.h:418
MXC_LP_SysRam0LightSleepDisable
void MXC_LP_SysRam0LightSleepDisable(void)
Disable System Ram 0 in light sleep.
MXC_LP_ICacheXIPLightSleepEnable
void MXC_LP_ICacheXIPLightSleepEnable(void)
Enable Icache XIP in light sleep.
MXC_LP_DisableGPIOWakeup
void MXC_LP_DisableGPIOWakeup(mxc_gpio_cfg_t *wu_pins)
Disables the selected GPIO port and its selected pins as a wake up source. Call this function multi...
MXC_LP_ICacheXIPPowerUp
void MXC_LP_ICacheXIPPowerUp(void)
Wakeup Internal Cache XIP.
MXC_LP_EnterDeepSleepMode
void MXC_LP_EnterDeepSleepMode(void)
Places the device into DEEPSLEEP mode. This function returns once an RTC or external interrupt occur.
MXC_LP_VDD2PowerDown
void MXC_LP_VDD2PowerDown(void)
Power Down VDD2.
MXC_LP_SRCCShutdown
void MXC_LP_SRCCShutdown(void)
Shutdown SRCC.
MXC_LP_SIMOVregBPowerUp
void MXC_LP_SIMOVregBPowerUp(void)
Power Up SIMOV regB.
MXC_F_GCR_PMR_HIRC96MPD
#define MXC_F_GCR_PMR_HIRC96MPD
Definition: gcr_regs.h:412
MXC_LP_CryptoShutdown
void MXC_LP_CryptoShutdown(void)
Shutdown Crypto.
MXC_LP_SysRam4PowerUp
void MXC_LP_SysRam4PowerUp(void)
Wakeup System Ram 4.
MXC_LP_SysRam3LightSleepEnable
void MXC_LP_SysRam3LightSleepEnable(void)
Puts System Ram 3 in light sleep.
MXC_LP_ICacheXIPShutdown
void MXC_LP_ICacheXIPShutdown(void)
Shutdown Internal Cache XIP.
MXC_LP_ICache0PowerUp
void MXC_LP_ICache0PowerUp(void)
Wakeup Internal Cache.
MXC_LP_ICacheXIPLightSleepDisable
void MXC_LP_ICacheXIPLightSleepDisable(void)
Disable Icache XIP in light sleep.
MXC_LP_BandgapOn
void MXC_LP_BandgapOn(void)
Turn bandgap on.
MXC_LP_FastWakeupEnable
void MXC_LP_FastWakeupEnable(void)
Enable Fast Wakeup.
MXC_LP_SysRam2LightSleepEnable
void MXC_LP_SysRam2LightSleepEnable(void)
Puts System Ram 2 in light sleep.
MXC_LP_EnterShutDownMode
void MXC_LP_EnterShutDownMode(void)
Places the device into Shutdown mode. CPU state is not maintained in this mode, so this function neve...
MXC_LP_SysRam2Shutdown
void MXC_LP_SysRam2Shutdown(void)
Shutdown System Ram 2.
MXC_LP_SysRam0Shutdown
void MXC_LP_SysRam0Shutdown(void)
Shutdown System Ram 0.
MXC_LP_VDD5PowerDown
void MXC_LP_VDD5PowerDown(void)
Power Down VDD5.
MXC_LP_ClearWakeStatus
void MXC_LP_ClearWakeStatus(void)
Clears the wakup status bits.
MXC_LP_ROM1Shutdown
void MXC_LP_ROM1Shutdown(void)
Shutdown ROM 1.
MXC_S_PWRSEQ_LPCN_RAMRET_EN3
#define MXC_S_PWRSEQ_LPCN_RAMRET_EN3
Definition: pwrseq_regs.h:139
MXC_LP_FastWakeupIsEnabled
int MXC_LP_FastWakeupIsEnabled(void)
Is Fast wake up is Enabled.
MXC_LP_EnableGPIOWakeup
void MXC_LP_EnableGPIOWakeup(mxc_gpio_cfg_t *wu_pins)
Enables the selected GPIO port and its selected pins to wake up the device from any low power mode....
MXC_LP_ROM0PowerUp
void MXC_LP_ROM0PowerUp(void)
Wakeup ROM.
MXC_LP_ROM0LightSleepEnable
void MXC_LP_ROM0LightSleepEnable(void)
Enable ROM 0 in light sleep.
MXC_F_GCR_PMR_HIRC8MPD
#define MXC_F_GCR_PMR_HIRC8MPD
Definition: gcr_regs.h:415
MXC_S_PWRSEQ_LPCN_RAMRET_DIS
#define MXC_S_PWRSEQ_LPCN_RAMRET_DIS
Definition: pwrseq_regs.h:133
MXC_LP_ICache1LightSleepEnable
void MXC_LP_ICache1LightSleepEnable(void)
Enable Icache 0 in light sleep.
MXC_LP_CryptoPowerUp
void MXC_LP_CryptoPowerUp(void)
Wakeup Crypto.
MXC_F_GCR_PMR_HIRCPD
#define MXC_F_GCR_PMR_HIRCPD
Definition: gcr_regs.h:409
MXC_LP_SysRam1Shutdown
void MXC_LP_SysRam1Shutdown(void)
Shutdown System Ram 1.
mxc_lp_ovr_t
mxc_lp_ovr_t
Enumeration type for voltage selection.
Definition: lp.h:74
MXC_LP_CryptoLightSleepEnable
void MXC_LP_CryptoLightSleepEnable(void)
Enable Crypto in light sleep.
MXC_LP_EnterSleepMode
void MXC_LP_EnterSleepMode(void)
Places the device into SLEEP mode. This function returns once any interrupt occurs.
MXC_LP_ROM0Shutdown
void MXC_LP_ROM0Shutdown(void)
Shutdown ROM.
MXC_LP_VDD5PowerUp
void MXC_LP_VDD5PowerUp(void)
Power Up VDD5.
mxc_lp_cfg_ds_pd_t
mxc_lp_cfg_ds_pd_t
Enumeration type for PM Mode.
Definition: lp.h:84
MXC_LP_EnableRTCAlarmWakeup
void MXC_LP_EnableRTCAlarmWakeup(void)
Enables the RTC alarm to wake up the device from any low power mode.
MXC_LP_EnterBackgroundMode
void MXC_LP_EnterBackgroundMode(void)
Places the device into BACKGROUND mode. This function returns once an RTC or external interrupt occur...
MXC_LP_SIMOVregDPowerUp
void MXC_LP_SIMOVregDPowerUp(void)
Power Up SIMOV regD.
MXC_LP_ICache0Shutdown
void MXC_LP_ICache0Shutdown(void)
Shutdown Internal Cache.
MXC_LP_SysRam1LightSleepDisable
void MXC_LP_SysRam1LightSleepDisable(void)
Disable System Ram 1 in light sleep.
MXC_S_PWRSEQ_LPCN_RAMRET_EN1
#define MXC_S_PWRSEQ_LPCN_RAMRET_EN1
Definition: pwrseq_regs.h:135
MXC_LP_ICache1LightSleepDisable
void MXC_LP_ICache1LightSleepDisable(void)
Disable Icache 1 in light sleep.
MXC_LP_USBFIFOShutdown
void MXC_LP_USBFIFOShutdown(void)
Shutdown USB FIFO.
MXC_LP_SysRam4LightSleepEnable
void MXC_LP_SysRam4LightSleepEnable(void)
Puts System Ram 4 in light sleep.
MXC_LP_SysRam1PowerUp
void MXC_LP_SysRam1PowerUp(void)
Wakeup System Ram 1.
MXC_LP_SysRam2LightSleepDisable
void MXC_LP_SysRam2LightSleepDisable(void)
Disable System Ram 2 in light sleep.
MXC_LP_ICache1PowerUp
void MXC_LP_ICache1PowerUp(void)
Wakeup Internal Cache 1.
MXC_LP_SysRam5LightSleepDisable
void MXC_LP_SysRam5LightSleepDisable(void)
Disable System Ram 5 in light sleep.
MXC_LP_SysRam2PowerUp
void MXC_LP_SysRam2PowerUp(void)
Wakeup System Ram 2.
MXC_LP_SRCCLightSleepEnable
void MXC_LP_SRCCLightSleepEnable(void)
Enable System Cache in light sleep.
MXC_LP_BandgapIsOn
int MXC_LP_BandgapIsOn(void)
Is the bandgap on or off.
MXC_LP_SetOVR
void MXC_LP_SetOVR(mxc_lp_ovr_t ovr)
Set ovr bits to set the voltage the micro will run at.
MXC_LP_SysRam5PowerUp
void MXC_LP_SysRam5PowerUp(void)
Wakeup System Ram 5.
MXC_LP_SysRam3LightSleepDisable
void MXC_LP_SysRam3LightSleepDisable(void)
Disable System Ram 3 in light sleep.
MXC_LP_ROM1LightSleepDisable
void MXC_LP_ROM1LightSleepDisable(void)
Disable ROM 1 in light sleep.
MXC_LP_SIMOVregDPowerDown
void MXC_LP_SIMOVregDPowerDown(void)
Power Down SIMOV regD.
MXC_LP_SysRam1LightSleepEnable
void MXC_LP_SysRam1LightSleepEnable(void)
Puts System Ram 1 in light sleep.
MXC_LP_ROM1LightSleepEnable
void MXC_LP_ROM1LightSleepEnable(void)
Enable ROM 0 in light sleep.
MXC_LP_DisableRTCAlarmWakeup
void MXC_LP_DisableRTCAlarmWakeup(void)
Disables the RTC alarm from waking up the device.
MXC_LP_USBFIFOLightSleepEnable
void MXC_LP_USBFIFOLightSleepEnable(void)
Enable USB in light sleep.
MXC_LP_SysRam0PowerUp
void MXC_LP_SysRam0PowerUp(void)
Wakeup System Ram 0.
MXC_LP_VDD3PowerUp
void MXC_LP_VDD3PowerUp(void)
Power Up VDD3.
MXC_LP_DisableWUTAlarmWakeup
void MXC_LP_DisableWUTAlarmWakeup(void)
Disables the WUT alarm from waking up the device.
MXC_LP_SRCCPowerUp
void MXC_LP_SRCCPowerUp(void)
PowerUp SRCC.
mxc_gpio_cfg_t
Structure type for configuring a GPIO port.
Definition: gpio.h:154
MXC_LP_SIMOVregBPowerDown
void MXC_LP_SIMOVregBPowerDown(void)
Power Down SIMOV regB.
MXC_LP_BandgapOff
void MXC_LP_BandgapOff(void)
Turn bandgap off.
MXC_LP_SetRAMRetention
void MXC_LP_SetRAMRetention(mxc_ram_retained_t ramRetained)
Enables the selected amount of RAM retention in backup mode Using any RAM retention removes the abili...
MXC_LP_FastWakeupDisable
void MXC_LP_FastWakeupDisable(void)
Disable Fast Wakeup.
MXC_LP_USBFIFOPowerUp
void MXC_LP_USBFIFOPowerUp(void)
Wakeup USB FIFO.
MXC_LP_USBSWLPDisable
void MXC_LP_USBSWLPDisable(void)
Disable USB Software Low Power.
MXC_LP_SysRam0LightSleepEnable
void MXC_LP_SysRam0LightSleepEnable(void)
Puts System Ram 0 in light sleep.
MXC_LP_EnableUSBWakeup
void MXC_LP_EnableUSBWakeup(void)
Enables the USB to wake up the device from any low power mode.
MXC_LP_VDD4PowerDown
void MXC_LP_VDD4PowerDown(void)
Power Down VDD4.
MXC_LP_VDD3PowerDown
void MXC_LP_VDD3PowerDown(void)
Power Down VDD3.
MXC_LP_USBSWLPEnable
void MXC_LP_USBSWLPEnable(void)
Enable USB Software Low Power.
MXC_LP_ICache0LightSleepDisable
void MXC_LP_ICache0LightSleepDisable(void)
Disable Icache 0 in light sleep.
MXC_LP_USBFIFOLightSleepDisable
void MXC_LP_USBFIFOLightSleepDisable(void)
Disable USB in light sleep.
MXC_LP_VDD2PowerUp
void MXC_LP_VDD2PowerUp(void)
Power up VDD2.
MXC_LP_CryptoLightSleepDisable
void MXC_LP_CryptoLightSleepDisable(void)
Disable Crypto in light sleep.
MXC_LP_SysRam5Shutdown
void MXC_LP_SysRam5Shutdown(void)
Shutdown System Ram 5.
MXC_LP_EnterBackupMode
void MXC_LP_EnterBackupMode(void *func(void))
Places the device into BACKUP mode. CPU state is not maintained in this mode, so this function never ...
MXC_LP_ROM1PowerUp
void MXC_LP_ROM1PowerUp(void)
Wakeup ROM 1.
MXC_LP_SysRam3PowerUp
void MXC_LP_SysRam3PowerUp(void)
Wakeup System Ram 3.
MXC_LP_SysRam5LightSleepEnable
void MXC_LP_SysRam5LightSleepEnable(void)
Puts System Ram 5 in light sleep.
MXC_S_PWRSEQ_LPCN_RAMRET_EN2
#define MXC_S_PWRSEQ_LPCN_RAMRET_EN2
Definition: pwrseq_regs.h:137
MXC_LP_ConfigDeepSleepClocks
int MXC_LP_ConfigDeepSleepClocks(uint32_t mask)
Configure which clocks are powered down at deep sleep and which are not affected.
MXC_LP_SysRam3Shutdown
void MXC_LP_SysRam3Shutdown(void)
Shutdown System Ram 3.
MXC_LP_ICache1Shutdown
void MXC_LP_ICache1Shutdown(void)
Shutdown Internal Cache 1.
MXC_LP_SysRam4LightSleepDisable
void MXC_LP_SysRam4LightSleepDisable(void)
Disable System Ram 4 in light sleep.
MXC_LP_SysRam4Shutdown
void MXC_LP_SysRam4Shutdown(void)
Shutdown System Ram 4.
MXC_LP_ROM0LightSleepDisable
void MXC_LP_ROM0LightSleepDisable(void)
Disable ROM 0 in light sleep.
MXC_LP_EnableWUTAlarmWakeup
void MXC_LP_EnableWUTAlarmWakeup(void)
Enables the WUT alarm to wake up the device from any low power mode.