Rigado / mbed-src-bmd-200

Dependents:   mbed_blinky-bmd-200 bmd-200_accel_demo firstRig

Fork of mbed-src by mbed official

Committer:
dcnichols
Date:
Fri Jul 10 17:36:27 2015 +0000
Revision:
592:5e2eb8beba71
Parent:
324:406fd2029f23
updating to latest mbed-src

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 324:406fd2029f23 1 /*
mbed_official 324:406fd2029f23 2 * Copyright (c) 2013 - 2014, Freescale Semiconductor, Inc.
mbed_official 324:406fd2029f23 3 * All rights reserved.
mbed_official 324:406fd2029f23 4 *
mbed_official 324:406fd2029f23 5 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 324:406fd2029f23 6 * are permitted provided that the following conditions are met:
mbed_official 324:406fd2029f23 7 *
mbed_official 324:406fd2029f23 8 * o Redistributions of source code must retain the above copyright notice, this list
mbed_official 324:406fd2029f23 9 * of conditions and the following disclaimer.
mbed_official 324:406fd2029f23 10 *
mbed_official 324:406fd2029f23 11 * o Redistributions in binary form must reproduce the above copyright notice, this
mbed_official 324:406fd2029f23 12 * list of conditions and the following disclaimer in the documentation and/or
mbed_official 324:406fd2029f23 13 * other materials provided with the distribution.
mbed_official 324:406fd2029f23 14 *
mbed_official 324:406fd2029f23 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
mbed_official 324:406fd2029f23 16 * contributors may be used to endorse or promote products derived from this
mbed_official 324:406fd2029f23 17 * software without specific prior written permission.
mbed_official 324:406fd2029f23 18 *
mbed_official 324:406fd2029f23 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
mbed_official 324:406fd2029f23 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
mbed_official 324:406fd2029f23 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 324:406fd2029f23 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
mbed_official 324:406fd2029f23 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
mbed_official 324:406fd2029f23 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
mbed_official 324:406fd2029f23 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
mbed_official 324:406fd2029f23 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
mbed_official 324:406fd2029f23 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
mbed_official 324:406fd2029f23 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 324:406fd2029f23 29 */
mbed_official 324:406fd2029f23 30
mbed_official 324:406fd2029f23 31 #include <stdint.h>
mbed_official 324:406fd2029f23 32 #include <stdlib.h>
mbed_official 324:406fd2029f23 33 #include <stdbool.h>
mbed_official 324:406fd2029f23 34 #include "fsl_device_registers.h"
mbed_official 324:406fd2029f23 35 #include "fsl_sim_hal.h"
mbed_official 324:406fd2029f23 36 #include "fsl_clock_manager.h"
mbed_official 324:406fd2029f23 37 #include "fsl_osc_hal.h"
mbed_official 324:406fd2029f23 38
mbed_official 324:406fd2029f23 39 /*******************************************************************************
mbed_official 324:406fd2029f23 40 * Definitions
mbed_official 324:406fd2029f23 41 ******************************************************************************/
mbed_official 324:406fd2029f23 42
mbed_official 324:406fd2029f23 43 /* Table of base addresses for instances. */
mbed_official 324:406fd2029f23 44 extern const uint32_t g_simBaseAddr[];
mbed_official 324:406fd2029f23 45 extern const uint32_t g_mcgBaseAddr[];
mbed_official 324:406fd2029f23 46 const uint32_t g_oscBaseAddr[] = OSC_BASE_ADDRS;
mbed_official 324:406fd2029f23 47
mbed_official 324:406fd2029f23 48 /*******************************************************************************
mbed_official 324:406fd2029f23 49 * Code
mbed_official 324:406fd2029f23 50 ******************************************************************************/
mbed_official 324:406fd2029f23 51
mbed_official 324:406fd2029f23 52 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 53 *
mbed_official 324:406fd2029f23 54 * Function Name : CLOCK_SYS_GetDmaFreq
mbed_official 324:406fd2029f23 55 * Description : Gets the clock frequency for DMA module
mbed_official 324:406fd2029f23 56 * This function gets the clock frequency for DMA moudle.
mbed_official 324:406fd2029f23 57 *
mbed_official 324:406fd2029f23 58 *END**************************************************************************/
mbed_official 324:406fd2029f23 59 uint32_t CLOCK_SYS_GetDmaFreq(uint32_t instance)
mbed_official 324:406fd2029f23 60 {
mbed_official 324:406fd2029f23 61 uint32_t freq = 0;
mbed_official 324:406fd2029f23 62 CLOCK_SYS_GetFreq(kSystemClock, &freq);
mbed_official 324:406fd2029f23 63 return freq;
mbed_official 324:406fd2029f23 64 }
mbed_official 324:406fd2029f23 65
mbed_official 324:406fd2029f23 66 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 67 *
mbed_official 324:406fd2029f23 68 * Function Name : CLOCK_SYS_GetDmamuxFreq
mbed_official 324:406fd2029f23 69 * Description : Gets the clock frequency for DMAMUX module
mbed_official 324:406fd2029f23 70 * This function gets the clock frequency for DMAMUX moudle.
mbed_official 324:406fd2029f23 71 *
mbed_official 324:406fd2029f23 72 *END**************************************************************************/
mbed_official 324:406fd2029f23 73 uint32_t CLOCK_SYS_GetDmamuxFreq(uint32_t instance)
mbed_official 324:406fd2029f23 74 {
mbed_official 324:406fd2029f23 75 uint32_t freq = 0;
mbed_official 324:406fd2029f23 76 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 77 return freq;
mbed_official 324:406fd2029f23 78 }
mbed_official 324:406fd2029f23 79
mbed_official 324:406fd2029f23 80 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 81 *
mbed_official 324:406fd2029f23 82 * Function Name : CLOCK_SYS_GetPortFreq
mbed_official 324:406fd2029f23 83 * Description : Gets the clock frequency for PORT module
mbed_official 324:406fd2029f23 84 * This function gets the clock frequency for PORT moudle.
mbed_official 324:406fd2029f23 85 *
mbed_official 324:406fd2029f23 86 *END**************************************************************************/
mbed_official 324:406fd2029f23 87 uint32_t CLOCK_SYS_GetPortFreq(uint32_t instance)
mbed_official 324:406fd2029f23 88 {
mbed_official 324:406fd2029f23 89 uint32_t freq = 0;
mbed_official 324:406fd2029f23 90 CLOCK_SYS_GetFreq(kLpoClock, &freq);
mbed_official 324:406fd2029f23 91 return freq;
mbed_official 324:406fd2029f23 92 }
mbed_official 324:406fd2029f23 93
mbed_official 324:406fd2029f23 94 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 95 *
mbed_official 324:406fd2029f23 96 * Function Name : CLOCK_SYS_GetEwmFreq
mbed_official 324:406fd2029f23 97 * Description : Gets the clock frequency for Ewm module
mbed_official 324:406fd2029f23 98 * This function gets the clock frequency for Ewm moudle.
mbed_official 324:406fd2029f23 99 *
mbed_official 324:406fd2029f23 100 *END**************************************************************************/
mbed_official 324:406fd2029f23 101 uint32_t CLOCK_SYS_GetEwmFreq(uint32_t instance)
mbed_official 324:406fd2029f23 102 {
mbed_official 324:406fd2029f23 103 uint32_t freq = 0;
mbed_official 324:406fd2029f23 104 CLOCK_SYS_GetFreq(kLpoClock, &freq);
mbed_official 324:406fd2029f23 105 return freq;
mbed_official 324:406fd2029f23 106 }
mbed_official 324:406fd2029f23 107
mbed_official 324:406fd2029f23 108 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 109 *
mbed_official 324:406fd2029f23 110 * Function Name : CLOCK_SYS_GetFlexbusFreq
mbed_official 324:406fd2029f23 111 * Description : Gets the clock frequency for FLEXBUS module
mbed_official 324:406fd2029f23 112 * This function gets the clock frequency for FLEXBUS moudle.
mbed_official 324:406fd2029f23 113 *
mbed_official 324:406fd2029f23 114 *END**************************************************************************/
mbed_official 324:406fd2029f23 115 uint32_t CLOCK_SYS_GetFlexbusFreq(uint32_t instance)
mbed_official 324:406fd2029f23 116 {
mbed_official 324:406fd2029f23 117 uint32_t freq = 0;
mbed_official 324:406fd2029f23 118 CLOCK_SYS_GetFreq(kSystemClock, &freq);
mbed_official 324:406fd2029f23 119 return freq;
mbed_official 324:406fd2029f23 120 }
mbed_official 324:406fd2029f23 121
mbed_official 324:406fd2029f23 122 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 123 *
mbed_official 324:406fd2029f23 124 * Function Name : CLOCK_SYS_GetFtfFreq
mbed_official 324:406fd2029f23 125 * Description : Gets the clock frequency for FTF module. (Flash Memory)
mbed_official 324:406fd2029f23 126 * This function gets the clock frequency for FTF moudle.
mbed_official 324:406fd2029f23 127 *
mbed_official 324:406fd2029f23 128 *END**************************************************************************/
mbed_official 324:406fd2029f23 129 uint32_t CLOCK_SYS_GetFtfFreq(uint32_t instance)
mbed_official 324:406fd2029f23 130 {
mbed_official 324:406fd2029f23 131 uint32_t freq = 0;
mbed_official 324:406fd2029f23 132 CLOCK_SYS_GetFreq(kFlashClock, &freq);
mbed_official 324:406fd2029f23 133 return freq;
mbed_official 324:406fd2029f23 134 }
mbed_official 324:406fd2029f23 135
mbed_official 324:406fd2029f23 136 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 137 *
mbed_official 324:406fd2029f23 138 * Function Name : CLOCK_SYS_GetCrcFreq
mbed_official 324:406fd2029f23 139 * Description : Gets the clock frequency for CRC module
mbed_official 324:406fd2029f23 140 * This function gets the clock frequency for CRC moudle.
mbed_official 324:406fd2029f23 141 *
mbed_official 324:406fd2029f23 142 *END**************************************************************************/
mbed_official 324:406fd2029f23 143 uint32_t CLOCK_SYS_GetCrcFreq(uint32_t instance)
mbed_official 324:406fd2029f23 144 {
mbed_official 324:406fd2029f23 145 uint32_t freq = 0;
mbed_official 324:406fd2029f23 146 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 147 return freq;
mbed_official 324:406fd2029f23 148 }
mbed_official 324:406fd2029f23 149
mbed_official 324:406fd2029f23 150 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 151 *
mbed_official 324:406fd2029f23 152 * Function Name : CLOCK_SYS_GetRngaFreq
mbed_official 324:406fd2029f23 153 * Description : Gets the clock frequency for RNGA module
mbed_official 324:406fd2029f23 154 * This function gets the clock frequency for RNGA moudle.
mbed_official 324:406fd2029f23 155 *
mbed_official 324:406fd2029f23 156 *END**************************************************************************/
mbed_official 324:406fd2029f23 157 uint32_t CLOCK_SYS_GetRngaFreq(uint32_t instance)
mbed_official 324:406fd2029f23 158 {
mbed_official 324:406fd2029f23 159 uint32_t freq = 0;
mbed_official 324:406fd2029f23 160 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 161 return freq;
mbed_official 324:406fd2029f23 162 }
mbed_official 324:406fd2029f23 163
mbed_official 324:406fd2029f23 164 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 165 *
mbed_official 324:406fd2029f23 166 * Function Name : CLOCK_SYS_GetAdcFreq
mbed_official 324:406fd2029f23 167 * Description : Gets the clock frequency for ADC module
mbed_official 324:406fd2029f23 168 * This function gets the clock frequency for ADC moudle.
mbed_official 324:406fd2029f23 169 *
mbed_official 324:406fd2029f23 170 *END**************************************************************************/
mbed_official 324:406fd2029f23 171 uint32_t CLOCK_SYS_GetAdcFreq(uint32_t instance)
mbed_official 324:406fd2029f23 172 {
mbed_official 324:406fd2029f23 173 uint32_t freq = 0;
mbed_official 324:406fd2029f23 174 uint32_t divider;
mbed_official 324:406fd2029f23 175
mbed_official 324:406fd2029f23 176 CLOCK_SYS_GetFreq(kOsc0ErClock, &freq);
mbed_official 324:406fd2029f23 177
mbed_official 324:406fd2029f23 178 divider = OSC_HAL_GetExternalRefClkDivCmd(g_oscBaseAddr[0]);
mbed_official 324:406fd2029f23 179 freq = freq >> divider; /* 2 bits divider, divide by 1/2/4/8 */
mbed_official 324:406fd2029f23 180
mbed_official 324:406fd2029f23 181 return freq;
mbed_official 324:406fd2029f23 182 }
mbed_official 324:406fd2029f23 183
mbed_official 324:406fd2029f23 184 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 185 *
mbed_official 324:406fd2029f23 186 * Function Name : CLOCK_SYS_GetCmpFreq
mbed_official 324:406fd2029f23 187 * Description : Gets the clock frequency for CMP module
mbed_official 324:406fd2029f23 188 * This function gets the clock frequency for CMP moudle.
mbed_official 324:406fd2029f23 189 *
mbed_official 324:406fd2029f23 190 *END**************************************************************************/
mbed_official 324:406fd2029f23 191 uint32_t CLOCK_SYS_GetCmpFreq(uint32_t instance)
mbed_official 324:406fd2029f23 192 {
mbed_official 324:406fd2029f23 193 uint32_t freq = 0;
mbed_official 324:406fd2029f23 194 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 195 return freq;
mbed_official 324:406fd2029f23 196 }
mbed_official 324:406fd2029f23 197
mbed_official 324:406fd2029f23 198 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 199 *
mbed_official 324:406fd2029f23 200 * Function Name : CLOCK_SYS_GetVrefFreq
mbed_official 324:406fd2029f23 201 * Description : Gets the clock frequency for VREF module
mbed_official 324:406fd2029f23 202 * This function gets the clock frequency for VREF moudle.
mbed_official 324:406fd2029f23 203 *
mbed_official 324:406fd2029f23 204 *END**************************************************************************/
mbed_official 324:406fd2029f23 205 uint32_t CLOCK_SYS_GetVrefFreq(uint32_t instance)
mbed_official 324:406fd2029f23 206 {
mbed_official 324:406fd2029f23 207 uint32_t freq = 0;
mbed_official 324:406fd2029f23 208 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 209 return freq;
mbed_official 324:406fd2029f23 210 }
mbed_official 324:406fd2029f23 211
mbed_official 324:406fd2029f23 212 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 213 *
mbed_official 324:406fd2029f23 214 * Function Name : CLOCK_SYS_GetPdbFreq
mbed_official 324:406fd2029f23 215 * Description : Gets the clock frequency for PDB module
mbed_official 324:406fd2029f23 216 * This function gets the clock frequency for PDB moudle.
mbed_official 324:406fd2029f23 217 *
mbed_official 324:406fd2029f23 218 *END**************************************************************************/
mbed_official 324:406fd2029f23 219 uint32_t CLOCK_SYS_GetPdbFreq(uint32_t instance)
mbed_official 324:406fd2029f23 220 {
mbed_official 324:406fd2029f23 221 uint32_t freq = 0;
mbed_official 324:406fd2029f23 222 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 223 return freq;
mbed_official 324:406fd2029f23 224 }
mbed_official 324:406fd2029f23 225
mbed_official 324:406fd2029f23 226 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 227 *
mbed_official 324:406fd2029f23 228 * Function Name : CLOCK_SYS_GetFtmFreq
mbed_official 324:406fd2029f23 229 * Description : Gets the clock frequency for FTM module. (FlexTimers)
mbed_official 324:406fd2029f23 230 * This function gets the clock frequency for FTM moudle.
mbed_official 324:406fd2029f23 231 *
mbed_official 324:406fd2029f23 232 *END**************************************************************************/
mbed_official 324:406fd2029f23 233 uint32_t CLOCK_SYS_GetFtmFreq(uint32_t instance)
mbed_official 324:406fd2029f23 234 {
mbed_official 324:406fd2029f23 235 uint32_t freq = 0;
mbed_official 324:406fd2029f23 236 CLOCK_SYS_GetFreq(kMcgFfClock, &freq);
mbed_official 324:406fd2029f23 237 return freq;
mbed_official 324:406fd2029f23 238 }
mbed_official 324:406fd2029f23 239
mbed_official 324:406fd2029f23 240 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 241 *
mbed_official 324:406fd2029f23 242 * Function Name : CLOCK_SYS_GetPitFreq
mbed_official 324:406fd2029f23 243 * Description : Gets the clock frequency for Pit module.
mbed_official 324:406fd2029f23 244 * This function gets the clock frequency for Pit moudle.
mbed_official 324:406fd2029f23 245 *
mbed_official 324:406fd2029f23 246 *END**************************************************************************/
mbed_official 324:406fd2029f23 247 uint32_t CLOCK_SYS_GetPitFreq(uint32_t instance)
mbed_official 324:406fd2029f23 248 {
mbed_official 324:406fd2029f23 249 uint32_t freq = 0;
mbed_official 324:406fd2029f23 250 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 251 return freq;
mbed_official 324:406fd2029f23 252 }
mbed_official 324:406fd2029f23 253
mbed_official 324:406fd2029f23 254 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 255 *
mbed_official 324:406fd2029f23 256 * Function Name : CLOCK_SYS_GetUsbFreq
mbed_official 324:406fd2029f23 257 * Description : Gets the clock frequency for USB FS OTG module.
mbed_official 324:406fd2029f23 258 * This function gets the clock frequency for USB FS OTG moudle.
mbed_official 324:406fd2029f23 259 *
mbed_official 324:406fd2029f23 260 *END**************************************************************************/
mbed_official 324:406fd2029f23 261 uint32_t CLOCK_SYS_GetUsbFreq(uint32_t instance)
mbed_official 324:406fd2029f23 262 {
mbed_official 324:406fd2029f23 263 uint32_t freq = 0;
mbed_official 324:406fd2029f23 264 uint8_t setting;
mbed_official 324:406fd2029f23 265 clock_names_t clockName;
mbed_official 324:406fd2029f23 266 uint32_t frac = 0;
mbed_official 324:406fd2029f23 267 uint32_t divider = 0;
mbed_official 324:406fd2029f23 268
mbed_official 324:406fd2029f23 269 /* get the sim clock source setting*/
mbed_official 324:406fd2029f23 270 if (CLOCK_HAL_GetSource(g_simBaseAddr[0], kClockUsbSrc, &setting) != kSimHalSuccess)
mbed_official 324:406fd2029f23 271 {
mbed_official 324:406fd2029f23 272 return freq;
mbed_official 324:406fd2029f23 273 }
mbed_official 324:406fd2029f23 274
mbed_official 324:406fd2029f23 275 switch ((sim_usb_clock_source_t)setting)
mbed_official 324:406fd2029f23 276 {
mbed_official 324:406fd2029f23 277 case kSimUsbSrcClkIn: /* Core/system clock */
mbed_official 324:406fd2029f23 278 clockName = kUSB_CLKIN;
mbed_official 324:406fd2029f23 279 break;
mbed_official 324:406fd2029f23 280 case kSimUsbSrcPllFllSel: /* clock as selected by SOPT2[PLLFLLSEL]. */
mbed_official 324:406fd2029f23 281 /* get the sim clock source setting*/
mbed_official 324:406fd2029f23 282 if (CLOCK_HAL_GetSource(g_simBaseAddr[0], kClockPllfllSel, &setting) != kSimHalSuccess)
mbed_official 324:406fd2029f23 283 {
mbed_official 324:406fd2029f23 284 return freq;
mbed_official 324:406fd2029f23 285 }
mbed_official 324:406fd2029f23 286
mbed_official 324:406fd2029f23 287 switch ((sim_pllfll_clock_sel_t)setting)
mbed_official 324:406fd2029f23 288 {
mbed_official 324:406fd2029f23 289 case kSimPllFllSelFll: /* Fll clock */
mbed_official 324:406fd2029f23 290 clockName = kMcgFllClock;
mbed_official 324:406fd2029f23 291 break;
mbed_official 324:406fd2029f23 292 case kSimPllFllSelPll: /* Pll0 clock */
mbed_official 324:406fd2029f23 293 clockName = kMcgPll0Clock;
mbed_official 324:406fd2029f23 294 break;
mbed_official 324:406fd2029f23 295 case kSimPllFllSelIrc: /* Irc 48Mhz clock */
mbed_official 324:406fd2029f23 296 clockName = kIrc48mClock;
mbed_official 324:406fd2029f23 297 break;
mbed_official 324:406fd2029f23 298 default:
mbed_official 324:406fd2029f23 299 clockName = kReserved;
mbed_official 324:406fd2029f23 300 break;
mbed_official 324:406fd2029f23 301 }
mbed_official 324:406fd2029f23 302 break;
mbed_official 324:406fd2029f23 303 default:
mbed_official 324:406fd2029f23 304 clockName = kReserved;
mbed_official 324:406fd2029f23 305 break;
mbed_official 324:406fd2029f23 306 }
mbed_official 324:406fd2029f23 307
mbed_official 324:406fd2029f23 308 /* Get ref clock freq */
mbed_official 324:406fd2029f23 309 CLOCK_SYS_GetFreq(clockName, &freq);
mbed_official 324:406fd2029f23 310
mbed_official 324:406fd2029f23 311 /* Get divider and frac */
mbed_official 324:406fd2029f23 312 CLOCK_HAL_GetDivider(g_simBaseAddr[0], kClockDividerUsbDiv, &divider);
mbed_official 324:406fd2029f23 313 CLOCK_HAL_GetDivider(g_simBaseAddr[0], kClockDividerUsbFrac, &frac);
mbed_official 324:406fd2029f23 314
mbed_official 324:406fd2029f23 315 /* Divider output clock = Divider input clock × [ (FRAC+1) / (DIV+1) ]*/
mbed_official 324:406fd2029f23 316 freq = (freq) * (frac + 1) / (divider + 1);
mbed_official 324:406fd2029f23 317
mbed_official 324:406fd2029f23 318 return freq;
mbed_official 324:406fd2029f23 319 }
mbed_official 324:406fd2029f23 320
mbed_official 324:406fd2029f23 321 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 322 *
mbed_official 324:406fd2029f23 323 * Function Name : CLOCK_SYS_GetSpiFreq
mbed_official 324:406fd2029f23 324 * Description : Gets the clock frequency for SPI module.
mbed_official 324:406fd2029f23 325 * This function gets the clock frequency for SPI moudle.
mbed_official 324:406fd2029f23 326 *
mbed_official 324:406fd2029f23 327 *END**************************************************************************/
mbed_official 324:406fd2029f23 328 uint32_t CLOCK_SYS_GetSpiFreq(uint32_t instance)
mbed_official 324:406fd2029f23 329 {
mbed_official 324:406fd2029f23 330 uint32_t freq = 0;
mbed_official 324:406fd2029f23 331 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 332 return freq;
mbed_official 324:406fd2029f23 333 }
mbed_official 324:406fd2029f23 334
mbed_official 324:406fd2029f23 335 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 336 *
mbed_official 324:406fd2029f23 337 * Function Name : CLOCK_SYS_GetI2cFreq
mbed_official 324:406fd2029f23 338 * Description : Gets the clock frequency for I2C module.
mbed_official 324:406fd2029f23 339 * This function gets the clock frequency for I2C moudle.
mbed_official 324:406fd2029f23 340 *
mbed_official 324:406fd2029f23 341 *END**************************************************************************/
mbed_official 324:406fd2029f23 342 uint32_t CLOCK_SYS_GetI2cFreq(uint32_t instance)
mbed_official 324:406fd2029f23 343 {
mbed_official 324:406fd2029f23 344 uint32_t freq = 0;
mbed_official 324:406fd2029f23 345 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 346 return freq;
mbed_official 324:406fd2029f23 347 }
mbed_official 324:406fd2029f23 348
mbed_official 324:406fd2029f23 349 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 350 *
mbed_official 324:406fd2029f23 351 * Function Name : CLOCK_SYS_GetUartFreq
mbed_official 324:406fd2029f23 352 * Description : Gets the clock frequency for UART module.
mbed_official 324:406fd2029f23 353 * This function gets the clock frequency for UART moudle.
mbed_official 324:406fd2029f23 354 *
mbed_official 324:406fd2029f23 355 *END**************************************************************************/
mbed_official 324:406fd2029f23 356 uint32_t CLOCK_SYS_GetUartFreq(uint32_t instance)
mbed_official 324:406fd2029f23 357 {
mbed_official 324:406fd2029f23 358 uint32_t freq = 0;
mbed_official 324:406fd2029f23 359
mbed_official 324:406fd2029f23 360 switch (instance)
mbed_official 324:406fd2029f23 361 {
mbed_official 324:406fd2029f23 362 case 0:
mbed_official 324:406fd2029f23 363 case 1:
mbed_official 324:406fd2029f23 364 CLOCK_SYS_GetFreq(kSystemClock, &freq);
mbed_official 324:406fd2029f23 365 break;
mbed_official 324:406fd2029f23 366 case 2:
mbed_official 324:406fd2029f23 367 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 368 break;
mbed_official 324:406fd2029f23 369 default:
mbed_official 324:406fd2029f23 370 break;
mbed_official 324:406fd2029f23 371 }
mbed_official 324:406fd2029f23 372
mbed_official 324:406fd2029f23 373 return freq;
mbed_official 324:406fd2029f23 374 }
mbed_official 324:406fd2029f23 375
mbed_official 324:406fd2029f23 376 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 377 *
mbed_official 324:406fd2029f23 378 * Function Name : CLOCK_SYS_GetLpuartFreq
mbed_official 324:406fd2029f23 379 * Description : Gets the clock frequency for LPUART module.
mbed_official 324:406fd2029f23 380 * This function gets the clock frequency for LPUART moudle.
mbed_official 324:406fd2029f23 381 *
mbed_official 324:406fd2029f23 382 *END**************************************************************************/
mbed_official 324:406fd2029f23 383 uint32_t CLOCK_SYS_GetLpuartFreq(uint32_t instance)
mbed_official 324:406fd2029f23 384 {
mbed_official 324:406fd2029f23 385 uint32_t freq = 0;
mbed_official 324:406fd2029f23 386 uint8_t setting;
mbed_official 324:406fd2029f23 387 uint8_t setting1;
mbed_official 324:406fd2029f23 388 clock_names_t clockName;
mbed_official 324:406fd2029f23 389 uint32_t divider = 0;
mbed_official 324:406fd2029f23 390
mbed_official 324:406fd2029f23 391 /* get the sim clock source setting*/
mbed_official 324:406fd2029f23 392 if (CLOCK_HAL_GetSource(g_simBaseAddr[0], kClockLpuartSrc, &setting) != kSimHalSuccess)
mbed_official 324:406fd2029f23 393 {
mbed_official 324:406fd2029f23 394 return freq;
mbed_official 324:406fd2029f23 395 }
mbed_official 324:406fd2029f23 396
mbed_official 324:406fd2029f23 397 switch ((sim_lpuart_clock_source_t)setting)
mbed_official 324:406fd2029f23 398 {
mbed_official 324:406fd2029f23 399 case kSimLpuartSrcPllFllSel: /* clock as selected by SOPT2[PLLFLLSEL]. */
mbed_official 324:406fd2029f23 400 /* get the sim clock source setting*/
mbed_official 324:406fd2029f23 401 if (CLOCK_HAL_GetSource(g_simBaseAddr[0], kClockPllfllSel, &setting1) != kSimHalSuccess)
mbed_official 324:406fd2029f23 402 {
mbed_official 324:406fd2029f23 403 return freq;
mbed_official 324:406fd2029f23 404 }
mbed_official 324:406fd2029f23 405
mbed_official 324:406fd2029f23 406 switch ((sim_pllfll_clock_sel_t)setting1)
mbed_official 324:406fd2029f23 407 {
mbed_official 324:406fd2029f23 408 case kSimPllFllSelFll: /* Fll clock */
mbed_official 324:406fd2029f23 409 clockName = kMcgFllClock;
mbed_official 324:406fd2029f23 410 break;
mbed_official 324:406fd2029f23 411 case kSimPllFllSelPll: /* Pll0 clock */
mbed_official 324:406fd2029f23 412 clockName = kMcgPll0Clock;
mbed_official 324:406fd2029f23 413 break;
mbed_official 324:406fd2029f23 414 case kSimPllFllSelIrc: /* Irc 48Mhz clock */
mbed_official 324:406fd2029f23 415 clockName = kIrc48mClock;
mbed_official 324:406fd2029f23 416 break;
mbed_official 324:406fd2029f23 417 default:
mbed_official 324:406fd2029f23 418 clockName = kReserved;
mbed_official 324:406fd2029f23 419 break;
mbed_official 324:406fd2029f23 420 }
mbed_official 324:406fd2029f23 421 break;
mbed_official 324:406fd2029f23 422 case kSimLpuartSrcOscErclk: /* OscErClk with divider */
mbed_official 324:406fd2029f23 423 clockName = kOsc0ErClock;
mbed_official 324:406fd2029f23 424 break;
mbed_official 324:406fd2029f23 425 case kSimLpuartSrcMcgIrclk: /* MCGIRCLK */
mbed_official 324:406fd2029f23 426 clockName = kMcgIrClock;
mbed_official 324:406fd2029f23 427 break;
mbed_official 324:406fd2029f23 428 default:
mbed_official 324:406fd2029f23 429 clockName = kReserved;
mbed_official 324:406fd2029f23 430 break;
mbed_official 324:406fd2029f23 431 }
mbed_official 324:406fd2029f23 432
mbed_official 324:406fd2029f23 433 /* Get ref clock freq */
mbed_official 324:406fd2029f23 434 CLOCK_SYS_GetFreq(clockName, &freq);
mbed_official 324:406fd2029f23 435
mbed_official 324:406fd2029f23 436 if ((sim_lpuart_clock_source_t)setting == kSimLpuartSrcOscErclk)
mbed_official 324:406fd2029f23 437 {
mbed_official 324:406fd2029f23 438 divider = OSC_HAL_GetExternalRefClkDivCmd(g_oscBaseAddr[0]);
mbed_official 324:406fd2029f23 439 freq = freq >> divider; /* 2 bits divider, divide by 1/2/4/8 */
mbed_official 324:406fd2029f23 440 }
mbed_official 324:406fd2029f23 441
mbed_official 324:406fd2029f23 442 return freq;
mbed_official 324:406fd2029f23 443 }
mbed_official 324:406fd2029f23 444
mbed_official 324:406fd2029f23 445 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 446 *
mbed_official 324:406fd2029f23 447 * Function Name : CLOCK_SYS_GetSaiFreq
mbed_official 324:406fd2029f23 448 * Description : Gets the clock frequency for I2S module
mbed_official 324:406fd2029f23 449 * This function gets the clock frequency for I2S moudle.
mbed_official 324:406fd2029f23 450 *
mbed_official 324:406fd2029f23 451 *END**************************************************************************/
mbed_official 324:406fd2029f23 452 uint32_t CLOCK_SYS_GetSaiFreq(uint32_t instance)
mbed_official 324:406fd2029f23 453 {
mbed_official 324:406fd2029f23 454 uint32_t freq = 0;
mbed_official 324:406fd2029f23 455 CLOCK_SYS_GetFreq(kBusClock, &freq);
mbed_official 324:406fd2029f23 456 return freq;
mbed_official 324:406fd2029f23 457 }
mbed_official 324:406fd2029f23 458
mbed_official 324:406fd2029f23 459 /*FUNCTION**********************************************************************
mbed_official 324:406fd2029f23 460 *
mbed_official 324:406fd2029f23 461 * Function Name : CLOCK_SYS_GetGpioFreq
mbed_official 324:406fd2029f23 462 * Description : Gets the clock frequency for GPIO module.
mbed_official 324:406fd2029f23 463 * This function gets the clock frequency for GPIO moudle.
mbed_official 324:406fd2029f23 464 *
mbed_official 324:406fd2029f23 465 *END**************************************************************************/
mbed_official 324:406fd2029f23 466 uint32_t CLOCK_SYS_GetGpioFreq(uint32_t instance)
mbed_official 324:406fd2029f23 467 {
mbed_official 324:406fd2029f23 468 uint32_t freq = 0;
mbed_official 324:406fd2029f23 469
mbed_official 324:406fd2029f23 470 CLOCK_SYS_GetFreq(kPlatformClock, &freq);
mbed_official 324:406fd2029f23 471
mbed_official 324:406fd2029f23 472 return freq;
mbed_official 324:406fd2029f23 473 }
mbed_official 324:406fd2029f23 474
mbed_official 324:406fd2029f23 475 /*******************************************************************************
mbed_official 324:406fd2029f23 476 * EOF
mbed_official 324:406fd2029f23 477 ******************************************************************************/