RabbitECUTeensyMCUXpresso/source/KernelServices/SIM.c

56 lines
2.0 KiB
C

/******************************************************************************/
/* Copyright (c) 2016 MD Automotive Controls. Original Work. */
/* License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher */
/******************************************************************************/
/* CONTEXT:KERNEL */
/* PACKAGE TITLE: SIM */
/* DESCRIPTION: This code is provides functions for clock register */
/* setting in future will support low power clocking */
/* for power modes and shutdown etc */
/* FILE NAME: SIM.c */
/* REVISION HISTORY: 28-03-2016 | 1.0 | Initial revision */
/* */
/******************************************************************************/
#include "mk64f12.h"
#include "SIM.h"
#include "regset.h"
#include <stddef.h>
static void SIM_vSetRegAddress(SIMHA_tenReg, REGSET_tstReg32Val*);
REGSET_tstReg32Val SIM_astSIMReg32Val[2];
void SIM_vSetReg32(SIMHA_tenReg enReg, uint32 u32RegMask)
{
SIM_vSetRegAddress(enReg, &SIM_astSIMReg32Val[0]);
SIM_astSIMReg32Val[0].val = u32RegMask;
SIM_astSIMReg32Val[0].writeMode = REGSET_enOr;
SIM_astSIMReg32Val[1].reg = NULL;
REGSET_vInitReg32(&SIM_astSIMReg32Val[0]);
}
void SIM_vClrReg32(SIMHA_tenReg enReg, uint32 u32RegMask)
{
SIM_vSetRegAddress(enReg, &SIM_astSIMReg32Val[0]);
SIM_astSIMReg32Val[0].val = ~u32RegMask;
SIM_astSIMReg32Val[0].writeMode = REGSET_enAnd;
SIM_astSIMReg32Val[1].reg = NULL;
REGSET_vInitReg32(&SIM_astSIMReg32Val[0]);
}
bool SIM_boEnablePeripheralClock(IRQn_Type IRQn)
{
return SIMHA_boEnablePeripheralClock(IRQn);
}
static void SIM_vSetRegAddress(SIMHA_tenReg enReg, REGSET_tstReg32Val* pstReg32Val)
{
SIMHA_vSetRegAddress(enReg, pstReg32Val);
}