Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed_blinky-bmd-200 bmd-200_accel_demo firstRig
Fork of mbed-src by
targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K22F/MK22F51212/fsl_clock_K22F51212.c@592:5e2eb8beba71, 2015-07-10 (annotated)
- 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?
User | Revision | Line number | New 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, ÷r); |
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 | ******************************************************************************/ |