CC26xx Driver Library
prcm.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: prcm.h
3 * Revised: 2016-07-07 19:12:02 +0200 (Thu, 07 Jul 2016)
4 * Revision: 46848
5 *
6 * Description: Defines and prototypes for the PRCM
7 *
8 * Copyright (c) 2015 - 2016, Texas Instruments Incorporated
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 *
14 * 1) Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 *
17 * 2) Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may
22 * be used to endorse or promote products derived from this software without
23 * specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 ******************************************************************************/
38 
39 //*****************************************************************************
40 //
45 //
46 //*****************************************************************************
47 
48 #ifndef __PRCM_H__
49 #define __PRCM_H__
50 
51 //*****************************************************************************
52 //
53 // If building with a C++ compiler, make all of the definitions in this header
54 // have a C binding.
55 //
56 //*****************************************************************************
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61 
62 #include <stdbool.h>
63 #include <stdint.h>
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>
70 #include <driverlib/interrupt.h>
71 #include <driverlib/debug.h>
72 #include <driverlib/cpu.h>
73 
74 //*****************************************************************************
75 //
76 // Support for DriverLib in ROM:
77 // This section renames all functions that are not "static inline", so that
78 // calling these functions will default to implementation in flash. At the end
79 // of this file a second renaming will change the defaults to implementation in
80 // ROM for available functions.
81 //
82 // To force use of the implementation in flash, e.g. for debugging:
83 // - Globally: Define DRIVERLIB_NOROM at project level
84 // - Per function: Use prefix "NOROM_" when calling the function
85 //
86 //*****************************************************************************
87 #if !defined(DOXYGEN)
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
102 #endif
103 
104 //*****************************************************************************
105 //
106 // Defines for the different System CPU power modes.
107 //
108 //*****************************************************************************
109 #define PRCM_RUN_MODE 0x00000001
110 #define PRCM_SLEEP_MODE 0x00000002
111 #define PRCM_DEEP_SLEEP_MODE 0x00000004
112 
113 //*****************************************************************************
114 //
115 // Defines used for setting the clock division factors
116 //
117 //*****************************************************************************
118 #define PRCM_CLOCK_DIV_1 PRCM_GPTCLKDIV_RATIO_DIV1
119 #define PRCM_CLOCK_DIV_2 PRCM_GPTCLKDIV_RATIO_DIV2
120 #define PRCM_CLOCK_DIV_4 PRCM_GPTCLKDIV_RATIO_DIV4
121 #define PRCM_CLOCK_DIV_8 PRCM_GPTCLKDIV_RATIO_DIV8
122 #define PRCM_CLOCK_DIV_16 PRCM_GPTCLKDIV_RATIO_DIV16
123 #define PRCM_CLOCK_DIV_32 PRCM_GPTCLKDIV_RATIO_DIV32
124 #define PRCM_CLOCK_DIV_64 PRCM_GPTCLKDIV_RATIO_DIV64
125 #define PRCM_CLOCK_DIV_128 PRCM_GPTCLKDIV_RATIO_DIV128
126 #define PRCM_CLOCK_DIV_256 PRCM_GPTCLKDIV_RATIO_DIV256
127 
128 //*****************************************************************************
129 //
130 // Defines used for enabling and disabling domains and memories in the MCU
131 // domain
132 //
133 //*****************************************************************************
134 #define PRCM_DOMAIN_RFCORE 0x00000001 // RF Core domain ID for
135  // clock/power control.
136 #define PRCM_DOMAIN_SERIAL 0x00000002 // Serial domain ID for
137  // clock/power control.
138 #define PRCM_DOMAIN_PERIPH 0x00000004 // Peripheral domain ID for
139  // clock/power control.
140 #define PRCM_DOMAIN_SYSBUS 0x00000008 // Bus domain ID for clock/power
141  // control.
142 #define PRCM_DOMAIN_VIMS 0x00000010 // VIMS domain ID for clock/power
143  // control.
144 #define PRCM_DOMAIN_CPU 0x00000020 // CPU domain ID for clock/power
145  // control.
146 #define PRCM_DOMAIN_TIMER 0x00000040 // GPT domain ID for clock
147  // control.
148 #define PRCM_DOMAIN_CLKCTRL 0x00000080 // Clock Control domain ID for
149  // clock/power control.
150 #define PRCM_DOMAIN_MCU 0x00000100 // Reset control for entire MCU
151  // domain.
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
156  // powered down.
157 
158 //*****************************************************************************
159 //
160 // Defines for setting up the audio interface in the I2S module.
161 //
162 //*****************************************************************************
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
168 
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
173 
174 //*****************************************************************************
175 //
176 // Defines used for enabling and disabling peripheral modules in the MCU
177 // domain
178 //
179 //*****************************************************************************
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
195 
196 //*****************************************************************************
197 //
198 // API Functions and prototypes
199 //
200 //*****************************************************************************
201 
202 #ifdef DRIVERLIB_DEBUG
203 //*****************************************************************************
204 //
214 //
215 //*****************************************************************************
216 static bool
217 PRCMPeripheralValid(uint32_t ui32Peripheral)
218 {
219  return((ui32Peripheral == PRCM_PERIPH_TIMER0) ||
220  (ui32Peripheral == PRCM_PERIPH_TIMER1) ||
221  (ui32Peripheral == PRCM_PERIPH_TIMER2) ||
222  (ui32Peripheral == PRCM_PERIPH_TIMER3) ||
223  (ui32Peripheral == PRCM_PERIPH_SSI0) ||
224  (ui32Peripheral == PRCM_PERIPH_SSI1) ||
225  (ui32Peripheral == PRCM_PERIPH_UART0) ||
226  (ui32Peripheral == PRCM_PERIPH_UART1) ||
227  (ui32Peripheral == PRCM_PERIPH_I2C0) ||
228  (ui32Peripheral == PRCM_PERIPH_I2C1) ||
229  (ui32Peripheral == PRCM_PERIPH_UDMA) ||
230  (ui32Peripheral == PRCM_PERIPH_TRNG) ||
231  (ui32Peripheral == PRCM_PERIPH_CRYPTO) ||
232  (ui32Peripheral == PRCM_PERIPH_GPIO) ||
233  (ui32Peripheral == PRCM_PERIPH_I2S));
234 }
235 #endif
236 
237 //*****************************************************************************
238 //
265 //
266 //*****************************************************************************
267 extern void PRCMInfClockConfigureSet(uint32_t ui32ClkDiv,
268  uint32_t ui32PowerMode);
269 
270 //*****************************************************************************
271 //
289 //
290 //*****************************************************************************
291 extern uint32_t PRCMInfClockConfigureGet(uint32_t ui32PowerMode);
292 
293 //*****************************************************************************
294 //
303 //
304 //*****************************************************************************
305 __STATIC_INLINE void
307 {
308  //
309  // Assert the power off request signal.
310  //
312 }
313 
314 //*****************************************************************************
315 //
325 //
326 //*****************************************************************************
327 __STATIC_INLINE void
329 {
330  //
331  // Assert the power off request signal.
332  //
334 }
335 
336 //*****************************************************************************
337 //
357 //
358 //*****************************************************************************
359 __STATIC_INLINE void
360 PRCMMcuUldoConfigure(uint32_t ui32Enable)
361 {
362  // Enable or disable the uLDO request signal.
363  HWREGBITW(PRCM_BASE + PRCM_O_VDCTL, PRCM_VDCTL_ULDO_BITN) = ui32Enable;
364 }
365 
366 //*****************************************************************************
367 //
395 //
396 //*****************************************************************************
397 __STATIC_INLINE void
398 PRCMGPTimerClockDivisionSet( uint32_t clkDiv )
399 {
400  ASSERT( clkDiv <= PRCM_GPTCLKDIV_RATIO_DIV256 );
401 
402  HWREG( PRCM_BASE + PRCM_O_GPTCLKDIV ) = clkDiv;
403 }
404 
405 //*****************************************************************************
406 //
423 //
424 //*****************************************************************************
425 __STATIC_INLINE uint32_t
427 {
428  return ( HWREG( PRCM_BASE + PRCM_O_GPTCLKDIV ));
429 }
430 
431 
432 //*****************************************************************************
433 //
439 //
440 //*****************************************************************************
441 __STATIC_INLINE void
443 {
444  // Enable the audio clock generation.
446 }
447 
448 //*****************************************************************************
449 //
455 //
456 //*****************************************************************************
457 __STATIC_INLINE void
459 {
460  // Disable the audio clock generation
462 }
463 
464 //*****************************************************************************
465 //
493 //
494 //*****************************************************************************
495 extern void PRCMAudioClockConfigSet(uint32_t ui32ClkConfig,
496  uint32_t ui32SampleRate);
497 
498 //*****************************************************************************
499 //
521 //
522 //*****************************************************************************
523 extern void PRCMAudioClockConfigSetOverride(uint32_t ui32ClkConfig, uint32_t ui32MstDiv,
524  uint32_t ui32BitDiv, uint32_t ui32WordDiv);
525 
526 //*****************************************************************************
527 //
551 //
552 //*****************************************************************************
553 __STATIC_INLINE void
555 {
556  //
557  // Enable the update of all load related registers.
558  //
559  HWREG(PRCM_NONBUF_BASE + PRCM_O_CLKLOADCTL) = PRCM_CLKLOADCTL_LOAD;
560 }
561 
562 //*****************************************************************************
563 //
571 //
572 //*****************************************************************************
573 __STATIC_INLINE bool
575 {
576  //
577  // Return the load status.
578  //
580  true : false);
581 }
582 
583 //*****************************************************************************
584 //
601 //
602 //*****************************************************************************
603 __STATIC_INLINE void
604 PRCMDomainEnable(uint32_t ui32Domains)
605 {
606  //
607  // Check the arguments.
608  //
609  ASSERT((ui32Domains & PRCM_DOMAIN_RFCORE) ||
610  (ui32Domains & PRCM_DOMAIN_VIMS));
611 
612  //
613  // Enable the clock domain(s).
614  //
615  if(ui32Domains & PRCM_DOMAIN_RFCORE)
616  {
618  }
619  if(ui32Domains & PRCM_DOMAIN_VIMS)
620  {
622  }
623 }
624 
625 //*****************************************************************************
626 //
644 //
645 //*****************************************************************************
646 __STATIC_INLINE void
647 PRCMDomainDisable(uint32_t ui32Domains)
648 {
649  //
650  // Check the arguments.
651  //
652  ASSERT((ui32Domains & PRCM_DOMAIN_RFCORE) ||
653  (ui32Domains & PRCM_DOMAIN_VIMS));
654 
655  //
656  // Disable the power domains.
657  //
658  if(ui32Domains & PRCM_DOMAIN_RFCORE)
659  {
660  HWREG(PRCM_BASE + PRCM_O_RFCCLKG) = 0x0;
661  }
662  if(ui32Domains & PRCM_DOMAIN_VIMS)
663  {
664  HWREG(PRCM_BASE + PRCM_O_VIMSCLKG) = 0x0;
665  }
666 }
667 
668 //*****************************************************************************
669 //
716 //
717 //*****************************************************************************
718 extern void PRCMPowerDomainOn(uint32_t ui32Domains);
719 
720 //*****************************************************************************
721 //
741 //
742 //*****************************************************************************
743 extern void PRCMPowerDomainOff(uint32_t ui32Domains);
744 
745 //*****************************************************************************
746 //
754 //
755 //*****************************************************************************
756 __STATIC_INLINE void
758 {
759  // Configure the RF power domain.
761 }
762 
763 //*****************************************************************************
764 //
804 //
805 //*****************************************************************************
806 extern void PRCMPeripheralRunEnable(uint32_t ui32Peripheral);
807 
808 //*****************************************************************************
809 //
846 //
847 //*****************************************************************************
848 extern void PRCMPeripheralRunDisable(uint32_t ui32Peripheral);
849 
850 //*****************************************************************************
851 //
886 //
887 //*****************************************************************************
888 extern void PRCMPeripheralSleepEnable(uint32_t ui32Peripheral);
889 
890 //*****************************************************************************
891 //
927 //
928 //*****************************************************************************
929 extern void PRCMPeripheralSleepDisable(uint32_t ui32Peripheral);
930 
931 //*****************************************************************************
932 //
967 //
968 //*****************************************************************************
969 extern void PRCMPeripheralDeepSleepEnable(uint32_t ui32Peripheral);
970 
971 //*****************************************************************************
972 //
1010 //
1011 //*****************************************************************************
1012 extern void PRCMPeripheralDeepSleepDisable(uint32_t ui32Peripheral);
1013 
1014 //*****************************************************************************
1015 //
1031 //
1032 //*****************************************************************************
1033 extern uint32_t PRCMPowerDomainStatus(uint32_t ui32Domains);
1034 
1035 //*****************************************************************************
1036 //
1046 //
1047 //*****************************************************************************
1048 __STATIC_INLINE bool
1050 {
1051  //
1052  // Return the ready status of the RF Core.
1053  //
1054  return ((HWREG(PRCM_BASE + PRCM_O_PDSTAT1RFC) &
1055  PRCM_PDSTAT1RFC_ON) ? true : false);
1056 }
1057 
1058 
1059 //*****************************************************************************
1060 //
1071 //
1072 //*****************************************************************************
1073 __STATIC_INLINE void
1075 {
1076  //
1077  // Wait for an interrupt.
1078  //
1079  CPUwfi();
1080 }
1081 
1082 //*****************************************************************************
1083 //
1094 //
1095 //*****************************************************************************
1096 extern void PRCMDeepSleep(void);
1097 
1098 //*****************************************************************************
1099 //
1105 //
1106 //*****************************************************************************
1107 __STATIC_INLINE void
1109 {
1111 }
1112 
1113 //*****************************************************************************
1114 //
1120 //
1121 //*****************************************************************************
1122 __STATIC_INLINE void
1124 {
1126 }
1127 
1128 
1129 //*****************************************************************************
1130 //
1131 // Support for DriverLib in ROM:
1132 // Redirect to implementation in ROM when available.
1133 //
1134 //*****************************************************************************
1135 #if !defined(DRIVERLIB_NOROM) && !defined(DOXYGEN)
1136  #include <driverlib/rom.h>
1137  #ifdef ROM_PRCMInfClockConfigureSet
1138  #undef PRCMInfClockConfigureSet
1139  #define PRCMInfClockConfigureSet ROM_PRCMInfClockConfigureSet
1140  #endif
1141  #ifdef ROM_PRCMInfClockConfigureGet
1142  #undef PRCMInfClockConfigureGet
1143  #define PRCMInfClockConfigureGet ROM_PRCMInfClockConfigureGet
1144  #endif
1145  #ifdef ROM_PRCMAudioClockConfigSet
1146  #undef PRCMAudioClockConfigSet
1147  #define PRCMAudioClockConfigSet ROM_PRCMAudioClockConfigSet
1148  #endif
1149  #ifdef ROM_PRCMAudioClockConfigSetOverride
1150  #undef PRCMAudioClockConfigSetOverride
1151  #define PRCMAudioClockConfigSetOverride ROM_PRCMAudioClockConfigSetOverride
1152  #endif
1153  #ifdef ROM_PRCMPowerDomainOn
1154  #undef PRCMPowerDomainOn
1155  #define PRCMPowerDomainOn ROM_PRCMPowerDomainOn
1156  #endif
1157  #ifdef ROM_PRCMPowerDomainOff
1158  #undef PRCMPowerDomainOff
1159  #define PRCMPowerDomainOff ROM_PRCMPowerDomainOff
1160  #endif
1161  #ifdef ROM_PRCMPeripheralRunEnable
1162  #undef PRCMPeripheralRunEnable
1163  #define PRCMPeripheralRunEnable ROM_PRCMPeripheralRunEnable
1164  #endif
1165  #ifdef ROM_PRCMPeripheralRunDisable
1166  #undef PRCMPeripheralRunDisable
1167  #define PRCMPeripheralRunDisable ROM_PRCMPeripheralRunDisable
1168  #endif
1169  #ifdef ROM_PRCMPeripheralSleepEnable
1170  #undef PRCMPeripheralSleepEnable
1171  #define PRCMPeripheralSleepEnable ROM_PRCMPeripheralSleepEnable
1172  #endif
1173  #ifdef ROM_PRCMPeripheralSleepDisable
1174  #undef PRCMPeripheralSleepDisable
1175  #define PRCMPeripheralSleepDisable ROM_PRCMPeripheralSleepDisable
1176  #endif
1177  #ifdef ROM_PRCMPeripheralDeepSleepEnable
1178  #undef PRCMPeripheralDeepSleepEnable
1179  #define PRCMPeripheralDeepSleepEnable ROM_PRCMPeripheralDeepSleepEnable
1180  #endif
1181  #ifdef ROM_PRCMPeripheralDeepSleepDisable
1182  #undef PRCMPeripheralDeepSleepDisable
1183  #define PRCMPeripheralDeepSleepDisable ROM_PRCMPeripheralDeepSleepDisable
1184  #endif
1185  #ifdef ROM_PRCMPowerDomainStatus
1186  #undef PRCMPowerDomainStatus
1187  #define PRCMPowerDomainStatus ROM_PRCMPowerDomainStatus
1188  #endif
1189  #ifdef ROM_PRCMDeepSleep
1190  #undef PRCMDeepSleep
1191  #define PRCMDeepSleep ROM_PRCMDeepSleep
1192  #endif
1193 #endif
1194 
1195 //*****************************************************************************
1196 //
1197 // Mark the end of the C bindings section for C++ compilers.
1198 //
1199 //*****************************************************************************
1200 #ifdef __cplusplus
1201 }
1202 #endif
1203 
1204 #endif // __PRCM_H__
1205 
1206 //*****************************************************************************
1207 //
1211 //
1212 //*****************************************************************************
#define PRCM_PERIPH_TIMER1
Definition: prcm.h:181
static void PRCMMcuPowerOff(void)
Request a power off of the MCU voltage domain.
Definition: prcm.h:306
static bool PRCMRfReady(void)
Return the access status of the RF Core.
Definition: prcm.h:1049
#define PRCM_PERIPH_TRNG
Definition: prcm.h:191
#define PRCM_PERIPH_I2S
Definition: prcm.h:194
uint32_t PRCMInfClockConfigureGet(uint32_t ui32PowerMode)
Use this function to get the infrastructure clock configuration.
Definition: prcm.c:204
#define PRCM_PERIPH_TIMER0
Definition: prcm.h:180
static void PRCMGPTimerClockDivisionSet(uint32_t clkDiv)
Setup the clock division factor for the GP-Timer domain.
Definition: prcm.h:398
uint32_t PRCMPowerDomainStatus(uint32_t ui32Domains)
Get the status for a specific power domain.
Definition: prcm.c:601
#define PRCM_PERIPH_UART1
Definition: prcm.h:187
#define PRCM_DOMAIN_VIMS
Definition: prcm.h:142
#define PRCM_PERIPH_TIMER2
Definition: prcm.h:182
void PRCMPeripheralSleepEnable(uint32_t ui32Peripheral)
Enables a peripheral in sleep mode.
Definition: prcm.c:521
void PRCMPeripheralSleepDisable(uint32_t ui32Peripheral)
Disables a peripheral in sleep mode.
Definition: prcm.c:541
static void PRCMDomainDisable(uint32_t ui32Domains)
Disable clock domains in the MCU voltage domain.
Definition: prcm.h:647
static void PRCMSleep(void)
Put the processor into sleep mode.
Definition: prcm.h:1074
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.
Definition: prcm.c:350
static bool PRCMLoadGet(void)
Check if any of the load sensitive register has been updated.
Definition: prcm.h:574
static void PRCMMcuUldoConfigure(uint32_t ui32Enable)
Assert or de-assert a request for the uLDO.
Definition: prcm.h:360
#define PRCM_PERIPH_SSI0
Definition: prcm.h:184
#define PRCM_PERIPH_TIMER3
Definition: prcm.h:183
static void PRCMCacheRetentionDisable(void)
Disable CACHE RAM retention.
Definition: prcm.h:1123
#define PRCM_PERIPH_SSI1
Definition: prcm.h:185
#define PRCM_PERIPH_I2C1
Definition: prcm.h:189
static void CPUwfi(void)
Wait for interrupt.
Definition: cpu.h:165
#define PRCM_PERIPH_CRYPTO
Definition: prcm.h:190
#define ASSERT(expr)
Definition: debug.h:74
#define PRCM_PERIPH_GPIO
Definition: prcm.h:193
#define PRCM_PERIPH_UART0
Definition: prcm.h:186
static void PRCMRfPowerDownWhenIdle(void)
Configure RF core to power down when idle.
Definition: prcm.h:757
static void PRCMAudioClockEnable(void)
Enable the audio clock generation.
Definition: prcm.h:442
#define PRCM_PERIPH_UDMA
Definition: prcm.h:192
static void PRCMMcuPowerOffCancel(void)
Cancel a request for a power off of the MCU voltage domain.
Definition: prcm.h:328
void PRCMDeepSleep(void)
Put the processor into deep-sleep mode.
Definition: prcm.c:648
static void PRCMCacheRetentionEnable(void)
Enable CACHE RAM retention.
Definition: prcm.h:1108
void PRCMInfClockConfigureSet(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)
Configure the infrastructure clock.
Definition: prcm.c:144
static void PRCMDomainEnable(uint32_t ui32Domains)
Enable clock domains in the MCU voltage domain.
Definition: prcm.h:604
void PRCMPowerDomainOn(uint32_t ui32Domains)
Turn power on in power domains in the MCU domain.
Definition: prcm.c:395
#define PRCM_DOMAIN_RFCORE
Definition: prcm.h:134
void PRCMPeripheralRunDisable(uint32_t ui32Peripheral)
Disables a peripheral in Run mode.
Definition: prcm.c:501
static void PRCMAudioClockDisable(void)
Disable the audio clock generation.
Definition: prcm.h:458
static void PRCMLoadSet(void)
Use this function to synchronize the load settings.
Definition: prcm.h:554
void PRCMPeripheralRunEnable(uint32_t ui32Peripheral)
Enables a peripheral in Run mode.
Definition: prcm.c:481
void PRCMPeripheralDeepSleepEnable(uint32_t ui32Peripheral)
Enables a peripheral in deep-sleep mode.
Definition: prcm.c:561
void PRCMPowerDomainOff(uint32_t ui32Domains)
Turn off a specific power domain.
Definition: prcm.c:438
void PRCMPeripheralDeepSleepDisable(uint32_t ui32Peripheral)
Disables a peripheral in deep-sleep mode.
Definition: prcm.c:581
static uint32_t PRCMGPTimerClockDivisionGet(void)
Get the clock division factor for the GP-Timer domain.
Definition: prcm.h:426
void PRCMAudioClockConfigSet(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)
Configure the audio clock generation.
Definition: prcm.c:268
#define PRCM_PERIPH_I2C0
Definition: prcm.h:188