64 #include <inc/hw_types.h>
65 #include <inc/hw_memmap.h>
66 #include <inc/hw_ints.h>
67 #include <inc/hw_prcm.h>
68 #include <inc/hw_nvic.h>
69 #include <inc/hw_aon_rtc.h>
88 #define PRCMInfClockConfigureSet NOROM_PRCMInfClockConfigureSet
89 #define PRCMInfClockConfigureGet NOROM_PRCMInfClockConfigureGet
90 #define PRCMAudioClockConfigSet NOROM_PRCMAudioClockConfigSet
91 #define PRCMAudioClockConfigSetOverride NOROM_PRCMAudioClockConfigSetOverride
92 #define PRCMPowerDomainOn NOROM_PRCMPowerDomainOn
93 #define PRCMPowerDomainOff NOROM_PRCMPowerDomainOff
94 #define PRCMPeripheralRunEnable NOROM_PRCMPeripheralRunEnable
95 #define PRCMPeripheralRunDisable NOROM_PRCMPeripheralRunDisable
96 #define PRCMPeripheralSleepEnable NOROM_PRCMPeripheralSleepEnable
97 #define PRCMPeripheralSleepDisable NOROM_PRCMPeripheralSleepDisable
98 #define PRCMPeripheralDeepSleepEnable NOROM_PRCMPeripheralDeepSleepEnable
99 #define PRCMPeripheralDeepSleepDisable NOROM_PRCMPeripheralDeepSleepDisable
100 #define PRCMPowerDomainStatus NOROM_PRCMPowerDomainStatus
101 #define PRCMDeepSleep NOROM_PRCMDeepSleep
109 #define PRCM_RUN_MODE 0x00000001
110 #define PRCM_SLEEP_MODE 0x00000002
111 #define PRCM_DEEP_SLEEP_MODE 0x00000004
134 #define PRCM_DOMAIN_RFCORE 0x00000001 // RF Core domain ID for
136 #define PRCM_DOMAIN_SERIAL 0x00000002 // Serial domain ID for
138 #define PRCM_DOMAIN_PERIPH 0x00000004 // Peripheral domain ID for
140 #define PRCM_DOMAIN_SYSBUS 0x00000008 // Bus domain ID for clock/power
142 #define PRCM_DOMAIN_VIMS 0x00000010 // VIMS domain ID for clock/power
144 #define PRCM_DOMAIN_CPU 0x00000020 // CPU domain ID for clock/power
146 #define PRCM_DOMAIN_TIMER 0x00000040 // GPT domain ID for clock
148 #define PRCM_DOMAIN_CLKCTRL 0x00000080 // Clock Control domain ID for
150 #define PRCM_DOMAIN_MCU 0x00000100 // Reset control for entire MCU
152 #define PRCM_DOMAIN_POWER_OFF 0x00000002 // The domain is powered off
153 #define PRCM_DOMAIN_POWER_ON 0x00000001 // The domain is powered on
154 #define PRCM_DOMAIN_POWER_DOWN_READY \
155 0x00000000 // The domain is ready to be
163 #define PRCM_WCLK_NEG_EDGE 0x00000008
164 #define PRCM_WCLK_POS_EDGE 0x00000000
165 #define PRCM_WCLK_SINGLE_PHASE 0x00000000
166 #define PRCM_WCLK_DUAL_PHASE 0x00000002
167 #define PRCM_WCLK_USER_DEF 0x00000004
169 #define I2S_SAMPLE_RATE_16K 0x00000001
170 #define I2S_SAMPLE_RATE_24K 0x00000002
171 #define I2S_SAMPLE_RATE_32K 0x00000004
172 #define I2S_SAMPLE_RATE_48K 0x00000008
180 #define PRCM_PERIPH_TIMER0 0x00000000 // Peripheral ID for GPT module 0
181 #define PRCM_PERIPH_TIMER1 0x00000001 // Peripheral ID for GPT module 1
182 #define PRCM_PERIPH_TIMER2 0x00000002 // Peripheral ID for GPT module 2
183 #define PRCM_PERIPH_TIMER3 0x00000003 // Peripheral ID for GPT module 3
184 #define PRCM_PERIPH_SSI0 0x00000100 // Peripheral ID for SSI module 0
185 #define PRCM_PERIPH_SSI1 0x00000101 // Peripheral ID for SSI module 1
186 #define PRCM_PERIPH_UART0 0x00000200 // Peripheral ID for UART module 0
187 #define PRCM_PERIPH_UART1 0x00000201 // Peripheral ID for UART module 1
188 #define PRCM_PERIPH_I2C0 0x00000300 // Peripheral ID for I2C module 0
189 #define PRCM_PERIPH_I2C1 0x00000301 // Peripheral ID for I2C module 1
190 #define PRCM_PERIPH_CRYPTO 0x00000400 // Peripheral ID for CRYPTO module
191 #define PRCM_PERIPH_TRNG 0x00000401 // Peripheral ID for TRNG module
192 #define PRCM_PERIPH_UDMA 0x00000408 // Peripheral ID for UDMA module
193 #define PRCM_PERIPH_GPIO 0x00000500 // Peripheral ID for GPIO module
194 #define PRCM_PERIPH_I2S 0x00000600 // Peripheral ID for I2S module
202 #ifdef DRIVERLIB_DEBUG
217 PRCMPeripheralValid(uint32_t ui32Peripheral)
268 uint32_t ui32PowerMode);
425 __STATIC_INLINE uint32_t
496 uint32_t ui32SampleRate);
524 uint32_t ui32BitDiv, uint32_t ui32WordDiv);
615 if(ui32Domains & PRCM_DOMAIN_RFCORE)
619 if(ui32Domains & PRCM_DOMAIN_VIMS)
658 if(ui32Domains & PRCM_DOMAIN_RFCORE)
662 if(ui32Domains & PRCM_DOMAIN_VIMS)
1048 __STATIC_INLINE
bool
1073 __STATIC_INLINE
void
1107 __STATIC_INLINE
void
1122 __STATIC_INLINE
void
1135 #if !defined(DRIVERLIB_NOROM) && !defined(DOXYGEN)
1137 #ifdef ROM_PRCMInfClockConfigureSet
1138 #undef PRCMInfClockConfigureSet
1139 #define PRCMInfClockConfigureSet ROM_PRCMInfClockConfigureSet
1141 #ifdef ROM_PRCMInfClockConfigureGet
1142 #undef PRCMInfClockConfigureGet
1143 #define PRCMInfClockConfigureGet ROM_PRCMInfClockConfigureGet
1145 #ifdef ROM_PRCMAudioClockConfigSet
1146 #undef PRCMAudioClockConfigSet
1147 #define PRCMAudioClockConfigSet ROM_PRCMAudioClockConfigSet
1149 #ifdef ROM_PRCMAudioClockConfigSetOverride
1150 #undef PRCMAudioClockConfigSetOverride
1151 #define PRCMAudioClockConfigSetOverride ROM_PRCMAudioClockConfigSetOverride
1153 #ifdef ROM_PRCMPowerDomainOn
1154 #undef PRCMPowerDomainOn
1155 #define PRCMPowerDomainOn ROM_PRCMPowerDomainOn
1157 #ifdef ROM_PRCMPowerDomainOff
1158 #undef PRCMPowerDomainOff
1159 #define PRCMPowerDomainOff ROM_PRCMPowerDomainOff
1161 #ifdef ROM_PRCMPeripheralRunEnable
1162 #undef PRCMPeripheralRunEnable
1163 #define PRCMPeripheralRunEnable ROM_PRCMPeripheralRunEnable
1165 #ifdef ROM_PRCMPeripheralRunDisable
1166 #undef PRCMPeripheralRunDisable
1167 #define PRCMPeripheralRunDisable ROM_PRCMPeripheralRunDisable
1169 #ifdef ROM_PRCMPeripheralSleepEnable
1170 #undef PRCMPeripheralSleepEnable
1171 #define PRCMPeripheralSleepEnable ROM_PRCMPeripheralSleepEnable
1173 #ifdef ROM_PRCMPeripheralSleepDisable
1174 #undef PRCMPeripheralSleepDisable
1175 #define PRCMPeripheralSleepDisable ROM_PRCMPeripheralSleepDisable
1177 #ifdef ROM_PRCMPeripheralDeepSleepEnable
1178 #undef PRCMPeripheralDeepSleepEnable
1179 #define PRCMPeripheralDeepSleepEnable ROM_PRCMPeripheralDeepSleepEnable
1181 #ifdef ROM_PRCMPeripheralDeepSleepDisable
1182 #undef PRCMPeripheralDeepSleepDisable
1183 #define PRCMPeripheralDeepSleepDisable ROM_PRCMPeripheralDeepSleepDisable
1185 #ifdef ROM_PRCMPowerDomainStatus
1186 #undef PRCMPowerDomainStatus
1187 #define PRCMPowerDomainStatus ROM_PRCMPowerDomainStatus
1189 #ifdef ROM_PRCMDeepSleep
1190 #undef PRCMDeepSleep
1191 #define PRCMDeepSleep ROM_PRCMDeepSleep
1204 #endif // __PRCM_H__
#define PRCM_PERIPH_TIMER1
static void PRCMMcuPowerOff(void)
Request a power off of the MCU voltage domain.
static bool PRCMRfReady(void)
Return the access status of the RF Core.
uint32_t PRCMInfClockConfigureGet(uint32_t ui32PowerMode)
Use this function to get the infrastructure clock configuration.
#define PRCM_PERIPH_TIMER0
static void PRCMGPTimerClockDivisionSet(uint32_t clkDiv)
Setup the clock division factor for the GP-Timer domain.
uint32_t PRCMPowerDomainStatus(uint32_t ui32Domains)
Get the status for a specific power domain.
#define PRCM_PERIPH_UART1
#define PRCM_PERIPH_TIMER2
void PRCMPeripheralSleepEnable(uint32_t ui32Peripheral)
Enables a peripheral in sleep mode.
void PRCMPeripheralSleepDisable(uint32_t ui32Peripheral)
Disables a peripheral in sleep mode.
static void PRCMDomainDisable(uint32_t ui32Domains)
Disable clock domains in the MCU voltage domain.
static void PRCMSleep(void)
Put the processor into sleep mode.
void PRCMAudioClockConfigSetOverride(uint32_t ui32ClkConfig, uint32_t ui32MstDiv, uint32_t ui32BitDiv, uint32_t ui32WordDiv)
Configure the audio clock generation with manual setting of clock divider.
static bool PRCMLoadGet(void)
Check if any of the load sensitive register has been updated.
static void PRCMMcuUldoConfigure(uint32_t ui32Enable)
Assert or de-assert a request for the uLDO.
#define PRCM_PERIPH_TIMER3
static void PRCMCacheRetentionDisable(void)
Disable CACHE RAM retention.
static void CPUwfi(void)
Wait for interrupt.
#define PRCM_PERIPH_CRYPTO
#define PRCM_PERIPH_UART0
static void PRCMRfPowerDownWhenIdle(void)
Configure RF core to power down when idle.
static void PRCMAudioClockEnable(void)
Enable the audio clock generation.
static void PRCMMcuPowerOffCancel(void)
Cancel a request for a power off of the MCU voltage domain.
void PRCMDeepSleep(void)
Put the processor into deep-sleep mode.
static void PRCMCacheRetentionEnable(void)
Enable CACHE RAM retention.
void PRCMInfClockConfigureSet(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)
Configure the infrastructure clock.
static void PRCMDomainEnable(uint32_t ui32Domains)
Enable clock domains in the MCU voltage domain.
void PRCMPowerDomainOn(uint32_t ui32Domains)
Turn power on in power domains in the MCU domain.
#define PRCM_DOMAIN_RFCORE
void PRCMPeripheralRunDisable(uint32_t ui32Peripheral)
Disables a peripheral in Run mode.
static void PRCMAudioClockDisable(void)
Disable the audio clock generation.
static void PRCMLoadSet(void)
Use this function to synchronize the load settings.
void PRCMPeripheralRunEnable(uint32_t ui32Peripheral)
Enables a peripheral in Run mode.
void PRCMPeripheralDeepSleepEnable(uint32_t ui32Peripheral)
Enables a peripheral in deep-sleep mode.
void PRCMPowerDomainOff(uint32_t ui32Domains)
Turn off a specific power domain.
void PRCMPeripheralDeepSleepDisable(uint32_t ui32Peripheral)
Disables a peripheral in deep-sleep mode.
static uint32_t PRCMGPTimerClockDivisionGet(void)
Get the clock division factor for the GP-Timer domain.
void PRCMAudioClockConfigSet(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)
Configure the audio clock generation.