MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / CMU_FlashWaitStateControl

Function CMU_FlashWaitStateControl

bsp/efm32/Libraries/emlib/src/em_cmu.c:152–213  ·  view source on GitHub ↗

/ * @brief * Configure flash access wait states in order to support given HFCORECLK * frequency. * * @param[in] hfcoreclk * HFCORECLK frequency that flash access wait states must be configured for. ******************************************************************************/

Source from the content-addressed store, hash-verified

150 * HFCORECLK frequency that flash access wait states must be configured for.
151 ******************************************************************************/
152static void CMU_FlashWaitStateControl(uint32_t hfcoreclk)
153{
154 uint32_t cfg;
155
156 cfg = MSC->READCTRL;
157
158#if defined(_EFM32_GIANT_FAMILY)
159 if (hfcoreclk > CMU_MAX_FREQ_1WS)
160 {
161 switch(cfg & _MSC_READCTRL_MODE_MASK)
162 {
163 case MSC_READCTRL_MODE_WS0SCBTP:
164 case MSC_READCTRL_MODE_WS1SCBTP:
165 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS2SCBTP;
166 break;
167 case MSC_READCTRL_MODE_WS0:
168 case MSC_READCTRL_MODE_WS1:
169 default:
170 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS2;
171 break;
172 }
173 }
174#endif
175
176 if ((hfcoreclk > CMU_MAX_FREQ_0WS) && (hfcoreclk <= CMU_MAX_FREQ_1WS))
177 {
178 switch (cfg & _MSC_READCTRL_MODE_MASK)
179 {
180#if defined(_EFM32_GIANT_FAMILY)
181 case MSC_READCTRL_MODE_WS2SCBTP:
182#endif
183 case MSC_READCTRL_MODE_WS0SCBTP:
184 case MSC_READCTRL_MODE_WS1SCBTP:
185 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS1SCBTP;
186 break;
187
188 default:
189 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS1;
190 break;
191 }
192 }
193
194 if (hfcoreclk <= CMU_MAX_FREQ_0WS)
195 {
196 switch (cfg & _MSC_READCTRL_MODE_MASK)
197 {
198#if defined(_EFM32_GIANT_FAMILY)
199 case MSC_READCTRL_MODE_WS2SCBTP:
200#endif
201 case MSC_READCTRL_MODE_WS1SCBTP:
202 case MSC_READCTRL_MODE_WS0SCBTP:
203 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS0SCBTP;
204 break;
205
206 default:
207 cfg = (cfg & ~_MSC_READCTRL_MODE_MASK) | MSC_READCTRL_MODE_WS0;
208 break;
209 }

Callers 3

CMU_ClockDivSetFunction · 0.85
CMU_ClockSelectSetFunction · 0.85
CMU_HFRCOBandSetFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected