diff options
author | Dominik Sliwa <dominik.sliwa@toradex.com> | 2016-06-28 12:52:53 +0200 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2016-06-28 12:52:53 +0200 |
commit | fa209ec01431327fcd0ea9684e35b15f0e755d0e (patch) | |
tree | c4053d5feaa9fdc7f319270226120cad6d3b07ab /board | |
parent | a28b2bc566d93e4ce4f8bac6b1b1d6a526e4e92e (diff) |
usb: Code for USB device detection
Diffstat (limited to 'board')
-rw-r--r-- | board/clock_config.c | 55 | ||||
-rw-r--r-- | board/clock_config.h | 2 |
2 files changed, 51 insertions, 6 deletions
diff --git a/board/clock_config.c b/board/clock_config.c index 41f6eb5..12b04db 100644 --- a/board/clock_config.c +++ b/board/clock_config.c @@ -30,6 +30,10 @@ /* This is a template for clock configuration created by New Kinetis SDK 2.x Project Wizard. Enjoy! */ +#include "fsl_device_registers.h" +#include "fsl_common.h" +#include "fsl_clock.h" +#include "clock_config.h" /******************************************************************************* * Definitions @@ -43,10 +47,51 @@ * Code ******************************************************************************/ -/*! - * @brief configure clock after reset for this demo/example - */ -void BOARD_BootClockRUN(void) { - /* The user configuration should be placed here */ +void BOARD_InitOsc0(void) +{ + const osc_config_t oscConfig = {.freq = BOARD_XTAL0_CLK_HZ, + .capLoad = 0, + .workMode = kOSC_ModeOscLowPower, + .oscerConfig = { + .enableMode = kOSC_ErClkEnable, +#if (defined(FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) && FSL_FEATURE_OSC_HAS_EXT_REF_CLOCK_DIVIDER) + .erclkDiv = 0U, +#endif + }}; + + CLOCK_InitOsc0(&oscConfig); + + /* Passing the XTAL0 frequency to clock driver. */ + CLOCK_SetXtal0Freq(BOARD_XTAL0_CLK_HZ); + /* Use RTC_CLKIN input clock directly. */ + //CLOCK_SetXtal32Freq(BOARD_XTAL32K_CLK_HZ); +} + +void BOARD_BootClockRUN(void) +{ + /* + * Core clock: 96MHz + * Bus clock: 48MHz + */ + mcg_pll_config_t pll0Config = { + .enableMode = 0U, .prdiv = 0x3U, .vdiv = 0x18U, + }; + const sim_clock_config_t simConfig = { + .pllFllSel = 1U, /* PLLFLLSEL select PLL. */ + .er32kSrc = 2U, /* ERCLK32K selection, use RTC. */ + .clkdiv1 = 0x01130000U, /* SIM_CLKDIV1. */ + }; + + CLOCK_SetSimSafeDivs(); + BOARD_InitOsc0(); + + CLOCK_CalcPllDiv(BOARD_XTAL0_CLK_HZ, 96000000U, &pll0Config.prdiv, &pll0Config.vdiv); + CLOCK_BootToPeeMode(kMCG_OscselOsc, kMCG_PllClkSelPll0, &pll0Config); + + CLOCK_SetInternalRefClkConfig(kMCG_IrclkEnable, kMCG_IrcSlow, 0); + CLOCK_SetSimConfig(&simConfig); + + SystemCoreClock = 96000000U; } + diff --git a/board/clock_config.h b/board/clock_config.h index e39811f..f9c2406 100644 --- a/board/clock_config.h +++ b/board/clock_config.h @@ -36,7 +36,7 @@ /******************************************************************************* * DEFINITION ******************************************************************************/ - +#define BOARD_XTAL0_CLK_HZ 8000000U /******************************************************************************* * API ******************************************************************************/ |