62 #include <inc/hw_types.h>
63 #include <inc/hw_memmap.h>
64 #include <inc/hw_ints.h>
65 #include <inc/hw_prcm.h>
66 #include <inc/hw_nvic.h>
67 #include <inc/hw_aon_rtc.h>
87 #ifndef DRIVERLIB_GENERATE_ROM
88 #define PRCMInfClockConfigureSet NOROM_PRCMInfClockConfigureSet
89 #define PRCMInfClockConfigureGet NOROM_PRCMInfClockConfigureGet
90 #define PRCMClockConfigureSet NOROM_PRCMClockConfigureSet
91 #define PRCMClockConfigureGet NOROM_PRCMClockConfigureGet
92 #define PRCMAudioClockConfigSet NOROM_PRCMAudioClockConfigSet
93 #define PRCMAudioClockConfigSetOverride NOROM_PRCMAudioClockConfigSetOverride
94 #define PRCMPowerDomainOn NOROM_PRCMPowerDomainOn
95 #define PRCMPowerDomainOff NOROM_PRCMPowerDomainOff
96 #define PRCMPeripheralRunEnable NOROM_PRCMPeripheralRunEnable
97 #define PRCMPeripheralRunDisable NOROM_PRCMPeripheralRunDisable
98 #define PRCMPeripheralSleepEnable NOROM_PRCMPeripheralSleepEnable
99 #define PRCMPeripheralSleepDisable NOROM_PRCMPeripheralSleepDisable
100 #define PRCMPeripheralDeepSleepEnable NOROM_PRCMPeripheralDeepSleepEnable
101 #define PRCMPeripheralDeepSleepDisable NOROM_PRCMPeripheralDeepSleepDisable
102 #define PRCMPowerDomainStatus NOROM_PRCMPowerDomainStatus
103 #define PRCMDeepSleep NOROM_PRCMDeepSleep
104 #define PRCMRetentionEnable NOROM_PRCMRetentionEnable
105 #define PRCMRetentionDisable NOROM_PRCMRetentionDisable
113 #define PRCM_RUN_MODE 0x00000001
114 #define PRCM_SLEEP_MODE 0x00000002
115 #define PRCM_DEEP_SLEEP_MODE 0x00000004
122 #define PRCM_CLOCK_DIV_1 0x0000000
123 #define PRCM_CLOCK_DIV_2 0x0000001
124 #define PRCM_CLOCK_DIV_4 0x0000002
125 #define PRCM_CLOCK_DIV_8 0x0000003
126 #define PRCM_CLOCK_DIV_16 0x0000004
127 #define PRCM_CLOCK_DIV_32 0x0000005
128 #define PRCM_CLOCK_DIV_64 0x0000006
129 #define PRCM_CLOCK_DIV_128 0x0000007
130 #define PRCM_CLOCK_DIV_256 0x0000008
138 #define PRCM_DOMAIN_RFCORE 0x00000001 // RF Core domain ID for
140 #define PRCM_DOMAIN_SERIAL 0x00000002 // Serial domain ID for
142 #define PRCM_DOMAIN_PERIPH 0x00000004 // Peripheral domain ID for
144 #define PRCM_DOMAIN_SYSBUS 0x00000008 // Bus domain ID for clock/power
146 #define PRCM_DOMAIN_VIMS 0x00000010 // VIMS domain ID for clock/power
148 #define PRCM_DOMAIN_CPU 0x00000020 // CPU domain ID for clock/power
150 #define PRCM_DOMAIN_TIMER 0x00000040 // GPT domain ID for clock
152 #define PRCM_DOMAIN_CLKCTRL 0x00000080 // Clock Control domain ID for
154 #define PRCM_DOMAIN_MCU 0x00000100 // Reset control for entire MCU
156 #define PRCM_DOMAIN_POWER_OFF 0x00000002 // The domain is powered off
157 #define PRCM_DOMAIN_POWER_ON 0x00000001 // The domain is powered on
158 #define PRCM_DOMAIN_POWER_DOWN_READY \
159 0x00000000 // The domain is ready to be
167 #define PRCM_WCLK_NEG_EDGE 0x00000008
168 #define PRCM_WCLK_POS_EDGE 0x00000000
169 #define PRCM_WCLK_SINGLE_PHASE 0x00000000
170 #define PRCM_WCLK_DUAL_PHASE 0x00000002
171 #define PRCM_WCLK_USER_DEF 0x00000004
173 #define I2S_SAMPLE_RATE_16K 0x00000001
174 #define I2S_SAMPLE_RATE_24K 0x00000002
175 #define I2S_SAMPLE_RATE_32K 0x00000004
176 #define I2S_SAMPLE_RATE_48K 0x00000008
184 #define PRCM_PERIPH_TIMER0 0x00000000 // Peripheral ID for GPT module 0
185 #define PRCM_PERIPH_TIMER1 0x00000001 // Peripheral ID for GPT module 1
186 #define PRCM_PERIPH_TIMER2 0x00000002 // Peripheral ID for GPT module 2
187 #define PRCM_PERIPH_TIMER3 0x00000003 // Peripheral ID for GPT module 3
188 #define PRCM_PERIPH_SSI0 0x00000100 // Peripheral ID for SSI module 0
189 #define PRCM_PERIPH_SSI1 0x00000101 // Peripheral ID for SSI module 1
190 #define PRCM_PERIPH_UART0 0x00000200 // Peripheral ID for UART module 0
191 #define PRCM_PERIPH_UART1 0x00000201 // Peripheral ID for UART module 1
192 #define PRCM_PERIPH_I2C0 0x00000300 // Peripheral ID for I2C module 0
193 #define PRCM_PERIPH_I2C1 0x00000301 // Peripheral ID for I2C module 1
194 #define PRCM_PERIPH_CRYPTO 0x00000400 // Peripheral ID for CRYPTO module
195 #define PRCM_PERIPH_TRNG 0x00000401 // Peripheral ID for TRNG module
196 #define PRCM_PERIPH_UDMA 0x00000408 // Peripheral ID for UDMA module
197 #define PRCM_PERIPH_GPIO 0x00000500 // Peripheral ID for GPIO module
198 #define PRCM_PERIPH_I2S 0x00000600 // Peripheral ID for I2S module
206 #ifdef DRIVERLIB_DEBUG
221 PRCMPeripheralValid(uint32_t ui32Peripheral)
272 uint32_t ui32PowerMode);
530 uint32_t ui32SampleRate);
558 uint32_t ui32BitDiv, uint32_t ui32WordDiv);
649 if(ui32Domains & PRCM_DOMAIN_RFCORE)
653 if(ui32Domains & PRCM_DOMAIN_VIMS)
692 if(ui32Domains & PRCM_DOMAIN_RFCORE)
696 if(ui32Domains & PRCM_DOMAIN_VIMS)
1084 __STATIC_INLINE
bool
1110 __STATIC_INLINE
bool
1134 __STATIC_INLINE
void
1201 #ifndef DRIVERLIB_NOROM
1203 #ifdef ROM_PRCMInfClockConfigureSet
1204 #undef PRCMInfClockConfigureSet
1205 #define PRCMInfClockConfigureSet ROM_PRCMInfClockConfigureSet
1207 #ifdef ROM_PRCMInfClockConfigureGet
1208 #undef PRCMInfClockConfigureGet
1209 #define PRCMInfClockConfigureGet ROM_PRCMInfClockConfigureGet
1211 #ifdef ROM_PRCMClockConfigureSet
1212 #undef PRCMClockConfigureSet
1213 #define PRCMClockConfigureSet ROM_PRCMClockConfigureSet
1215 #ifdef ROM_PRCMClockConfigureGet
1216 #undef PRCMClockConfigureGet
1217 #define PRCMClockConfigureGet ROM_PRCMClockConfigureGet
1219 #ifdef ROM_PRCMAudioClockConfigSet
1220 #undef PRCMAudioClockConfigSet
1221 #define PRCMAudioClockConfigSet ROM_PRCMAudioClockConfigSet
1223 #ifdef ROM_PRCMAudioClockConfigSetOverride
1224 #undef PRCMAudioClockConfigSetOverride
1225 #define PRCMAudioClockConfigSetOverride ROM_PRCMAudioClockConfigSetOverride
1227 #ifdef ROM_PRCMPowerDomainOn
1228 #undef PRCMPowerDomainOn
1229 #define PRCMPowerDomainOn ROM_PRCMPowerDomainOn
1231 #ifdef ROM_PRCMPowerDomainOff
1232 #undef PRCMPowerDomainOff
1233 #define PRCMPowerDomainOff ROM_PRCMPowerDomainOff
1235 #ifdef ROM_PRCMPeripheralRunEnable
1236 #undef PRCMPeripheralRunEnable
1237 #define PRCMPeripheralRunEnable ROM_PRCMPeripheralRunEnable
1239 #ifdef ROM_PRCMPeripheralRunDisable
1240 #undef PRCMPeripheralRunDisable
1241 #define PRCMPeripheralRunDisable ROM_PRCMPeripheralRunDisable
1243 #ifdef ROM_PRCMPeripheralSleepEnable
1244 #undef PRCMPeripheralSleepEnable
1245 #define PRCMPeripheralSleepEnable ROM_PRCMPeripheralSleepEnable
1247 #ifdef ROM_PRCMPeripheralSleepDisable
1248 #undef PRCMPeripheralSleepDisable
1249 #define PRCMPeripheralSleepDisable ROM_PRCMPeripheralSleepDisable
1251 #ifdef ROM_PRCMPeripheralDeepSleepEnable
1252 #undef PRCMPeripheralDeepSleepEnable
1253 #define PRCMPeripheralDeepSleepEnable ROM_PRCMPeripheralDeepSleepEnable
1255 #ifdef ROM_PRCMPeripheralDeepSleepDisable
1256 #undef PRCMPeripheralDeepSleepDisable
1257 #define PRCMPeripheralDeepSleepDisable ROM_PRCMPeripheralDeepSleepDisable
1259 #ifdef ROM_PRCMPowerDomainStatus
1260 #undef PRCMPowerDomainStatus
1261 #define PRCMPowerDomainStatus ROM_PRCMPowerDomainStatus
1263 #ifdef ROM_PRCMDeepSleep
1264 #undef PRCMDeepSleep
1265 #define PRCMDeepSleep ROM_PRCMDeepSleep
1267 #ifdef ROM_PRCMRetentionEnable
1268 #undef PRCMRetentionEnable
1269 #define PRCMRetentionEnable ROM_PRCMRetentionEnable
1271 #ifdef ROM_PRCMRetentionDisable
1272 #undef PRCMRetentionDisable
1273 #define PRCMRetentionDisable ROM_PRCMRetentionDisable
1286 #endif // __PRCM_H__
#define PRCM_PERIPH_TIMER1
__STATIC_INLINE void PRCMMcuUldoConfigure(uint32_t ui32Enable)
Assert or deassert a request for the uLDO.
__STATIC_INLINE bool PRCMLoadGet(void)
Check if any of the load sensitive register has been updated.
__STATIC_INLINE void PRCMAudioClockDisable(void)
Disable the audio clock generation.
__STATIC_INLINE void PRCMMcuPowerOff(void)
Request a power off of the MCU voltage domain.
uint32_t PRCMClockConfigureGet(uint32_t ui32Domain)
Get the clock configuration for a specific sub system in the MCU Voltage Domain.
uint32_t PRCMInfClockConfigureGet(uint32_t ui32PowerMode)
Use this function to retreive the set infrastructure clock configuration.
#define PRCM_PERIPH_TIMER0
__STATIC_INLINE void PRCMSleep(void)
Put the processor into sleep mode.
uint32_t PRCMPowerDomainStatus(uint32_t ui32Domains)
Get the status for a specific power domain.
#define PRCM_PERIPH_UART1
__STATIC_INLINE bool PRCMRfReady(void)
Return the access status of the RF Core.
__STATIC_INLINE void PRCMLoadSet(void)
Use this function to synchronize the load settings.
#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.
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.
#define PRCM_PERIPH_TIMER3
#define PRCM_PERIPH_CRYPTO
__STATIC_INLINE void PRCMRfPowerDownWhenIdle(void)
Configure RF core to power down when idle.
__STATIC_INLINE void PRCMDomainDisable(uint32_t ui32Domains)
Disable clock domains in the MCU voltage domain.
#define PRCM_PERIPH_UART0
__STATIC_INLINE void CPUwfi(void)
Wait for interrupt.
void PRCMRetentionEnable(uint32_t ui32PowerDomain)
Enable retention on specific power domains.
void PRCMDeepSleep(void)
Put the processor into deep-sleep mode.
void PRCMInfClockConfigureSet(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)
Configure the infrastructure clock.
void PRCMPowerDomainOn(uint32_t ui32Domains)
Turn power on in power domains in the MCU domain.
__STATIC_INLINE void PRCMMcuPowerOffCancel(void)
Cancel a request for a power off of the MCU voltage domain.
#define PRCM_DOMAIN_RFCORE
void PRCMRetentionDisable(uint32_t ui32PowerDomain)
Disable retention on power domains.
void PRCMPeripheralRunDisable(uint32_t ui32Peripheral)
Disables a peripheral in Run mode.
__STATIC_INLINE bool PRCMWdtResetStatus(void)
Read reset status for WatchDog Timer.
void PRCMClockConfigureSet(uint32_t ui32Domains, uint32_t ui32ClkDiv)
Setup the clock division factor for a subsystem in the MCU voltage domain.
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.
void PRCMAudioClockConfigSet(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)
Configure the audio clock generation.
__STATIC_INLINE void PRCMDomainEnable(uint32_t ui32Domains)
Enable clock domains in the MCU voltage domain.
__STATIC_INLINE void PRCMAudioClockEnable(void)
Enable the audio clock generation.