2025-05-21 11:31:07 +08:00

282 lines
13 KiB
C

/* ###################################################################
** This component module is generated by Processor Expert. Do not modify it.
** Filename : clockMan1.c
** Project : S32K118_reva1_BaseDemo_LQFP48
** Processor : S32K118_48
** Component : clock_manager
** Version : Component SDK_S32K1xx_15, Driver 01.00, CPU db: 3.00.000
** Repository : SDK_S32K1xx_15
** Compiler : GNU C Compiler
** Date/Time : 2021-09-16, 21:36, # CodeGen: 6
**
** Copyright 1997 - 2015 Freescale Semiconductor, Inc.
** Copyright 2016-2017 NXP
** All Rights Reserved.
**
** THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
** STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
** IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
** ###################################################################*/
/*!
** @file clockMan1.c
** @version 01.00
*/
/*!
** @addtogroup clockMan1_module clockMan1 module documentation
** @{
*/
/* clockMan1. */
#include "clockMan1.h"
/**
* @page misra_violations MISRA-C:2012 violations
*
* @section [global]
* Violates MISRA 2012 Required Rule 9.4, Duplicate initialization of object element.
* It's the only way to initialize an array that is member of struct.
*
* @section [global]
* Violates MISRA 2012 Advisory Rule 8.7, External variable could be made static.
* The external variables will be used in other source files in application code.
*/
/* *************************************************************************
* Configuration structure for peripheral clock configuration 0
* ************************************************************************* */
/*! @brief peripheral clock configuration 0 */
peripheral_clock_config_t peripheralClockConfig0[NUM_OF_PERIPHERAL_CLOCKS_0] = {
{
.clockName = DMAMUX0_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = FLEXIO0_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_SIRC_DIV2,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = LPI2C0_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_SIRC_DIV2,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = LPUART0_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_SIRC_DIV2,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = LPUART1_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_SIRC_DIV2,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = PORTA_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = PORTB_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = PORTC_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = PORTD_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
{
.clockName = PORTE_CLK,
.clkGate = true,
.clkSrc = CLK_SRC_OFF,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
},
};
/* *************************************************************************
* Configuration structure for Clock Configuration 0
* ************************************************************************* */
/*! @brief User Configuration structure clockMan1_InitConfig0 */
clock_manager_user_config_t clockMan1_InitConfig0 = {
/*! @brief Configuration of SIRC */
.scgConfig =
{
.sircConfig =
{
.initialize = true, /*!< Initialize */
/* SIRCCSR */
.enableInStop = false, /*!< SIRCSTEN */
.enableInLowPower = true, /*!< SIRCLPEN */
.locked = false, /*!< LK */
/* SIRCCFG */
.range = SCG_SIRC_RANGE_HIGH, /*!< RANGE - High range (8 MHz) */
/* SIRCDIV */
.div1 = SCG_ASYNC_CLOCK_DIV_BY_1, /*!< SIRCDIV1 */
.div2 = SCG_ASYNC_CLOCK_DIV_BY_1, /*!< SIRCDIV2 */
},
.fircConfig =
{
.initialize = true, /*!< Initialize */
/* FIRCCSR */
.regulator = true, /*!< FIRCREGOFF */
.locked = false, /*!< LK */
/* FIRCCFG */
.range = SCG_FIRC_RANGE_48M, /*!< RANGE */
/* FIRCDIV */
.div1 = SCG_ASYNC_CLOCK_DIV_BY_1, /*!< FIRCDIV1 */
.div2 = SCG_ASYNC_CLOCK_DIV_BY_1, /*!< FIRCDIV2 */
},
.rtcConfig =
{
.initialize = true, /*!< Initialize */
.rtcClkInFreq = 0U, /*!< RTC_CLKIN */
},
.soscConfig =
{
.initialize = false, /*!< Do not initialize*/
},
.spllConfig =
{
.initialize = false, /*!< Do not initialize*/
},
.clockOutConfig =
{
.initialize = true, /*!< Initialize */
.source = SCG_CLOCKOUT_SRC_FIRC, /*!< SCG CLKOUTSEL */
},
.clockModeConfig =
{
.initialize = true, /*!< Initialize */
.rccrConfig = /*!< RCCR - Run Clock Control Register */
{
.src = SCG_SYSTEM_CLOCK_SRC_FIRC, /*!< SCS */
.divCore = SCG_SYSTEM_CLOCK_DIV_BY_1, /*!< DIVCORE */
.divBus = SCG_SYSTEM_CLOCK_DIV_BY_2, /*!< DIVBUS */
.divSlow = SCG_SYSTEM_CLOCK_DIV_BY_2, /*!< DIVSLOW */
},
.vccrConfig = /*!< VCCR - VLPR Clock Control Register */
{
.src = SCG_SYSTEM_CLOCK_SRC_SIRC, /*!< SCS */
.divCore = SCG_SYSTEM_CLOCK_DIV_BY_2, /*!< DIVCORE */
.divBus = SCG_SYSTEM_CLOCK_DIV_BY_1, /*!< DIVBUS */
.divSlow = SCG_SYSTEM_CLOCK_DIV_BY_4, /*!< DIVSLOW */
},
},
},
.pccConfig =
{
.peripheralClocks = peripheralClockConfig0, /*!< Peripheral clock control configurations */
.count = NUM_OF_PERIPHERAL_CLOCKS_0, /*!< Number of the peripheral clock control configurations */
},
.simConfig =
{
.clockOutConfig = /*!< Clock Out configuration. */
{
.initialize = true, /*!< Initialize */
.enable = false, /*!< CLKOUTEN */
.source = SIM_CLKOUT_SEL_SYSTEM_SCG_CLKOUT, /*!< CLKOUTSEL */
.divider = SIM_CLKOUT_DIV_BY_1, /*!< CLKOUTDIV */
},
.lpoClockConfig = /*!< Low Power Clock configuration. */
{
.initialize = true, /*!< Initialize */
.enableLpo1k = true, /*!< LPO1KCLKEN */
.enableLpo32k = true, /*!< LPO32KCLKEN */
.sourceLpoClk = SIM_LPO_CLK_SEL_LPO_128K, /*!< LPOCLKSEL */
.sourceRtcClk = SIM_RTCCLK_SEL_SOSCDIV1_CLK, /*!< RTCCLKSEL */
},
.platGateConfig = /*!< Platform Gate Clock configuration. */
{
.initialize = true, /*!< Initialize */
.enableMscm = true, /*!< CGCMSCM */
.enableMpu = true, /*!< CGCMPU */
.enableDma = true, /*!< CGCDMA */
.enableErm = true, /*!< CGCERM */
.enableEim = true, /*!< CGCEIM */
},
.qspiRefClkGating = /*!< Quad Spi Internal Reference Clock Gating. */
{
.enableQspiRefClk = false, /*!< Qspi reference clock gating */
},
.tclkConfig = /*!< TCLK CLOCK configuration. */
{
.initialize = true, /*!< Initialize */
.tclkFreq[0] = 0U, /*!< TCLK0 */
.tclkFreq[1] = 0U, /*!< TCLK1 */
.tclkFreq[2] = 0U, /*!< TCLK2 */
},
.traceClockConfig = /*!< Debug trace Clock Configuration. */
{
.initialize = true, /*!< Initialize */
.divEnable = true, /*!< TRACEDIVEN */
.source = CLOCK_TRACE_SRC_CORE_CLK, /*!< TRACECLK_SEL */
.divider = 0U, /*!< TRACEDIV */
.divFraction = false, /*!< TRACEFRAC */
},
},
.pmcConfig =
{
.lpoClockConfig = /*!< Low Power Clock configuration. */
{
.initialize = true, /*!< Initialize */
.enable = true, /*!< Enable/disable LPO */
.trimValue = 0, /*!< Trimming value for LPO */
},
},
};
/*! @brief Array of pointers to User configuration structures */
clock_manager_user_config_t const * g_clockManConfigsArr[] = {
&clockMan1_InitConfig0
};
/*! @brief Array of pointers to User defined Callbacks configuration structures */
clock_manager_callback_user_config_t * g_clockManCallbacksArr[] = {(void*)0};
/* END clockMan1. */
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert 10.1 [05.21]
** for the Freescale S32K series of microcontrollers.
**
** ###################################################################
*/