486 lines
16 KiB
C
486 lines
16 KiB
C
/**
|
|
* @file HwA_eftu_ccm.h
|
|
* @author flagchip
|
|
* @brief Hardware access layer for EFTU CCM
|
|
* @version 2.0.0
|
|
* @date 2024-08-20
|
|
*
|
|
* SDK Version: 2.6.0
|
|
*
|
|
|
|
* @copyright Copyright (c) 2024 Flagchip Semiconductors Co., Ltd.
|
|
*
|
|
*/
|
|
/* ********************************************************************************
|
|
* Revision History:
|
|
*
|
|
* Version Date Initials CR# Descriptions
|
|
* --------- ---------- ------------ ---------- ---------------
|
|
* 0.1.0 2023-12-15 Flagchip030 N/A First version for FC7300
|
|
* 2.0.0 2024-10-12 Flagchip099 N/A Change version and release
|
|
******************************************************************************** */
|
|
|
|
#ifndef HWA_INCLUDE_HWA_EFTU_CCM_H_
|
|
#define HWA_INCLUDE_HWA_EFTU_CCM_H_
|
|
#include "device_header.h"
|
|
|
|
#if EFTU_INSTANCE_COUNT > 0U
|
|
|
|
#define EFTU_CLUSTER_CLOCK_COUNT (8U)
|
|
|
|
#define EFTU_GTOM_CHANNEL_COUNT (16U)
|
|
#define EFTU_GTRIGGER_OUT_COUNT (8U)
|
|
#define EFTU_CMP_COUNT (2U)
|
|
#define EFTU_DMA_REQUEST_COUNT (6U)
|
|
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM1_CCU1_BIT0 (0x1<<0U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM0_CCU1_BIT1 (0x1<<1U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM1_CCU0_BIT2 (0x1<<2U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM0_CCU0_BIT3 (0x1<<3U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TIM_TRIG_BIT4 (0x1<<4U)
|
|
|
|
#define EFTU_TIM_ERROR_EN_BIT0 (0x1<<0U)
|
|
#define EFTU_TIM_ERROR_EN_BIT1 (0x1<<1U)
|
|
#define EFTU_TIM_ERROR_EN_BIT2 (0x1<<2U)
|
|
#define EFTU_TIM_ERROR_EN_BIT3 (0x1<<3U)
|
|
#define EFTU_TIM_ERROR_EN_BIT4 (0x1<<4U)
|
|
#define EFTU_TIM_ERROR_EN_BIT5 (0x1<<5U)
|
|
|
|
|
|
#define EFTU_TOM_SWAP_OUT_2_3_OUT_T_0_1_BIT0 (0x1<<0U)
|
|
#define EFTU_TOM_SWAP_OUT_6_7_OUT_T_4_5_BIT1 (0x1<<1U)
|
|
#define EFTU_TOM_SWAP_OUT_10_11_OUT_T_8_9_BIT2 (0x1<<2U)
|
|
#define EFTU_TOM_SWAP_OUT_14_15_OUT_T_12_13_BIT3 (0x1<<3U)
|
|
#define EFTU_TOM_SWAP_OUT_4_7_OUT_T_0_3_BIT4 (0x1<<4U)
|
|
#define EFTU_TOM_SWAP_OUT12_15_OUT_T_8_11_BIT5 (0x1<<5U)
|
|
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_CLUSTER_CLOCK_CMU_CLK = 0U,
|
|
EFTU_CLUSTER_CLOCK_CMU_CLK8 = 1U,
|
|
EFTU_CLUSTER_CLOCK_EXT_CAPTURE = 2U,
|
|
} EFTU_CCM_ClusterCmuClkSelectType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_DEBUG_RUN = 0U,
|
|
EFTU_DEBUG_TOM_HALT = 1U,
|
|
EFTU_DEBUG_OUT_FREEZEN = 2U,
|
|
EFTU_DEBUG_ALL_HALT = 3U,
|
|
} EFTU_CCM_DebugMode;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_TIM_AUXI_SRC_CH0 = 0U,
|
|
EFTU_TIM_AUXI_SRC_CH1 = 1U,
|
|
EFTU_TIM_AUXI_SRC_CH2 = 2U,
|
|
EFTU_TIM_AUXI_SRC_CH3 = 3U,
|
|
EFTU_TIM_AUXI_SRC_CH4 = 4U,
|
|
EFTU_TIM_AUXI_SRC_CH5 = 5U,
|
|
EFTU_TIM_AUXI_SRC_CH6 = 6U,
|
|
EFTU_TIM_AUXI_SRC_CH7 = 7U,
|
|
EFTU_TIM_AUXI_SRC_CH8 = 8U,
|
|
EFTU_TIM_AUXI_SRC_CH9 = 9U,
|
|
EFTU_TIM_AUXI_SRC_CH10 = 10U,
|
|
EFTU_TIM_AUXI_SRC_CH11 = 11U,
|
|
EFTU_TIM_AUXI_SRC_CH12 = 12U,
|
|
EFTU_TIM_AUXI_SRC_CH13 = 13U,
|
|
EFTU_TIM_AUXI_SRC_CH14 = 14U,
|
|
EFTU_TIM_AUXI_SRC_CH15 = 15U,
|
|
} EFTU_CCM_AuxInChlSrcType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU0_OUT0 = 0U,
|
|
EFTU1_OUT0 = 1U,
|
|
EFTU2_OUT0 = 2U,
|
|
EFTU0_OUT1 = 3U,
|
|
EFTU1_OUT2 = 4U,
|
|
EFTU2_OUT3 = 5U,
|
|
} EFTU_CCM_AuxInSrcType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_TIM_PAD_IN = 0U,
|
|
EFTU_TIM_EXT_TRIGGER = 0U,
|
|
} EFTU_CCM_TimInSrcType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_GTOM_MUX_SRC_EFTU2_OUT = 0U,
|
|
EFTU_GTOM_MUX_SRC_EFTU1_OUT = 1U,
|
|
EFTU_GTOM_MUX_SRC_EFTU0_OUT = 2U,
|
|
} EFTU_CCM_GtomOutSrc;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_GTRIGGER_OUT_SRC_DIS = 0U,
|
|
EFTU_GTRIGGER_OUT_SRC_EFTU0 = 1U,
|
|
EFTU_GTRIGGER_OUT_SRC_EFTU1 = 2U,
|
|
EFTU_GTRIGGER_OUT_SRC_EFTU2 = 3U,
|
|
} EFTU_CCM_GlobalTriggerOutType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU0_CMP0 = 0U,
|
|
EFTU0_CMP1 = 1U,
|
|
} EFTU_CCM_CmpInstance;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_CMP_X_Y_SEL_EFTU0_OUT_0_7 = 0x0U,
|
|
EFTU_CMP_X_Y_SEL_EFTU0_OUT_8_15 = 0x1U,
|
|
EFTU_CMP_X_Y_SEL_EFTU1_OUT_0_7 = 0x2U,
|
|
EFTU_CMP_X_Y_SEL_EFTU1_OUT_8_15 = 0x3U,
|
|
EFTU_CMP_X_Y_SEL_EFTU2_OUT_0_7 = 0x4U,
|
|
EFTU_CMP_X_Y_SEL_EFTU2_OUT_8_15 = 0x5U,
|
|
|
|
EFTU_CMP_X_Y_SEL_EFTU0_OUT_T_0_7 = 0x8U,
|
|
EFTU_CMP_X_Y_SEL_EFTU0_OUT_T_8_15 = 0x9U,
|
|
EFTU_CMP_X_Y_SEL_EFTU1_OUT_T_0_7 = 0xAU,
|
|
EFTU_CMP_X_Y_SEL_EFTU1_OUT_T_8_15 = 0xBU,
|
|
EFTU_CMP_X_Y_SEL_EFTU2_OUT_T_0_7 = 0xCU,
|
|
EFTU_CMP_X_Y_SEL_EFTU2_OUT_T_8_15 = 0xDU,
|
|
} EFTU_CCM_CmpSrcSelectType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_HRPWM_SRC_OUT03_OUT_T03 = 0x0U,
|
|
EFTU_HRPWM_SRC_OUT47_OUT_T47 = 0x1U,
|
|
EFTU_HRPWM_SRC_OUT07 = 0x2U,
|
|
EFTU_HRPWM_SRC_OUT_T07 = 0x3U,
|
|
} EFTU_CCM_HrPwmSrcType;
|
|
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_TOM0_CH0_TO_TOM1_CH0 = 0x1U,
|
|
EFTU_TOM0_CH7_TO_TOM1_CH0 = 0x2U,
|
|
} EFTU_CCM_TomChTrigInType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_CLUSTER_CMU_CLK_0 = 0u,
|
|
EFTU_CLUSTER_CMU_CLK_1 = 1u,
|
|
EFTU_CLUSTER_CMU_CLK_2 = 2u,
|
|
EFTU_CLUSTER_CMU_CLK_3 = 3u,
|
|
EFTU_CLUSTER_CMU_CLK_4 = 4u,
|
|
EFTU_CLUSTER_CMU_CLK_5 = 5u,
|
|
EFTU_CLUSTER_CMU_CLK_6 = 6u,
|
|
EFTU_CLUSTER_CMU_CLK_7 = 7u,
|
|
} EFTU_CCM_ClusterCmuClkType;
|
|
|
|
typedef enum
|
|
{
|
|
EFTU_TIM_ERR_CH0 = 0U,
|
|
EFTU_TIM_ERR_CH1 = 1U,
|
|
EFTU_TIM_ERR_CH2 = 2U,
|
|
EFTU_TIM_ERR_CH3 = 3U,
|
|
EFTU_TIM_ERR_CH4 = 4U,
|
|
EFTU_TIM_ERR_CH5 = 5U,
|
|
EFTU_TIM_ERR_CH6 = 6U,
|
|
EFTU_TIM_ERR_CH7 = 7U,
|
|
} EFTU_CCM_TimErrChnType;
|
|
/*EFTU_CCM_PROT*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnableProtection(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->PROT |= EFTU_CCM_PROT_CLS_PROT_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_DisableProtection(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->PROT &= ~EFTU_CCM_PROT_CLS_PROT_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigDebugMode(EFTU_CCM_Type *pCcm, EFTU_CCM_DebugMode eDebugMode)
|
|
{
|
|
pCcm->PROT = (pCcm->PROT & ~EFTU_CCM_PROT_DBG_MODE_MASK) | EFTU_CCM_PROT_DBG_MODE(eDebugMode);
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_CFG*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnableTim0(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG |= EFTU_CCM_CFG_EN_TIM_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnableTom0(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG |= EFTU_CCM_CFG_EN_TOM0_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnableTom1(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG |= EFTU_CCM_CFG_EN_TOM1_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_DisableTim0(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG &= ~EFTU_CCM_CFG_EN_TIM_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_DisableTom0(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG &= ~EFTU_CCM_CFG_EN_TOM0_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_DisableTom1(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->CFG &= ~EFTU_CCM_CFG_EN_TOM1_MASK;
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_CMU_CLK_CFG*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetClusterCmuClkSrc(EFTU_CCM_Type *pCcm, EFTU_CCM_ClusterCmuClkType eCmuClk, EFTU_CCM_ClusterCmuClkSelectType eCmuClkSelect)
|
|
{
|
|
pCcm->CMU_CLK_CFG = ((uint32_t)pCcm->CMU_CLK_CFG & ~(uint32_t)(0x3U << (uint8_t)(4 * eCmuClk)))| ((uint32_t)((uint8_t)eCmuClkSelect << (uint8_t)(4 * eCmuClk)));
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_TIM_IN_SRC /EFTU_CCM_TIM_IN_SRC0 /EFTU_CCM_TIM_IN_SRC1 */
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetTimInSrc(EFTU_CCM_Type *pCcm, uint8_t u8TimChannel, EFTU_CCM_TimInSrcType eTimSrcSelect)
|
|
{
|
|
pCcm->TIM_IN_SRC = ((uint32_t)pCcm->TIM_IN_SRC & ~(uint32_t)(0x1u << u8TimChannel)) | ((uint32_t)eTimSrcSelect << u8TimChannel);
|
|
}
|
|
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetAuxInSel0_3(EFTU_CCM_Type *pCcm, uint8_t u8TimAuxIn, EFTU_CCM_AuxInSrcType eAuxInSecSrc, EFTU_CCM_AuxInChlSrcType eAuxInSecChannel)
|
|
{
|
|
pCcm->TIM_IN_SRC0 = (pCcm->TIM_IN_SRC0 & ~(uint32_t)(0x7FU << (u8TimAuxIn * 8U)))|(eAuxInSecSrc * 16U + eAuxInSecChannel) << (u8TimAuxIn * 8U);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetAuxInSel4_7(EFTU_CCM_Type *pCcm, uint8_t u8TimAuxIn, EFTU_CCM_AuxInSrcType eAuxInSecSrc, EFTU_CCM_AuxInChlSrcType eAuxInSecChannel)
|
|
{
|
|
pCcm->TIM_IN_SRC1 =(pCcm->TIM_IN_SRC1 & ~(uint32_t)(0x7FU << ((u8TimAuxIn - 4U) * 8U))) | (eAuxInSecSrc * 16U + eAuxInSecChannel) << ((u8TimAuxIn - 4U) * 8U);
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_TOM_OUT*/
|
|
LOCAL_INLINE uint16_t EFTU_CCM_HWA_GetTomOutlevel(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return pCcm->EFTU_OUT & EFTU_CCM_EFTU_OUT_EFTU_OUT_MASK ;
|
|
}
|
|
|
|
LOCAL_INLINE uint16_t EFTU_CCM_HWA_GetTomNOutlevel(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return (pCcm->EFTU_OUT & EFTU_CCM_EFTU_OUT_EFTU_OUT_T_MASK) >> EFTU_CCM_EFTU_OUT_EFTU_OUT_T_SHIFT;
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_GTOM_MUX_0/EFTU_CCM_GTOM_MUX_1/EFTU_CCM_GTOM_MUX_2/EFTU_CCM_GTOM_MUX_3,only for EFTU0*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetGtomMux0_3(EFTU_CCM_Type *pCcm, uint8_t u8GtomAuxIn, EFTU_CCM_GtomOutSrc eGtomSrc, uint8_t u8channel)
|
|
{
|
|
pCcm->GTOM_MUX_0 &= ~(uint32_t)(0x7FU << (u8GtomAuxIn * 8U));
|
|
pCcm->GTOM_MUX_0 |= (uint32_t)(eGtomSrc << 5U | u8channel) << (u8GtomAuxIn * 8U);
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetGtomMux4_7(EFTU_CCM_Type *pCcm, uint8_t u8GtomAuxIn, EFTU_CCM_GtomOutSrc eGtomSrc, uint8_t u8channel)
|
|
{
|
|
pCcm->GTOM_MUX_1 &= ~(uint32_t)(0x7FU << ((u8GtomAuxIn - 4U) * 8U));
|
|
pCcm->GTOM_MUX_1 |= (uint32_t)(eGtomSrc << 5U | u8channel) << ((u8GtomAuxIn - 4U) * 8U);
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetGtomMux8_11(EFTU_CCM_Type *pCcm, uint8_t u8GtomAuxIn, EFTU_CCM_GtomOutSrc eGtomSrc, uint8_t u8channel)
|
|
{
|
|
pCcm->GTOM_MUX_2 &= ~(uint32_t)(0x7FU << ((u8GtomAuxIn - 8U) * 8U));
|
|
pCcm->GTOM_MUX_2 |= (uint32_t)(eGtomSrc << 5U | u8channel) << ((u8GtomAuxIn - 8U) * 8U);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetGtomMux12_15(EFTU_CCM_Type *pCcm, uint8_t u8GtomAuxIn, EFTU_CCM_GtomOutSrc eGtomSrc, uint8_t u8channel)
|
|
{
|
|
pCcm->GTOM_MUX_3 &= ~(uint32_t)(0x7FU << ((u8GtomAuxIn - 12U) * 8U));
|
|
pCcm->GTOM_MUX_3 |= (uint32_t)(eGtomSrc << 5U | u8channel) << ((u8GtomAuxIn - 12U) * 8U);
|
|
}
|
|
|
|
#if (EFTU_HRPWM_SUPPORT == STD_ON)
|
|
/*EFTU_CCM_HRPWM_MUX,only for EFTU0*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetHrPwmSrc(EFTU_CCM_Type *pCcm, EFTU_CCM_HrPwmSrcType eHrpwmSrcStatus)
|
|
{
|
|
pCcm->HRPWM_MUX = (pCcm->HRPWM_MUX & ~EFTU_CCM_HRPWM_MUX_SWAP_CTRL_MASK)|eHrpwmSrcStatus;
|
|
}
|
|
#endif
|
|
/*EFTU_CCM_TRG_MUX/EFTU_CCM_TRG_EN0/EFTU_CCM_TRG_EN1,only for EFTU0*/
|
|
/*
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM1_CCU1_BIT0 (0x1<<0U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM0_CCU1_BIT1 (0x1<<1U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM1_CCU0_BIT2 (0x1<<2U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TOM0_CCU0_BIT3 (0x1<<3U)
|
|
#define EFTU_GTRIGGER_OUT_MASK_TIM_TRIG_BIT4 (0x1<<4U)
|
|
* */
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigGtomTriggerSrc(EFTU_CCM_Type *pCcm, uint8_t u8TrgMux, EFTU_CCM_GlobalTriggerOutType eGtriggerSrc)
|
|
{
|
|
pCcm->TRG_MUX &= ~(uint32_t)(0x3U << (2U * u8TrgMux));
|
|
pCcm->TRG_MUX |= (uint32_t)eGtriggerSrc << (2U * u8TrgMux);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigGtomTriggerMask0_3(EFTU_CCM_Type *pCcm, uint8_t u8TrgMux, uint8_t u8TriggerMask)
|
|
{
|
|
pCcm->TRG_EN0 &= ~(uint32_t)(0x1FU << (u8TrgMux * 8U));
|
|
pCcm->TRG_EN0 |= (uint32_t)u8TriggerMask << (u8TrgMux * 8U);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigGtomTriggerMask4_7(EFTU_CCM_Type *pCcm, uint8_t u8TrgMux, uint8_t u8TriggerMask)
|
|
{
|
|
pCcm->TRG_EN1 &= ~(uint32_t)(0x1FU << ((u8TrgMux - 4U) * 8U));
|
|
pCcm->TRG_EN1 |= (uint32_t)u8TriggerMask << ((u8TrgMux - 4U) * 8U);
|
|
}
|
|
|
|
/*EFTU_CCM_CMP_MUX_SEL,only for EFTU0*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigCmpSrc(EFTU_CCM_Type *pCcm, EFTU_CCM_CmpInstance eCmpInstance, uint8_t Cmp_EnMask, EFTU_CCM_CmpSrcSelectType eCmpSrc_X,
|
|
EFTU_CCM_CmpSrcSelectType eCmpSrc_Y)
|
|
{
|
|
|
|
pCcm->CMP_MUX_SEL &= ~ ((uint32_t)(0xFFU << (8U * (eCmpInstance + 2u))) | (uint32_t)(0xFU << (eCmpInstance * 8U)) |(uint32_t)(0xFU << (eCmpInstance * 8U + 4u)));
|
|
pCcm->CMP_MUX_SEL |= (uint32_t)Cmp_EnMask << (8U * (eCmpInstance + 2u)) | ((uint32_t)eCmpSrc_X << (eCmpInstance * 8U)) | ((uint32_t)eCmpSrc_Y << (eCmpInstance * 8U + 4u));
|
|
}
|
|
/*EFTU_CCM_CMP Interrupt,only for EFTU0*/
|
|
LOCAL_INLINE bool EFTU_CCM_HWA_GetCmp0IrqFlag(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return (((pCcm->EINT_ST & EFTU_CCM_EINT_ST_CMP0_ERR_MASK) != 0U) ? TRUE : FALSE);
|
|
}
|
|
|
|
LOCAL_INLINE bool EFTU_CCM_HWA_GetCmp1IrqFlag(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return (((pCcm->EINT_ST & EFTU_CCM_EINT_ST_CMP1_ERR_MASK) != 0U) ? TRUE : FALSE);
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ClearCmp0IrqFlag(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->EINT_ST = EFTU_CCM_EINT_ST_CMP0_ERR_MASK;
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ClearCmp1IrqFlag(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->EINT_ST = EFTU_CCM_EINT_ST_CMP1_ERR_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE bool EFTU_CCM_HWA_GetCmp0IrqEnable(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return (((pCcm->EINT_EN & EFTU_CCM_EINT_EN_CMP0_ENABLE_MASK) != 0U) ? TRUE : FALSE);
|
|
}
|
|
|
|
LOCAL_INLINE bool EFTU_CCM_HWA_GetCmp1IrqEnable(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return (((pCcm->EINT_EN & EFTU_CCM_EINT_EN_CMP1_ENABLE_MASK) != 0U) ? TRUE : FALSE);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnCmpInterrupt(EFTU_CCM_Type *pCcm, EFTU_CCM_CmpInstance eCmpInstance)
|
|
{
|
|
pCcm->EINT_EN |= EFTU_CCM_EINT_EN_CMP0_ENABLE_MASK << eCmpInstance;
|
|
}
|
|
|
|
|
|
LOCAL_INLINE uint32 EFTU_CCM_HWA_GetErrIrqFlag(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return ((pCcm->EINT_ST & EFTU_CCM_EINT_ST_TIM_ERR_MASK) >> EFTU_CCM_EINT_ST_TIM_ERR_SHIFT);
|
|
}
|
|
|
|
|
|
/*EFTU_CCM_TOM_MUX*/
|
|
/*
|
|
#define EFTU_TOM_SWAP_OUT_2_3_OUT_T_0_1_BIT0 (0x1<<0U)
|
|
#define EFTU_TOM_SWAP_OUT_6_7_OUT_T_4_5_BIT1 (0x1<<1U)
|
|
#define EFTU_TOM_SWAP_OUT_10_11_OUT_T_8_9_BIT2 (0x1<<2U)
|
|
#define EFTU_TOM_SWAP_OUT_14_15_OUT_T_12_13_BIT3 (0x1<<3U)
|
|
#define EFTU_TOM_SWAP_OUT_4_7_OUT_T_0_3_BIT4 (0x1<<4U)
|
|
#define EFTU_TOM_SWAP_OUT12_15_OUT_T_8_11_BIT5 (0x1<<5U)
|
|
* */
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SwapTomOut(EFTU_CCM_Type *pCcm, uint8_t u8OutSwapMask)
|
|
{
|
|
pCcm->TOM_MUX = ( pCcm->TOM_MUX & ~EFTU_CCM_TOM_MUX_TOM_SWAP_MASK)|EFTU_CCM_TOM_MUX_TOM_SWAP(u8OutSwapMask);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SetTom0ch0TrigIn(EFTU_CCM_Type *pCcm, EFTU_CCM_TomChTrigInType eChSrc)
|
|
{
|
|
pCcm->TOM_MUX |= EFTU_CCM_TOM_MUX_TOM_MUX_CTRL(eChSrc);
|
|
}
|
|
|
|
/*EFTU_CCM_SPEC_LOCK,only for EFTU0*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SpecUnLock(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->SPEC_LOCK = 0xBEEFCAFE;
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_SpecLock(EFTU_CCM_Type *pCcm)
|
|
{
|
|
pCcm->SPEC_LOCK = 0x5AFECAFE;
|
|
}
|
|
|
|
/*EFTU_CCM_EINT_EN,EFTU_CCM_TIM_EINT_EN0/EFTU_CCM_TIM_EINT_EN2*/
|
|
/*
|
|
#define EFTU_TIM_ERROR_EN_BIT0 (0x1<<0U)
|
|
#define EFTU_TIM_ERROR_EN_BIT1 (0x1<<1U)
|
|
#define EFTU_TIM_ERROR_EN_BIT2 (0x1<<2U)
|
|
#define EFTU_TIM_ERROR_EN_BIT3 (0x1<<3U)
|
|
#define EFTU_TIM_ERROR_EN_BIT4 (0x1<<4U)
|
|
#define EFTU_TIM_ERROR_EN_BIT5 (0x1<<5U)
|
|
*/
|
|
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnTimChnErrInterupt0_3(EFTU_CCM_Type *pCcm, uint8_t u8TimChannel, uint8_t u8ErrEnMask)
|
|
{
|
|
pCcm->TIM_EINT_EN0 |= (uint32_t)u8ErrEnMask << (u8TimChannel * 8U);
|
|
}
|
|
LOCAL_INLINE void EFTU_CCM_HWA_EnTimChnErrInterupt4_7(EFTU_CCM_Type *pCcm, uint8_t u8TimChannel, uint8_t u8ErrEnMask)
|
|
{
|
|
pCcm->TIM_EINT_EN1 |= (uint32_t)u8ErrEnMask << ((u8TimChannel - 4U) * 8U);
|
|
}
|
|
|
|
LOCAL_INLINE uint32 EFTU_CCM_HWA_GetTimErrEnable0_3(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return pCcm->TIM_EINT_EN0 & EFTU_CCM_TIM_EINT_EN0_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE uint32 EFTU_CCM_HWA_GetTimErrEnable4_7(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return pCcm->TIM_EINT_EN1 & EFTU_CCM_TIM_EINT_EN1_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE uint32 EFTU_CCM_HWA_GetTimErrFlag0_3(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return pCcm->TIM_EINT_ST0 & EFTU_CCM_TIM_EINT_ST0_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE uint32 EFTU_CCM_HWA_GetTimErrFlag4_7(EFTU_CCM_Type *pCcm)
|
|
{
|
|
return pCcm->TIM_EINT_ST1 & EFTU_CCM_TIM_EINT_ST1_MASK;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ClearTimErrFlag0_3(EFTU_CCM_Type *pCcm, uint32 u32ErrMask)
|
|
{
|
|
pCcm->TIM_EINT_ST0 &= u32ErrMask;
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ClearTimErrFlag4_7(EFTU_CCM_Type *pCcm, uint32 u32ErrMask)
|
|
{
|
|
pCcm->TIM_EINT_ST1 &= u32ErrMask;
|
|
}
|
|
|
|
#if (EFTU_CCM_DMA_REQ_ONE_INSTANCE == 6U)
|
|
/*EFTU_CCM_DMA_SRC01/EFTU_CCM_DMA_SRC23/EFTU_CCM_DMA_SRC45*/
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigDmaSrc0_1(EFTU_CCM_Type *pCcm, uint8_t u8DmaChannel, uint8_t u8DmaReqMask)
|
|
{
|
|
pCcm->DMA_SRC01 &= ~(uint32_t)(EFTU_CCM_DMA_SRC01_REQ_0_MASK << (u8DmaChannel * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT));
|
|
pCcm->DMA_SRC01 |= (uint32_t)u8DmaReqMask << (u8DmaChannel * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigDmaSrc2_3(EFTU_CCM_Type *pCcm, uint8_t u8DmaChannel, uint8_t u8DmaReqMask)
|
|
{
|
|
pCcm->DMA_SRC23 &= ~(uint32_t)(EFTU_CCM_DMA_SRC01_REQ_0_MASK << ((u8DmaChannel - 2U) * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT));
|
|
pCcm->DMA_SRC23 |= (uint32_t)u8DmaReqMask << ((u8DmaChannel - 2U) * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT);
|
|
}
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigDmaSrc4_5(EFTU_CCM_Type *pCcm, uint8_t u8DmaChannel, uint8_t u8DmaReqMask)
|
|
{
|
|
pCcm->DMA_SRC45 &= ~(uint32_t)(EFTU_CCM_DMA_SRC01_REQ_0_MASK << ((u8DmaChannel - 4U) * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT));
|
|
pCcm->DMA_SRC45 |= (uint32_t)u8DmaReqMask << ((u8DmaChannel - 4U) * EFTU_CCM_DMA_SRC01_REQ_1_SHIFT);
|
|
}
|
|
|
|
#elif (EFTU_CCM_DMA_REQ_ONE_INSTANCE == 16U)
|
|
|
|
LOCAL_INLINE void EFTU_CCM_HWA_ConfigDmaSrc(EFTU_CCM_Type *pCcm, uint8_t u8DmaChannel, uint8_t u8DmaReqMask)
|
|
{
|
|
pCcm->DMA_SRC[(uint8_t)(u8DmaChannel>>1u)] = ((pCcm->DMA_SRC[(uint8_t)(u8DmaChannel>>1u)]) & ((~(uint32_t)(EFTU_CCM_DMA_SRC_REQ_0_MASK << (((uint8_t)u8DmaChannel&0x1U) * EFTU_CCM_DMA_SRC_REQ_1_SHIFT)))))|
|
|
(((uint32_t)u8DmaReqMask << ((u8DmaChannel&0x1U) * EFTU_CCM_DMA_SRC_REQ_1_SHIFT)));
|
|
}
|
|
#endif /*EFTU_CCM_DMA_REQ_ONE_INSTANCE*/
|
|
|
|
#endif /*EFTU_INSTANCE_COUNT*/
|
|
#endif /* HWA_INCLUDE_HWA_EFTU_CCM_H_ */
|