The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Nov 08 17:18:06 2017 +0000
Revision:
156:ff21514d8981
Child:
159:7130f322cb7e
Reverting back to release 154 of the mbed library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 2 * @file em_cmu.h
AnnaBridge 156:ff21514d8981 3 * @brief Clock management unit (CMU) API
AnnaBridge 156:ff21514d8981 4 * @version 5.1.2
AnnaBridge 156:ff21514d8981 5 *******************************************************************************
AnnaBridge 156:ff21514d8981 6 * @section License
AnnaBridge 156:ff21514d8981 7 * <b>Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com</b>
AnnaBridge 156:ff21514d8981 8 *******************************************************************************
AnnaBridge 156:ff21514d8981 9 *
AnnaBridge 156:ff21514d8981 10 * Permission is granted to anyone to use this software for any purpose,
AnnaBridge 156:ff21514d8981 11 * including commercial applications, and to alter it and redistribute it
AnnaBridge 156:ff21514d8981 12 * freely, subject to the following restrictions:
AnnaBridge 156:ff21514d8981 13 *
AnnaBridge 156:ff21514d8981 14 * 1. The origin of this software must not be misrepresented; you must not
AnnaBridge 156:ff21514d8981 15 * claim that you wrote the original software.
AnnaBridge 156:ff21514d8981 16 * 2. Altered source versions must be plainly marked as such, and must not be
AnnaBridge 156:ff21514d8981 17 * misrepresented as being the original software.
AnnaBridge 156:ff21514d8981 18 * 3. This notice may not be removed or altered from any source distribution.
AnnaBridge 156:ff21514d8981 19 *
AnnaBridge 156:ff21514d8981 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
AnnaBridge 156:ff21514d8981 21 * obligation to support this Software. Silicon Labs is providing the
AnnaBridge 156:ff21514d8981 22 * Software "AS IS", with no express or implied warranties of any kind,
AnnaBridge 156:ff21514d8981 23 * including, but not limited to, any implied warranties of merchantability
AnnaBridge 156:ff21514d8981 24 * or fitness for any particular purpose or warranties against infringement
AnnaBridge 156:ff21514d8981 25 * of any proprietary rights of a third party.
AnnaBridge 156:ff21514d8981 26 *
AnnaBridge 156:ff21514d8981 27 * Silicon Labs will not be liable for any consequential, incidental, or
AnnaBridge 156:ff21514d8981 28 * special damages, or any other relief, or for any claim by any third party,
AnnaBridge 156:ff21514d8981 29 * arising from your use of this Software.
AnnaBridge 156:ff21514d8981 30 *
AnnaBridge 156:ff21514d8981 31 ******************************************************************************/
AnnaBridge 156:ff21514d8981 32 #ifndef EM_CMU_H
AnnaBridge 156:ff21514d8981 33 #define EM_CMU_H
AnnaBridge 156:ff21514d8981 34
AnnaBridge 156:ff21514d8981 35 #include "em_device.h"
AnnaBridge 156:ff21514d8981 36 #if defined( CMU_PRESENT )
AnnaBridge 156:ff21514d8981 37
AnnaBridge 156:ff21514d8981 38 #include <stdbool.h>
AnnaBridge 156:ff21514d8981 39 #include "em_assert.h"
AnnaBridge 156:ff21514d8981 40 #include "em_bus.h"
AnnaBridge 156:ff21514d8981 41
AnnaBridge 156:ff21514d8981 42 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 43 extern "C" {
AnnaBridge 156:ff21514d8981 44 #endif
AnnaBridge 156:ff21514d8981 45
AnnaBridge 156:ff21514d8981 46 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 47 * @addtogroup emlib
AnnaBridge 156:ff21514d8981 48 * @{
AnnaBridge 156:ff21514d8981 49 ******************************************************************************/
AnnaBridge 156:ff21514d8981 50
AnnaBridge 156:ff21514d8981 51 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 52 * @addtogroup CMU
AnnaBridge 156:ff21514d8981 53 * @{
AnnaBridge 156:ff21514d8981 54 ******************************************************************************/
AnnaBridge 156:ff21514d8981 55
AnnaBridge 156:ff21514d8981 56 /** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
AnnaBridge 156:ff21514d8981 57
AnnaBridge 156:ff21514d8981 58 /* Select register id's, for internal use. */
AnnaBridge 156:ff21514d8981 59 #define CMU_NOSEL_REG 0
AnnaBridge 156:ff21514d8981 60 #define CMU_HFCLKSEL_REG 1
AnnaBridge 156:ff21514d8981 61 #define CMU_LFACLKSEL_REG 2
AnnaBridge 156:ff21514d8981 62 #define CMU_LFBCLKSEL_REG 3
AnnaBridge 156:ff21514d8981 63 #define CMU_LFCCLKSEL_REG 4
AnnaBridge 156:ff21514d8981 64 #define CMU_LFECLKSEL_REG 5
AnnaBridge 156:ff21514d8981 65 #define CMU_DBGCLKSEL_REG 6
AnnaBridge 156:ff21514d8981 66 #define CMU_USBCCLKSEL_REG 7
AnnaBridge 156:ff21514d8981 67
AnnaBridge 156:ff21514d8981 68 #define CMU_SEL_REG_POS 0
AnnaBridge 156:ff21514d8981 69 #define CMU_SEL_REG_MASK 0xf
AnnaBridge 156:ff21514d8981 70
AnnaBridge 156:ff21514d8981 71 /* Divisor/prescaler register id's, for internal use. */
AnnaBridge 156:ff21514d8981 72 #define CMU_NODIV_REG 0
AnnaBridge 156:ff21514d8981 73 #define CMU_NOPRESC_REG 0
AnnaBridge 156:ff21514d8981 74 #define CMU_HFPRESC_REG 1
AnnaBridge 156:ff21514d8981 75 #define CMU_HFCLKDIV_REG 1
AnnaBridge 156:ff21514d8981 76 #define CMU_HFEXPPRESC_REG 2
AnnaBridge 156:ff21514d8981 77 #define CMU_HFCLKLEPRESC_REG 3
AnnaBridge 156:ff21514d8981 78 #define CMU_HFPERPRESC_REG 4
AnnaBridge 156:ff21514d8981 79 #define CMU_HFPERCLKDIV_REG 4
AnnaBridge 156:ff21514d8981 80 #define CMU_HFCOREPRESC_REG 5
AnnaBridge 156:ff21514d8981 81 #define CMU_HFCORECLKDIV_REG 5
AnnaBridge 156:ff21514d8981 82 #define CMU_LFAPRESC0_REG 6
AnnaBridge 156:ff21514d8981 83 #define CMU_LFBPRESC0_REG 7
AnnaBridge 156:ff21514d8981 84 #define CMU_LFEPRESC0_REG 8
AnnaBridge 156:ff21514d8981 85
AnnaBridge 156:ff21514d8981 86 #define CMU_PRESC_REG_POS 4
AnnaBridge 156:ff21514d8981 87 #define CMU_DIV_REG_POS CMU_PRESC_REG_POS
AnnaBridge 156:ff21514d8981 88 #define CMU_PRESC_REG_MASK 0xf
AnnaBridge 156:ff21514d8981 89 #define CMU_DIV_REG_MASK CMU_PRESC_REG_MASK
AnnaBridge 156:ff21514d8981 90
AnnaBridge 156:ff21514d8981 91 /* Enable register id's, for internal use. */
AnnaBridge 156:ff21514d8981 92 #define CMU_NO_EN_REG 0
AnnaBridge 156:ff21514d8981 93 #define CMU_CTRL_EN_REG 1
AnnaBridge 156:ff21514d8981 94 #define CMU_HFPERCLKDIV_EN_REG 1
AnnaBridge 156:ff21514d8981 95 #define CMU_HFPERCLKEN0_EN_REG 2
AnnaBridge 156:ff21514d8981 96 #define CMU_HFCORECLKEN0_EN_REG 3
AnnaBridge 156:ff21514d8981 97 #define CMU_HFBUSCLKEN0_EN_REG 5
AnnaBridge 156:ff21514d8981 98 #define CMU_LFACLKEN0_EN_REG 6
AnnaBridge 156:ff21514d8981 99 #define CMU_LFBCLKEN0_EN_REG 7
AnnaBridge 156:ff21514d8981 100 #define CMU_LFCCLKEN0_EN_REG 8
AnnaBridge 156:ff21514d8981 101 #define CMU_LFECLKEN0_EN_REG 9
AnnaBridge 156:ff21514d8981 102 #define CMU_PCNT_EN_REG 10
AnnaBridge 156:ff21514d8981 103
AnnaBridge 156:ff21514d8981 104 #define CMU_EN_REG_POS 8
AnnaBridge 156:ff21514d8981 105 #define CMU_EN_REG_MASK 0xf
AnnaBridge 156:ff21514d8981 106
AnnaBridge 156:ff21514d8981 107 /* Enable register bit positions, for internal use. */
AnnaBridge 156:ff21514d8981 108 #define CMU_EN_BIT_POS 12
AnnaBridge 156:ff21514d8981 109 #define CMU_EN_BIT_MASK 0x1f
AnnaBridge 156:ff21514d8981 110
AnnaBridge 156:ff21514d8981 111 /* Clock branch bitfield positions, for internal use. */
AnnaBridge 156:ff21514d8981 112 #define CMU_HF_CLK_BRANCH 0
AnnaBridge 156:ff21514d8981 113 #define CMU_HFCORE_CLK_BRANCH 1
AnnaBridge 156:ff21514d8981 114 #define CMU_HFPER_CLK_BRANCH 2
AnnaBridge 156:ff21514d8981 115 #define CMU_HFBUS_CLK_BRANCH 4
AnnaBridge 156:ff21514d8981 116 #define CMU_HFEXP_CLK_BRANCH 5
AnnaBridge 156:ff21514d8981 117 #define CMU_DBG_CLK_BRANCH 6
AnnaBridge 156:ff21514d8981 118 #define CMU_AUX_CLK_BRANCH 7
AnnaBridge 156:ff21514d8981 119 #define CMU_RTC_CLK_BRANCH 8
AnnaBridge 156:ff21514d8981 120 #define CMU_RTCC_CLK_BRANCH 9
AnnaBridge 156:ff21514d8981 121 #define CMU_LETIMER0_CLK_BRANCH 10
AnnaBridge 156:ff21514d8981 122 #define CMU_LEUART0_CLK_BRANCH 11
AnnaBridge 156:ff21514d8981 123 #define CMU_LEUART1_CLK_BRANCH 12
AnnaBridge 156:ff21514d8981 124 #define CMU_LFA_CLK_BRANCH 13
AnnaBridge 156:ff21514d8981 125 #define CMU_LFB_CLK_BRANCH 14
AnnaBridge 156:ff21514d8981 126 #define CMU_LFC_CLK_BRANCH 15
AnnaBridge 156:ff21514d8981 127 #define CMU_LFE_CLK_BRANCH 16
AnnaBridge 156:ff21514d8981 128 #define CMU_USBC_CLK_BRANCH 17
AnnaBridge 156:ff21514d8981 129 #define CMU_USBLE_CLK_BRANCH 18
AnnaBridge 156:ff21514d8981 130 #define CMU_LCDPRE_CLK_BRANCH 19
AnnaBridge 156:ff21514d8981 131 #define CMU_LCD_CLK_BRANCH 20
AnnaBridge 156:ff21514d8981 132 #define CMU_LESENSE_CLK_BRANCH 21
AnnaBridge 156:ff21514d8981 133 #define CMU_CSEN_LF_CLK_BRANCH 22
AnnaBridge 156:ff21514d8981 134
AnnaBridge 156:ff21514d8981 135 #define CMU_CLK_BRANCH_POS 17
AnnaBridge 156:ff21514d8981 136 #define CMU_CLK_BRANCH_MASK 0x1f
AnnaBridge 156:ff21514d8981 137
AnnaBridge 156:ff21514d8981 138 #if defined( _EMU_CMD_EM01VSCALE0_MASK )
AnnaBridge 156:ff21514d8981 139 /* Max clock frequency for VSCALE voltages */
AnnaBridge 156:ff21514d8981 140 #define CMU_VSCALEEM01_LOWPOWER_VOLTAGE_CLOCK_MAX 20000000
AnnaBridge 156:ff21514d8981 141 #endif
AnnaBridge 156:ff21514d8981 142 /** @endcond */
AnnaBridge 156:ff21514d8981 143
AnnaBridge 156:ff21514d8981 144 /*******************************************************************************
AnnaBridge 156:ff21514d8981 145 ******************************** ENUMS ************************************
AnnaBridge 156:ff21514d8981 146 ******************************************************************************/
AnnaBridge 156:ff21514d8981 147
AnnaBridge 156:ff21514d8981 148 /** Clock divisors. These values are valid for prescalers. */
AnnaBridge 156:ff21514d8981 149 #define cmuClkDiv_1 1 /**< Divide clock by 1. */
AnnaBridge 156:ff21514d8981 150 #define cmuClkDiv_2 2 /**< Divide clock by 2. */
AnnaBridge 156:ff21514d8981 151 #define cmuClkDiv_4 4 /**< Divide clock by 4. */
AnnaBridge 156:ff21514d8981 152 #define cmuClkDiv_8 8 /**< Divide clock by 8. */
AnnaBridge 156:ff21514d8981 153 #define cmuClkDiv_16 16 /**< Divide clock by 16. */
AnnaBridge 156:ff21514d8981 154 #define cmuClkDiv_32 32 /**< Divide clock by 32. */
AnnaBridge 156:ff21514d8981 155 #define cmuClkDiv_64 64 /**< Divide clock by 64. */
AnnaBridge 156:ff21514d8981 156 #define cmuClkDiv_128 128 /**< Divide clock by 128. */
AnnaBridge 156:ff21514d8981 157 #define cmuClkDiv_256 256 /**< Divide clock by 256. */
AnnaBridge 156:ff21514d8981 158 #define cmuClkDiv_512 512 /**< Divide clock by 512. */
AnnaBridge 156:ff21514d8981 159 #define cmuClkDiv_1024 1024 /**< Divide clock by 1024. */
AnnaBridge 156:ff21514d8981 160 #define cmuClkDiv_2048 2048 /**< Divide clock by 2048. */
AnnaBridge 156:ff21514d8981 161 #define cmuClkDiv_4096 4096 /**< Divide clock by 4096. */
AnnaBridge 156:ff21514d8981 162 #define cmuClkDiv_8192 8192 /**< Divide clock by 8192. */
AnnaBridge 156:ff21514d8981 163 #define cmuClkDiv_16384 16384 /**< Divide clock by 16384. */
AnnaBridge 156:ff21514d8981 164 #define cmuClkDiv_32768 32768 /**< Divide clock by 32768. */
AnnaBridge 156:ff21514d8981 165
AnnaBridge 156:ff21514d8981 166 /** Clock divider configuration */
AnnaBridge 156:ff21514d8981 167 typedef uint32_t CMU_ClkDiv_TypeDef;
AnnaBridge 156:ff21514d8981 168
AnnaBridge 156:ff21514d8981 169 #if defined( _SILICON_LABS_32B_SERIES_1 )
AnnaBridge 156:ff21514d8981 170 /** Clockprescaler configuration */
AnnaBridge 156:ff21514d8981 171 typedef uint32_t CMU_ClkPresc_TypeDef;
AnnaBridge 156:ff21514d8981 172 #endif
AnnaBridge 156:ff21514d8981 173
AnnaBridge 156:ff21514d8981 174 #if defined( _CMU_HFRCOCTRL_BAND_MASK )
AnnaBridge 156:ff21514d8981 175 /** High frequency system RCO bands */
AnnaBridge 156:ff21514d8981 176 typedef enum
AnnaBridge 156:ff21514d8981 177 {
AnnaBridge 156:ff21514d8981 178 cmuHFRCOBand_1MHz = _CMU_HFRCOCTRL_BAND_1MHZ, /**< 1MHz HFRCO band */
AnnaBridge 156:ff21514d8981 179 cmuHFRCOBand_7MHz = _CMU_HFRCOCTRL_BAND_7MHZ, /**< 7MHz HFRCO band */
AnnaBridge 156:ff21514d8981 180 cmuHFRCOBand_11MHz = _CMU_HFRCOCTRL_BAND_11MHZ, /**< 11MHz HFRCO band */
AnnaBridge 156:ff21514d8981 181 cmuHFRCOBand_14MHz = _CMU_HFRCOCTRL_BAND_14MHZ, /**< 14MHz HFRCO band */
AnnaBridge 156:ff21514d8981 182 cmuHFRCOBand_21MHz = _CMU_HFRCOCTRL_BAND_21MHZ, /**< 21MHz HFRCO band */
AnnaBridge 156:ff21514d8981 183 #if defined( CMU_HFRCOCTRL_BAND_28MHZ )
AnnaBridge 156:ff21514d8981 184 cmuHFRCOBand_28MHz = _CMU_HFRCOCTRL_BAND_28MHZ, /**< 28MHz HFRCO band */
AnnaBridge 156:ff21514d8981 185 #endif
AnnaBridge 156:ff21514d8981 186 } CMU_HFRCOBand_TypeDef;
AnnaBridge 156:ff21514d8981 187 #endif /* _CMU_HFRCOCTRL_BAND_MASK */
AnnaBridge 156:ff21514d8981 188
AnnaBridge 156:ff21514d8981 189 #if defined( _CMU_AUXHFRCOCTRL_BAND_MASK )
AnnaBridge 156:ff21514d8981 190 /** AUX High frequency RCO bands */
AnnaBridge 156:ff21514d8981 191 typedef enum
AnnaBridge 156:ff21514d8981 192 {
AnnaBridge 156:ff21514d8981 193 cmuAUXHFRCOBand_1MHz = _CMU_AUXHFRCOCTRL_BAND_1MHZ, /**< 1MHz RC band */
AnnaBridge 156:ff21514d8981 194 cmuAUXHFRCOBand_7MHz = _CMU_AUXHFRCOCTRL_BAND_7MHZ, /**< 7MHz RC band */
AnnaBridge 156:ff21514d8981 195 cmuAUXHFRCOBand_11MHz = _CMU_AUXHFRCOCTRL_BAND_11MHZ, /**< 11MHz RC band */
AnnaBridge 156:ff21514d8981 196 cmuAUXHFRCOBand_14MHz = _CMU_AUXHFRCOCTRL_BAND_14MHZ, /**< 14MHz RC band */
AnnaBridge 156:ff21514d8981 197 cmuAUXHFRCOBand_21MHz = _CMU_AUXHFRCOCTRL_BAND_21MHZ, /**< 21MHz RC band */
AnnaBridge 156:ff21514d8981 198 #if defined( CMU_AUXHFRCOCTRL_BAND_28MHZ )
AnnaBridge 156:ff21514d8981 199 cmuAUXHFRCOBand_28MHz = _CMU_AUXHFRCOCTRL_BAND_28MHZ, /**< 28MHz RC band */
AnnaBridge 156:ff21514d8981 200 #endif
AnnaBridge 156:ff21514d8981 201 } CMU_AUXHFRCOBand_TypeDef;
AnnaBridge 156:ff21514d8981 202 #endif
AnnaBridge 156:ff21514d8981 203
AnnaBridge 156:ff21514d8981 204 #if defined( _CMU_USHFRCOCONF_BAND_MASK )
AnnaBridge 156:ff21514d8981 205 /** USB High frequency RC bands. */
AnnaBridge 156:ff21514d8981 206 typedef enum
AnnaBridge 156:ff21514d8981 207 {
AnnaBridge 156:ff21514d8981 208 /** 24MHz RC band. */
AnnaBridge 156:ff21514d8981 209 cmuUSHFRCOBand_24MHz = _CMU_USHFRCOCONF_BAND_24MHZ,
AnnaBridge 156:ff21514d8981 210 /** 48MHz RC band. */
AnnaBridge 156:ff21514d8981 211 cmuUSHFRCOBand_48MHz = _CMU_USHFRCOCONF_BAND_48MHZ,
AnnaBridge 156:ff21514d8981 212 } CMU_USHFRCOBand_TypeDef;
AnnaBridge 156:ff21514d8981 213 #endif
AnnaBridge 156:ff21514d8981 214
AnnaBridge 156:ff21514d8981 215 #if defined( _CMU_HFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 216 /** High frequency system RCO bands */
AnnaBridge 156:ff21514d8981 217 typedef enum
AnnaBridge 156:ff21514d8981 218 {
AnnaBridge 156:ff21514d8981 219 cmuHFRCOFreq_1M0Hz = 1000000U, /**< 1MHz RC band */
AnnaBridge 156:ff21514d8981 220 cmuHFRCOFreq_2M0Hz = 2000000U, /**< 2MHz RC band */
AnnaBridge 156:ff21514d8981 221 cmuHFRCOFreq_4M0Hz = 4000000U, /**< 4MHz RC band */
AnnaBridge 156:ff21514d8981 222 cmuHFRCOFreq_7M0Hz = 7000000U, /**< 7MHz RC band */
AnnaBridge 156:ff21514d8981 223 cmuHFRCOFreq_13M0Hz = 13000000U, /**< 13MHz RC band */
AnnaBridge 156:ff21514d8981 224 cmuHFRCOFreq_16M0Hz = 16000000U, /**< 16MHz RC band */
AnnaBridge 156:ff21514d8981 225 cmuHFRCOFreq_19M0Hz = 19000000U, /**< 19MHz RC band */
AnnaBridge 156:ff21514d8981 226 cmuHFRCOFreq_26M0Hz = 26000000U, /**< 26MHz RC band */
AnnaBridge 156:ff21514d8981 227 cmuHFRCOFreq_32M0Hz = 32000000U, /**< 32MHz RC band */
AnnaBridge 156:ff21514d8981 228 cmuHFRCOFreq_38M0Hz = 38000000U, /**< 38MHz RC band */
AnnaBridge 156:ff21514d8981 229 cmuHFRCOFreq_UserDefined = 0,
AnnaBridge 156:ff21514d8981 230 } CMU_HFRCOFreq_TypeDef;
AnnaBridge 156:ff21514d8981 231 #define CMU_HFRCO_MIN cmuHFRCOFreq_1M0Hz
AnnaBridge 156:ff21514d8981 232 #define CMU_HFRCO_MAX cmuHFRCOFreq_38M0Hz
AnnaBridge 156:ff21514d8981 233 #endif
AnnaBridge 156:ff21514d8981 234
AnnaBridge 156:ff21514d8981 235 #if defined( _CMU_AUXHFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 236 /** AUX High frequency RCO bands */
AnnaBridge 156:ff21514d8981 237 typedef enum
AnnaBridge 156:ff21514d8981 238 {
AnnaBridge 156:ff21514d8981 239 cmuAUXHFRCOFreq_1M0Hz = 1000000U, /**< 1MHz RC band */
AnnaBridge 156:ff21514d8981 240 cmuAUXHFRCOFreq_2M0Hz = 2000000U, /**< 2MHz RC band */
AnnaBridge 156:ff21514d8981 241 cmuAUXHFRCOFreq_4M0Hz = 4000000U, /**< 4MHz RC band */
AnnaBridge 156:ff21514d8981 242 cmuAUXHFRCOFreq_7M0Hz = 7000000U, /**< 7MHz RC band */
AnnaBridge 156:ff21514d8981 243 cmuAUXHFRCOFreq_13M0Hz = 13000000U, /**< 13MHz RC band */
AnnaBridge 156:ff21514d8981 244 cmuAUXHFRCOFreq_16M0Hz = 16000000U, /**< 16MHz RC band */
AnnaBridge 156:ff21514d8981 245 cmuAUXHFRCOFreq_19M0Hz = 19000000U, /**< 19MHz RC band */
AnnaBridge 156:ff21514d8981 246 cmuAUXHFRCOFreq_26M0Hz = 26000000U, /**< 26MHz RC band */
AnnaBridge 156:ff21514d8981 247 cmuAUXHFRCOFreq_32M0Hz = 32000000U, /**< 32MHz RC band */
AnnaBridge 156:ff21514d8981 248 cmuAUXHFRCOFreq_38M0Hz = 38000000U, /**< 38MHz RC band */
AnnaBridge 156:ff21514d8981 249 cmuAUXHFRCOFreq_UserDefined = 0,
AnnaBridge 156:ff21514d8981 250 } CMU_AUXHFRCOFreq_TypeDef;
AnnaBridge 156:ff21514d8981 251 #define CMU_AUXHFRCO_MIN cmuAUXHFRCOFreq_1M0Hz
AnnaBridge 156:ff21514d8981 252 #define CMU_AUXHFRCO_MAX cmuAUXHFRCOFreq_38M0Hz
AnnaBridge 156:ff21514d8981 253 #endif
AnnaBridge 156:ff21514d8981 254
AnnaBridge 156:ff21514d8981 255
AnnaBridge 156:ff21514d8981 256 /** Clock points in CMU. Please refer to CMU overview in reference manual. */
AnnaBridge 156:ff21514d8981 257 typedef enum
AnnaBridge 156:ff21514d8981 258 {
AnnaBridge 156:ff21514d8981 259 /*******************/
AnnaBridge 156:ff21514d8981 260 /* HF clock branch */
AnnaBridge 156:ff21514d8981 261 /*******************/
AnnaBridge 156:ff21514d8981 262
AnnaBridge 156:ff21514d8981 263 /** High frequency clock */
AnnaBridge 156:ff21514d8981 264 #if defined( _CMU_CTRL_HFCLKDIV_MASK ) \
AnnaBridge 156:ff21514d8981 265 || defined( _CMU_HFPRESC_MASK )
AnnaBridge 156:ff21514d8981 266 cmuClock_HF = (CMU_HFCLKDIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 267 | (CMU_HFCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 268 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 269 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 270 | (CMU_HF_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 271 #else
AnnaBridge 156:ff21514d8981 272 cmuClock_HF = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 273 | (CMU_HFCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 274 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 275 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 276 | (CMU_HF_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 277 #endif
AnnaBridge 156:ff21514d8981 278
AnnaBridge 156:ff21514d8981 279 /** Debug clock */
AnnaBridge 156:ff21514d8981 280 cmuClock_DBG = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 281 | (CMU_DBGCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 282 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 283 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 284 | (CMU_DBG_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 285
AnnaBridge 156:ff21514d8981 286 /** AUX clock */
AnnaBridge 156:ff21514d8981 287 cmuClock_AUX = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 288 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 289 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 290 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 291 | (CMU_AUX_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 292
AnnaBridge 156:ff21514d8981 293 #if defined( _CMU_HFEXPPRESC_MASK )
AnnaBridge 156:ff21514d8981 294 /**********************/
AnnaBridge 156:ff21514d8981 295 /* HF export sub-branch */
AnnaBridge 156:ff21514d8981 296 /**********************/
AnnaBridge 156:ff21514d8981 297
AnnaBridge 156:ff21514d8981 298 /** Export clock */
AnnaBridge 156:ff21514d8981 299 cmuClock_EXPORT = (CMU_HFEXPPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 300 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 301 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 302 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 303 | (CMU_HFEXP_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 304 #endif
AnnaBridge 156:ff21514d8981 305
AnnaBridge 156:ff21514d8981 306 #if defined( _CMU_HFBUSCLKEN0_MASK )
AnnaBridge 156:ff21514d8981 307 /**********************************/
AnnaBridge 156:ff21514d8981 308 /* HF bus clock sub-branch */
AnnaBridge 156:ff21514d8981 309 /**********************************/
AnnaBridge 156:ff21514d8981 310
AnnaBridge 156:ff21514d8981 311 /** High frequency bus clock. */
AnnaBridge 156:ff21514d8981 312 cmuClock_BUS = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 313 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 314 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 315 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 316 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 317
AnnaBridge 156:ff21514d8981 318 #if defined( CMU_HFBUSCLKEN0_CRYPTO )
AnnaBridge 156:ff21514d8981 319 /** Cryptography accelerator clock. */
AnnaBridge 156:ff21514d8981 320 cmuClock_CRYPTO = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 321 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 322 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 323 | (_CMU_HFBUSCLKEN0_CRYPTO_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 324 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 325 #endif
AnnaBridge 156:ff21514d8981 326
AnnaBridge 156:ff21514d8981 327 #if defined( CMU_HFBUSCLKEN0_CRYPTO0 )
AnnaBridge 156:ff21514d8981 328 /** Cryptography accelerator 0 clock. */
AnnaBridge 156:ff21514d8981 329 cmuClock_CRYPTO0 = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 330 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 331 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 332 | (_CMU_HFBUSCLKEN0_CRYPTO0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 333 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 334 #endif
AnnaBridge 156:ff21514d8981 335
AnnaBridge 156:ff21514d8981 336 #if defined( CMU_HFBUSCLKEN0_CRYPTO1 )
AnnaBridge 156:ff21514d8981 337 /** Cryptography accelerator 1 clock. */
AnnaBridge 156:ff21514d8981 338 cmuClock_CRYPTO1 = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 339 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 340 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 341 | (_CMU_HFBUSCLKEN0_CRYPTO1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 342 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 343 #endif
AnnaBridge 156:ff21514d8981 344
AnnaBridge 156:ff21514d8981 345 #if defined( CMU_HFBUSCLKEN0_LDMA )
AnnaBridge 156:ff21514d8981 346 /** Direct memory access controller clock. */
AnnaBridge 156:ff21514d8981 347 cmuClock_LDMA = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 348 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 349 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 350 | (_CMU_HFBUSCLKEN0_LDMA_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 351 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 352 #endif
AnnaBridge 156:ff21514d8981 353
AnnaBridge 156:ff21514d8981 354 #if defined( CMU_HFBUSCLKEN0_GPCRC )
AnnaBridge 156:ff21514d8981 355 /** General purpose cyclic redundancy checksum clock. */
AnnaBridge 156:ff21514d8981 356 cmuClock_GPCRC = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 357 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 358 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 359 | (_CMU_HFBUSCLKEN0_GPCRC_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 360 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 361 #endif
AnnaBridge 156:ff21514d8981 362
AnnaBridge 156:ff21514d8981 363 #if defined( CMU_HFBUSCLKEN0_GPIO )
AnnaBridge 156:ff21514d8981 364 /** General purpose input/output clock. */
AnnaBridge 156:ff21514d8981 365 cmuClock_GPIO = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 366 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 367 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 368 | (_CMU_HFBUSCLKEN0_GPIO_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 369 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 370 #endif
AnnaBridge 156:ff21514d8981 371
AnnaBridge 156:ff21514d8981 372 /** Low energy clock divided down from HFBUSCLK. */
AnnaBridge 156:ff21514d8981 373 cmuClock_HFLE = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 374 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 375 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 376 | (_CMU_HFBUSCLKEN0_LE_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 377 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 378
AnnaBridge 156:ff21514d8981 379 #if defined( CMU_HFBUSCLKEN0_PRS )
AnnaBridge 156:ff21514d8981 380 /** Peripheral reflex system clock. */
AnnaBridge 156:ff21514d8981 381 cmuClock_PRS = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 382 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 383 | (CMU_HFBUSCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 384 | (_CMU_HFBUSCLKEN0_PRS_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 385 | (CMU_HFBUS_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 386 #endif
AnnaBridge 156:ff21514d8981 387 #endif
AnnaBridge 156:ff21514d8981 388
AnnaBridge 156:ff21514d8981 389 /**********************************/
AnnaBridge 156:ff21514d8981 390 /* HF peripheral clock sub-branch */
AnnaBridge 156:ff21514d8981 391 /**********************************/
AnnaBridge 156:ff21514d8981 392
AnnaBridge 156:ff21514d8981 393 /** High frequency peripheral clock */
AnnaBridge 156:ff21514d8981 394 #if defined( _CMU_HFPRESC_MASK )
AnnaBridge 156:ff21514d8981 395 cmuClock_HFPER = (CMU_HFPERPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 396 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 397 | (CMU_CTRL_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 398 | (_CMU_CTRL_HFPERCLKEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 399 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 400 #else
AnnaBridge 156:ff21514d8981 401 cmuClock_HFPER = (CMU_HFPERCLKDIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 402 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 403 | (CMU_HFPERCLKDIV_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 404 | (_CMU_HFPERCLKDIV_HFPERCLKEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 405 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 406 #endif
AnnaBridge 156:ff21514d8981 407
AnnaBridge 156:ff21514d8981 408 #if defined( CMU_HFPERCLKEN0_USART0 )
AnnaBridge 156:ff21514d8981 409 /** Universal sync/async receiver/transmitter 0 clock. */
AnnaBridge 156:ff21514d8981 410 cmuClock_USART0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 411 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 412 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 413 | (_CMU_HFPERCLKEN0_USART0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 414 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 415 #endif
AnnaBridge 156:ff21514d8981 416
AnnaBridge 156:ff21514d8981 417 #if defined( CMU_HFPERCLKEN0_USARTRF0 )
AnnaBridge 156:ff21514d8981 418 /** Universal sync/async receiver/transmitter 0 clock. */
AnnaBridge 156:ff21514d8981 419 cmuClock_USARTRF0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 420 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 421 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 422 | (_CMU_HFPERCLKEN0_USARTRF0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 423 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 424 #endif
AnnaBridge 156:ff21514d8981 425
AnnaBridge 156:ff21514d8981 426 #if defined( CMU_HFPERCLKEN0_USARTRF1 )
AnnaBridge 156:ff21514d8981 427 /** Universal sync/async receiver/transmitter 0 clock. */
AnnaBridge 156:ff21514d8981 428 cmuClock_USARTRF1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 429 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 430 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 431 | (_CMU_HFPERCLKEN0_USARTRF1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 432 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 433 #endif
AnnaBridge 156:ff21514d8981 434
AnnaBridge 156:ff21514d8981 435 #if defined( CMU_HFPERCLKEN0_USART1 )
AnnaBridge 156:ff21514d8981 436 /** Universal sync/async receiver/transmitter 1 clock. */
AnnaBridge 156:ff21514d8981 437 cmuClock_USART1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 438 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 439 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 440 | (_CMU_HFPERCLKEN0_USART1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 441 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 442 #endif
AnnaBridge 156:ff21514d8981 443
AnnaBridge 156:ff21514d8981 444 #if defined( CMU_HFPERCLKEN0_USART2 )
AnnaBridge 156:ff21514d8981 445 /** Universal sync/async receiver/transmitter 2 clock. */
AnnaBridge 156:ff21514d8981 446 cmuClock_USART2 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 447 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 448 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 449 | (_CMU_HFPERCLKEN0_USART2_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 450 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 451 #endif
AnnaBridge 156:ff21514d8981 452
AnnaBridge 156:ff21514d8981 453 #if defined( CMU_HFPERCLKEN0_USART3 )
AnnaBridge 156:ff21514d8981 454 /** Universal sync/async receiver/transmitter 3 clock. */
AnnaBridge 156:ff21514d8981 455 cmuClock_USART3 = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 456 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 457 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 458 | (_CMU_HFPERCLKEN0_USART3_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 459 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 460 #endif
AnnaBridge 156:ff21514d8981 461
AnnaBridge 156:ff21514d8981 462 #if defined( CMU_HFPERCLKEN0_USART4 )
AnnaBridge 156:ff21514d8981 463 /** Universal sync/async receiver/transmitter 4 clock. */
AnnaBridge 156:ff21514d8981 464 cmuClock_USART4 = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 465 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 466 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 467 | (_CMU_HFPERCLKEN0_USART4_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 468 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 469 #endif
AnnaBridge 156:ff21514d8981 470
AnnaBridge 156:ff21514d8981 471 #if defined( CMU_HFPERCLKEN0_USART5 )
AnnaBridge 156:ff21514d8981 472 /** Universal sync/async receiver/transmitter 5 clock. */
AnnaBridge 156:ff21514d8981 473 cmuClock_USART5 = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 474 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 475 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 476 | (_CMU_HFPERCLKEN0_USART5_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 477 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 478 #endif
AnnaBridge 156:ff21514d8981 479
AnnaBridge 156:ff21514d8981 480
AnnaBridge 156:ff21514d8981 481 #if defined( CMU_HFPERCLKEN0_UART0 )
AnnaBridge 156:ff21514d8981 482 /** Universal async receiver/transmitter 0 clock. */
AnnaBridge 156:ff21514d8981 483 cmuClock_UART0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 484 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 485 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 486 | (_CMU_HFPERCLKEN0_UART0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 487 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 488 #endif
AnnaBridge 156:ff21514d8981 489
AnnaBridge 156:ff21514d8981 490 #if defined( CMU_HFPERCLKEN0_UART1 )
AnnaBridge 156:ff21514d8981 491 /** Universal async receiver/transmitter 1 clock. */
AnnaBridge 156:ff21514d8981 492 cmuClock_UART1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 493 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 494 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 495 | (_CMU_HFPERCLKEN0_UART1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 496 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 497 #endif
AnnaBridge 156:ff21514d8981 498
AnnaBridge 156:ff21514d8981 499 #if defined( CMU_HFPERCLKEN0_TIMER0 )
AnnaBridge 156:ff21514d8981 500 /** Timer 0 clock. */
AnnaBridge 156:ff21514d8981 501 cmuClock_TIMER0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 502 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 503 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 504 | (_CMU_HFPERCLKEN0_TIMER0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 505 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 506 #endif
AnnaBridge 156:ff21514d8981 507
AnnaBridge 156:ff21514d8981 508 #if defined( CMU_HFPERCLKEN0_TIMER1 )
AnnaBridge 156:ff21514d8981 509 /** Timer 1 clock. */
AnnaBridge 156:ff21514d8981 510 cmuClock_TIMER1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 511 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 512 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 513 | (_CMU_HFPERCLKEN0_TIMER1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 514 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 515 #endif
AnnaBridge 156:ff21514d8981 516
AnnaBridge 156:ff21514d8981 517 #if defined( CMU_HFPERCLKEN0_TIMER2 )
AnnaBridge 156:ff21514d8981 518 /** Timer 2 clock. */
AnnaBridge 156:ff21514d8981 519 cmuClock_TIMER2 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 520 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 521 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 522 | (_CMU_HFPERCLKEN0_TIMER2_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 523 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 524 #endif
AnnaBridge 156:ff21514d8981 525
AnnaBridge 156:ff21514d8981 526 #if defined( CMU_HFPERCLKEN0_TIMER3 )
AnnaBridge 156:ff21514d8981 527 /** Timer 3 clock. */
AnnaBridge 156:ff21514d8981 528 cmuClock_TIMER3 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 529 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 530 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 531 | (_CMU_HFPERCLKEN0_TIMER3_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 532 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 533 #endif
AnnaBridge 156:ff21514d8981 534
AnnaBridge 156:ff21514d8981 535 #if defined( CMU_HFPERCLKEN0_WTIMER0 )
AnnaBridge 156:ff21514d8981 536 /** Wide Timer 0 clock. */
AnnaBridge 156:ff21514d8981 537 cmuClock_WTIMER0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 538 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 539 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 540 | (_CMU_HFPERCLKEN0_WTIMER0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 541 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 542 #endif
AnnaBridge 156:ff21514d8981 543
AnnaBridge 156:ff21514d8981 544 #if defined( CMU_HFPERCLKEN0_WTIMER1 )
AnnaBridge 156:ff21514d8981 545 /** Wide Timer 1 clock. */
AnnaBridge 156:ff21514d8981 546 cmuClock_WTIMER1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 547 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 548 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 549 | (_CMU_HFPERCLKEN0_WTIMER1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 550 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 551 #endif
AnnaBridge 156:ff21514d8981 552
AnnaBridge 156:ff21514d8981 553 #if defined( CMU_HFPERCLKEN0_CRYOTIMER )
AnnaBridge 156:ff21514d8981 554 /** CRYOtimer clock. */
AnnaBridge 156:ff21514d8981 555 cmuClock_CRYOTIMER = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 556 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 557 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 558 | (_CMU_HFPERCLKEN0_CRYOTIMER_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 559 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 560 #endif
AnnaBridge 156:ff21514d8981 561
AnnaBridge 156:ff21514d8981 562 #if defined( CMU_HFPERCLKEN0_ACMP0 )
AnnaBridge 156:ff21514d8981 563 /** Analog comparator 0 clock. */
AnnaBridge 156:ff21514d8981 564 cmuClock_ACMP0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 565 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 566 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 567 | (_CMU_HFPERCLKEN0_ACMP0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 568 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 569 #endif
AnnaBridge 156:ff21514d8981 570
AnnaBridge 156:ff21514d8981 571 #if defined( CMU_HFPERCLKEN0_ACMP1 )
AnnaBridge 156:ff21514d8981 572 /** Analog comparator 1 clock. */
AnnaBridge 156:ff21514d8981 573 cmuClock_ACMP1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 574 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 575 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 576 | (_CMU_HFPERCLKEN0_ACMP1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 577 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 578 #endif
AnnaBridge 156:ff21514d8981 579
AnnaBridge 156:ff21514d8981 580 #if defined( CMU_HFPERCLKEN0_PRS )
AnnaBridge 156:ff21514d8981 581 /** Peripheral reflex system clock. */
AnnaBridge 156:ff21514d8981 582 cmuClock_PRS = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 583 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 584 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 585 | (_CMU_HFPERCLKEN0_PRS_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 586 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 587 #endif
AnnaBridge 156:ff21514d8981 588
AnnaBridge 156:ff21514d8981 589 #if defined( CMU_HFPERCLKEN0_DAC0 )
AnnaBridge 156:ff21514d8981 590 /** Digital to analog converter 0 clock. */
AnnaBridge 156:ff21514d8981 591 cmuClock_DAC0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 592 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 593 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 594 | (_CMU_HFPERCLKEN0_DAC0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 595 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 596 #endif
AnnaBridge 156:ff21514d8981 597
AnnaBridge 156:ff21514d8981 598 #if defined( CMU_HFPERCLKEN0_VDAC0 )
AnnaBridge 156:ff21514d8981 599 /** Voltage digital to analog converter 0 clock. */
AnnaBridge 156:ff21514d8981 600 cmuClock_VDAC0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 601 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 602 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 603 | (_CMU_HFPERCLKEN0_VDAC0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 604 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 605 #endif
AnnaBridge 156:ff21514d8981 606
AnnaBridge 156:ff21514d8981 607 #if defined( CMU_HFPERCLKEN0_IDAC0 )
AnnaBridge 156:ff21514d8981 608 /** Current digital to analog converter 0 clock. */
AnnaBridge 156:ff21514d8981 609 cmuClock_IDAC0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 610 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 611 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 612 | (_CMU_HFPERCLKEN0_IDAC0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 613 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 614 #endif
AnnaBridge 156:ff21514d8981 615
AnnaBridge 156:ff21514d8981 616 #if defined( CMU_HFPERCLKEN0_GPIO )
AnnaBridge 156:ff21514d8981 617 /** General purpose input/output clock. */
AnnaBridge 156:ff21514d8981 618 cmuClock_GPIO = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 619 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 620 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 621 | (_CMU_HFPERCLKEN0_GPIO_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 622 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 623 #endif
AnnaBridge 156:ff21514d8981 624
AnnaBridge 156:ff21514d8981 625 #if defined( CMU_HFPERCLKEN0_VCMP )
AnnaBridge 156:ff21514d8981 626 /** Voltage comparator clock. */
AnnaBridge 156:ff21514d8981 627 cmuClock_VCMP = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 628 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 629 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 630 | (_CMU_HFPERCLKEN0_VCMP_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 631 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 632 #endif
AnnaBridge 156:ff21514d8981 633
AnnaBridge 156:ff21514d8981 634 #if defined( CMU_HFPERCLKEN0_ADC0 )
AnnaBridge 156:ff21514d8981 635 /** Analog to digital converter 0 clock. */
AnnaBridge 156:ff21514d8981 636 cmuClock_ADC0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 637 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 638 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 639 | (_CMU_HFPERCLKEN0_ADC0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 640 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 641 #endif
AnnaBridge 156:ff21514d8981 642
AnnaBridge 156:ff21514d8981 643 #if defined( CMU_HFPERCLKEN0_I2C0 )
AnnaBridge 156:ff21514d8981 644 /** I2C 0 clock. */
AnnaBridge 156:ff21514d8981 645 cmuClock_I2C0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 646 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 647 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 648 | (_CMU_HFPERCLKEN0_I2C0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 649 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 650 #endif
AnnaBridge 156:ff21514d8981 651
AnnaBridge 156:ff21514d8981 652 #if defined( CMU_HFPERCLKEN0_I2C1 )
AnnaBridge 156:ff21514d8981 653 /** I2C 1 clock. */
AnnaBridge 156:ff21514d8981 654 cmuClock_I2C1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 655 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 656 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 657 | (_CMU_HFPERCLKEN0_I2C1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 658 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 659 #endif
AnnaBridge 156:ff21514d8981 660
AnnaBridge 156:ff21514d8981 661 #if defined( CMU_HFPERCLKEN0_I2C2 )
AnnaBridge 156:ff21514d8981 662 /** I2C 2 clock. */
AnnaBridge 156:ff21514d8981 663 cmuClock_I2C2 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 664 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 665 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 666 | (_CMU_HFPERCLKEN0_I2C2_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 667 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 668 #endif
AnnaBridge 156:ff21514d8981 669
AnnaBridge 156:ff21514d8981 670 #if defined( CMU_HFPERCLKEN0_CSEN )
AnnaBridge 156:ff21514d8981 671 /** Capacitive Sense HF clock */
AnnaBridge 156:ff21514d8981 672 cmuClock_CSEN_HF = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 673 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 674 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 675 | (_CMU_HFPERCLKEN0_CSEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 676 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 677 #endif
AnnaBridge 156:ff21514d8981 678
AnnaBridge 156:ff21514d8981 679 #if defined( CMU_HFPERCLKEN0_TRNG0 )
AnnaBridge 156:ff21514d8981 680 /** True random number generator clock */
AnnaBridge 156:ff21514d8981 681 cmuClock_TRNG0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 682 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 683 | (CMU_HFPERCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 684 | (_CMU_HFPERCLKEN0_TRNG0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 685 | (CMU_HFPER_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 686 #endif
AnnaBridge 156:ff21514d8981 687
AnnaBridge 156:ff21514d8981 688 /**********************/
AnnaBridge 156:ff21514d8981 689 /* HF core sub-branch */
AnnaBridge 156:ff21514d8981 690 /**********************/
AnnaBridge 156:ff21514d8981 691
AnnaBridge 156:ff21514d8981 692 /** Core clock */
AnnaBridge 156:ff21514d8981 693 cmuClock_CORE = (CMU_HFCORECLKDIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 694 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 695 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 696 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 697 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 698
AnnaBridge 156:ff21514d8981 699 #if defined( CMU_HFCORECLKEN0_AES )
AnnaBridge 156:ff21514d8981 700 /** Advanced encryption standard accelerator clock. */
AnnaBridge 156:ff21514d8981 701 cmuClock_AES = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 702 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 703 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 704 | (_CMU_HFCORECLKEN0_AES_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 705 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 706 #endif
AnnaBridge 156:ff21514d8981 707
AnnaBridge 156:ff21514d8981 708 #if defined( CMU_HFCORECLKEN0_DMA )
AnnaBridge 156:ff21514d8981 709 /** Direct memory access controller clock. */
AnnaBridge 156:ff21514d8981 710 cmuClock_DMA = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 711 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 712 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 713 | (_CMU_HFCORECLKEN0_DMA_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 714 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 715 #endif
AnnaBridge 156:ff21514d8981 716
AnnaBridge 156:ff21514d8981 717 #if defined( CMU_HFCORECLKEN0_LE )
AnnaBridge 156:ff21514d8981 718 /** Low energy clock divided down from HFCORECLK. */
AnnaBridge 156:ff21514d8981 719 cmuClock_HFLE = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 720 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 721 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 722 | (_CMU_HFCORECLKEN0_LE_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 723 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 724 #endif
AnnaBridge 156:ff21514d8981 725
AnnaBridge 156:ff21514d8981 726 #if defined( CMU_HFCORECLKEN0_EBI )
AnnaBridge 156:ff21514d8981 727 /** External bus interface clock. */
AnnaBridge 156:ff21514d8981 728 cmuClock_EBI = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 729 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 730 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 731 | (_CMU_HFCORECLKEN0_EBI_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 732 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 733 #endif
AnnaBridge 156:ff21514d8981 734
AnnaBridge 156:ff21514d8981 735 #if defined( CMU_HFCORECLKEN0_USBC )
AnnaBridge 156:ff21514d8981 736 /** USB Core clock. */
AnnaBridge 156:ff21514d8981 737 cmuClock_USBC = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 738 | (CMU_USBCCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 739 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 740 | (_CMU_HFCORECLKEN0_USBC_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 741 | (CMU_USBC_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 742
AnnaBridge 156:ff21514d8981 743 #endif
AnnaBridge 156:ff21514d8981 744
AnnaBridge 156:ff21514d8981 745 #if defined( CMU_HFCORECLKEN0_USB )
AnnaBridge 156:ff21514d8981 746 /** USB clock. */
AnnaBridge 156:ff21514d8981 747 cmuClock_USB = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 748 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 749 | (CMU_HFCORECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 750 | (_CMU_HFCORECLKEN0_USB_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 751 | (CMU_HFCORE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 752 #endif
AnnaBridge 156:ff21514d8981 753
AnnaBridge 156:ff21514d8981 754 /***************/
AnnaBridge 156:ff21514d8981 755 /* LF A branch */
AnnaBridge 156:ff21514d8981 756 /***************/
AnnaBridge 156:ff21514d8981 757
AnnaBridge 156:ff21514d8981 758 /** Low frequency A clock */
AnnaBridge 156:ff21514d8981 759 cmuClock_LFA = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 760 | (CMU_LFACLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 761 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 762 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 763 | (CMU_LFA_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 764
AnnaBridge 156:ff21514d8981 765 #if defined( CMU_LFACLKEN0_RTC )
AnnaBridge 156:ff21514d8981 766 /** Real time counter clock. */
AnnaBridge 156:ff21514d8981 767 cmuClock_RTC = (CMU_LFAPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 768 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 769 | (CMU_LFACLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 770 | (_CMU_LFACLKEN0_RTC_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 771 | (CMU_RTC_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 772 #endif
AnnaBridge 156:ff21514d8981 773
AnnaBridge 156:ff21514d8981 774 #if defined( CMU_LFACLKEN0_LETIMER0 )
AnnaBridge 156:ff21514d8981 775 /** Low energy timer 0 clock. */
AnnaBridge 156:ff21514d8981 776 cmuClock_LETIMER0 = (CMU_LFAPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 777 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 778 | (CMU_LFACLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 779 | (_CMU_LFACLKEN0_LETIMER0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 780 | (CMU_LETIMER0_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 781 #endif
AnnaBridge 156:ff21514d8981 782
AnnaBridge 156:ff21514d8981 783 #if defined( CMU_LFACLKEN0_LCD )
AnnaBridge 156:ff21514d8981 784 /** Liquid crystal display, pre FDIV clock. */
AnnaBridge 156:ff21514d8981 785 cmuClock_LCDpre = (CMU_LFAPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 786 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 787 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 788 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 789 | (CMU_LCDPRE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 790
AnnaBridge 156:ff21514d8981 791 /** Liquid crystal display clock. Please notice that FDIV prescaler
AnnaBridge 156:ff21514d8981 792 * must be set by special API. */
AnnaBridge 156:ff21514d8981 793 cmuClock_LCD = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 794 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 795 | (CMU_LFACLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 796 | (_CMU_LFACLKEN0_LCD_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 797 | (CMU_LCD_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 798 #endif
AnnaBridge 156:ff21514d8981 799
AnnaBridge 156:ff21514d8981 800 #if defined( CMU_PCNTCTRL_PCNT0CLKEN )
AnnaBridge 156:ff21514d8981 801 /** Pulse counter 0 clock. */
AnnaBridge 156:ff21514d8981 802 cmuClock_PCNT0 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 803 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 804 | (CMU_PCNT_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 805 | (_CMU_PCNTCTRL_PCNT0CLKEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 806 | (CMU_LFA_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 807 #endif
AnnaBridge 156:ff21514d8981 808
AnnaBridge 156:ff21514d8981 809 #if defined( CMU_PCNTCTRL_PCNT1CLKEN )
AnnaBridge 156:ff21514d8981 810 /** Pulse counter 1 clock. */
AnnaBridge 156:ff21514d8981 811 cmuClock_PCNT1 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 812 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 813 | (CMU_PCNT_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 814 | (_CMU_PCNTCTRL_PCNT1CLKEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 815 | (CMU_LFA_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 816 #endif
AnnaBridge 156:ff21514d8981 817
AnnaBridge 156:ff21514d8981 818 #if defined( CMU_PCNTCTRL_PCNT2CLKEN )
AnnaBridge 156:ff21514d8981 819 /** Pulse counter 2 clock. */
AnnaBridge 156:ff21514d8981 820 cmuClock_PCNT2 = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 821 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 822 | (CMU_PCNT_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 823 | (_CMU_PCNTCTRL_PCNT2CLKEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 824 | (CMU_LFA_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 825 #endif
AnnaBridge 156:ff21514d8981 826 #if defined( CMU_LFACLKEN0_LESENSE )
AnnaBridge 156:ff21514d8981 827 /** LESENSE clock. */
AnnaBridge 156:ff21514d8981 828 cmuClock_LESENSE = (CMU_LFAPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 829 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 830 | (CMU_LFACLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 831 | (_CMU_LFACLKEN0_LESENSE_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 832 | (CMU_LESENSE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 833 #endif
AnnaBridge 156:ff21514d8981 834
AnnaBridge 156:ff21514d8981 835 /***************/
AnnaBridge 156:ff21514d8981 836 /* LF B branch */
AnnaBridge 156:ff21514d8981 837 /***************/
AnnaBridge 156:ff21514d8981 838
AnnaBridge 156:ff21514d8981 839 /** Low frequency B clock */
AnnaBridge 156:ff21514d8981 840 cmuClock_LFB = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 841 | (CMU_LFBCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 842 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 843 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 844 | (CMU_LFB_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 845
AnnaBridge 156:ff21514d8981 846 #if defined( CMU_LFBCLKEN0_LEUART0 )
AnnaBridge 156:ff21514d8981 847 /** Low energy universal asynchronous receiver/transmitter 0 clock. */
AnnaBridge 156:ff21514d8981 848 cmuClock_LEUART0 = (CMU_LFBPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 849 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 850 | (CMU_LFBCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 851 | (_CMU_LFBCLKEN0_LEUART0_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 852 | (CMU_LEUART0_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 853 #endif
AnnaBridge 156:ff21514d8981 854
AnnaBridge 156:ff21514d8981 855 #if defined( CMU_LFBCLKEN0_CSEN )
AnnaBridge 156:ff21514d8981 856 /** Capacitive Sense LF clock. */
AnnaBridge 156:ff21514d8981 857 cmuClock_CSEN_LF = (CMU_LFBPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 858 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 859 | (CMU_LFBCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 860 | (_CMU_LFBCLKEN0_CSEN_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 861 | (CMU_CSEN_LF_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 862 #endif
AnnaBridge 156:ff21514d8981 863
AnnaBridge 156:ff21514d8981 864 #if defined( CMU_LFBCLKEN0_LEUART1 )
AnnaBridge 156:ff21514d8981 865 /** Low energy universal asynchronous receiver/transmitter 1 clock. */
AnnaBridge 156:ff21514d8981 866 cmuClock_LEUART1 = (CMU_LFBPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 867 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 868 | (CMU_LFBCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 869 | (_CMU_LFBCLKEN0_LEUART1_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 870 | (CMU_LEUART1_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 871 #endif
AnnaBridge 156:ff21514d8981 872
AnnaBridge 156:ff21514d8981 873 #if defined( CMU_LFBCLKEN0_SYSTICK )
AnnaBridge 156:ff21514d8981 874 /** Cortex SYSTICK LF clock. */
AnnaBridge 156:ff21514d8981 875 cmuClock_SYSTICK = (CMU_LFBPRESC0_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 876 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 877 | (CMU_LFBCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 878 | (_CMU_LFBCLKEN0_SYSTICK_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 879 | (CMU_LEUART0_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 880 #endif
AnnaBridge 156:ff21514d8981 881
AnnaBridge 156:ff21514d8981 882 #if defined( _CMU_LFCCLKEN0_MASK )
AnnaBridge 156:ff21514d8981 883 /***************/
AnnaBridge 156:ff21514d8981 884 /* LF C branch */
AnnaBridge 156:ff21514d8981 885 /***************/
AnnaBridge 156:ff21514d8981 886
AnnaBridge 156:ff21514d8981 887 /** Low frequency C clock */
AnnaBridge 156:ff21514d8981 888 cmuClock_LFC = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 889 | (CMU_LFCCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 890 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 891 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 892 | (CMU_LFC_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 893
AnnaBridge 156:ff21514d8981 894 #if defined( CMU_LFCCLKEN0_USBLE )
AnnaBridge 156:ff21514d8981 895 /** USB LE clock. */
AnnaBridge 156:ff21514d8981 896 cmuClock_USBLE = (CMU_NODIV_REG << CMU_DIV_REG_POS)
AnnaBridge 156:ff21514d8981 897 | (CMU_LFCCLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 898 | (CMU_LFCCLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 899 | (_CMU_LFCCLKEN0_USBLE_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 900 | (CMU_USBLE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 901 #endif
AnnaBridge 156:ff21514d8981 902 #endif
AnnaBridge 156:ff21514d8981 903
AnnaBridge 156:ff21514d8981 904 #if defined( _CMU_LFECLKEN0_MASK )
AnnaBridge 156:ff21514d8981 905 /***************/
AnnaBridge 156:ff21514d8981 906 /* LF E branch */
AnnaBridge 156:ff21514d8981 907 /***************/
AnnaBridge 156:ff21514d8981 908
AnnaBridge 156:ff21514d8981 909 /** Low frequency A clock */
AnnaBridge 156:ff21514d8981 910 cmuClock_LFE = (CMU_NOPRESC_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 911 | (CMU_LFECLKSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 912 | (CMU_NO_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 913 | (0 << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 914 | (CMU_LFE_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 915
AnnaBridge 156:ff21514d8981 916 /** Real time counter and calendar clock. */
AnnaBridge 156:ff21514d8981 917 #if defined ( CMU_LFECLKEN0_RTCC )
AnnaBridge 156:ff21514d8981 918 cmuClock_RTCC = (CMU_LFEPRESC0_REG << CMU_PRESC_REG_POS)
AnnaBridge 156:ff21514d8981 919 | (CMU_NOSEL_REG << CMU_SEL_REG_POS)
AnnaBridge 156:ff21514d8981 920 | (CMU_LFECLKEN0_EN_REG << CMU_EN_REG_POS)
AnnaBridge 156:ff21514d8981 921 | (_CMU_LFECLKEN0_RTCC_SHIFT << CMU_EN_BIT_POS)
AnnaBridge 156:ff21514d8981 922 | (CMU_RTCC_CLK_BRANCH << CMU_CLK_BRANCH_POS),
AnnaBridge 156:ff21514d8981 923 #endif
AnnaBridge 156:ff21514d8981 924 #endif
AnnaBridge 156:ff21514d8981 925
AnnaBridge 156:ff21514d8981 926 } CMU_Clock_TypeDef;
AnnaBridge 156:ff21514d8981 927
AnnaBridge 156:ff21514d8981 928 /** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
AnnaBridge 156:ff21514d8981 929 /* Deprecated CMU_Clock_TypeDef member */
AnnaBridge 156:ff21514d8981 930 #define cmuClock_CORELE cmuClock_HFLE
AnnaBridge 156:ff21514d8981 931 /** @endcond */
AnnaBridge 156:ff21514d8981 932
AnnaBridge 156:ff21514d8981 933
AnnaBridge 156:ff21514d8981 934 /** Oscillator types. */
AnnaBridge 156:ff21514d8981 935 typedef enum
AnnaBridge 156:ff21514d8981 936 {
AnnaBridge 156:ff21514d8981 937 cmuOsc_LFXO, /**< Low frequency crystal oscillator. */
AnnaBridge 156:ff21514d8981 938 cmuOsc_LFRCO, /**< Low frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 939 cmuOsc_HFXO, /**< High frequency crystal oscillator. */
AnnaBridge 156:ff21514d8981 940 cmuOsc_HFRCO, /**< High frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 941 cmuOsc_AUXHFRCO, /**< Auxiliary high frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 942 #if defined( _CMU_STATUS_USHFRCOENS_MASK )
AnnaBridge 156:ff21514d8981 943 cmuOsc_USHFRCO, /**< USB high frequency RC oscillator */
AnnaBridge 156:ff21514d8981 944 #endif
AnnaBridge 156:ff21514d8981 945 #if defined( CMU_LFCLKSEL_LFAE_ULFRCO ) || defined( CMU_LFACLKSEL_LFA_ULFRCO )
AnnaBridge 156:ff21514d8981 946 cmuOsc_ULFRCO, /**< Ultra low frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 947 #endif
AnnaBridge 156:ff21514d8981 948 #if defined( _CMU_STATUS_PLFRCOENS_MASK )
AnnaBridge 156:ff21514d8981 949 cmuOsc_PLFRCO, /**< Precision Low Frequency Oscillator. */
AnnaBridge 156:ff21514d8981 950 #endif
AnnaBridge 156:ff21514d8981 951 } CMU_Osc_TypeDef;
AnnaBridge 156:ff21514d8981 952
AnnaBridge 156:ff21514d8981 953 /** Oscillator modes. */
AnnaBridge 156:ff21514d8981 954 typedef enum
AnnaBridge 156:ff21514d8981 955 {
AnnaBridge 156:ff21514d8981 956 cmuOscMode_Crystal, /**< Crystal oscillator. */
AnnaBridge 156:ff21514d8981 957 cmuOscMode_AcCoupled, /**< AC coupled buffer. */
AnnaBridge 156:ff21514d8981 958 cmuOscMode_External, /**< External digital clock. */
AnnaBridge 156:ff21514d8981 959 } CMU_OscMode_TypeDef;
AnnaBridge 156:ff21514d8981 960
AnnaBridge 156:ff21514d8981 961 /** Selectable clock sources. */
AnnaBridge 156:ff21514d8981 962 typedef enum
AnnaBridge 156:ff21514d8981 963 {
AnnaBridge 156:ff21514d8981 964 cmuSelect_Error, /**< Usage error. */
AnnaBridge 156:ff21514d8981 965 cmuSelect_Disabled, /**< Clock selector disabled. */
AnnaBridge 156:ff21514d8981 966 cmuSelect_LFXO, /**< Low frequency crystal oscillator. */
AnnaBridge 156:ff21514d8981 967 cmuSelect_LFRCO, /**< Low frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 968 cmuSelect_HFXO, /**< High frequency crystal oscillator. */
AnnaBridge 156:ff21514d8981 969 cmuSelect_HFRCO, /**< High frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 970 cmuSelect_HFCLKLE, /**< High frequency LE clock divided by 2 or 4. */
AnnaBridge 156:ff21514d8981 971 cmuSelect_AUXHFRCO, /**< Auxilliary clock source can be used for debug clock */
AnnaBridge 156:ff21514d8981 972 cmuSelect_HFCLK, /**< Divided HFCLK on Giant for debug clock, undivided on
AnnaBridge 156:ff21514d8981 973 Tiny Gecko and for USBC (not used on Gecko) */
AnnaBridge 156:ff21514d8981 974 #if defined( CMU_STATUS_USHFRCOENS )
AnnaBridge 156:ff21514d8981 975 cmuSelect_USHFRCO, /**< USB high frequency RC oscillator */
AnnaBridge 156:ff21514d8981 976 #endif
AnnaBridge 156:ff21514d8981 977 #if defined( CMU_CMD_HFCLKSEL_USHFRCODIV2 )
AnnaBridge 156:ff21514d8981 978 cmuSelect_USHFRCODIV2, /**< USB high frequency RC oscillator */
AnnaBridge 156:ff21514d8981 979 #endif
AnnaBridge 156:ff21514d8981 980 #if defined( CMU_LFCLKSEL_LFAE_ULFRCO ) || defined( CMU_LFACLKSEL_LFA_ULFRCO )
AnnaBridge 156:ff21514d8981 981 cmuSelect_ULFRCO, /**< Ultra low frequency RC oscillator. */
AnnaBridge 156:ff21514d8981 982 #endif
AnnaBridge 156:ff21514d8981 983 #if defined( _CMU_STATUS_PLFRCOENS_MASK )
AnnaBridge 156:ff21514d8981 984 cmuSelect_PLFRCO, /**< Precision Low Frequency Oscillator. */
AnnaBridge 156:ff21514d8981 985 #endif
AnnaBridge 156:ff21514d8981 986 } CMU_Select_TypeDef;
AnnaBridge 156:ff21514d8981 987
AnnaBridge 156:ff21514d8981 988 #if defined( CMU_HFCORECLKEN0_LE )
AnnaBridge 156:ff21514d8981 989 /** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
AnnaBridge 156:ff21514d8981 990 /* Deprecated CMU_Select_TypeDef member */
AnnaBridge 156:ff21514d8981 991 #define cmuSelect_CORELEDIV2 cmuSelect_HFCLKLE
AnnaBridge 156:ff21514d8981 992 /** @endcond */
AnnaBridge 156:ff21514d8981 993 #endif
AnnaBridge 156:ff21514d8981 994
AnnaBridge 156:ff21514d8981 995 #if defined( _CMU_HFXOCTRL_PEAKDETSHUNTOPTMODE_MASK )
AnnaBridge 156:ff21514d8981 996 /** HFXO tuning modes */
AnnaBridge 156:ff21514d8981 997 typedef enum
AnnaBridge 156:ff21514d8981 998 {
AnnaBridge 156:ff21514d8981 999 cmuHFXOTuningMode_Auto = 0,
AnnaBridge 156:ff21514d8981 1000 cmuHFXOTuningMode_ShuntCommand = CMU_CMD_HFXOSHUNTOPTSTART, /**< Run shunt current optimization only */
AnnaBridge 156:ff21514d8981 1001 cmuHFXOTuningMode_PeakShuntCommand = CMU_CMD_HFXOPEAKDETSTART /**< Run peak and shunt current optimization */
AnnaBridge 156:ff21514d8981 1002 | CMU_CMD_HFXOSHUNTOPTSTART,
AnnaBridge 156:ff21514d8981 1003 } CMU_HFXOTuningMode_TypeDef;
AnnaBridge 156:ff21514d8981 1004 #endif
AnnaBridge 156:ff21514d8981 1005
AnnaBridge 156:ff21514d8981 1006 #if defined( _CMU_CTRL_LFXOBOOST_MASK )
AnnaBridge 156:ff21514d8981 1007 /** LFXO Boost values. */
AnnaBridge 156:ff21514d8981 1008 typedef enum
AnnaBridge 156:ff21514d8981 1009 {
AnnaBridge 156:ff21514d8981 1010 cmuLfxoBoost70 = 0x0,
AnnaBridge 156:ff21514d8981 1011 cmuLfxoBoost100 = 0x2,
AnnaBridge 156:ff21514d8981 1012 #if defined( _EMU_AUXCTRL_REDLFXOBOOST_MASK )
AnnaBridge 156:ff21514d8981 1013 cmuLfxoBoost70Reduced = 0x1,
AnnaBridge 156:ff21514d8981 1014 cmuLfxoBoost100Reduced = 0x3,
AnnaBridge 156:ff21514d8981 1015 #endif
AnnaBridge 156:ff21514d8981 1016 } CMU_LFXOBoost_TypeDef;
AnnaBridge 156:ff21514d8981 1017 #endif
AnnaBridge 156:ff21514d8981 1018
AnnaBridge 156:ff21514d8981 1019 /*******************************************************************************
AnnaBridge 156:ff21514d8981 1020 ******************************* STRUCTS ***********************************
AnnaBridge 156:ff21514d8981 1021 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1022
AnnaBridge 156:ff21514d8981 1023 /** LFXO initialization structure. Init values should be obtained from a configuration tool,
AnnaBridge 156:ff21514d8981 1024 app note or xtal datasheet */
AnnaBridge 156:ff21514d8981 1025 typedef struct
AnnaBridge 156:ff21514d8981 1026 {
AnnaBridge 156:ff21514d8981 1027 #if defined( _CMU_LFXOCTRL_MASK )
AnnaBridge 156:ff21514d8981 1028 uint8_t ctune; /**< CTUNE (load capacitance) value */
AnnaBridge 156:ff21514d8981 1029 uint8_t gain; /**< Gain / max startup margin */
AnnaBridge 156:ff21514d8981 1030 #else
AnnaBridge 156:ff21514d8981 1031 CMU_LFXOBoost_TypeDef boost; /**< LFXO boost */
AnnaBridge 156:ff21514d8981 1032 #endif
AnnaBridge 156:ff21514d8981 1033 uint8_t timeout; /**< Startup delay */
AnnaBridge 156:ff21514d8981 1034 CMU_OscMode_TypeDef mode; /**< Oscillator mode */
AnnaBridge 156:ff21514d8981 1035 } CMU_LFXOInit_TypeDef;
AnnaBridge 156:ff21514d8981 1036
AnnaBridge 156:ff21514d8981 1037 #if defined( _CMU_LFXOCTRL_MASK )
AnnaBridge 156:ff21514d8981 1038 /** Default LFXO initialization values for platform 2 devices which contain a
AnnaBridge 156:ff21514d8981 1039 * separate LFXOCTRL register. */
AnnaBridge 156:ff21514d8981 1040 #define CMU_LFXOINIT_DEFAULT \
AnnaBridge 156:ff21514d8981 1041 { \
AnnaBridge 156:ff21514d8981 1042 _CMU_LFXOCTRL_TUNING_DEFAULT, /* Default CTUNE value, 0 */ \
AnnaBridge 156:ff21514d8981 1043 _CMU_LFXOCTRL_GAIN_DEFAULT, /* Default gain, 2 */ \
AnnaBridge 156:ff21514d8981 1044 _CMU_LFXOCTRL_TIMEOUT_DEFAULT, /* Default start-up delay, 32k cycles */ \
AnnaBridge 156:ff21514d8981 1045 cmuOscMode_Crystal, /* Crystal oscillator */ \
AnnaBridge 156:ff21514d8981 1046 }
AnnaBridge 156:ff21514d8981 1047 #define CMU_LFXOINIT_EXTERNAL_CLOCK \
AnnaBridge 156:ff21514d8981 1048 { \
AnnaBridge 156:ff21514d8981 1049 0, /* No CTUNE value needed */ \
AnnaBridge 156:ff21514d8981 1050 0, /* No LFXO startup gain */ \
AnnaBridge 156:ff21514d8981 1051 _CMU_LFXOCTRL_TIMEOUT_2CYCLES, /* Minimal lfxo start-up delay, 2 cycles */ \
AnnaBridge 156:ff21514d8981 1052 cmuOscMode_External, /* External digital clock */ \
AnnaBridge 156:ff21514d8981 1053 }
AnnaBridge 156:ff21514d8981 1054 #else
AnnaBridge 156:ff21514d8981 1055 /** Default LFXO initialization values for platform 1 devices. */
AnnaBridge 156:ff21514d8981 1056 #define CMU_LFXOINIT_DEFAULT \
AnnaBridge 156:ff21514d8981 1057 { \
AnnaBridge 156:ff21514d8981 1058 cmuLfxoBoost70, \
AnnaBridge 156:ff21514d8981 1059 _CMU_CTRL_LFXOTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1060 cmuOscMode_Crystal, \
AnnaBridge 156:ff21514d8981 1061 }
AnnaBridge 156:ff21514d8981 1062 #define CMU_LFXOINIT_EXTERNAL_CLOCK \
AnnaBridge 156:ff21514d8981 1063 { \
AnnaBridge 156:ff21514d8981 1064 cmuLfxoBoost70, \
AnnaBridge 156:ff21514d8981 1065 _CMU_CTRL_LFXOTIMEOUT_8CYCLES, \
AnnaBridge 156:ff21514d8981 1066 cmuOscMode_External, \
AnnaBridge 156:ff21514d8981 1067 }
AnnaBridge 156:ff21514d8981 1068 #endif
AnnaBridge 156:ff21514d8981 1069
AnnaBridge 156:ff21514d8981 1070 /** HFXO initialization structure. Init values should be obtained from a configuration tool,
AnnaBridge 156:ff21514d8981 1071 app note or xtal datasheet */
AnnaBridge 156:ff21514d8981 1072 typedef struct
AnnaBridge 156:ff21514d8981 1073 {
AnnaBridge 156:ff21514d8981 1074 #if defined( _CMU_HFXOCTRL_MASK )
AnnaBridge 156:ff21514d8981 1075 bool lowPowerMode; /**< Enable low-power mode */
AnnaBridge 156:ff21514d8981 1076 bool autoStartEm01; /**< @deprecated Use @ref CMU_HFXOAutostartEnable instead. */
AnnaBridge 156:ff21514d8981 1077 bool autoSelEm01; /**< @deprecated Use @ref CMU_HFXOAutostartEnable instead. */
AnnaBridge 156:ff21514d8981 1078 bool autoStartSelOnRacWakeup; /**< @deprecated Use @ref CMU_HFXOAutostartEnable instead. */
AnnaBridge 156:ff21514d8981 1079 uint16_t ctuneStartup; /**< Startup phase CTUNE (load capacitance) value */
AnnaBridge 156:ff21514d8981 1080 uint16_t ctuneSteadyState; /**< Steady-state phase CTUNE (load capacitance) value */
AnnaBridge 156:ff21514d8981 1081 uint8_t regIshSteadyState; /**< Shunt steady-state current */
AnnaBridge 156:ff21514d8981 1082 uint8_t xoCoreBiasTrimStartup; /**< Startup XO core bias current trim */
AnnaBridge 156:ff21514d8981 1083 uint8_t xoCoreBiasTrimSteadyState; /**< Steady-state XO core bias current trim */
AnnaBridge 156:ff21514d8981 1084 uint8_t thresholdPeakDetect; /**< Peak detection threshold */
AnnaBridge 156:ff21514d8981 1085 uint8_t timeoutShuntOptimization; /**< Timeout - shunt optimization */
AnnaBridge 156:ff21514d8981 1086 uint8_t timeoutPeakDetect; /**< Timeout - peak detection */
AnnaBridge 156:ff21514d8981 1087 uint8_t timeoutSteady; /**< Timeout - steady-state */
AnnaBridge 156:ff21514d8981 1088 uint8_t timeoutStartup; /**< Timeout - startup */
AnnaBridge 156:ff21514d8981 1089 #else
AnnaBridge 156:ff21514d8981 1090 uint8_t boost; /**< HFXO Boost, 0=50% 1=70%, 2=80%, 3=100% */
AnnaBridge 156:ff21514d8981 1091 uint8_t timeout; /**< Startup delay */
AnnaBridge 156:ff21514d8981 1092 bool glitchDetector; /**< Enable/disable glitch detector */
AnnaBridge 156:ff21514d8981 1093 #endif
AnnaBridge 156:ff21514d8981 1094 CMU_OscMode_TypeDef mode; /**< Oscillator mode */
AnnaBridge 156:ff21514d8981 1095 } CMU_HFXOInit_TypeDef;
AnnaBridge 156:ff21514d8981 1096
AnnaBridge 156:ff21514d8981 1097 #if defined( _CMU_HFXOCTRL_MASK )
AnnaBridge 156:ff21514d8981 1098 /**
AnnaBridge 156:ff21514d8981 1099 * Default HFXO initialization values for Platform 2 devices which contain a
AnnaBridge 156:ff21514d8981 1100 * separate HFXOCTRL register.
AnnaBridge 156:ff21514d8981 1101 */
AnnaBridge 156:ff21514d8981 1102 #if defined( _EFR_DEVICE )
AnnaBridge 156:ff21514d8981 1103 #define CMU_HFXOINIT_DEFAULT \
AnnaBridge 156:ff21514d8981 1104 { \
AnnaBridge 156:ff21514d8981 1105 false, /* Low-noise mode for EFR32 */ \
AnnaBridge 156:ff21514d8981 1106 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1107 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1108 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1109 _CMU_HFXOSTARTUPCTRL_CTUNE_DEFAULT, \
AnnaBridge 156:ff21514d8981 1110 _CMU_HFXOSTEADYSTATECTRL_CTUNE_DEFAULT, \
AnnaBridge 156:ff21514d8981 1111 _CMU_HFXOSTEADYSTATECTRL_REGISH_DEFAULT, \
AnnaBridge 156:ff21514d8981 1112 0x20, /* Matching errata fix in CHIP_Init() */ \
AnnaBridge 156:ff21514d8981 1113 0x7, /* Recommended steady-state XO core bias current */ \
AnnaBridge 156:ff21514d8981 1114 0x6, /* Recommended peak detection threshold */ \
AnnaBridge 156:ff21514d8981 1115 _CMU_HFXOTIMEOUTCTRL_SHUNTOPTTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1116 0xA, /* Recommended peak detection timeout */ \
AnnaBridge 156:ff21514d8981 1117 0x4, /* Recommended steady timeout */ \
AnnaBridge 156:ff21514d8981 1118 _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1119 cmuOscMode_Crystal, \
AnnaBridge 156:ff21514d8981 1120 }
AnnaBridge 156:ff21514d8981 1121 #else /* EFM32 device */
AnnaBridge 156:ff21514d8981 1122 #define CMU_HFXOINIT_DEFAULT \
AnnaBridge 156:ff21514d8981 1123 { \
AnnaBridge 156:ff21514d8981 1124 true, /* Low-power mode for EFM32 */ \
AnnaBridge 156:ff21514d8981 1125 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1126 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1127 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1128 _CMU_HFXOSTARTUPCTRL_CTUNE_DEFAULT, \
AnnaBridge 156:ff21514d8981 1129 _CMU_HFXOSTEADYSTATECTRL_CTUNE_DEFAULT, \
AnnaBridge 156:ff21514d8981 1130 _CMU_HFXOSTEADYSTATECTRL_REGISH_DEFAULT, \
AnnaBridge 156:ff21514d8981 1131 0x20, /* Matching errata fix in CHIP_Init() */ \
AnnaBridge 156:ff21514d8981 1132 0x7, /* Recommended steady-state osc core bias current */ \
AnnaBridge 156:ff21514d8981 1133 0x6, /* Recommended peak detection threshold */ \
AnnaBridge 156:ff21514d8981 1134 _CMU_HFXOTIMEOUTCTRL_SHUNTOPTTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1135 0xA, /* Recommended peak detection timeout */ \
AnnaBridge 156:ff21514d8981 1136 0x4, /* Recommended steady timeout */ \
AnnaBridge 156:ff21514d8981 1137 _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1138 cmuOscMode_Crystal, \
AnnaBridge 156:ff21514d8981 1139 }
AnnaBridge 156:ff21514d8981 1140 #endif /* _EFR_DEVICE */
AnnaBridge 156:ff21514d8981 1141 #define CMU_HFXOINIT_EXTERNAL_CLOCK \
AnnaBridge 156:ff21514d8981 1142 { \
AnnaBridge 156:ff21514d8981 1143 true, /* Low-power mode */ \
AnnaBridge 156:ff21514d8981 1144 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1145 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1146 false, /* @deprecated no longer in use */ \
AnnaBridge 156:ff21514d8981 1147 0, /* Startup CTUNE=0 recommended for external clock */ \
AnnaBridge 156:ff21514d8981 1148 0, /* Steady CTUNE=0 recommended for external clock */ \
AnnaBridge 156:ff21514d8981 1149 _CMU_HFXOSTEADYSTATECTRL_REGISH_DEFAULT, \
AnnaBridge 156:ff21514d8981 1150 0, /* Startup IBTRIMXOCORE=0 recommended for external clock */ \
AnnaBridge 156:ff21514d8981 1151 0, /* Steady IBTRIMXOCORE=0 recommended for external clock */ \
AnnaBridge 156:ff21514d8981 1152 0x6, /* Recommended peak detection threshold */ \
AnnaBridge 156:ff21514d8981 1153 _CMU_HFXOTIMEOUTCTRL_SHUNTOPTTIMEOUT_DEFAULT, \
AnnaBridge 156:ff21514d8981 1154 0x0, /* Peak-detect not recommended for external clock usage */ \
AnnaBridge 156:ff21514d8981 1155 _CMU_HFXOTIMEOUTCTRL_STEADYTIMEOUT_2CYCLES, /* Minimal steady timeout */ \
AnnaBridge 156:ff21514d8981 1156 _CMU_HFXOTIMEOUTCTRL_STARTUPTIMEOUT_2CYCLES, /* Minimal startup timeout */ \
AnnaBridge 156:ff21514d8981 1157 cmuOscMode_External, \
AnnaBridge 156:ff21514d8981 1158 }
AnnaBridge 156:ff21514d8981 1159 #else /* _CMU_HFXOCTRL_MASK */
AnnaBridge 156:ff21514d8981 1160 /**
AnnaBridge 156:ff21514d8981 1161 * Default HFXO initialization values for Platform 1 devices.
AnnaBridge 156:ff21514d8981 1162 */
AnnaBridge 156:ff21514d8981 1163 #define CMU_HFXOINIT_DEFAULT \
AnnaBridge 156:ff21514d8981 1164 { \
AnnaBridge 156:ff21514d8981 1165 _CMU_CTRL_HFXOBOOST_DEFAULT, /* 100% HFXO boost */ \
AnnaBridge 156:ff21514d8981 1166 _CMU_CTRL_HFXOTIMEOUT_DEFAULT, /* 16k startup delay */ \
AnnaBridge 156:ff21514d8981 1167 false, /* Disable glitch detector */ \
AnnaBridge 156:ff21514d8981 1168 cmuOscMode_Crystal, /* Crystal oscillator */ \
AnnaBridge 156:ff21514d8981 1169 }
AnnaBridge 156:ff21514d8981 1170 #define CMU_HFXOINIT_EXTERNAL_CLOCK \
AnnaBridge 156:ff21514d8981 1171 { \
AnnaBridge 156:ff21514d8981 1172 0, /* Minimal HFXO boost, 50% */ \
AnnaBridge 156:ff21514d8981 1173 _CMU_CTRL_HFXOTIMEOUT_8CYCLES, /* Minimal startup delay, 8 cycles */ \
AnnaBridge 156:ff21514d8981 1174 false, /* Disable glitch detector */ \
AnnaBridge 156:ff21514d8981 1175 cmuOscMode_External, /* External digital clock */ \
AnnaBridge 156:ff21514d8981 1176 }
AnnaBridge 156:ff21514d8981 1177 #endif /* _CMU_HFXOCTRL_MASK */
AnnaBridge 156:ff21514d8981 1178
AnnaBridge 156:ff21514d8981 1179
AnnaBridge 156:ff21514d8981 1180 /*******************************************************************************
AnnaBridge 156:ff21514d8981 1181 ***************************** PROTOTYPES **********************************
AnnaBridge 156:ff21514d8981 1182 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1183
AnnaBridge 156:ff21514d8981 1184 #if defined( _CMU_AUXHFRCOCTRL_BAND_MASK )
AnnaBridge 156:ff21514d8981 1185 CMU_AUXHFRCOBand_TypeDef CMU_AUXHFRCOBandGet(void);
AnnaBridge 156:ff21514d8981 1186 void CMU_AUXHFRCOBandSet(CMU_AUXHFRCOBand_TypeDef band);
AnnaBridge 156:ff21514d8981 1187
AnnaBridge 156:ff21514d8981 1188 #elif defined( _CMU_AUXHFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 1189 CMU_AUXHFRCOFreq_TypeDef CMU_AUXHFRCOBandGet(void);
AnnaBridge 156:ff21514d8981 1190 void CMU_AUXHFRCOBandSet(CMU_AUXHFRCOFreq_TypeDef setFreq);
AnnaBridge 156:ff21514d8981 1191 #endif
AnnaBridge 156:ff21514d8981 1192
AnnaBridge 156:ff21514d8981 1193 uint32_t CMU_Calibrate(uint32_t HFCycles, CMU_Osc_TypeDef reference);
AnnaBridge 156:ff21514d8981 1194
AnnaBridge 156:ff21514d8981 1195 #if defined( _CMU_CALCTRL_UPSEL_MASK ) && defined( _CMU_CALCTRL_DOWNSEL_MASK )
AnnaBridge 156:ff21514d8981 1196 void CMU_CalibrateConfig(uint32_t downCycles, CMU_Osc_TypeDef downSel,
AnnaBridge 156:ff21514d8981 1197 CMU_Osc_TypeDef upSel);
AnnaBridge 156:ff21514d8981 1198 #endif
AnnaBridge 156:ff21514d8981 1199
AnnaBridge 156:ff21514d8981 1200 uint32_t CMU_CalibrateCountGet(void);
AnnaBridge 156:ff21514d8981 1201 void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable);
AnnaBridge 156:ff21514d8981 1202 CMU_ClkDiv_TypeDef CMU_ClockDivGet(CMU_Clock_TypeDef clock);
AnnaBridge 156:ff21514d8981 1203 void CMU_ClockDivSet(CMU_Clock_TypeDef clock, CMU_ClkDiv_TypeDef div);
AnnaBridge 156:ff21514d8981 1204 uint32_t CMU_ClockFreqGet(CMU_Clock_TypeDef clock);
AnnaBridge 156:ff21514d8981 1205
AnnaBridge 156:ff21514d8981 1206 #if defined( _SILICON_LABS_32B_SERIES_1 )
AnnaBridge 156:ff21514d8981 1207 void CMU_ClockPrescSet(CMU_Clock_TypeDef clock, uint32_t presc);
AnnaBridge 156:ff21514d8981 1208 uint32_t CMU_ClockPrescGet(CMU_Clock_TypeDef clock);
AnnaBridge 156:ff21514d8981 1209 #endif
AnnaBridge 156:ff21514d8981 1210
AnnaBridge 156:ff21514d8981 1211 void CMU_ClockSelectSet(CMU_Clock_TypeDef clock, CMU_Select_TypeDef ref);
AnnaBridge 156:ff21514d8981 1212 CMU_Select_TypeDef CMU_ClockSelectGet(CMU_Clock_TypeDef clock);
AnnaBridge 156:ff21514d8981 1213 void CMU_FreezeEnable(bool enable);
AnnaBridge 156:ff21514d8981 1214
AnnaBridge 156:ff21514d8981 1215 #if defined( _CMU_HFRCOCTRL_BAND_MASK )
AnnaBridge 156:ff21514d8981 1216 CMU_HFRCOBand_TypeDef CMU_HFRCOBandGet(void);
AnnaBridge 156:ff21514d8981 1217 void CMU_HFRCOBandSet(CMU_HFRCOBand_TypeDef band);
AnnaBridge 156:ff21514d8981 1218
AnnaBridge 156:ff21514d8981 1219 #elif defined( _CMU_HFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 1220 CMU_HFRCOFreq_TypeDef CMU_HFRCOBandGet(void);
AnnaBridge 156:ff21514d8981 1221 void CMU_HFRCOBandSet(CMU_HFRCOFreq_TypeDef setFreq);
AnnaBridge 156:ff21514d8981 1222 #endif
AnnaBridge 156:ff21514d8981 1223
AnnaBridge 156:ff21514d8981 1224 uint32_t CMU_HFRCOStartupDelayGet(void);
AnnaBridge 156:ff21514d8981 1225 void CMU_HFRCOStartupDelaySet(uint32_t delay);
AnnaBridge 156:ff21514d8981 1226
AnnaBridge 156:ff21514d8981 1227 #if defined( _CMU_HFXOCTRL_AUTOSTARTEM0EM1_MASK )
AnnaBridge 156:ff21514d8981 1228 void CMU_HFXOAutostartEnable(uint32_t userSel,
AnnaBridge 156:ff21514d8981 1229 bool enEM0EM1Start,
AnnaBridge 156:ff21514d8981 1230 bool enEM0EM1StartSel);
AnnaBridge 156:ff21514d8981 1231 #endif
AnnaBridge 156:ff21514d8981 1232
AnnaBridge 156:ff21514d8981 1233 void CMU_HFXOInit(const CMU_HFXOInit_TypeDef *hfxoInit);
AnnaBridge 156:ff21514d8981 1234
AnnaBridge 156:ff21514d8981 1235
AnnaBridge 156:ff21514d8981 1236 uint32_t CMU_LCDClkFDIVGet(void);
AnnaBridge 156:ff21514d8981 1237 void CMU_LCDClkFDIVSet(uint32_t div);
AnnaBridge 156:ff21514d8981 1238 void CMU_LFXOInit(const CMU_LFXOInit_TypeDef *lfxoInit);
AnnaBridge 156:ff21514d8981 1239
AnnaBridge 156:ff21514d8981 1240 void CMU_OscillatorEnable(CMU_Osc_TypeDef osc, bool enable, bool wait);
AnnaBridge 156:ff21514d8981 1241 uint32_t CMU_OscillatorTuningGet(CMU_Osc_TypeDef osc);
AnnaBridge 156:ff21514d8981 1242 void CMU_OscillatorTuningSet(CMU_Osc_TypeDef osc, uint32_t val);
AnnaBridge 156:ff21514d8981 1243
AnnaBridge 156:ff21514d8981 1244 #if defined( _CMU_HFXOCTRL_PEAKDETSHUNTOPTMODE_MASK )
AnnaBridge 156:ff21514d8981 1245 bool CMU_OscillatorTuningWait(CMU_Osc_TypeDef osc, CMU_HFXOTuningMode_TypeDef mode);
AnnaBridge 156:ff21514d8981 1246 bool CMU_OscillatorTuningOptimize(CMU_Osc_TypeDef osc,
AnnaBridge 156:ff21514d8981 1247 CMU_HFXOTuningMode_TypeDef mode,
AnnaBridge 156:ff21514d8981 1248 bool wait);
AnnaBridge 156:ff21514d8981 1249 #endif
AnnaBridge 156:ff21514d8981 1250
AnnaBridge 156:ff21514d8981 1251 bool CMU_PCNTClockExternalGet(unsigned int instance);
AnnaBridge 156:ff21514d8981 1252 void CMU_PCNTClockExternalSet(unsigned int instance, bool external);
AnnaBridge 156:ff21514d8981 1253
AnnaBridge 156:ff21514d8981 1254 #if defined( _CMU_USHFRCOCONF_BAND_MASK )
AnnaBridge 156:ff21514d8981 1255 CMU_USHFRCOBand_TypeDef CMU_USHFRCOBandGet(void);
AnnaBridge 156:ff21514d8981 1256 void CMU_USHFRCOBandSet(CMU_USHFRCOBand_TypeDef band);
AnnaBridge 156:ff21514d8981 1257 #endif
AnnaBridge 156:ff21514d8981 1258
AnnaBridge 156:ff21514d8981 1259
AnnaBridge 156:ff21514d8981 1260 #if defined( CMU_CALCTRL_CONT )
AnnaBridge 156:ff21514d8981 1261 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1262 * @brief
AnnaBridge 156:ff21514d8981 1263 * Configures continuous calibration mode
AnnaBridge 156:ff21514d8981 1264 * @param[in] enable
AnnaBridge 156:ff21514d8981 1265 * If true, enables continuous calibration, if false disables continuous
AnnaBridge 156:ff21514d8981 1266 * calibrartion
AnnaBridge 156:ff21514d8981 1267 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1268 __STATIC_INLINE void CMU_CalibrateCont(bool enable)
AnnaBridge 156:ff21514d8981 1269 {
AnnaBridge 156:ff21514d8981 1270 BUS_RegBitWrite(&(CMU->CALCTRL), _CMU_CALCTRL_CONT_SHIFT, enable);
AnnaBridge 156:ff21514d8981 1271 }
AnnaBridge 156:ff21514d8981 1272 #endif
AnnaBridge 156:ff21514d8981 1273
AnnaBridge 156:ff21514d8981 1274
AnnaBridge 156:ff21514d8981 1275 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1276 * @brief
AnnaBridge 156:ff21514d8981 1277 * Starts calibration
AnnaBridge 156:ff21514d8981 1278 * @note
AnnaBridge 156:ff21514d8981 1279 * This call is usually invoked after CMU_CalibrateConfig() and possibly
AnnaBridge 156:ff21514d8981 1280 * CMU_CalibrateCont()
AnnaBridge 156:ff21514d8981 1281 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1282 __STATIC_INLINE void CMU_CalibrateStart(void)
AnnaBridge 156:ff21514d8981 1283 {
AnnaBridge 156:ff21514d8981 1284 CMU->CMD = CMU_CMD_CALSTART;
AnnaBridge 156:ff21514d8981 1285 }
AnnaBridge 156:ff21514d8981 1286
AnnaBridge 156:ff21514d8981 1287
AnnaBridge 156:ff21514d8981 1288 #if defined( CMU_CMD_CALSTOP )
AnnaBridge 156:ff21514d8981 1289 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1290 * @brief
AnnaBridge 156:ff21514d8981 1291 * Stop the calibration counters
AnnaBridge 156:ff21514d8981 1292 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1293 __STATIC_INLINE void CMU_CalibrateStop(void)
AnnaBridge 156:ff21514d8981 1294 {
AnnaBridge 156:ff21514d8981 1295 CMU->CMD = CMU_CMD_CALSTOP;
AnnaBridge 156:ff21514d8981 1296 }
AnnaBridge 156:ff21514d8981 1297 #endif
AnnaBridge 156:ff21514d8981 1298
AnnaBridge 156:ff21514d8981 1299
AnnaBridge 156:ff21514d8981 1300 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1301 * @brief
AnnaBridge 156:ff21514d8981 1302 * Convert dividend to logarithmic value. Only works for even
AnnaBridge 156:ff21514d8981 1303 * numbers equal to 2^n.
AnnaBridge 156:ff21514d8981 1304 *
AnnaBridge 156:ff21514d8981 1305 * @param[in] div
AnnaBridge 156:ff21514d8981 1306 * Unscaled dividend.
AnnaBridge 156:ff21514d8981 1307 *
AnnaBridge 156:ff21514d8981 1308 * @return
AnnaBridge 156:ff21514d8981 1309 * Logarithm of 2, as used by fixed prescalers.
AnnaBridge 156:ff21514d8981 1310 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1311 __STATIC_INLINE uint32_t CMU_DivToLog2(CMU_ClkDiv_TypeDef div)
AnnaBridge 156:ff21514d8981 1312 {
AnnaBridge 156:ff21514d8981 1313 uint32_t log2;
AnnaBridge 156:ff21514d8981 1314
AnnaBridge 156:ff21514d8981 1315 /* Fixed 2^n prescalers take argument of 32768 or less. */
AnnaBridge 156:ff21514d8981 1316 EFM_ASSERT((div > 0U) && (div <= 32768U));
AnnaBridge 156:ff21514d8981 1317
AnnaBridge 156:ff21514d8981 1318 /* Count leading zeroes and "reverse" result */
AnnaBridge 156:ff21514d8981 1319 log2 = (31U - __CLZ(div));
AnnaBridge 156:ff21514d8981 1320
AnnaBridge 156:ff21514d8981 1321 return log2;
AnnaBridge 156:ff21514d8981 1322 }
AnnaBridge 156:ff21514d8981 1323
AnnaBridge 156:ff21514d8981 1324
AnnaBridge 156:ff21514d8981 1325 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1326 * @brief
AnnaBridge 156:ff21514d8981 1327 * Clear one or more pending CMU interrupts.
AnnaBridge 156:ff21514d8981 1328 *
AnnaBridge 156:ff21514d8981 1329 * @param[in] flags
AnnaBridge 156:ff21514d8981 1330 * CMU interrupt sources to clear.
AnnaBridge 156:ff21514d8981 1331 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1332 __STATIC_INLINE void CMU_IntClear(uint32_t flags)
AnnaBridge 156:ff21514d8981 1333 {
AnnaBridge 156:ff21514d8981 1334 CMU->IFC = flags;
AnnaBridge 156:ff21514d8981 1335 }
AnnaBridge 156:ff21514d8981 1336
AnnaBridge 156:ff21514d8981 1337
AnnaBridge 156:ff21514d8981 1338 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1339 * @brief
AnnaBridge 156:ff21514d8981 1340 * Disable one or more CMU interrupts.
AnnaBridge 156:ff21514d8981 1341 *
AnnaBridge 156:ff21514d8981 1342 * @param[in] flags
AnnaBridge 156:ff21514d8981 1343 * CMU interrupt sources to disable.
AnnaBridge 156:ff21514d8981 1344 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1345 __STATIC_INLINE void CMU_IntDisable(uint32_t flags)
AnnaBridge 156:ff21514d8981 1346 {
AnnaBridge 156:ff21514d8981 1347 CMU->IEN &= ~flags;
AnnaBridge 156:ff21514d8981 1348 }
AnnaBridge 156:ff21514d8981 1349
AnnaBridge 156:ff21514d8981 1350
AnnaBridge 156:ff21514d8981 1351 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1352 * @brief
AnnaBridge 156:ff21514d8981 1353 * Enable one or more CMU interrupts.
AnnaBridge 156:ff21514d8981 1354 *
AnnaBridge 156:ff21514d8981 1355 * @note
AnnaBridge 156:ff21514d8981 1356 * Depending on the use, a pending interrupt may already be set prior to
AnnaBridge 156:ff21514d8981 1357 * enabling the interrupt. Consider using CMU_IntClear() prior to enabling
AnnaBridge 156:ff21514d8981 1358 * if such a pending interrupt should be ignored.
AnnaBridge 156:ff21514d8981 1359 *
AnnaBridge 156:ff21514d8981 1360 * @param[in] flags
AnnaBridge 156:ff21514d8981 1361 * CMU interrupt sources to enable.
AnnaBridge 156:ff21514d8981 1362 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1363 __STATIC_INLINE void CMU_IntEnable(uint32_t flags)
AnnaBridge 156:ff21514d8981 1364 {
AnnaBridge 156:ff21514d8981 1365 CMU->IEN |= flags;
AnnaBridge 156:ff21514d8981 1366 }
AnnaBridge 156:ff21514d8981 1367
AnnaBridge 156:ff21514d8981 1368
AnnaBridge 156:ff21514d8981 1369 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1370 * @brief
AnnaBridge 156:ff21514d8981 1371 * Get pending CMU interrupts.
AnnaBridge 156:ff21514d8981 1372 *
AnnaBridge 156:ff21514d8981 1373 * @return
AnnaBridge 156:ff21514d8981 1374 * CMU interrupt sources pending.
AnnaBridge 156:ff21514d8981 1375 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1376 __STATIC_INLINE uint32_t CMU_IntGet(void)
AnnaBridge 156:ff21514d8981 1377 {
AnnaBridge 156:ff21514d8981 1378 return CMU->IF;
AnnaBridge 156:ff21514d8981 1379 }
AnnaBridge 156:ff21514d8981 1380
AnnaBridge 156:ff21514d8981 1381
AnnaBridge 156:ff21514d8981 1382 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1383 * @brief
AnnaBridge 156:ff21514d8981 1384 * Get enabled and pending CMU interrupt flags.
AnnaBridge 156:ff21514d8981 1385 *
AnnaBridge 156:ff21514d8981 1386 * @details
AnnaBridge 156:ff21514d8981 1387 * Useful for handling more interrupt sources in the same interrupt handler.
AnnaBridge 156:ff21514d8981 1388 *
AnnaBridge 156:ff21514d8981 1389 * @note
AnnaBridge 156:ff21514d8981 1390 * The event bits are not cleared by the use of this function.
AnnaBridge 156:ff21514d8981 1391 *
AnnaBridge 156:ff21514d8981 1392 * @return
AnnaBridge 156:ff21514d8981 1393 * Pending and enabled CMU interrupt sources
AnnaBridge 156:ff21514d8981 1394 * The return value is the bitwise AND of
AnnaBridge 156:ff21514d8981 1395 * - the enabled interrupt sources in CMU_IEN and
AnnaBridge 156:ff21514d8981 1396 * - the pending interrupt flags CMU_IF
AnnaBridge 156:ff21514d8981 1397 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1398 __STATIC_INLINE uint32_t CMU_IntGetEnabled(void)
AnnaBridge 156:ff21514d8981 1399 {
AnnaBridge 156:ff21514d8981 1400 uint32_t ien;
AnnaBridge 156:ff21514d8981 1401
AnnaBridge 156:ff21514d8981 1402 ien = CMU->IEN;
AnnaBridge 156:ff21514d8981 1403 return CMU->IF & ien;
AnnaBridge 156:ff21514d8981 1404 }
AnnaBridge 156:ff21514d8981 1405
AnnaBridge 156:ff21514d8981 1406
AnnaBridge 156:ff21514d8981 1407 /**************************************************************************//**
AnnaBridge 156:ff21514d8981 1408 * @brief
AnnaBridge 156:ff21514d8981 1409 * Set one or more pending CMU interrupts.
AnnaBridge 156:ff21514d8981 1410 *
AnnaBridge 156:ff21514d8981 1411 * @param[in] flags
AnnaBridge 156:ff21514d8981 1412 * CMU interrupt sources to set to pending.
AnnaBridge 156:ff21514d8981 1413 *****************************************************************************/
AnnaBridge 156:ff21514d8981 1414 __STATIC_INLINE void CMU_IntSet(uint32_t flags)
AnnaBridge 156:ff21514d8981 1415 {
AnnaBridge 156:ff21514d8981 1416 CMU->IFS = flags;
AnnaBridge 156:ff21514d8981 1417 }
AnnaBridge 156:ff21514d8981 1418
AnnaBridge 156:ff21514d8981 1419
AnnaBridge 156:ff21514d8981 1420 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1421 * @brief
AnnaBridge 156:ff21514d8981 1422 * Lock the CMU in order to protect some of its registers against unintended
AnnaBridge 156:ff21514d8981 1423 * modification.
AnnaBridge 156:ff21514d8981 1424 *
AnnaBridge 156:ff21514d8981 1425 * @details
AnnaBridge 156:ff21514d8981 1426 * Please refer to the reference manual for CMU registers that will be
AnnaBridge 156:ff21514d8981 1427 * locked.
AnnaBridge 156:ff21514d8981 1428 *
AnnaBridge 156:ff21514d8981 1429 * @note
AnnaBridge 156:ff21514d8981 1430 * If locking the CMU registers, they must be unlocked prior to using any
AnnaBridge 156:ff21514d8981 1431 * CMU API functions modifying CMU registers protected by the lock.
AnnaBridge 156:ff21514d8981 1432 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1433 __STATIC_INLINE void CMU_Lock(void)
AnnaBridge 156:ff21514d8981 1434 {
AnnaBridge 156:ff21514d8981 1435 CMU->LOCK = CMU_LOCK_LOCKKEY_LOCK;
AnnaBridge 156:ff21514d8981 1436 }
AnnaBridge 156:ff21514d8981 1437
AnnaBridge 156:ff21514d8981 1438
AnnaBridge 156:ff21514d8981 1439 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1440 * @brief
AnnaBridge 156:ff21514d8981 1441 * Convert logarithm of 2 prescaler to division factor.
AnnaBridge 156:ff21514d8981 1442 *
AnnaBridge 156:ff21514d8981 1443 * @param[in] log2
AnnaBridge 156:ff21514d8981 1444 * Logarithm of 2, as used by fixed prescalers.
AnnaBridge 156:ff21514d8981 1445 *
AnnaBridge 156:ff21514d8981 1446 * @return
AnnaBridge 156:ff21514d8981 1447 * Dividend.
AnnaBridge 156:ff21514d8981 1448 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1449 __STATIC_INLINE uint32_t CMU_Log2ToDiv(uint32_t log2)
AnnaBridge 156:ff21514d8981 1450 {
AnnaBridge 156:ff21514d8981 1451 return 1 << log2;
AnnaBridge 156:ff21514d8981 1452 }
AnnaBridge 156:ff21514d8981 1453
AnnaBridge 156:ff21514d8981 1454
AnnaBridge 156:ff21514d8981 1455 #if defined( _SILICON_LABS_32B_SERIES_1 )
AnnaBridge 156:ff21514d8981 1456 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1457 * @brief
AnnaBridge 156:ff21514d8981 1458 * Convert prescaler dividend to logarithmic value. Only works for even
AnnaBridge 156:ff21514d8981 1459 * numbers equal to 2^n.
AnnaBridge 156:ff21514d8981 1460 *
AnnaBridge 156:ff21514d8981 1461 * @param[in] presc
AnnaBridge 156:ff21514d8981 1462 * Unscaled dividend (dividend = presc + 1).
AnnaBridge 156:ff21514d8981 1463 *
AnnaBridge 156:ff21514d8981 1464 * @return
AnnaBridge 156:ff21514d8981 1465 * Logarithm of 2, as used by fixed 2^n prescalers.
AnnaBridge 156:ff21514d8981 1466 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1467 __STATIC_INLINE uint32_t CMU_PrescToLog2(CMU_ClkPresc_TypeDef presc)
AnnaBridge 156:ff21514d8981 1468 {
AnnaBridge 156:ff21514d8981 1469 uint32_t log2;
AnnaBridge 156:ff21514d8981 1470
AnnaBridge 156:ff21514d8981 1471 /* Integer prescalers take argument less than 32768. */
AnnaBridge 156:ff21514d8981 1472 EFM_ASSERT(presc < 32768U);
AnnaBridge 156:ff21514d8981 1473
AnnaBridge 156:ff21514d8981 1474 /* Count leading zeroes and "reverse" result */
AnnaBridge 156:ff21514d8981 1475 log2 = (31U - __CLZ(presc + 1));
AnnaBridge 156:ff21514d8981 1476
AnnaBridge 156:ff21514d8981 1477 /* Check that presc is a 2^n number */
AnnaBridge 156:ff21514d8981 1478 EFM_ASSERT(presc == (CMU_Log2ToDiv(log2) - 1));
AnnaBridge 156:ff21514d8981 1479
AnnaBridge 156:ff21514d8981 1480 return log2;
AnnaBridge 156:ff21514d8981 1481 }
AnnaBridge 156:ff21514d8981 1482 #endif
AnnaBridge 156:ff21514d8981 1483
AnnaBridge 156:ff21514d8981 1484
AnnaBridge 156:ff21514d8981 1485 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1486 * @brief
AnnaBridge 156:ff21514d8981 1487 * Unlock the CMU so that writing to locked registers again is possible.
AnnaBridge 156:ff21514d8981 1488 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1489 __STATIC_INLINE void CMU_Unlock(void)
AnnaBridge 156:ff21514d8981 1490 {
AnnaBridge 156:ff21514d8981 1491 CMU->LOCK = CMU_LOCK_LOCKKEY_UNLOCK;
AnnaBridge 156:ff21514d8981 1492 }
AnnaBridge 156:ff21514d8981 1493
AnnaBridge 156:ff21514d8981 1494
AnnaBridge 156:ff21514d8981 1495 #if defined( _CMU_HFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 1496 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1497 * @brief
AnnaBridge 156:ff21514d8981 1498 * Get current HFRCO frequency.
AnnaBridge 156:ff21514d8981 1499 *
AnnaBridge 156:ff21514d8981 1500 * @deprecated
AnnaBridge 156:ff21514d8981 1501 * Deprecated function. New code should use @ref CMU_HFRCOBandGet().
AnnaBridge 156:ff21514d8981 1502 *
AnnaBridge 156:ff21514d8981 1503 * @return
AnnaBridge 156:ff21514d8981 1504 * HFRCO frequency
AnnaBridge 156:ff21514d8981 1505 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1506 __STATIC_INLINE CMU_HFRCOFreq_TypeDef CMU_HFRCOFreqGet(void)
AnnaBridge 156:ff21514d8981 1507 {
AnnaBridge 156:ff21514d8981 1508 return CMU_HFRCOBandGet();
AnnaBridge 156:ff21514d8981 1509 }
AnnaBridge 156:ff21514d8981 1510
AnnaBridge 156:ff21514d8981 1511
AnnaBridge 156:ff21514d8981 1512 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1513 * @brief
AnnaBridge 156:ff21514d8981 1514 * Set HFRCO calibration for the selected target frequency
AnnaBridge 156:ff21514d8981 1515 *
AnnaBridge 156:ff21514d8981 1516 * @deprecated
AnnaBridge 156:ff21514d8981 1517 * Deprecated function. New code should use @ref CMU_HFRCOBandSet().
AnnaBridge 156:ff21514d8981 1518 *
AnnaBridge 156:ff21514d8981 1519 * @param[in] setFreq
AnnaBridge 156:ff21514d8981 1520 * HFRCO frequency to set
AnnaBridge 156:ff21514d8981 1521 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1522 __STATIC_INLINE void CMU_HFRCOFreqSet(CMU_HFRCOFreq_TypeDef setFreq)
AnnaBridge 156:ff21514d8981 1523 {
AnnaBridge 156:ff21514d8981 1524 CMU_HFRCOBandSet(setFreq);
AnnaBridge 156:ff21514d8981 1525 }
AnnaBridge 156:ff21514d8981 1526 #endif
AnnaBridge 156:ff21514d8981 1527
AnnaBridge 156:ff21514d8981 1528
AnnaBridge 156:ff21514d8981 1529 #if defined( _CMU_AUXHFRCOCTRL_FREQRANGE_MASK )
AnnaBridge 156:ff21514d8981 1530 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1531 * @brief
AnnaBridge 156:ff21514d8981 1532 * Get current AUXHFRCO frequency.
AnnaBridge 156:ff21514d8981 1533 *
AnnaBridge 156:ff21514d8981 1534 * @deprecated
AnnaBridge 156:ff21514d8981 1535 * Deprecated function. New code should use @ref CMU_AUXHFRCOBandGet().
AnnaBridge 156:ff21514d8981 1536 *
AnnaBridge 156:ff21514d8981 1537 * @return
AnnaBridge 156:ff21514d8981 1538 * AUXHFRCO frequency
AnnaBridge 156:ff21514d8981 1539 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1540 __STATIC_INLINE CMU_AUXHFRCOFreq_TypeDef CMU_AUXHFRCOFreqGet(void)
AnnaBridge 156:ff21514d8981 1541 {
AnnaBridge 156:ff21514d8981 1542 return CMU_AUXHFRCOBandGet();
AnnaBridge 156:ff21514d8981 1543 }
AnnaBridge 156:ff21514d8981 1544
AnnaBridge 156:ff21514d8981 1545
AnnaBridge 156:ff21514d8981 1546 /***************************************************************************//**
AnnaBridge 156:ff21514d8981 1547 * @brief
AnnaBridge 156:ff21514d8981 1548 * Set AUXHFRCO calibration for the selected target frequency
AnnaBridge 156:ff21514d8981 1549 *
AnnaBridge 156:ff21514d8981 1550 * @deprecated
AnnaBridge 156:ff21514d8981 1551 * Deprecated function. New code should use @ref CMU_AUXHFRCOBandSet().
AnnaBridge 156:ff21514d8981 1552 *
AnnaBridge 156:ff21514d8981 1553 * @param[in] setFreq
AnnaBridge 156:ff21514d8981 1554 * AUXHFRCO frequency to set
AnnaBridge 156:ff21514d8981 1555 ******************************************************************************/
AnnaBridge 156:ff21514d8981 1556 __STATIC_INLINE void CMU_AUXHFRCOFreqSet(CMU_AUXHFRCOFreq_TypeDef setFreq)
AnnaBridge 156:ff21514d8981 1557 {
AnnaBridge 156:ff21514d8981 1558 CMU_AUXHFRCOBandSet(setFreq);
AnnaBridge 156:ff21514d8981 1559 }
AnnaBridge 156:ff21514d8981 1560 #endif
AnnaBridge 156:ff21514d8981 1561
AnnaBridge 156:ff21514d8981 1562 /** @} (end addtogroup CMU) */
AnnaBridge 156:ff21514d8981 1563 /** @} (end addtogroup emlib) */
AnnaBridge 156:ff21514d8981 1564
AnnaBridge 156:ff21514d8981 1565 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 1566 }
AnnaBridge 156:ff21514d8981 1567 #endif
AnnaBridge 156:ff21514d8981 1568
AnnaBridge 156:ff21514d8981 1569 #endif /* defined( CMU_PRESENT ) */
AnnaBridge 156:ff21514d8981 1570 #endif /* EM_CMU_H */