1716 lines
64 KiB
C
1716 lines
64 KiB
C
/**
|
|
* @file sdrv_etimer_lld.h
|
|
* @brief Semidrive ETIMER driver source file.
|
|
*
|
|
* @copyright Copyright (c) 2022 Semidrive Semiconductor.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef DRV_LLD_SDRV_ETIMER_H
|
|
#define DRV_LLD_SDRV_ETIMER_H
|
|
|
|
#include <compiler.h>
|
|
#include <part.h>
|
|
#include <regs_base.h>
|
|
|
|
#include "types.h"
|
|
|
|
#ifndef ASSEMBLY
|
|
|
|
__BEGIN_CDECLS
|
|
|
|
#define ETMR_INT_STA_OFF 0x0U
|
|
#define ETMR_BM_INT_STA_CHN_DMA_REQ(id) (0x01U << (20U + (id)))
|
|
#define ETMR_BM_INT_STA_CNT_SNAP_SHOT(id) (0x01U << 14U(id))
|
|
#define ETMR_BM_INT_STA_CNT_OVF(id) (0x01U << (8U + (id)))
|
|
#define ETMR_BM_INT_STA_CMP(id) (0x01U << (4U + (id)))
|
|
#define ETMR_BM_INT_STA_CPT(id) (0x01U << (id))
|
|
|
|
#define ETMR_INT_STA_EN_OFF 0x4U
|
|
#define ETMR_BM_INT_STA_EN_CHN_DMA_REQ(id) (0x01U << (20U + (id)))
|
|
#define ETMR_BM_INT_STA_EN_CNT_SNAP_SHOT(id) (0x01U << (14U + (id)))
|
|
#define ETMR_BM_INT_STA_EN_CNT_OVF(id) (0x01U << (8U + (id)))
|
|
#define ETMR_BM_INT_STA_EN_CMP(id) (0x01U << (4U + (id)))
|
|
#define ETMR_BM_INT_STA_EN_CPT(id) (0x01U << (id))
|
|
|
|
#define ETMR_INT_SIG_EN_OFF 0x8U
|
|
|
|
#define ETMR_COR_ERR_INT_STA_OFF 0xcU
|
|
|
|
#define ETMR_COR_ERR_INT_STA_EN_OFF 0x10U
|
|
|
|
#define ETMR_COR_ERR_INT_SIG_EN_OFF 0x14U
|
|
|
|
#define ETMR_UNC_ERR_INT_STA_OFF 0x18U
|
|
|
|
#define ETMR_UNC_ERR_INT_STA_EN_OFF 0x1cU
|
|
|
|
#define ETMR_UNC_ERR_INT_SIG_EN_OFF 0x20U
|
|
|
|
#define ETMR_FUSA_COR_ERR_INT_STA_OFF 0x24U
|
|
|
|
#define ETMR_FUSA_COR_ERR_INT_STA_EN_OFF 0x28U
|
|
|
|
#define ETMR_FUSA_COR_ERR_INT_SIG_EN_OFF 0x2cU
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_STA_OFF 0x30U
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_STA_EN_OFF 0x34U
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_SIG_EN_OFF 0x38U
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_STA_1_OFF 0x3cU
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_STA_EN_1_OFF 0x40U
|
|
|
|
#define ETMR_FUSA_UNC_ERR_INT_SIG_EN_1_OFF 0x44U
|
|
|
|
#define ETMR_REG_PARITY_ERR_INT_STAT_OFF 0x4cU
|
|
|
|
#define ETMR_REG_PARITY_ERR_INT_STAT_EN_OFF 0x50U
|
|
|
|
#define ETMR_REG_PARITY_ERR_INT_SIG_EN_OFF 0x54U
|
|
|
|
#define ETMR_PRDATAINJ_OFF 0x5cU
|
|
|
|
#define ETMR_RAM_RDATA_INJ_OFF 0x60U
|
|
|
|
#define ETMR_RAM_RECC_INJ_OFF 0x64U
|
|
|
|
#define ETMR_RAM_RDATA_MON_INJ_OFF 0x68U
|
|
|
|
#define ETMR_RAM_RECC_MON_INJ_OFF 0x6cU
|
|
|
|
#define ETMR_PWDATA_INJ_OFF 0x70U
|
|
|
|
#define ETMR_PWECC_INJ_OFF 0x74U
|
|
|
|
#define ETMR_FM_PWECC_INJ_ECC_INJ (0x7fU << 0U)
|
|
#define ETMR_FV_PWECC_INJ_ECC_INJ(v) (((v) << 0U) & ETMR_FM_PWECC_INJ_ECC_INJ)
|
|
#define ETMR_GFV_PWECC_INJ_ECC_INJ(v) (((v)&ETMR_FM_PWECC_INJ_ECC_INJ) >> 0U)
|
|
|
|
#define ETMR_DMA_FW_DATA_INJ_OFF 0x80U
|
|
|
|
#define ETMR_FM_DMA_FW_DATA_INJ_CONFIG_DMA (0x7U << 16U)
|
|
#define ETMR_FV_DMA_FW_DATA_INJ_CONFIG_DMA(v) \
|
|
(((v) << 16U) & ETMR_FM_DMA_FW_DATA_INJ_CONFIG_DMA)
|
|
#define ETMR_GFV_DMA_FW_DATA_INJ_CONFIG_DMA(v) \
|
|
(((v)&ETMR_FM_DMA_FW_DATA_INJ_CONFIG_DMA) >> 16U)
|
|
|
|
#define ETMR_FM_DMA_FW_DATA_INJ_DMA_D (0x7U << 12U)
|
|
#define ETMR_FV_DMA_FW_DATA_INJ_DMA_D(v) \
|
|
(((v) << 12U) & ETMR_FM_DMA_FW_DATA_INJ_DMA_D)
|
|
#define ETMR_GFV_DMA_FW_DATA_INJ_DMA_D(v) \
|
|
(((v)&ETMR_FM_DMA_FW_DATA_INJ_DMA_D) >> 12U)
|
|
|
|
#define ETMR_FM_DMA_FW_DATA_INJ_DMA_C (0x7U << 8U)
|
|
#define ETMR_FV_DMA_FW_DATA_INJ_DMA_C(v) \
|
|
(((v) << 8U) & ETMR_FM_DMA_FW_DATA_INJ_DMA_C)
|
|
#define ETMR_GFV_DMA_FW_DATA_INJ_DMA_C(v) \
|
|
(((v)&ETMR_FM_DMA_FW_DATA_INJ_DMA_C) >> 8U)
|
|
|
|
#define ETMR_FM_DMA_FW_DATA_INJ_DMA_B (0x7U << 4U)
|
|
#define ETMR_FV_DMA_FW_DATA_INJ_DMA_B(v) \
|
|
(((v) << 4U) & ETMR_FM_DMA_FW_DATA_INJ_DMA_B)
|
|
#define ETMR_GFV_DMA_FW_DATA_INJ_DMA_B(v) \
|
|
(((v)&ETMR_FM_DMA_FW_DATA_INJ_DMA_B) >> 4U)
|
|
|
|
#define ETMR_FM_DMA_FW_DATA_INJ_DMA_A (0x7U << 0U)
|
|
#define ETMR_FV_DMA_FW_DATA_INJ_DMA_A(v) \
|
|
(((v) << 0U) & ETMR_FM_DMA_FW_DATA_INJ_DMA_A)
|
|
#define ETMR_GFV_DMA_FW_DATA_INJ_DMA_A(v) \
|
|
(((v)&ETMR_FM_DMA_FW_DATA_INJ_DMA_A) >> 0U)
|
|
|
|
#define ETMR_DMA_FW_CODE_INJ_OFF 0x84U
|
|
|
|
#define ETMR_FM_DMA_FW_CODE_INJ_CONFIG_DMA (0xfU << 16U)
|
|
#define ETMR_FV_DMA_FW_CODE_INJ_CONFIG_DMA(v) \
|
|
(((v) << 16U) & ETMR_FM_DMA_FW_CODE_INJ_CONFIG_DMA)
|
|
#define ETMR_GFV_DMA_FW_CODE_INJ_CONFIG_DMA(v) \
|
|
(((v)&ETMR_FM_DMA_FW_CODE_INJ_CONFIG_DMA) >> 16U)
|
|
|
|
#define ETMR_FM_DMA_FW_CODE_INJ_DMA_D (0xfU << 12U)
|
|
#define ETMR_FV_DMA_FW_CODE_INJ_DMA_D(v) \
|
|
(((v) << 12U) & ETMR_FM_DMA_FW_CODE_INJ_DMA_D)
|
|
#define ETMR_GFV_DMA_FW_CODE_INJ_DMA_D(v) \
|
|
(((v)&ETMR_FM_DMA_FW_CODE_INJ_DMA_D) >> 12U)
|
|
|
|
#define FM_DMA_FW_CODE_INJ_DMA_C (0xfU << 8U)
|
|
#define ETMR_FV_DMA_FW_CODE_INJ_DMA_C(v) \
|
|
(((v) << 8U) & FM_DMA_FW_CODE_INJ_DMA_C)
|
|
#define ETMR_GFV_DMA_FW_CODE_INJ_DMA_C(v) (((v)&FM_DMA_FW_CODE_INJ_DMA_C) >> 8U)
|
|
|
|
#define ETMR_FM_DMA_FW_CODE_INJ_DMA_B (0xfU << 4U)
|
|
#define ETMR_FV_DMA_FW_CODE_INJ_DMA_B(v) \
|
|
(((v) << 4U) & ETMR_FM_DMA_FW_CODE_INJ_DMA_B)
|
|
#define ETMR_GFV_DMA_FW_CODE_INJ_DMA_B(v) \
|
|
(((v)&ETMR_FM_DMA_FW_CODE_INJ_DMA_B) >> 4U)
|
|
|
|
#define ETMR_FM_DMA_FW_CODE_INJ_DMA_A (0xfU << 0U)
|
|
#define ETMR_FV_DMA_FW_CODE_INJ_DMA_A(v) \
|
|
(((v) << 0U) & ETMR_FM_DMA_FW_CODE_INJ_DMA_A)
|
|
#define ETMR_GFV_DMA_FW_CODE_INJ_DMA_A(v) \
|
|
(((v)&ETMR_FM_DMA_FW_CODE_INJ_DMA_A) >> 0U)
|
|
|
|
#define ETMR_DMA_BW_DATA_INJ_OFF 0x88U
|
|
|
|
#define ETMR_FM_DMA_BW_DATA_INJ_CONFIG_DMA (0xfU << 16U)
|
|
#define ETMR_FV_DMA_BW_DATA_INJ_CONFIG_DMA(v) \
|
|
(((v) << 16U) & ETMR_FM_DMA_BW_DATA_INJ_CONFIG_DMA)
|
|
#define ETMR_GFV_DMA_BW_DATA_INJ_CONFIG_DMA(v) \
|
|
(((v)&ETMR_FM_DMA_BW_DATA_INJ_CONFIG_DMA) >> 16U)
|
|
|
|
#define ETMR_FM_DMA_BW_DATA_INJ_DMA_D (0xfU << 12U)
|
|
#define ETMR_FV_DMA_BW_DATA_INJ_DMA_D(v) \
|
|
(((v) << 12U) & ETMR_FM_DMA_BW_DATA_INJ_DMA_D)
|
|
#define ETMR_GFV_DMA_BW_DATA_INJ_DMA_D(v) \
|
|
(((v)&ETMR_FM_DMA_BW_DATA_INJ_DMA_D) >> 12U)
|
|
|
|
#define ETMR_FM_DMA_BW_DATA_INJ_DMA_C (0xfU << 8U)
|
|
#define ETMR_FV_DMA_BW_DATA_INJ_DMA_C(v) \
|
|
(((v) << 8U) & ETMR_FM_DMA_BW_DATA_INJ_DMA_C)
|
|
#define ETMR_GFV_DMA_BW_DATA_INJ_DMA_C(v) \
|
|
(((v)&ETMR_FM_DMA_BW_DATA_INJ_DMA_C) >> 8U)
|
|
|
|
#define ETMR_FM_DMA_BW_DATA_INJ_DMA_B (0xfU << 4U)
|
|
#define ETMR_FV_DMA_BW_DATA_INJ_DMA_B(v) \
|
|
(((v) << 4U) & ETMR_FM_DMA_BW_DATA_INJ_DMA_B)
|
|
#define ETMR_GFV_DMA_BW_DATA_INJ_DMA_B(v) \
|
|
(((v)&ETMR_FM_DMA_BW_DATA_INJ_DMA_B) >> 4U)
|
|
|
|
#define ETMR_FM_DMA_BW_DATA_INJ_DMA_A (0xfU << 0U)
|
|
#define ETMR_FV_DMA_BW_DATA_INJ_DMA_A(v) \
|
|
(((v) << 0U) & ETMR_FM_DMA_BW_DATA_INJ_DMA_A)
|
|
#define ETMR_GFV_DMA_BW_DATA_INJ_DMA_A(v) \
|
|
(((v)&ETMR_FM_DMA_BW_DATA_INJ_DMA_A) >> 0U)
|
|
|
|
#define ETMR_DMA_BW_CODE_INJ_OFF 0x8cU
|
|
|
|
#define ETMR_FM_DMA_BW_CODE_INJ_CONFIG_DMA (0xfU << 16U)
|
|
#define ETMR_FV_DMA_BW_CODE_INJ_CONFIG_DMA(v) \
|
|
(((v) << 16U) & ETMR_FM_DMA_BW_CODE_INJ_CONFIG_DMA)
|
|
#define ETMR_GFV_DMA_BW_CODE_INJ_CONFIG_DMA(v) \
|
|
(((v)&ETMR_FM_DMA_BW_CODE_INJ_CONFIG_DMA) >> 16U)
|
|
|
|
#define ETMR_FM_DMA_BW_CODE_INJ_DMA_D (0xfU << 12U)
|
|
#define ETMR_FV_DMA_BW_CODE_INJ_DMA_D(v) \
|
|
(((v) << 12U) & ETMR_FM_DMA_BW_CODE_INJ_DMA_D)
|
|
#define ETMR_GFV_DMA_BW_CODE_INJ_DMA_D(v) \
|
|
(((v)&ETMR_FM_DMA_BW_CODE_INJ_DMA_D) >> 12U)
|
|
|
|
#define ETMR_FM_DMA_BW_CODE_INJ_DMA_C (0xfU << 8U)
|
|
#define ETMR_FV_DMA_BW_CODE_INJ_DMA_C(v) \
|
|
(((v) << 8U) & ETMR_FM_DMA_BW_CODE_INJ_DMA_C)
|
|
#define ETMR_GFV_DMA_BW_CODE_INJ_DMA_C(v) \
|
|
(((v)&ETMR_FM_DMA_BW_CODE_INJ_DMA_C) >> 8U)
|
|
|
|
#define ETMR_FM_DMA_BW_CODE_INJ_DMA_B (0xfU << 4U)
|
|
#define ETMR_FV_DMA_BW_CODE_INJ_DMA_B(v) \
|
|
(((v) << 4U) & ETMR_FM_DMA_BW_CODE_INJ_DMA_B)
|
|
#define ETMR_GFV_DMA_BW_CODE_INJ_DMA_B(v) \
|
|
(((v)&ETMR_FM_DMA_BW_CODE_INJ_DMA_B) >> 4U)
|
|
|
|
#define ETMR_FM_DMA_BW_CODE_INJ_DMA_A (0xfU << 0U)
|
|
#define ETMR_FV_DMA_BW_CODE_INJ_DMA_A(v) \
|
|
(((v) << 0U) & ETMR_FM_DMA_BW_CODE_INJ_DMA_A)
|
|
#define ETMR_GFV_DMA_BW_CODE_INJ_DMA_A(v) \
|
|
(((v)&ETMR_FM_DMA_BW_CODE_INJ_DMA_A) >> 0U)
|
|
|
|
#define ETMR_INT_ERR_INJ_OFF 0x90U
|
|
|
|
#define ETMR_CLK_MON_CMP_ERR_INJ_OFF 0x94U
|
|
|
|
#define ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR1 (0x3U << 2U)
|
|
#define ETMR_FV_CLK_MON_CMP_ERR_INJ_ERR1(v) \
|
|
(((v) << 2U) & ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR1)
|
|
#define ETMR_GFV_CLK_MON_CMP_ERR_INJ_ERR1(v) \
|
|
(((v)&ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR1) >> 2U)
|
|
|
|
#define ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR0 (0x3U << 0U)
|
|
#define ETMR_FV_CLK_MON_CMP_ERR_INJ_ERR0(v) \
|
|
(((v) << 0U) & ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR0)
|
|
#define ETMR_GFV_CLK_MON_CMP_ERR_INJ_ERR0(v) \
|
|
(((v)&ETMR_FM_CLK_MON_CMP_ERR_INJ_ERR0) >> 0U)
|
|
|
|
#define ETMR_TIM_CLK_CONFIG_OFF 0xa0U
|
|
|
|
#define ETMR_BM_TIM_CLK_CONFIG_CLK_CHANGE_UPD (0x01U << 31U)
|
|
|
|
#define ETMR_FM_TIM_CLK_CONFIG_SRC_CLK_SEL (0x3U << 16U)
|
|
#define ETMR_FV_TIM_CLK_CONFIG_SRC_CLK_SEL(v) \
|
|
(((v) << 16U) & ETMR_FM_TIM_CLK_CONFIG_SRC_CLK_SEL)
|
|
|
|
#define ETMR_FM_TIM_CLK_CONFIG_DIV_NUM (0xffffU << 0U)
|
|
#define ETMR_FV_TIM_CLK_CONFIG_DIV_NUM(v) \
|
|
(((v) << 0U) & ETMR_FM_TIM_CLK_CONFIG_DIV_NUM)
|
|
|
|
#define ETMR_CLK_MON_EN_OFF 0xa4U
|
|
|
|
#define ETMR_BM_CLK_MON_EN_CMP_SET (0x01U << 2U)
|
|
|
|
#define ETMR_BM_CLK_MON_EN_EN_N (0x01U << 1U)
|
|
|
|
#define ETMR_BM_CLK_MON_EN_EN_P (0x01U << 0U)
|
|
|
|
#define ETMR_SW_RST_OFF 0xa8U
|
|
|
|
#define ETMR_BM_SW_RST_CNT_G1 (0x01U << 5U)
|
|
|
|
#define ETMR_BM_SW_RST_CNT_G0 (0x01U << 4U)
|
|
|
|
#define ETMR_BM_SW_RST_CHN_D (0x01U << 3U)
|
|
|
|
#define ETMR_BM_SW_RST_CHN_C (0x01U << 2U)
|
|
|
|
#define ETMR_BM_SW_RST_CHN_B (0x01U << 1U)
|
|
|
|
#define ETMR_BM_SW_RST_CHN_A (0x01U << 0U)
|
|
|
|
#define ETMR_CHN_DMA_CTRL_OFF 0xb0U
|
|
#define ETMR_BM_CHN_DMA_CTRL_CHN_16BIT_MODE(id) (0x01U << (16U + (id)))
|
|
#define ETMR_BM_CHN_DMA_CTRL_CHN_SIG_MASK(id) (0x01U << (12U + (id)))
|
|
#define ETMR_FM_CHN_DMA_CTRL_CHN_SEL(id) (0x3U << (4U + (id)*0x2U))
|
|
#define ETMR_FV_CHN_DMA_CTRL_CHN_SEL(v, id) \
|
|
(((v) << (4U + (id)*0x2U)) & ETMR_FM_CHN_DMA_CTRL_CHN_SEL(id))
|
|
#define ETMR_BM_CHN_DMA_CTRL_CHN_EN(id) (0x01U << (id))
|
|
|
|
#define ETMR_DMA_WML_OFF 0xb4U
|
|
#define ETMR_FM_DMA_WML_CHN(id) (0xfU << ((id)*0x8U))
|
|
#define ETMR_FV_DMA_WML_CHN(v, id) \
|
|
(((v) << ((id)*0x8U)) & ETMR_FM_DMA_WML_CHN(id))
|
|
|
|
#define ETMR_CONFIG_DMA_CTL_OFF 0xb8U
|
|
|
|
#define ETMR_FM_CONFIG_DMA_CTL_TRIG_SEL (0x3fffU << 2U)
|
|
#define ETMR_FV_CONFIG_DMA_CTL_TRIG_SEL(v) \
|
|
(((v) << 2U) & ETMR_FM_CONFIG_DMA_CTL_TRIG_SEL)
|
|
#define ETMR_BM_CONFIG_DMA_CTL_SIG_MASK (0x01U << 1U)
|
|
#define ETMR_BM_CONFIG_DMA_CTL_EN (0x01U << 0U)
|
|
|
|
#define ETMR_FIFO_REQ_STATUS_OFF 0xbcU
|
|
|
|
#define ETMR_FIFO_OFF(id) (0xc0U + (id)*0x4U)
|
|
|
|
#define ETMR_FIFO_STA_OFF 0xd0U
|
|
|
|
#define ETMR_BM_FIFO_STA_FIFO_ERR (0x01U << ((id * 8U) + 7U))
|
|
#define ETMR_FM_FIFO_STA_FIFO_ENTRIES(id) (0x1fU << ((id * 8U) + 2U))
|
|
#define ETMR_FV_FIFO_STA_FIFO_ENTRIES(v, id) \
|
|
(((v) << ((id * 8U) + 2U)) & ETMR_FM_FIFO_STA_FIFO_ENTRIES(id))
|
|
#define ETMR_GFV_FIFO_STA_FIFO_ENTRIES(v, id) \
|
|
(((v)&ETMR_FM_FIFO_STA_FIFO_ENTRIES(id)) >> ((id * 8U) + 2U))
|
|
#define ETMR_BM_FIFO_STA_FIFO_EMPTY (0x01U << ((id * 8U) + 1U))
|
|
#define ETMR_BM_FIFO_STA_FIFO_FULL(id) (0x01U << (id * 8U))
|
|
|
|
#define ETMR_CNT_INIT_OFF(id) (0x100U + (id)*0x20)
|
|
|
|
#define ETMR_CNT_OVF_OFF(id) (0x104U + (id)*0x20)
|
|
|
|
#define ETMR_CNT_CFG_OFF(id) (0x108U + (id)*0x20)
|
|
#define ETMR_BM_CNT_G0_CFG_CASCADE_MODE (0x01U << 31U)
|
|
/* basic cnt cfg */
|
|
#define ETMR_BM_CNT_CFG_CENTER_ALIGN_MODE (0x1U << 24U)
|
|
#define ETMR_FM_CNT_CFG_CENTER_ALIGN_CE_SEL (0x3U << 22U)
|
|
#define ETMR_FV_CNT_CFG_CENTER_ALIGN_CE_SEL(v) \
|
|
(((v) << 20U) & ETMR_FM_CNT_CFG_CENTER_ALIGN_CE_SEL)
|
|
#define ETMR_FM_CNT_CFG_CENTER_ALIGN_OVF_SEL (0x3U << 20U)
|
|
#define ETMR_FV_CNT_CFG_CENTER_ALIGN_OVF_SEL(v) \
|
|
(((v) << 20U) & ETMR_FM_CNT_CFG_CENTER_ALIGN_OVF_SEL)
|
|
#define ETMR_BM_CNT_CFG_OVF_RST_DIS (0x01U << 19U)
|
|
#define ETMR_BM_CNT_CFG_CON_MODE (0x01U << 18U)
|
|
#define ETMR_BM_CNT_CFG_OVF_UPD (0x01U << 17U)
|
|
#define ETMR_BM_CNT_CFG_INIT_UPD (0x01U << 16U)
|
|
#define ETMR_FM_CNT_CFG_INTERVAL (0xffU << 8U)
|
|
#define ETMR_FV_CNT_CFG_INTERVAL(v) (((v) << 8U) & ETMR_FM_CNT_CFG_INTERVAL)
|
|
#define ETMR_BM_CNT_CFG_CE_EN (0x01U << 7U)
|
|
#define ETMR_FM_CNT_CFG_CLR_TRIG_SEL (0x3U << 5U)
|
|
#define ETMR_FV_CNT_CFG_CLR_TRIG_SEL(v) \
|
|
(((v) << 5U) & ETMR_FM_CNT_CFG_CLR_TRIG_SEL)
|
|
#define ETMR_FM_CNT_CFG_SET_UPD_SEL (0x3U << 3U)
|
|
#define ETMR_FV_CNT_CFG_SET_UPD_SEL(v) \
|
|
(((v) << 3U) & ETMR_FM_CNT_CFG_SET_UPD_SEL)
|
|
#define ETMR_FM_CNT_CFG_SET_TRIG_SEL (0x3U << 1U)
|
|
#define ETMR_FV_CNT_CFG_SET_TRIG_SEL(v) \
|
|
(((v) << 1U) & ETMR_FM_CNT_CFG_SET_TRIG_SEL)
|
|
#define ETMR_BM_CNT_CFG_FRC_RLD (0x01U << 0U)
|
|
/* local cnt cfg */
|
|
#define ETMR_BM_LCNT_CFG_OVF_RST_DIS (0x01U << 28U)
|
|
#define ETMR_BM_LCNT_CFG_DELTA_TIME_EN (0x01U << 27U)
|
|
#define ETMR_BM_LCNT_CFG_SIG_EN (0x01U << 26U)
|
|
#define ETMR_BM_LCNT_CFG_START_BY_FIRST_CPT (0x01U << 25U)
|
|
#define ETMR_BM_LCNT_CFG_CPT1_CLR_EN (0x01U << 24U)
|
|
#define ETMR_BM_LCNT_CFG_CPT0_CLR_EN (0x01U << 23U)
|
|
#define ETMR_FM_LCNT_CFG_SIG_TRIG_SEL (0x3U << 21U)
|
|
#define ETMR_FV_LCNT_CFG_SIG_TRIG_SEL(v) \
|
|
(((v) << 21U) & ETMR_FM_LCNT_CFG_SIG_TRIG_SEL)
|
|
#define ETMR_BM_LCNT_CFG_NO_STOP_OVF_MODE (0x01U << 20U)
|
|
#define ETMR_BM_LCNT_CFG_NO_STOP_MODE (0x01U << 19U)
|
|
#define ETMR_BM_LCNT_CFG_CON_MODE (0x01U << 18U)
|
|
#define ETMR_BM_LCNT_CFG_OVF_UPD (0x01U << 17U)
|
|
#define ETMR_BM_LCNT_CFG_INIT_UPD (0x01U << 16U)
|
|
#define ETMR_FM_LCNT_CFG_INTERVAL (0xffU << 8U)
|
|
#define ETMR_FV_LCNT_CFG_INTERVAL(v) (((v) << 8U) & ETMR_FM_LCNT_CFG_INTERVAL)
|
|
#define ETMR_BM_LCNT_CFG_CE_EN (0x01U << 7U)
|
|
#define ETMR_FM_LCNT_CFG_CLR_TRIG_SEL (0x3U << 5U)
|
|
#define ETMR_FV_LCNT_CFG_CLR_TRIG_SEL(v) \
|
|
(((v) << 5U) & ETMR_FM_LCNT_CFG_CLR_TRIG_SEL)
|
|
#define ETMR_FM_LCNT_CFG_SET_UPD_SEL (0x3U << 3U)
|
|
#define ETMR_FV_LCNT_CFG_SET_UPD_SEL(v) \
|
|
(((v) << 3U) & ETMR_FM_LCNT_CFG_SET_UPD_SEL)
|
|
#define ETMR_FM_LCNT_CFG_SET_TRIG_SEL (0x3U << 1U)
|
|
#define ETMR_FV_LCNT_CFG_SET_TRIG_SEL(v) \
|
|
(((v) << 1U) & ETMR_FM_LCNT_CFG_SET_TRIG_SEL)
|
|
#define ETMR_BM_LCNT_CFG_FRC_RLD (0x01U << 0U)
|
|
|
|
#define ETMR_CNT_EN_OFF(id) (0x10cU + (id)*0x20)
|
|
|
|
#define ETMR_CNT_OFF(id) (0x110U + (id)*0x20)
|
|
|
|
#define ETMR_CNT_HOLD_OFF(id) (0x114U + ((id)*0x20U))
|
|
|
|
#define ETMR_CNT_DIFF_OFF(id) (0x118U + ((id)*0x20U))
|
|
|
|
#define ETMR_CPT_CPT0_CNT0_OFF(id) (0x1c0U + (id)*0x10U)
|
|
|
|
#define ETMR_CPT_CPT0_CNT1_OFF(id) (0x1c4U + (id)*0x10U)
|
|
|
|
#define ETMR_CPT_CPT1_CNT0_OFF(id) (0x1c8U + (id)*0x10U)
|
|
|
|
#define ETMR_CPT_CPT1_CNT1_OFF(id) (0x1ccU + (id)*0x10U)
|
|
|
|
#define ETMR_CPT_CONFIG_OFF(id) (0x200U + (id)*4)
|
|
#define ETMR_FM_CPT_CONFIG_CE_TRIG_SEL (0x3U << 9U)
|
|
#define ETMR_FV_CPT_CONFIG_CE_TRIG_SEL(v) \
|
|
(((v) << 9U) & ETMR_FM_CPT_CONFIG_CE_TRIG_SEL)
|
|
#define ETMR_BM_CPT_CONFIG_CE_EN (0x01U << 8U)
|
|
#define ETMR_FM_CPT_CONFIG_CNT_SEL (0x3U << 6U)
|
|
#define ETMR_FV_CPT_CONFIG_CNT_SEL(v) (((v) << 6U) & ETMR_FM_CPT_CONFIG_CNT_SEL)
|
|
#define ETMR_FM_CPT_CONFIG_CPT1_TRIG_MODE (0x3U << 4U)
|
|
#define ETMR_FV_CPT_CONFIG_CPT1_TRIG_MODE(v) \
|
|
(((v) << 4U) & ETMR_FM_CPT_CONFIG_CPT1_TRIG_MODE)
|
|
#define ETMR_FM_CPT_CONFIG_CPT0_TRIG_MODE (0x3U << 2U)
|
|
#define ETMR_FV_CPT_CONFIG_CPT0_TRIG_MODE(v) \
|
|
(((v) << 2U) & ETMR_FM_CPT_CONFIG_CPT0_TRIG_MODE)
|
|
#define ETMR_BM_CPT_CONFIG_DUAL_MODE (0x01U << 1U)
|
|
#define ETMR_BM_CPT_CONFIG_CON_MODE (0x01U << 0U)
|
|
|
|
#define ETMR_CPT_CTRL_OFF 0x210U
|
|
#define ETMR_BM_CPT_CTRL_CPT_CONFIG_SET(id) (0x01U << (4U + (id)))
|
|
#define ETMR_BM_CPT_CTRL_CPT_EN(id) (0x01U << (id))
|
|
|
|
#define ETMR_CMP_CONFIG_OFF(id) (0x220U + (id)*0x30U)
|
|
#define ETMR_FM_CMP_CONFIG_REFRESH_INTVAL (0xffU << 24U)
|
|
#define ETMR_FV_CMP_CONFIG_REFRESH_INTVAL(v) \
|
|
(((v) << 24U) & ETMR_FM_CMP_CONFIG_REFRESH_INTVAL)
|
|
#define ETMR_BM_CMP_CONFIG_SW_RLD_MODE(v) (v << 16U)
|
|
#define ETMR_BM_CMP_CONFIG_SW_RLD_SET (0x01U << 15U)
|
|
#define ETMR_BM_CMP_CONFIG_RLD_TRIG_MODE(v) (v << 14U)
|
|
#define ETMR_FM_CMP_CONFIG_CLR_TRIG_SEL (0x3U << 12U)
|
|
#define ETMR_FV_CMP_CONFIG_CLR_TRIG_SEL(v) \
|
|
(((v) << 12U) & ETMR_FM_CMP_CONFIG_CLR_TRIG_SEL)
|
|
#define ETMR_FM_CMP_CONFIG_SET_TRIG_SEL (0x3U << 10U)
|
|
#define ETMR_FV_CMP_CONFIG_SET_TRIG_SEL(v) \
|
|
(((v) << 10U) & ETMR_FM_CMP_CONFIG_SET_TRIG_SEL)
|
|
#define ETMR_BM_CMP_CONFIG_HW_RLD_MODE (0x01U << 9U)
|
|
#define ETMR_BM_CMP_CONFIG_CE_EN (0x01U << 8U)
|
|
#define ETMR_FM_CMP_CONFIG_CE_TRIG_SEL (0x3U << 6U)
|
|
#define ETMR_FV_CMP_CONFIG_CE_TRIG_SEL(v) \
|
|
(((v) << 6U) & ETMR_FM_CMP_CONFIG_CE_TRIG_SEL)
|
|
#define ETMR_FM_CMP_CONFIG_CNT_SEL (0x3U << 4U)
|
|
#define ETMR_FV_CMP_CONFIG_CNT_SEL(v) (((v) << 4U) & ETMR_FM_CMP_CONFIG_CNT_SEL)
|
|
#define ETMR_FM_CMP_CONFIG_CMP_MODE (0x3U << 2U)
|
|
#define ETMR_FV_CMP_CONFIG_CMP_MODE(v) \
|
|
(((v) << 2U) & ETMR_FM_CMP_CONFIG_CMP_MODE)
|
|
#define ETMR_BM_CMP_CONFIG_CON_MODE(v) (v << 1U)
|
|
#define ETMR_BM_CMP_CONFIG_OUT_MODE(v) (v << 0U)
|
|
|
|
#define ETMR_CMP_EVENT_OUT_MODE_OFF(id) (0x224U + (id)*0x30U)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP1_OVF (0x7U << 20U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP1_OVF(v) \
|
|
(((v) << 20U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP1_OVF)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP0_OVF (0x7U << 16U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP0_OVF(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP0_OVF)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP11 (0x7U << 12U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP11(v) \
|
|
(((v) << 12U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP11)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP10 (0x7U << 8U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP10(v) \
|
|
(((v) << 8U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP10)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP01 (0x7U << 4U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP01(v) \
|
|
(((v) << 4U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP01)
|
|
#define ETMR_FM_CMP_EVENT_OUT_MODE_CMP00 (0x7U << 0U)
|
|
#define ETMR_FV_CMP_EVENT_OUT_MODE_CMP00(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_EVENT_OUT_MODE_CMP00)
|
|
|
|
#define ETMR_CMP_PULSE_WID0_OFF(id) (0x228U + (id)*0x30U)
|
|
#define ETMR_FM_CMP_PULSE_WID0_CMP11 (0xffU << 24U)
|
|
#define ETMR_FV_CMP_PULSE_WID0_CMP11(v) \
|
|
(((v) << 24U) & ETMR_FM_CMP_PULSE_WID0_CMP11)
|
|
#define ETMR_FM_CMP_PULSE_WID0_CMP10 (0xffU << 16U)
|
|
#define ETMR_FV_CMP_PULSE_WID0_CMP10(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_PULSE_WID0_CMP10)
|
|
#define ETMR_FM_CMP_PULSE_WID0_CMP01 (0xffU << 8U)
|
|
#define ETMR_FV_CMP_PULSE_WID0_CMP01(v) \
|
|
(((v) << 8U) & ETMR_FM_CMP_PULSE_WID0_CMP01)
|
|
#define ETMR_FM_CMP_PULSE_WID0_CMP00 (0xffU << 0U)
|
|
#define ETMR_FV_CMP_PULSE_WID0_CMP00(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_PULSE_WID0_CMP00)
|
|
|
|
#define ETMR_CMP_PULSE_WID1_OFF(id) (0x22cU + (id)*0x30U)
|
|
#define ETMR_FM_CMP_PULSE_WID1_CMP0_OVF (0xffU << 8U)
|
|
#define ETMR_FV_CMP_PULSE_WID1_CMP0_OVF(v) \
|
|
(((v) << 8U) & ETMR_FM_CMP_PULSE_WID1_CMP0_OVF)
|
|
#define ETMR_FM_CMP_PULSE_WID1_CMP1_OVF (0xffU << 0U)
|
|
#define ETMR_FV_CMP_PULSE_WID1_CMP1_OVF(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_PULSE_WID1_CMP1_OVF)
|
|
|
|
#define ETMR_CMP_VAL_OFF(id, group) (0x230U + ((id)*0x30U) + (group) * (0x4U))
|
|
|
|
#define ETMR_CMP_A_DITHER_OFF 0x240U
|
|
|
|
#define ETMR_FM_CMP_A_DITHER_INIT_OFFSET (0xffffU << 16U)
|
|
#define FV_CMP_A_DITHER_INIT_OFFSET(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_A_DITHER_INIT_OFFSET)
|
|
#define ETMR_GFV_CMP_A_DITHER_INIT_OFFSET(v) \
|
|
(((v)&ETMR_FM_CMP_A_DITHER_INIT_OFFSET) >> 16U)
|
|
|
|
#define ETMR_FM_CMP_A_DITHER_CLIP_RSLT (0xfU << 2U)
|
|
#define ETMR_FV_CMP_A_DITHER_CLIP_RSLT(v) \
|
|
(((v) << 2U) & ETMR_FM_CMP_A_DITHER_CLIP_RSLT)
|
|
#define ETMR_GFV_CMP_A_DITHER_CLIP_RSLT(v) \
|
|
(((v)&ETMR_FM_CMP_A_DITHER_CLIP_RSLT) >> 2U)
|
|
|
|
#define ETMR_BM_CMP_A_DITHER_INIT_OFFSET_EN (0x01U << 1U)
|
|
|
|
#define ETMR_BM_CMP_A_DITHER_DITHER_EN (0x01U << 0U)
|
|
|
|
#define ETMR_ETMR_CMP_OFFSET_OFF(id) (0x244U + (id)*0x30U)
|
|
|
|
#define ETMR_CMP_A_EID_OFF 0x248U
|
|
|
|
#define ETMR_FM_CMP_A_EID_CMP(id) (0xffU << ((id)*0x8U))
|
|
#define ETMR_FV_CMP_A_EID_CMP(v, id) \
|
|
(((v) << ((id)*0x8U)) & ETMR_FM_CMP_A_EID_CMP(id))
|
|
|
|
#define ETMR_CMP_B_DITHER_OFF 0x270U
|
|
|
|
#define ETMR_FM_CMP_B_DITHER_INIT_OFFSET (0xffffU << 16U)
|
|
#define ETMR_FV_CMP_B_DITHER_INIT_OFFSET(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_B_DITHER_INIT_OFFSET)
|
|
#define ETMR_GFV_CMP_B_DITHER_INIT_OFFSET(v) \
|
|
(((v)&ETMR_FM_CMP_B_DITHER_INIT_OFFSET) >> 16U)
|
|
|
|
#define ETMR_FM_CMP_B_DITHER_CLIP_RSLT (0xfU << 2U)
|
|
#define ETMR_FV_CMP_B_DITHER_CLIP_RSLT(v) \
|
|
(((v) << 2U) & ETMR_FM_CMP_B_DITHER_CLIP_RSLT)
|
|
#define ETMR_GFV_CMP_B_DITHER_CLIP_RSLT(v) \
|
|
(((v)&ETMR_FM_CMP_B_DITHER_CLIP_RSLT) >> 2U)
|
|
|
|
#define ETMR_BM_CMP_B_DITHER_INIT_OFFSET_EN (0x01U << 1U)
|
|
|
|
#define ETMR_BM_CMP_B_DITHER_DITHER_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CMP_C_DITHER_OFF 0x2a0U
|
|
|
|
#define ETMR_FM_CMP_C_DITHER_INIT_OFFSET (0xffffU << 16U)
|
|
#define ETMR_FV_CMP_C_DITHER_INIT_OFFSET(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_C_DITHER_INIT_OFFSET)
|
|
#define ETMR_GFV_CMP_C_DITHER_INIT_OFFSET(v) \
|
|
(((v)&ETMR_FM_CMP_C_DITHER_INIT_OFFSET) >> 16U)
|
|
|
|
#define ETMR_FM_CMP_C_DITHER_CLIP_RSLT (0xfU << 2U)
|
|
#define ETMR_FV_CMP_C_DITHER_CLIP_RSLT(v) \
|
|
(((v) << 2U) & ETMR_FM_CMP_C_DITHER_CLIP_RSLT)
|
|
#define ETMR_GFV_CMP_C_DITHER_CLIP_RSLT(v) \
|
|
(((v)&ETMR_FM_CMP_C_DITHER_CLIP_RSLT) >> 2U)
|
|
|
|
#define ETMR_BM_CMP_C_DITHER_INIT_OFFSET_EN (0x01U << 1U)
|
|
|
|
#define ETMR_BM_CMP_C_DITHER_DITHER_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CMP_D_DITHER_OFF 0x2d0U
|
|
|
|
#define ETMR_FM_CMP_D_DITHER_INIT_OFFSET (0xffffU << 16U)
|
|
#define ETMR_FV_CMP_D_DITHER_INIT_OFFSET(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_D_DITHER_INIT_OFFSET)
|
|
#define ETMR_GFV_CMP_D_DITHER_INIT_OFFSET(v) \
|
|
(((v)&ETMR_FM_CMP_D_DITHER_INIT_OFFSET) >> 16U)
|
|
|
|
#define ETMR_FM_CMP_D_DITHER_CLIP_RSLT (0xfU << 2U)
|
|
#define ETMR_FV_CMP_D_DITHER_CLIP_RSLT(v) \
|
|
(((v) << 2U) & ETMR_FM_CMP_D_DITHER_CLIP_RSLT)
|
|
#define ETMR_GFV_CMP_D_DITHER_CLIP_RSLT(v) \
|
|
(((v)&ETMR_FM_CMP_D_DITHER_CLIP_RSLT) >> 2U)
|
|
|
|
#define ETMR_BM_CMP_D_DITHER_INIT_OFFSET_EN (0x01U << 1U)
|
|
|
|
#define ETMR_BM_CMP_D_DITHER_DITHER_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CMP_CTRL_OFF 0x2e0U
|
|
#define ETMR_BM_CMP_CTRL_CMP_A_EID_UPD (0x01U << 28U)
|
|
#define ETMR_BM_CMP_CTRL_CMP_X1_INIT_UPD(id) (0x01U << (21U + (id)*0x2U))
|
|
#define ETMR_BM_CMP_CTRL_CMP_X0_INIT_UPD(id) (0x01U << (20U + (id)*0x2U))
|
|
#define ETMR_BM_CMP_CTRL_CMP_X1_INIT_STATUS(id) (0x01U << (13U + (id)*0x2U))
|
|
#define ETMR_BM_CMP_CTRL_CMP_X0_INIT_STATUS(id) (0x01U << (12U + (id)*0x2U))
|
|
#define ETMR_BM_CMP_CTRL_CMP_VAL_UPD(id) (0x01U << (8U + (id)))
|
|
#define ETMR_BM_CMP_CTRL_CMP_CONFIG_SET(id) (0x01U << (4U + (id)))
|
|
#define ETMR_BM_CMP_CTRL_CMP_EN(id) (0x01U << (id))
|
|
|
|
#define ETMR_CPT_SSE_CTRL_OFF(id) (0x300U + (id)*0x8U)
|
|
#define ETMR_BM_CPT_SSE_CTRL_QUAD_INDEX_POL (0x01U << 26U)
|
|
#define ETMR_BM_CPT_SSE_CTRL_QUAD_HOME_POL (0x01U << 25U)
|
|
#define ETMR_FM_CPT_SSE_CTRL_QUAD_CLR_SEL (0xfU << 21U)
|
|
#define ETMR_FV_CPT_SSE_CTRL_QUAD_CLR_SEL(v) \
|
|
(((v) << 21U) & ETMR_FM_CPT_SSE_CTRL_QUAD_CLR_SEL)
|
|
#define ETMR_FM_CPT_SSE_CTRL_QUAD_SET_SEL (0xfU << 17U)
|
|
#define ETMR_FV_CPT_SSE_CTRL_QUAD_SET_SEL(v) \
|
|
(((v) << 17U) & ETMR_FM_CPT_SSE_CTRL_QUAD_SET_SEL)
|
|
#define ETMR_BM_CPT_SSE_CTRL_QUAD_MODE_EN (0x01U << 16U)
|
|
#define ETMR_FM_CPT_SSE_CTRL_EDGE_SEL (0x3ffU << 6U)
|
|
#define ETMR_FV_CPT_SSE_CTRL_EDGE_SEL(v) \
|
|
(((v) << 6U) & ETMR_FM_CPT_SSE_CTRL_EDGE_SEL)
|
|
#define ETMR_FM_CPT_SSE_CTRL_SSE_MODE (0x1fU << 1U)
|
|
#define ETMR_FV_CPT_SSE_CTRL_SSE_MODE(v) \
|
|
(((v) << 1U) & ETMR_FM_CPT_SSE_CTRL_SSE_MODE)
|
|
#define ETMR_BM_CPT_SSE_CTRL_SSE_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CPT_SSE_REG_OFF(id) (0x304U + (id)*0x8U)
|
|
|
|
#define ETMR_CMP_SSE_CTRL_OFF(id) (0x320U + (id)*0x8U)
|
|
#define ETMR_BM_CMP_SSE_CTRL_SSE_FAULT_DET_EN (0x01U << 19U)
|
|
#define ETMR_FM_CMP_SSE_CTRL_SSE_SO_DET_FAULT (0x7U << 16U)
|
|
#define ETMR_FV_CMP_SSE_CTRL_SSE_SO_DET_FAULT(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_SSE_CTRL_SSE_SO_DET_FAULT)
|
|
#define ETMR_FM_CMP_SSE_CTRL_EDGE_SEL (0x3ffU << 6U)
|
|
#define ETMR_FV_CMP_SSE_CTRL_EDGE_SEL(v) \
|
|
(((v) << 6U) & ETMR_FM_CMP_SSE_CTRL_EDGE_SEL)
|
|
#define ETMR_FM_CMP_SSE_CTRL_SSE_MODE (0x1fU << 1U)
|
|
#define ETMR_FV_CMP_SSE_CTRL_SSE_MODE(v) \
|
|
(((v) << 1U) & ETMR_FM_CMP_SSE_CTRL_SSE_MODE)
|
|
#define ETMR_BM_CMP_SSE_CTRL_SSE_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CMP_SSE_REG_OFF(id) (0x324U + (id)*0x8U)
|
|
|
|
#define ETMR_CPT_INPUT_SEL_OFF(id) (0x340U + (id)*0x4U)
|
|
#define ETMR_FM_CPT_INPUT_SEL_DIR_SEL (0xfU << 12U)
|
|
#define ETMR_FV_CPT_INPUT_SEL_DIR_SEL(v) \
|
|
(((v) << 12U) & ETMR_FM_CPT_INPUT_SEL_DIR_SEL)
|
|
#define ETMR_FM_CPT_INPUT_SEL_SIG_SEL (0xfU << 8U)
|
|
#define ETMR_FV_CPT_INPUT_SEL_SIG_SEL(v) \
|
|
(((v) << 8U) & ETMR_FM_CPT_INPUT_SEL_SIG_SEL)
|
|
#define ETMR_FM_CPT_INPUT_SEL_CLR_SEL (0xfU << 4U)
|
|
#define ETMR_FV_CPT_INPUT_SEL_CLR_SEL(v) \
|
|
(((v) << 4U) & ETMR_FM_CPT_INPUT_SEL_CLR_SEL)
|
|
#define ETMR_FM_CPT_INPUT_SEL_SET_SEL (0xfU << 0U)
|
|
#define ETMR_FV_CPT_INPUT_SEL_SET_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_CPT_INPUT_SEL_SET_SEL)
|
|
|
|
#define ETMR_CMP_INPUT_SEL_OFF(id) (0x350U + (id)*0x4U)
|
|
#define ETMR_FM_CMP_INPUT_SEL_CLR_SEL (0xfU << 4U)
|
|
#define ETMR_FV_CMP_INPUT_SEL_CLR_SEL(v) \
|
|
(((v) << 4U) & ETMR_FM_CMP_INPUT_SEL_CLR_SEL)
|
|
#define ETMR_FM_CMP_INPUT_SEL_SET_SEL (0xfU << 0U)
|
|
#define ETMR_FV_CMP_INPUT_SEL_SET_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_INPUT_SEL_SET_SEL)
|
|
|
|
#define ETMR_CNT_INPUT_SEL_OFF(id) (0x360U + (id)*0x4U)
|
|
#define ETMR_FM_CNT_INPUT_SEL_CLR_SEL (0xfU << 4U)
|
|
#define ETMR_FV_CNT_INPUT_SEL_CLR_SEL(v) \
|
|
(((v) << 4U) & ETMR_FM_CNT_INPUT_SEL_CLR_SEL)
|
|
#define ETMR_FM_CNT_INPUT_SEL_SET_SEL (0xfU << 0U)
|
|
#define ETMR_FV_CNT_INPUT_SEL_SET_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_CNT_INPUT_SEL_SET_SEL)
|
|
|
|
#define ETMR_EXT_OUTPUT_SEL_OFF 0x368U
|
|
|
|
#define ETMR_FM_EXT_OUTPUT_SEL_DIR_SEL (0xfU << 8U)
|
|
#define ETMR_FV_EXT_OUTPUT_SEL_DIR_SEL(v) \
|
|
(((v) << 8U) & ETMR_FM_EXT_OUTPUT_SEL_DIR_SEL)
|
|
#define ETMR_GFV_EXT_OUTPUT_SEL_DIR_SEL(v) \
|
|
(((v)&ETMR_FM_EXT_OUTPUT_SEL_DIR_SEL) >> 8U)
|
|
|
|
#define ETMR_FM_EXT_OUTPUT_SEL_CLR_SEL (0xfU << 4U)
|
|
#define ETMR_FV_EXT_OUTPUT_SEL_CLR_SEL(v) \
|
|
(((v) << 4U) & ETMR_FM_EXT_OUTPUT_SEL_CLR_SEL)
|
|
#define ETMR_GFV_EXT_OUTPUT_SEL_CLR_SEL(v) \
|
|
(((v)&ETMR_FM_EXT_OUTPUT_SEL_CLR_SEL) >> 4U)
|
|
|
|
#define ETMR_FM_EXT_OUTPUT_SEL_SET_SEL (0xfU << 0U)
|
|
#define ETMR_FV_EXT_OUTPUT_SEL_SET_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_EXT_OUTPUT_SEL_SET_SEL)
|
|
#define ETMR_GFV_EXT_OUTPUT_SEL_SET_SEL(v) \
|
|
(((v)&ETMR_FM_EXT_OUTPUT_SEL_SET_SEL) >> 0U)
|
|
|
|
#define ETMR_ETM_POL_INV_OFF 0x36cU
|
|
|
|
#define ETMR_CPT_SW_TRIG_OFF 0x370U
|
|
|
|
#define ETMR_CMP_SW_TRIG_OFF 0x374U
|
|
|
|
#define ETMR_CNT_EXT_SW_TRIG_OFF 0x378U
|
|
|
|
#define ETMR_SW_TRIG_CTRL_OFF 0x380U
|
|
#define ETMR_BM_SW_TRIG_CTRL_SW_TRIG0_CTRL0(trig, id) \
|
|
(0x01U << (trig * 0x4U + (id)))
|
|
|
|
#define ETMR_SW_TRIG_STATUS_OFF 0x384U
|
|
|
|
#define ETMR_SW_TRIG_PULSE0_OFF 0x388U
|
|
|
|
#define ETMR_FM_SW_TRIG_PULSE0_TRIG1_WIDTH (0xffffU << 16U)
|
|
#define ETMR_FV_SW_TRIG_PULSE0_TRIG1_WIDTH(v) \
|
|
(((v) << 16U) & ETMR_FM_SW_TRIG_PULSE0_TRIG1_WIDTH)
|
|
#define ETMR_FM_SW_TRIG_PULSE0_TRIG0_WIDTH (0xffffU << 0U)
|
|
#define ETMR_FV_SW_TRIG_PULSE0_TRIG0_WIDTH(v) \
|
|
(((v) << 0U) & ETMR_FM_SW_TRIG_PULSE0_TRIG0_WIDTH)
|
|
#define ETMR_SW_TRIG_PULSE1_OFF 0x38cU
|
|
#define ETMR_FM_SW_TRIG_PULSE1_TRIG3_WIDTH (0xffffU << 16U)
|
|
#define ETMR_FV_SW_TRIG_PULSE1_TRIG3_WIDTH(v) \
|
|
(((v) << 16U) & ETMR_FM_SW_TRIG_PULSE1_TRIG3_WIDTH)
|
|
#define ETMR_FM_SW_TRIG_PULSE1_TRIG2_WIDTH (0xffffU << 0U)
|
|
#define ETMR_FV_SW_TRIG_PULSE1_TRIG2_WIDTH(v) \
|
|
(((v) << 0U) & ETMR_FM_SW_TRIG_PULSE1_TRIG2_WIDTH)
|
|
|
|
#define ETMR_CNT_SNAP_SHOT_SEL_OFF(id) (0x390U + (id)*0x4U)
|
|
|
|
#define ETMR_SNAP_SHOT_O_SEL_OFF 0x3a8U
|
|
|
|
#define ETMR_CPT_X0_FLT_OFF(id) (0x400U + (id)*0x4U)
|
|
#define ETMR_FM_CPT_X0_FLT_SMPL_INTVAL (0xffU << 12U)
|
|
#define ETMR_FV_CPT_X0_FLT_SMPL_INTVAL(v) \
|
|
(((v) << 12U) & ETMR_FM_CPT_X0_FLT_SMPL_INTVAL)
|
|
#define ETMR_FM_CPT_X0_FLT_NEG_BAND_WID (0xfU << 8U)
|
|
#define ETMR_FV_CPT_X0_FLT_NEG_BAND_WID(v) \
|
|
(((v) << 8U) & ETMR_FM_CPT_X0_FLT_NEG_BAND_WID)
|
|
#define ETMR_FM_CPT_X0_FLT_POS_BAND_WID (0xfU << 4U)
|
|
#define ETMR_FV_CPT_X0_FLT_POS_BAND_WID(v) \
|
|
(((v) << 4U) & ETMR_FM_CPT_X0_FLT_POS_BAND_WID)
|
|
#define ETMR_FM_CPT_X0_FLT_FLT_EDGE_SEL (0x3U << 1U)
|
|
#define ETMR_FV_CPT_X0_FLT_FLT_EDGE_SEL(v) \
|
|
(((v) << 1U) & ETMR_FM_CPT_X0_FLT_FLT_EDGE_SEL)
|
|
#define ETMR_BM_CPT_X0_FLT_FLT_EN (0x01U << 0U)
|
|
|
|
#define ETMR_FAULT_X_FLT_OFF(id) (0x410U + (id)*0x4U)
|
|
#define ETMR_FM_FAULT_X_FLT_SMPL_INTVAL (0xffU << 12U)
|
|
#define ETMR_FV_FAULT_X_FLT_SMPL_INTVAL(v) \
|
|
(((v) << 12U) & ETMR_FM_FAULT_X_FLT_SMPL_INTVAL)
|
|
#define ETMR_FM_FAULT_X_FLT_NEG_BAND_WID (0xfU << 8U)
|
|
#define ETMR_FV_FAULT_X_FLT_NEG_BAND_WID(v) \
|
|
(((v) << 8U) & ETMR_FM_FAULT_X_FLT_NEG_BAND_WID)
|
|
#define ETMR_FM_FAULT_X_FLT_POS_BAND_WID (0xfU << 4U)
|
|
#define ETMR_FV_FAULT_X_FLT_POS_BAND_WID(v) \
|
|
(((v) << 4U) & ETMR_FM_FAULT_X_FLT_POS_BAND_WID)
|
|
#define ETMR_FM_FAULT_X_FLT_FLT_EDGE_SEL (0x3U << 1U)
|
|
#define ETMR_FV_FAULT_X_FLT_FLT_EDGE_SEL(v) \
|
|
(((v) << 1U) & ETMR_FM_FAULT_X_FLT_FLT_EDGE_SEL)
|
|
#define ETMR_BM_FAULT_X_FLT_FLT_EN (0x01U << 0U)
|
|
|
|
#define ETMR_SYNC_DIS_OFF 0x420U
|
|
|
|
#define ETMR_ETMR_CMP_FAULT_EVENT_CTRL_OFF(id) (0x440U + (id)*0x4U)
|
|
#define ETMR_BM_CMP_FAULT_EVENT_CTRL_FAULT_X_CLR(id) \
|
|
(0x01U << (3U + 0x4U * (id)))
|
|
#define ETMR_BM_CMP_FAULT_EVENT_CTRL_FAULT_X_CLR_MODE(id) \
|
|
(0x01U << (2U + 0x4U * (id)))
|
|
#define ETMR_BM_CMP_FAULT_EVENT_CTRL_FAULT_X_POL(id) \
|
|
(0x01U << (1U + 0x4U * (id)))
|
|
#define ETMR_BM_CMP_FAULT_EVENT_CTRL_FAULT_X_EN(id) (0x01U << (0x4U * (id)))
|
|
|
|
#define ETMR_CMP_DTI_CTRL_OFF(id) (0x460U + (id)*0x8U)
|
|
|
|
#if CONFIG_E3L
|
|
#define ETMR_BM_CMP_CMP1_IDLE_STA (0x01U << 9U)
|
|
#define ETMR_BM_CMP_CMP0_IDLE_STA (0x01U << 8U)
|
|
#define ETMR_BM_CMP_SW_TRIG_FRC (0x01U << 7U)
|
|
#endif
|
|
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP1_INV_CMP0 (0x01U << 6U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP1_SAME_CMP0 (0x01U << 5U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP1_FS_STATUS (0x01U << 4U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP0_FS_STATUS (0x01U << 3U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP1_POL (0x01U << 2U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_CMP0_POL (0x01U << 1U)
|
|
#define ETMR_BM_CMP_DTI_CTRL_EN (0x01U << 0U)
|
|
|
|
#define ETMR_CMP_DTI_WID_OFF(id) (0x464U + (id)*0x8U)
|
|
#define ETMR_FM_CMP_DTI_WID_DT1_WID (0xffffU << 16U)
|
|
#define ETMR_FV_CMP_DTI_WID_DT1_WID(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_DTI_WID_DT1_WID)
|
|
#define ETMR_FM_CMP_DTI_WID_DT0_WID (0xffffU << 0U)
|
|
#define ETMR_FV_CMP_DTI_WID_DT0_WID(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_DTI_WID_DT0_WID)
|
|
|
|
#define ETMR_SIGNAL_STATUS_OFF 0x500U
|
|
|
|
#define ETMR_SELFTEST_MODE_OFF 0xffcU
|
|
|
|
#if (CONFIG_E3 || CONFIG_D3)
|
|
#define ETMR_CBC_ZERO_VECTOR_BY_SCR_ADDR (APB_SCR_SF_BASE + 0x1000 + 0x98)
|
|
#else
|
|
#define ETMR_CBC_ZERO_VECTOR_BY_SCR_ADDR (APB_SCR_SF_BASE + 0x1000 + 0x68)
|
|
#endif
|
|
#ifndef CONFIG_E3L
|
|
#define ETMR_CBC_POS(etmr_id, chnl_id) (etmr_id * 4 + 4 + chnl_id)
|
|
#define ETMR_ZERO_VECTOR_POS(etmr_id, chnl_id) (etmr_id * 4 + chnl_id)
|
|
#else
|
|
#define ETMR_ZERO_VECTOR_POS(etmr_id, chnl_id) (etmr_id * 16 + chnl_id)
|
|
#define ETMR_CBC_POS(etmr_id, chnl_id) (etmr_id * 16 + 4 + chnl_id)
|
|
#define ETMR_SW_FRC_DIS_POS(etmr_id, chnl_id, sub_chnl) \
|
|
(etmr_id * 16 + 8 + chnl_id * 2 + sub_chnl)
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_E3L
|
|
#define ETMR_CENTER_ALIGN_CMP_INT_STA_OFF 0xF0
|
|
#define ETMR_CENTER_ALIGN_CMP_INT_STA_EN_OFF 0xF4
|
|
#define ETMR_CENTER_ALIGN_CMP_INT_SIG_EN_OFF 0xF8
|
|
|
|
#define ETMR_LCNT_CFG1_OFF(id) (0x15c + (id)*0x20)
|
|
#define ETMR_BM_LCNT_CFG_CENTER_ALIGN_MODE (0x1U << 4U)
|
|
#define ETMR_FM_LCNT_CFG_CENTER_ALIGN_CE_SEL (0x3U << 2U)
|
|
#define ETMR_FV_LCNT_CFG_CENTER_ALIGN_CE_SEL(v) \
|
|
(((v) << 2U) & ETMR_FM_LCNT_CFG_CENTER_ALIGN_CE_SEL)
|
|
#define ETMR_FM_LCNT_CFG_CENTER_ALIGN_OVF_SEL (0x3U << 0U)
|
|
#define ETMR_FV_LCNT_CFG_CENTER_ALIGN_OVF_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_LCNT_CFG_CENTER_ALIGN_OVF_SEL)
|
|
|
|
#define ETMR_CMP_CONFIG1_OFF(id) (0x24c + (id)*0x30)
|
|
#define ETMR_BM_CMP_CENTER_ALIGN_MODE (0x1U << 18U)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_RLD_SEL (0x3U << 16U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_RLD_SEL(v) \
|
|
(((v) << 16U) & ETMR_FM_CMP_CENTER_ALIGN_RLD_SEL)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_CMP11_IRQ_SEL (0x3U << 14U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_CMP11_IRQ_SEL(v) \
|
|
(((v) << 14U) & ETMR_FM_CMP_CENTER_ALIGN_CMP11_IRQ_SEL)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_CMP10_IRQ_SEL (0x3U << 12U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_CMP10_IRQ_SEL(v) \
|
|
(((v) << 12U) & ETMR_FM_CMP_CENTER_ALIGN_CMP10_IRQ_SEL)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_CMP01_IRQ_SEL (0x3U << 10U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_CMP01_IRQ_SEL(v) \
|
|
(((v) << 10U) & ETMR_FM_CMP_CENTER_ALIGN_CMP01_IRQ_SEL)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_CMP00_IRQ_SEL (0x3U << 8U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_CMP00_IRQ_SEL(v) \
|
|
(((v) << 8U) & ETMR_FM_CMP_CENTER_ALIGN_CMP00_IRQ_SEL)
|
|
#define ETMR_FM_CMP_CENTER_ALIGN_CE_SEL (0xffU << 0U)
|
|
#define ETMR_FV_CMP_CENTER_ALIGN_CE_SEL(v) \
|
|
(((v) << 0U) & ETMR_FM_CMP_CENTER_ALIGN_CE_SEL)
|
|
|
|
#define ETMR_CMP_FAULT_EVENT_STA_OFF 0x450
|
|
#endif
|
|
|
|
/* sdrv etimer source */
|
|
typedef enum {
|
|
SDRV_ETIMR_HF_CLK = 0,
|
|
SDRV_ETIMR_AHF_CLK,
|
|
/* reserved clk_src */
|
|
SDRV_ETIMR_EXT_CLK,
|
|
SDRV_ETIMR_LP_CLK,
|
|
} sdrv_etimer_clk_src_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CLK_MON_ENABLE = 5,
|
|
SDRV_ETIMR_CLK_MON_DISABLE
|
|
} sdrv_etimer_clk_mon_en_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_G0,
|
|
SDRV_ETIMR_CNT_G1,
|
|
SDRV_ETIMR_LCNT_A,
|
|
SDRV_ETIMR_LCNT_B,
|
|
SDRV_ETIMR_LCNT_C,
|
|
SDRV_ETIMR_LCNT_D,
|
|
SDRV_ETIMR_CNT_NUM
|
|
} sdrv_etimer_cnt_id_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_RESET_EVENT_NONE,
|
|
SDRV_ETIMR_RESET_EVENT_CPT0,
|
|
SDRV_ETIMR_RESET_EVENT_CPT1,
|
|
SDRV_ETIMR_RESET_EVENT_CPT0_CPT1
|
|
} sdrv_etimer_cnt_rst_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_LCNT_CPT_0_CLR,
|
|
SDRV_ETIMR_LCNT_CPT_1_CLR
|
|
} sdrv_etimer_cpt_clr_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_CONSECTIVE,
|
|
SDRV_ETIMR_CNT_ONE_SHOT
|
|
} sdrv_etimer_cnt_con_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_IGNORE_CLR,
|
|
SDRV_ETIMR_CNT_POSEDGE_CLR,
|
|
SDRV_ETIMR_CNT_NEGEDGE_CLR,
|
|
SDRV_ETIMR_CNT_HIGH_LEVEL_CLR
|
|
} sdrv_etimer_cnt_clr_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_NOUPDATE_UPD,
|
|
SDRV_ETIMR_CNT_RLDOVF_UPD,
|
|
SDRV_ETIMR_CNT_RLDINIT_UPD,
|
|
SDRV_ETIMR_CNT_BOTHRLD_UPD
|
|
} sdrv_etimer_cnt_set_upd_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_IGNORE_SET,
|
|
SDRV_ETIMR_CNT_POSEDGE_SET,
|
|
SDRV_ETIMR_CNT_NEGEDGE_SET,
|
|
SDRV_ETIMR_CNT_HIGH_LEVEL_SET
|
|
} sdrv_etimer_cnt_set_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CNT_POSEDGE_SIG,
|
|
SDRV_ETIMR_CNT_NEGEDGE_SIG,
|
|
SDRV_ETIMR_CNT_TOGGLE_SIG,
|
|
SDRV_ETIMR_CNT_HIGH_LEVEL_SIG
|
|
} sdrv_etimer_cnt_sig_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_32_BIT_MODE,
|
|
SDRV_ETIMR_16_BIT_MODE
|
|
} sdrv_etimer_bit_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_BLOCK,
|
|
SDRV_ETIMR_CPT_BLOCK,
|
|
SDRV_ETIMR_DELAY_MODE
|
|
} sdrv_etimer_chn_block_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CHN_A,
|
|
SDRV_ETIMR_CHN_B,
|
|
SDRV_ETIMR_CHN_C,
|
|
SDRV_ETIMR_CHN_D,
|
|
SDRV_ETIMR_CHN_NR
|
|
} sdrv_etimer_chn_id_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_DMA_TRIG_CMP_A = 0x1,
|
|
SDRV_ETIMR_DMA_TRIG_CMP_B = 0x2,
|
|
SDRV_ETIMR_DMA_TRIG_CMP_C = 0x4,
|
|
SDRV_ETIMR_DMA_TRIG_CMP_D = 0x8,
|
|
SDRV_ETIMR_DMA_TRIG_CPT_A = 0x10,
|
|
SDRV_ETIMR_DMA_TRIG_CPT_B = 0x20,
|
|
SDRV_ETIMR_DMA_TRIG_CPT_C = 0x40,
|
|
SDRV_ETIMR_DMA_TRIG_CPT_D = 0x80,
|
|
SDRV_ETIMR_DMA_TRIG_CNT_G0 = 0x100,
|
|
SDRV_ETIMR_DMA_TRIG_CNT_G1 = 0x200,
|
|
SDRV_ETIMR_DMA_TRIG_LCNT_A = 0x400,
|
|
SDRV_ETIMR_DMA_TRIG_LCNT_B = 0x800,
|
|
SDRV_ETIMR_DMA_TRIG_LCNT_C = 0x1000,
|
|
SDRV_ETIMR_DMA_TRIG_LCNT_D = 0x2000
|
|
} sdrv_etimer_dma_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_POSITIVE_PULSE,
|
|
SDRV_ETIMR_NEGATIVE_PULSE,
|
|
SDRV_ETIMR_TOGGLE_SIG,
|
|
SDRV_ETIMR_LEVEL_HIGH,
|
|
SDRV_ETIMR_LEVEL_LOW,
|
|
SDRV_ETIMR_KEEP
|
|
} sdrv_etimer_out_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_00,
|
|
SDRV_ETIMR_CMP_01,
|
|
SDRV_ETIMR_CMP_10,
|
|
SDRV_ETIMR_CMP_11
|
|
} sdrv_etimer_cmp_event_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_OUT_CMP0,
|
|
SDRV_ETIMR_CMP_OUT_CMP0_CMP1
|
|
} sdrv_etimer_cmp_out_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETMR_CMP0_OUTPUT,
|
|
SDRV_ETMR_CMP1_OUTPUT,
|
|
} sdrv_etimer_output_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_CONSECUTIVE,
|
|
SDRV_ETIMR_CMP_ONE_SHOT
|
|
} sdrv_etimer_cmp_con_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_SINGLE,
|
|
SDRV_ETIMR_CMP_DUAL,
|
|
SDRV_ETIMR_CMP_MULTI
|
|
} sdrv_etimer_cmp_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_CNT_G0,
|
|
SDRV_ETIMR_CMP_LCNT,
|
|
SDRV_ETIMR_CMP_LCNT_D
|
|
} sdrv_etimer_cmp_cnt_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_CE_CMP00,
|
|
SDRV_ETIMR_CMP_CE_CMP01,
|
|
SDRV_ETIMR_CMP_CE_CMP10,
|
|
SDRV_ETIMR_CMP_CE_CMP11
|
|
} sdrv_etimer_cmp_ce_trig_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_IGNORE,
|
|
SDRV_ETIMR_CMP_POSEDGE,
|
|
SDRV_ETIMR_CMP_NEGEEDGE,
|
|
SDRV_ETIMR_CMP_LEVEL_HIGH
|
|
} sdrv_etimer_cmp_event_trig_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_0_NO_CHANGE,
|
|
SDRV_ETIMR_CMP_0_INVERT,
|
|
SDRV_ETIMR_CMP_1_NO_CHANGE,
|
|
SDRV_ETIMR_CMP_1_INVERT,
|
|
SDRV_ETIMR_CMP_1_SAME_0,
|
|
SDRV_ETIMR_CMP_1_INVERT_0
|
|
} sdrv_etimer_dti_ctrl_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_OUT_0,
|
|
SDRV_ETIMR_CMP_OUT_1
|
|
} sdrv_etimer_cmp_group_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_FAULT0,
|
|
SDRV_ETIMR_CMP_FAULT1,
|
|
SDRV_ETIMR_CMP_FAULT2,
|
|
SDRV_ETIMR_CMP_FAULT3
|
|
} sdrv_etimer_cmp_fault_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_TRIG_SEL_SET,
|
|
SDRV_ETIMR_TRIG_SEL_CLR,
|
|
SDRV_ETIMR_TRIG_SEL_SIG,
|
|
SDRV_ETIMR_TRIG_SEL_DIR
|
|
} sdrv_etimer_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_TRIG_SEL_EXT_SET,
|
|
SDRV_ETIMR_TRIG_SEL_EXT_CLR,
|
|
SDRV_ETIMR_TRIG_SEL_CPT_A_SSE_SET_CLR,
|
|
SDRV_ETIMR_TRIG_SEL_CPT_A_CE,
|
|
SDRV_ETIMR_TRIG_SEL_CPT_B_CE,
|
|
SDRV_ETIMR_TRIG_SEL_CPT_C_CE,
|
|
SDRV_ETIMR_TRIG_SEL_CPT_D_CE,
|
|
SDRV_ETIMR_TRIG_SEL_CNT_G0_CE,
|
|
SDRV_ETIMR_TRIG_SEL_CMP_X_CE,
|
|
/* X: A, B, C, D */
|
|
SDRV_ETIMR_TRIG_SEL_LEVEL_LOW,
|
|
SDRV_ETIMR_TRIG_SEL_LEVEL_HIGH,
|
|
SDRV_ETIMR_TRIG_SEL_SW_PROGRAM_PULSE,
|
|
SDRV_ETIMR_TRIG_SEL_SW_TRIG0,
|
|
SDRV_ETIMR_TRIG_SEL_SW_TRIG1,
|
|
SDRV_ETIMR_TRIG_SEL_SW_TRIG2,
|
|
SDRV_ETIMR_TRIG_SEL_SW_TRIG3
|
|
} sdrv_etimer_trig_set_clr_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_OUT_SEL_EXT_SET,
|
|
SDRV_ETIMR_OUT_SEL_EXT_CLR,
|
|
SDRV_ETIMR_OUT_SEL_CPT_A_SSE_SET_CLR,
|
|
SDRV_ETIMR_OUT_SEL_CPT_A_CE,
|
|
SDRV_ETIMR_OUT_SEL_CPT_B_CE,
|
|
SDRV_ETIMR_OUT_SEL_CPT_C_CE,
|
|
SDRV_ETIMR_OUT_SEL_CPT_D_CE,
|
|
SDRV_ETIMR_OUT_SEL_CNT_G0_CE,
|
|
SDRV_ETIMR_OUT_SEL_CMP_G1_CE,
|
|
SDRV_ETIMR_OUT_SEL_LEVEL_LOW,
|
|
SDRV_ETIMR_OUT_SEL_LEVEL_HIGH,
|
|
SDRV_ETIMR_OUT_SEL_SW_PROGRAM_PULSE,
|
|
SDRV_ETIMR_OUT_SEL_SW_TRIG0,
|
|
SDRV_ETIMR_OUT_SEL_SW_TRIG1,
|
|
SDRV_ETIMR_OUT_SEL_SW_TRIG2,
|
|
SDRV_ETIMR_OUT_SEL_SW_TRIG3
|
|
} sdrv_etimer_ext_out_set_clr_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_TRIG_SIG_CPT_X_SSE, /* X: A, B, C, D */
|
|
SDRV_ETIMR_TRIG_SIG_CPT_X1,
|
|
SDRV_ETIMR_TRIG_SIG_CMP_X1,
|
|
SDRV_ETIMR_TRIG_SIG_CPT_A_CE,
|
|
SDRV_ETIMR_TRIG_SIG_CPT_B_CE,
|
|
SDRV_ETIMR_TRIG_SIG_CPT_C_CE,
|
|
SDRV_ETIMR_TRIG_SIG_CPT_D_CE,
|
|
SDRV_ETIMR_TRIG_SIG_CNT_G0_CE,
|
|
SDRV_ETIMR_TRIG_SIG_CNT_G1_CE,
|
|
SDRV_ETIMR_TRIG_SIG_LEVEL_LOW,
|
|
SDRV_ETIMR_TRIG_SIG_LEVEL_HIGH,
|
|
SDRV_ETIMR_TRIG_SIG_SW_PROGRAM_PULSE,
|
|
SDRV_ETIMR_TRIG_SIG_SW_TRIG0,
|
|
SDRV_ETIMR_TRIG_SIG_SW_TRIG1,
|
|
SDRV_ETIMR_TRIG_SIG_SW_TRIG2,
|
|
SDRV_ETIMR_TRIG_SIG_SW_TRIG3
|
|
} sdrv_etimer_trig_sig_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_TRIG_DIR_LEVEL_HIGH1,
|
|
SDRV_ETIMR_TRIG_DIR_LEVEL_LOW,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_A_SSE_DIR,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_A_SSE,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_B_SSE,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_C_SSE,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_D_SSE,
|
|
SDRV_ETIMR_TRIG_DIR_CPT_X1,
|
|
/* X: A, B, C, D */
|
|
SDRV_ETIMR_TRIG_DIR_CMP_X1,
|
|
/* X: A, B, C, D */
|
|
SDRV_ETIMR_TRIG_DIR_LEVEL_HIGH2,
|
|
SDRV_ETIMR_TRIG_DIR_LEVEL_HIGH3,
|
|
SDRV_ETIMR_TRIG_DIR_LEVEL_HIGH4,
|
|
SDRV_ETIMR_TRIG_DIR_SW_TRIG0,
|
|
SDRV_ETIMR_TRIG_DIR_SW_TRIG1,
|
|
SDRV_ETIMR_TRIG_DIR_SW_TRIG2,
|
|
SDRV_ETIMR_TRIG_DIR_SW_TRIG3
|
|
} sdrv_etimer_trig_dir_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_OUT_DIR_LEVEL_HIGH1,
|
|
SDRV_ETIMR_OUT_DIR_LEVEL_LOW,
|
|
SDRV_ETIMR_OUT_DIR_CPT_A_SSE_DIR,
|
|
SDRV_ETIMR_OUT_DIR_CPT_A_SSE,
|
|
SDRV_ETIMR_OUT_DIR_CPT_B_SSE,
|
|
SDRV_ETIMR_OUT_DIR_CPT_C_SSE,
|
|
SDRV_ETIMR_OUT_DIR_CPT_D_SSE,
|
|
SDRV_ETIMR_OUT_DIR_CPT_A1,
|
|
SDRV_ETIMR_OUT_DIR_CPT_B1,
|
|
SDRV_ETIMR_OUT_DIR_CPT_C1,
|
|
SDRV_ETIMR_OUT_DIR_CPT_D1,
|
|
SDRV_ETIMR_OUT_DIR_CMP_A1,
|
|
SDRV_ETIMR_OUT_DIR_SW_TRIG0,
|
|
SDRV_ETIMR_OUT_DIR_SW_TRIG1,
|
|
SDRV_ETIMR_OUT_DIR_SW_TRIG2,
|
|
SDRV_ETIMR_OUT_DIR_SW_TRIG3
|
|
} sdrv_etimer_ext_out_dir_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_SSE_MODE_LEVEL,
|
|
SDRV_ETIMR_SSE_MODE_EDGE
|
|
} sdrv_etimer_sse_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_SSE_EDGE_RISING,
|
|
SDRV_ETIMR_SSE_EDGE_FAILING,
|
|
SDRV_ETIMR_SSE_EDGE_BOTH
|
|
} sdrv_etimer_sse_edge_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CMP_FAULT_LEVEL_LOW,
|
|
SDRV_ETIMR_CMP_FAULT_LEVEL_HIGH,
|
|
SDRV_ETIMR_CMP_FAULT_EDGE_POS,
|
|
SDRV_ETIMR_CMP_FAULT_EDGE_NEG,
|
|
SDRV_ETIMR_CMP_FAULT_EDGE_BOTH
|
|
} sdrv_etimer_cmp_fault_det_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CPT_CONSECTIVE,
|
|
SDRV_ETIMR_CPT_ONE_SHOT
|
|
} sdrv_etimer_cpt_con_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CPT_CPT0,
|
|
SDRV_ETIMR_CPT_CPT0_CPT1
|
|
} sdrv_etimer_cpt_dual_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CPT_RISE_EDGE,
|
|
SDRV_ETIMR_CPT_FALL_EDGE,
|
|
SDRV_ETIMR_CPT_BOTH_EDGE,
|
|
SDRV_ETIMR_CPT_TRIG_IGNORE,
|
|
} sdrv_etimer_cpt_trig_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CPT_CNTG0,
|
|
SDRV_ETIMR_CPT_CNTG0_CNTG1,
|
|
SDRV_ETIMR_CPT_LCNT,
|
|
SDRV_ETIMR_CPT_CNT_IGNORE
|
|
} sdrv_etimer_cpt_cnt_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_CPT_CPT0_TRIG,
|
|
SDRV_ETIMR_CPT_CPT1_TRIG,
|
|
SDRV_ETIMR_CPT_BOTH_TRIG1
|
|
} sdrv_etimer_cpt_ce_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_FLT_POSEEDGE,
|
|
SDRV_ETIMR_FLT_NEGEEDGE,
|
|
SDRV_ETIMR_FLT_BOTHEDGE
|
|
} sdrv_etimer_flt_edge_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_FAULT_POL_HIGH,
|
|
SDRV_ETIMR_FAULT_POL_LOW
|
|
} sdrv_etimer_cmp_fault_pol_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_FAULT_AUTO_CLR,
|
|
SDRV_ETIMR_FAULT_STICKY
|
|
} sdrv_etimer_cmp_fault_mode_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_SW_TRIG0,
|
|
SDRV_ETIMR_SW_TRIG1,
|
|
SDRV_ETIMR_SW_TRIG2,
|
|
SDRV_ETIMR_SW_TRIG3
|
|
} sdrv_etimer_sw_trig_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_SW_TRIG_PULSE,
|
|
SDRV_ETIMR_SW_TRIG_TOGGLE,
|
|
SDRV_ETIMR_SW_TRIG_LOW,
|
|
SDRV_ETIMR_SW_TRIG_HIGH
|
|
} sdrv_etimer_sw_trig_typr_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_SNAP_CNT_G0 = 0x1,
|
|
SDRV_ETIMR_SNAP_CNT_G1 = 0x2,
|
|
SDRV_ETIMR_SNAP_LCNT_A = 0x4,
|
|
SDRV_ETIMR_SNAP_LCNT_B = 0x8,
|
|
SDRV_ETIMR_SNAP_LCNT_C = 0x10,
|
|
SDRV_ETIMR_SNAP_LCNT_D = 0x20,
|
|
SDRV_ETIMR_SNAP_POSEDGE = 0x40
|
|
} sdrv_etimer_snap_src_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_QUAD_HOMEHIGH,
|
|
SDRV_ETIMR_QUAD_IDXHIGH,
|
|
SDRV_ETIMR_QUAD_HOMEHIGH_BLOW_ALOW,
|
|
SDRV_ETIMR_QUAD_HOMEHIGH_BLOW_AHIGH,
|
|
SDRV_ETIMR_QUAD_HOMEHIGH_BHIGH_ALOW,
|
|
SDRV_ETIMR_QUAD_HOMEHIGH_BHIGH_AHIGH,
|
|
SDRV_ETIMR_QUAD_IDXHIGH_BLOW_ALOW,
|
|
SDRV_ETIMR_QUAD_IDXHIGH_BLOW_AHIGH,
|
|
SDRV_ETIMR_QUAD_IDXHIGH_BHIGH_ALOW,
|
|
SDRV_ETIMR_QUAD_IDXHIGH_BHIGH_AHIGH
|
|
} sdrv_etimer_quad_trig_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_QUAD_POL_KEEP,
|
|
SDRV_ETIMR_QUAD_POL_CHANGE
|
|
} sdrv_etimer_quad_pol_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_1_CHN_INT = 199,
|
|
SDRV_ETIMR_1_OVF_INT,
|
|
SDRV_ETIMR_2_CHN_INT,
|
|
SDRV_ETIMR_2_OVF_INT,
|
|
SDRV_ETIMR_3_CHN_INT,
|
|
SDRV_ETIMR_3_OVF_INT,
|
|
SDRV_ETIMR_4_CHN_INT,
|
|
SDRV_ETIMR_4_OVF_INT
|
|
} sdrv_etimer_irq_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_INT_CPT_A = 0x1,
|
|
SDRV_ETIMR_INT_CPT_B = 0x2,
|
|
SDRV_ETIMR_INT_CPT_C = 0x4,
|
|
SDRV_ETIMR_INT_CPT_D = 0x8,
|
|
SDRV_ETIMR_INT_CMP_A = 0x10,
|
|
SDRV_ETIMR_INT_CMP_B = 0x20,
|
|
SDRV_ETIMR_INT_CMP_C = 0x40,
|
|
SDRV_ETIMR_INT_CMP_D = 0x80,
|
|
SDRV_ETIMR_INT_CNT_G0_OVF = 0x100,
|
|
SDRV_ETIMR_INT_CNT_G1_OVF = 0x200,
|
|
SDRV_ETIMR_INT_LCNT_A_OVF = 0x400,
|
|
SDRV_ETIMR_INT_LCNT_B_OVF = 0x800,
|
|
SDRV_ETIMR_INT_LCNT_C_OVF = 0x1000,
|
|
SDRV_ETIMR_INT_LCNT_D_OVF = 0x2000,
|
|
SDRV_ETIMR_INT_CNT_G0_SNAP = 0x4000,
|
|
SDRV_ETIMR_INT_CNT_G1_SNAP = 0x8000,
|
|
SDRV_ETIMR_INT_LCNT_A_SNAP = 0x10000,
|
|
SDRV_ETIMR_INT_LCNT_B_SNAP = 0x20000,
|
|
SDRV_ETIMR_INT_LCNT_C_SNAP = 0x40000,
|
|
SDRV_ETIMR_INT_LCNT_D_SNAP = 0x80000,
|
|
} sdrv_etimer_int_e;
|
|
|
|
#if CONFIG_E3L
|
|
typedef enum {
|
|
SDRV_ETIMR_BOTH_OVF_UDR,
|
|
SDRV_ETIMR_BOTH_OVF_UDR1,
|
|
SDRV_ETIMR_ONLY_OVF,
|
|
SDRV_ETIMR_ONLY_UDR
|
|
} sdrv_etimer_cen_ali_sel_e;
|
|
|
|
typedef enum {
|
|
SDRV_ETIMR_TRIG_NONE,
|
|
SDRV_ETIMR_TRIG_INC,
|
|
SDRV_ETIMR_TRIG_DEC,
|
|
SDRV_ETIMR_TRIG_INC_DEC
|
|
} sdrv_etimer_cmp_cen_irq_sel_e;
|
|
#endif
|
|
|
|
typedef struct clk_set {
|
|
uint32_t div_num;
|
|
sdrv_etimer_clk_src_e src_clk_sel;
|
|
} clk_set_t;
|
|
|
|
typedef struct basic_cnt_config {
|
|
bool frc_rld;
|
|
sdrv_etimer_cnt_set_trig_sel_e set_trig_sel;
|
|
sdrv_etimer_cnt_set_upd_sel_e set_upd_sel;
|
|
sdrv_etimer_cnt_clr_trig_sel_e clr_trig_sel;
|
|
bool ce_en;
|
|
uint32_t interval;
|
|
sdrv_etimer_cnt_con_mode_e con_mode;
|
|
bool ovf_rst_dis;
|
|
bool cascade_mode;
|
|
} basic_cnt_config_t;
|
|
|
|
typedef struct local_cnt_config {
|
|
bool frc_rld;
|
|
sdrv_etimer_cnt_set_trig_sel_e set_trig_sel;
|
|
sdrv_etimer_cnt_set_upd_sel_e set_upd_sel;
|
|
sdrv_etimer_cnt_clr_trig_sel_e clr_trig_sel;
|
|
bool ce_en;
|
|
uint32_t interval;
|
|
sdrv_etimer_cnt_con_mode_e con_mode;
|
|
bool no_stop_mode;
|
|
uint32_t no_stop_ovf_mode;
|
|
sdrv_etimer_cnt_sig_trig_sel_e sig_trig_sel;
|
|
bool cpt0_clr_en;
|
|
bool cpt1_clr_en;
|
|
bool start_by_first_cpt;
|
|
bool sig_en;
|
|
bool delta_time_en;
|
|
bool ovf_rst_dis;
|
|
} local_cnt_config_t;
|
|
|
|
typedef struct sdrv_timer_sse_ctrl {
|
|
sdrv_etimer_sse_mode_e sse_mode[5];
|
|
sdrv_etimer_sse_edge_e edge_sel[5];
|
|
} sdrv_etimer_sse_ctrl_t;
|
|
|
|
typedef struct chn_etimer_dma_ctrl {
|
|
uint32_t chn_en;
|
|
sdrv_etimer_chn_block_e block_sel;
|
|
uint32_t chn_sig_mask;
|
|
sdrv_etimer_bit_mode_e bit_mode; /* compare mode only */
|
|
} chn_etimer_dma_ctrl_t;
|
|
|
|
typedef struct cmp_config {
|
|
sdrv_etimer_cmp_out_e out_mode;
|
|
sdrv_etimer_cmp_con_mode_e con_mode;
|
|
sdrv_etimer_cmp_mode_e cmp_mode;
|
|
sdrv_etimer_cmp_cnt_sel_e cnt_sel;
|
|
sdrv_etimer_cmp_ce_trig_e ce_trig_sel;
|
|
bool ce_en;
|
|
uint32_t hw_rld_mode;
|
|
sdrv_etimer_cmp_event_trig_e set_trig_sel;
|
|
sdrv_etimer_cmp_event_trig_e clr_trig_sel;
|
|
uint32_t rld_trig_mode;
|
|
uint32_t sw_rld_mode;
|
|
uint32_t ref_interval;
|
|
} cmp_config_t;
|
|
|
|
typedef struct cpt_config {
|
|
sdrv_etimer_cpt_ce_trig_sel_e ce_trig_sel;
|
|
bool ce_en;
|
|
sdrv_etimer_cpt_cnt_sel_e cnt_sel;
|
|
sdrv_etimer_cpt_trig_mode_e cpt1_trig_mode;
|
|
sdrv_etimer_cpt_trig_mode_e cpt0_trig_mode;
|
|
sdrv_etimer_cpt_dual_mode_e dual_mode;
|
|
sdrv_etimer_cpt_con_mode_e con_mode;
|
|
} cpt_config_t;
|
|
|
|
typedef struct etimer_out_mode {
|
|
sdrv_etimer_out_mode_e cmp_00_out;
|
|
sdrv_etimer_out_mode_e cmp_01_out;
|
|
sdrv_etimer_out_mode_e cmp_10_out;
|
|
sdrv_etimer_out_mode_e cmp_11_out;
|
|
sdrv_etimer_out_mode_e cmp_0_ovf_out;
|
|
sdrv_etimer_out_mode_e cmp_1_ovf_out;
|
|
} etimer_cmp_event_mode_t;
|
|
|
|
typedef struct etimer_cmp_pulse_wid0 {
|
|
|
|
uint32_t cmp_00_pluse;
|
|
uint32_t cmp_01_pluse;
|
|
uint32_t cmp_10_pluse;
|
|
uint32_t cmp_11_pluse;
|
|
} etimer_cmp_pulse_wid0_t;
|
|
|
|
typedef struct etimer_cmp_pulse_wid1 {
|
|
uint32_t cmp_1_ovf_pluse;
|
|
uint32_t cmp_0_ovf_pluse;
|
|
} etimer_cmp_pulse_wid1_t;
|
|
|
|
typedef struct etimer_cmp_init_status {
|
|
bool init_status_x0;
|
|
bool init_status_x1;
|
|
} etimer_cmp_init_status_t;
|
|
|
|
typedef struct quad_ctrl {
|
|
sdrv_etimer_quad_trig_e quad_set_sel;
|
|
sdrv_etimer_quad_trig_e quad_clr_sel;
|
|
sdrv_etimer_quad_pol_e quad_home_pol;
|
|
sdrv_etimer_quad_pol_e quad_index_pol;
|
|
} quad_ctrl_t;
|
|
|
|
typedef struct flt_config {
|
|
sdrv_etimer_flt_edge_e flt_edge_sel;
|
|
uint32_t pos_band_wid;
|
|
uint32_t neg_band_wid;
|
|
uint32_t sample_intval;
|
|
} flt_config_t;
|
|
|
|
typedef struct cmp_fault_ctrl {
|
|
sdrv_etimer_cmp_fault_pol_e fault_pol;
|
|
sdrv_etimer_cmp_fault_mode_e fault_clr_mode;
|
|
} cmp_fault_ctrl_t;
|
|
|
|
#if CONFIG_E3L
|
|
typedef struct cnt_center_align_config {
|
|
sdrv_etimer_cen_ali_sel_e ovf_sel;
|
|
sdrv_etimer_cen_ali_sel_e ce_sel;
|
|
} cnt_center_align_config_t;
|
|
|
|
typedef struct cmp_center_align_config {
|
|
sdrv_etimer_cen_ali_sel_e rld_sel;
|
|
sdrv_etimer_cmp_cen_irq_sel_e cmp11_irq;
|
|
sdrv_etimer_cmp_cen_irq_sel_e cmp10_irq;
|
|
sdrv_etimer_cmp_cen_irq_sel_e cmp01_irq;
|
|
sdrv_etimer_cmp_cen_irq_sel_e cmp00_irq;
|
|
uint8_t ce_sel;
|
|
} cmp_center_align_config_t;
|
|
#endif
|
|
|
|
void sdrv_etimer_lld_clk_cfg(uint32_t base, clk_set_t *cfg);
|
|
|
|
void sdrv_etimer_lld_clk_mon_en(uint32_t base, bool enable);
|
|
|
|
void sdrv_etimer_lld_cnt_upd(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
bool init_flag, bool ovf_flag);
|
|
|
|
void sdrv_etimer_lld_cnt_ovf(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
uint32_t val);
|
|
|
|
void sdrv_etimer_lld_lcnt_cpt_clr_en(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
sdrv_etimer_cpt_clr_e cpt_event,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cnt_init(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
uint32_t val);
|
|
|
|
void sdrv_etimer_lld_cnt_en(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
bool enable);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cnt_value(uint32_t base,
|
|
sdrv_etimer_cnt_id_e cnt_x);
|
|
|
|
void sdrv_etimer_lld_cnt_frc_rld(uint32_t base, sdrv_etimer_cnt_id_e cnt_x);
|
|
|
|
void sdrv_etimer_lld_basic_cnt_cfg(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
basic_cnt_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_local_cnt_cfg(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
local_cnt_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_int_en(uint32_t base, uint32_t bit_mask, bool enable);
|
|
|
|
void sdrv_etimer_lld_int_enable(uint32_t base, uint32_t int_sel);
|
|
|
|
void sdrv_etimer_lld_cor_int_enable(uint32_t base, uint32_t int_sel);
|
|
|
|
void sdrv_etimer_lld_unc_int_enable(uint32_t base, uint32_t int_sel);
|
|
|
|
uint32_t sdrv_etimer_lld_get_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_int_status(uint32_t base, uint32_t int_sta);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cor_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_cor_int_status(uint32_t base, uint32_t int_sta);
|
|
|
|
uint32_t sdrv_etimer_lld_get_unc_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_unc_int_status(uint32_t base, uint32_t int_sta);
|
|
|
|
void sdrv_etimer_lld_dma_chn_cfg(uint32_t base, sdrv_etimer_chn_id_e ch,
|
|
chn_etimer_dma_ctrl_t *config);
|
|
|
|
void sdrv_etimer_lld_dma_wml(uint32_t base, sdrv_etimer_chn_id_e chn,
|
|
uint32_t value);
|
|
|
|
void sdrv_etimer_lld_config_dma_ctrl(uint32_t base, uint32_t trig_sel);
|
|
|
|
void sdrv_etimer_lld_out_mode(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
etimer_cmp_event_mode_t *mode);
|
|
|
|
void sdrv_etimer_lld_cmp_val(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_event_e group, uint32_t val);
|
|
|
|
void sdrv_etimer_lld_cmp_pulse_wid0_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
etimer_cmp_pulse_wid0_t *wid0);
|
|
|
|
void sdrv_etimer_lld_cmp_pulse_wid1_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
etimer_cmp_pulse_wid1_t *wid1);
|
|
|
|
void sdrv_etimer_lld_cmp_val_upd(uint32_t base, sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_cmp_init_status(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
etimer_cmp_init_status_t *init_sta);
|
|
|
|
void sdrv_etimer_lld_cmp_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
cmp_config_t *cfg);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cmp_mode(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_cmp_sw_rld(uint32_t base, sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_cmp_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_config_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_cpt_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
cpt_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cpt_config_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_cpt_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_dti_ctrl_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_dti_ctrl_e ctrl_mode);
|
|
|
|
void sdrv_etimer_lld_dti_wid(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
uint16_t wid0, uint16_t wid1);
|
|
|
|
void sdrv_etimer_lld_dti_ctrl_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_fs_status_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_group_e group, bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_input_sel(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_trig_set_clr_e val);
|
|
|
|
void sdrv_etimer_lld_cnt_input_sel(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_trig_set_clr_e val);
|
|
|
|
void sdrv_etimer_lld_cpt_input_set_clr_sel(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_trig_set_clr_e val);
|
|
|
|
void sdrv_etimer_lld_cpt_input_sig_sel(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_trig_sig_e val);
|
|
|
|
void sdrv_etimer_lld_cpt_input_dir_sel(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_trig_dir_e val);
|
|
|
|
void sdrv_etimer_lld_cnt_trig_gen(uint32_t base, uint32_t trigger);
|
|
|
|
void sdrv_etimer_lld_sw_trig_ctrl(uint32_t base,
|
|
sdrv_etimer_sw_trig_sel_e trig_sel,
|
|
sdrv_etimer_sw_trig_typr_e trig_type);
|
|
|
|
void sdrv_etimer_lld_sw_trig_pulse(uint32_t base,
|
|
sdrv_etimer_sw_trig_sel_e trig_sel,
|
|
uint32_t value);
|
|
|
|
void sdrv_etimer_lld_cmp_sse_ctrl(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
const sdrv_etimer_sse_ctrl_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cmp_sse_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_sse_val(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
uint32_t value);
|
|
|
|
void sdrv_etimer_lld_cpt_sse_ctrl(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
const sdrv_etimer_sse_ctrl_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cpt_quad_ctrl(uint32_t base, quad_ctrl_t *quad_ctrl);
|
|
|
|
void sdrv_etimer_lld_cpt_quad_en(uint32_t base, bool enable);
|
|
|
|
void sdrv_etimer_lld_cpt_sse_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cpt_sse_val(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
uint32_t value);
|
|
|
|
void sdrv_etimer_lld_cpt_flt_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
flt_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cpt_flt_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_fault_flt_cfg(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
flt_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_fault_flt_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cnt_snap_shot(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
uint32_t val);
|
|
|
|
void sdrv_etimer_lld_output_snap_shot(uint32_t base, uint32_t val);
|
|
|
|
void sdrv_etimer_lld_cmp_fault_ctrl(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_fault_e fault_idx,
|
|
cmp_fault_ctrl_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cmp_fault_en(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_fault_e fault_idx,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_fault_clr(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_fault_e fault_idx);
|
|
|
|
void sdrv_etimer_lld_cmp_offset(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
uint32_t val);
|
|
|
|
void sdrv_etimer_lld_sw_rst(uint32_t base, uint32_t val);
|
|
|
|
uint32_t sdrv_etimer_lld_get_fifo_req_sta(uint32_t base);
|
|
|
|
uint32_t sdrv_etimer_lld_get_fifo_val(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
uint32_t sdrv_etimer_lld_get_fifo_sta(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_fifo(uint32_t base, sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cpt0_cnt0(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cpt0_cnt1(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cpt1_cnt0(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cpt1_cnt1(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id);
|
|
|
|
void sdrv_etimer_lld_lcnt_sig_en(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_trig_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_cmp_event_trig_e val);
|
|
|
|
void sdrv_etimer_lld_lcnt_trig_cfg(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_cmp_event_trig_e val);
|
|
|
|
void sdrv_etimer_lld_lcnt_ovf_rst_en(uint32_t base, sdrv_etimer_cnt_id_e cnt_x,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cpt_trig_cfg(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_cmp_event_trig_e val);
|
|
|
|
void sdrv_etimer_lld_cmp_eid(uint32_t base, sdrv_etimer_cmp_event_e cmp_event,
|
|
uint32_t val);
|
|
|
|
void sdrv_etimer_lld_cmp_eid_upd(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_set_sync_dis(uint32_t base, uint32_t val);
|
|
|
|
void sdrv_etimer_lld_ext_output_dir_sel(uint32_t base,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_ext_out_dir_e val);
|
|
|
|
void sdrv_etimer_lld_ext_output_set_clr_sel(uint32_t base,
|
|
sdrv_etimer_trig_sel_e sel,
|
|
sdrv_etimer_ext_out_set_clr_e val);
|
|
|
|
uint32_t sdrv_etimer_lld_get_sig_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_set_self_test(uint32_t base, bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_fault_det_en(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_fault_det_set(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_fault_det_e fault_det);
|
|
|
|
uint32_t sdrv_etimer_lld_get_fusa_cor_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_fusa_cor_int_status(uint32_t base, uint32_t int_sta);
|
|
|
|
uint32_t sdrv_etimer_lld_get_fusa_unc_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_fusa_unc_int_status(uint32_t base, uint32_t int_sta);
|
|
|
|
void sdrv_etimer_lld_cmp_dti_cbc(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_dti_zero_vector(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
#if CONFIG_E3L
|
|
void sdrv_etimer_lld_cmp_sw_frc_dis(paddr_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_output_e sub_chnl,
|
|
bool en);
|
|
|
|
void sdrv_etimer_lld_cnt_center_align_en(uint32_t base,
|
|
sdrv_etimer_cnt_id_e cnt_x,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cnt_center_align_cfg(uint32_t base,
|
|
sdrv_etimer_cnt_id_e cnt_x,
|
|
cnt_center_align_config_t *cfg);
|
|
|
|
void sdrv_etimer_lld_cmp_center_align_en(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_center_align_cfg(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
cmp_center_align_config_t *cfg);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cmp_fault_sta(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_cmp_frc_idle(uint32_t base, sdrv_etimer_chn_id_e etimer_id,
|
|
sdrv_etimer_cmp_group_e group, bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_sw_trig_idle(uint32_t base,
|
|
sdrv_etimer_chn_id_e etimer_id,
|
|
bool enable);
|
|
|
|
void sdrv_etimer_lld_cmp_cen_ali_int_enable(uint32_t base, uint32_t int_sel);
|
|
|
|
uint32_t sdrv_etimer_lld_get_cmp_cen_ali_int_status(uint32_t base);
|
|
|
|
void sdrv_etimer_lld_clear_cmp_cen_ali_int_status(uint32_t base,
|
|
uint32_t int_sta);
|
|
|
|
#endif
|
|
|
|
__END_CDECLS
|
|
|
|
#endif
|
|
|
|
#endif
|