/**
*   @file    pSIP_Cim.h
*   @version
*
*   @brief   AUTOSAR Cim register map
*   @details Register map for CIM
*
*   @addtogroup CIM_MODULE
*   @{
*/
/*==================================================================================================
*   Project              : YTMicro AUTOSAR 4.4.0 MCAL
*   Platform             : ARM
*   Peripheral           : Cim
*   Dependencies         : none
*
*   Autosar Version      : V4.4.0
*   Autosar Revision     : ASR_REL_4_4_REV_0000
*   Autosar Conf.Variant :
*   SW Version           : V0.8.0
*
*   (c) Copyright 2020-2026 Jiangsu Yuntu Microelectronics CO,. LTD.
*   All Rights Reserved.
==================================================================================================*/
/*==================================================================================================
==================================================================================================*/

#ifndef PSIP_CIM_H
#define PSIP_CIM_H

/*=================================================================================================
*                                        INCLUDE FILES
=================================================================================================*/

#include "Std_Types.h"

/*==================================================================================================
*                              CIM REGISTER MAP
==================================================================================================*/

/**
 * @addtogroup CIM_Peripheral_Access_Layer CIM Peripheral Access Layer
 * @{
 */


/** CIM - Size of Registers Arrays */

/* CIM Register Layout Typedef */
typedef struct
{
    uint32 CTRL0;                              /**< CIM Control Register 0, offset: 0x0000 */
    uint32 CTRL1;                              /**< CIM Control Register 1, offset: 0x0004 */
    uint8 RESERVED2[ 8];                      /**< RESERVED2, offset: 0x0008 */
    uint32 FPUIE;                              /**< FPU Interrupt Enable Register, offset: 0x0010 */
    uint32 SWTRIG;                             /**< Software Trigger Register, offset: 0x0014 */
    uint32 ETMROPT0;                           /**< eTMR Option register 0, offset: 0x0018 */
    uint32 ETMROPT1;                           /**< eTMR Option register 1, offset: 0x001C */
    uint32 ETMROPT2;                           /**< eTMR Option register 2, offset: 0x0020 */
    uint32 ETMROPT3;                           /**< eTMR Option register 3, offset: 0x0024 */
    uint8 RESERVED9[20];                      /**< RESERVED9, offset: 0x0028 */
    uint32 ETMR_GLB_OPT;                       /**< eTMR Global Option Register, offset: 0x003C */
    uint8 RESERVED11[32];                     /**< RESERVED11, offset: 0x0040 */
    uint32 RESERVED12;                         /**< RESERVED12, offset: 0x0060 */
    uint32 SYS_CTRL;                           /**< System Control Register, offset: 0x0064 */
    uint8 RESERVED14[24];                     /**< RESERVED14, offset: 0x0068 */
    uint32 DIEINFO;                            /**< Die Information Register, offset: 0x0080 */
    uint32 CHIPINFO0;                          /**< Chip Information Register 0, offset: 0x0084 */
    uint32 CHIPINFO1;                          /**< Chip Information Register 1, offset: 0x0088 */
    uint32 BOOT_CFG;                           /**< Chip Boot Configuration Register, offset: 0x008C */

} CIM_Type, *CIM_MemMapPtr;

/** Number of instances of the CIM module. */
#define CIM_INSTANCE_COUNT                        (1u)

/* CIM base address */
#define CIM_BASE_ADDR32                                   (0x401EC000U)
#define CIM                                               ((volatile CIM_Type *)(CIM_BASE_ADDR32))

/** Array initializer of CIM peripheral base addresses */
#define CIM_BASE_ADDRS                                     { CIM_BASE_ADDR32 }
/** Array initializer of CIM peripheral base pointers */
#define CIM_BASE_PTRS                                      { CIM }

#define CIM_CTRL0_OFFSET32                                 (0x0000U)                    /**< Offset for CIM Control Register 0 */
#define CIM_CTRL1_OFFSET32                                 (0x0004U)                    /**< Offset for CIM Control Register 1 */
#define CIM_FPUIE_OFFSET32                                 (0x0010U)                    /**< Offset for FPU Interrupt Enable Register */
#define CIM_SWTRIG_OFFSET32                                (0x0014U)                    /**< Offset for Software Trigger Register */
#define CIM_ETMROPT0_OFFSET32                              (0x0018U)                    /**< Offset for eTMR Option register 0 */
#define CIM_ETMROPT1_OFFSET32                              (0x001CU)                    /**< Offset for eTMR Option register 1 */
#define CIM_ETMROPT2_OFFSET32                              (0x0020U)                    /**< Offset for eTMR Option register 2 */
#define CIM_ETMROPT3_OFFSET32                              (0x0024U)                    /**< Offset for eTMR Option register 3 */
#define CIM_ETMR_GLB_OPT_OFFSET32                          (0x003CU)                    /**< Offset for eTMR Global Option Register */
#define CIM_SYS_CTRL_OFFSET32                              (0x0064U)                    /**< Offset for System Control Register */
#define CIM_DIEINFO_OFFSET32                               (0x0080U)                    /**< Offset for Die Information Register */
#define CIM_CHIPINFO0_OFFSET32                             (0x0084U)                    /**< Offset for Chip Information Register 0 */
#define CIM_CHIPINFO1_OFFSET32                             (0x0088U)                    /**< Offset for Chip Information Register 1 */
#define CIM_BOOT_CFG_OFFSET32                              (0x008CU)                    /**< Offset for Chip Boot Configuration Register */
#define CIM_ETMROPT_IS_INDEPENDENT   /* the eTMR external clock and trigger/sync configuration is independent with different CIM_ETMROPT0/1/2/3 registers for eTMR0/1/2/3 respectively */

/**
 * @addtogroup CIM Register Mask
 * @{
 */
/* CIM_CTRL0 Register */
#define CIM_CTRL0_ADC1_NORMT_SEL_MASK                      (0xC0000U)
#define CIM_CTRL0_ADC1_NORMT_SEL_SHIFT                     (18U)
#define CIM_CTRL0_ADC1_NORMT_SEL(x)                        (((uint32)(((uint32)(x)) << CIM_CTRL0_ADC1_NORMT_SEL_SHIFT)) & CIM_CTRL0_ADC1_NORMT_SEL_MASK)
#define CIM_CTRL0_ADC0_NORMT_SEL_MASK                      (0x30000U)
#define CIM_CTRL0_ADC0_NORMT_SEL_SHIFT                     (16U)
#define CIM_CTRL0_ADC0_NORMT_SEL(x)                        (((uint32)(((uint32)(x)) << CIM_CTRL0_ADC0_NORMT_SEL_SHIFT)) & CIM_CTRL0_ADC0_NORMT_SEL_MASK)
#define CIM_CTRL0_ACMP0_TRIG_SEL_MASK                      (0x300U)
#define CIM_CTRL0_ACMP0_TRIG_SEL_SHIFT                     (8U)
#define CIM_CTRL0_ACMP0_TRIG_SEL(x)                        (((uint32)(((uint32)(x)) << CIM_CTRL0_ACMP0_TRIG_SEL_SHIFT)) & CIM_CTRL0_ACMP0_TRIG_SEL_MASK)
/* CIM_CTRL1 Register */
#define CIM_CTRL1_LOCKUPEN_MASK                            (0x4U)
#define CIM_CTRL1_LOCKUPEN_SHIFT                           (2U)
#define CIM_CTRL1_LOCKUPEN(x)                              (((uint32)(((uint32)(x)) << CIM_CTRL1_LOCKUPEN_SHIFT)) & CIM_CTRL1_LOCKUPEN_MASK)
#define CIM_CTRL1_NMIEN_MASK                               (0x2U)
#define CIM_CTRL1_NMIEN_SHIFT                              (1U)
#define CIM_CTRL1_NMIEN(x)                                 (((uint32)(((uint32)(x)) << CIM_CTRL1_NMIEN_SHIFT)) & CIM_CTRL1_NMIEN_MASK)
#define CIM_CTRL1_WICENREQ_MASK                            (0x1U)
#define CIM_CTRL1_WICENREQ_SHIFT                           (0U)
#define CIM_CTRL1_WICENREQ(x)                              (((uint32)(((uint32)(x)) << CIM_CTRL1_WICENREQ_SHIFT)) & CIM_CTRL1_WICENREQ_MASK)
/* CIM_FPUIE Register */
#define CIM_FPUIE_FPIXCIE_MASK                             (0x20U)
#define CIM_FPUIE_FPIXCIE_SHIFT                            (5U)
#define CIM_FPUIE_FPIXCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPIXCIE_SHIFT)) & CIM_FPUIE_FPIXCIE_MASK)
#define CIM_FPUIE_FPIDCIE_MASK                             (0x10U)
#define CIM_FPUIE_FPIDCIE_SHIFT                            (4U)
#define CIM_FPUIE_FPIDCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPIDCIE_SHIFT)) & CIM_FPUIE_FPIDCIE_MASK)
#define CIM_FPUIE_FPOFCIE_MASK                             (0x8U)
#define CIM_FPUIE_FPOFCIE_SHIFT                            (3U)
#define CIM_FPUIE_FPOFCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPOFCIE_SHIFT)) & CIM_FPUIE_FPOFCIE_MASK)
#define CIM_FPUIE_FPUFCIE_MASK                             (0x4U)
#define CIM_FPUIE_FPUFCIE_SHIFT                            (2U)
#define CIM_FPUIE_FPUFCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPUFCIE_SHIFT)) & CIM_FPUIE_FPUFCIE_MASK)
#define CIM_FPUIE_FPDZCIE_MASK                             (0x2U)
#define CIM_FPUIE_FPDZCIE_SHIFT                            (1U)
#define CIM_FPUIE_FPDZCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPDZCIE_SHIFT)) & CIM_FPUIE_FPDZCIE_MASK)
#define CIM_FPUIE_FPIOCIE_MASK                             (0x1U)
#define CIM_FPUIE_FPIOCIE_SHIFT                            (0U)
#define CIM_FPUIE_FPIOCIE(x)                               (((uint32)(((uint32)(x)) << CIM_FPUIE_FPIOCIE_SHIFT)) & CIM_FPUIE_FPIOCIE_MASK)
/* CIM_SWTRIG Register */
#define CIM_SWTRIG_SWTCNT_MASK                             (0xFEU)
#define CIM_SWTRIG_SWTCNT_SHIFT                            (1U)
#define CIM_SWTRIG_SWTCNT(x)                               (((uint32)(((uint32)(x)) << CIM_SWTRIG_SWTCNT_SHIFT)) & CIM_SWTRIG_SWTCNT_MASK)
#define CIM_SWTRIG_SWT_MASK                                (0x1U)
#define CIM_SWTRIG_SWT_SHIFT                               (0U)
#define CIM_SWTRIG_SWT(x)                                  (((uint32)(((uint32)(x)) << CIM_SWTRIG_SWT_SHIFT)) & CIM_SWTRIG_SWT_MASK)
/* CIM_ETMROPT0 Register */
#define CIM_ETMROPT0_ETMR0_IN3_SEL_MASK                    (0xC00000U)
#define CIM_ETMROPT0_ETMR0_IN3_SEL_SHIFT                   (22U)
#define CIM_ETMROPT0_ETMR0_IN3_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_IN3_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_IN3_SEL_MASK)
#define CIM_ETMROPT0_ETMR0_IN2_SEL_MASK                    (0x300000U)
#define CIM_ETMROPT0_ETMR0_IN2_SEL_SHIFT                   (20U)
#define CIM_ETMROPT0_ETMR0_IN2_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_IN2_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_IN2_SEL_MASK)
#define CIM_ETMROPT0_ETMR0_IN1_SEL_MASK                    (0xC0000U)
#define CIM_ETMROPT0_ETMR0_IN1_SEL_SHIFT                   (18U)
#define CIM_ETMROPT0_ETMR0_IN1_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_IN1_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_IN1_SEL_MASK)
#define CIM_ETMROPT0_ETMR0_IN0_SEL_MASK                    (0x30000U)
#define CIM_ETMROPT0_ETMR0_IN0_SEL_SHIFT                   (16U)
#define CIM_ETMROPT0_ETMR0_IN0_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_IN0_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_IN0_SEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH7OUTSEL_MASK                  (0x8000U)
#define CIM_ETMROPT0_ETMR0_CH7OUTSEL_SHIFT                 (15U)
#define CIM_ETMROPT0_ETMR0_CH7OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH7OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH7OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH6OUTSEL_MASK                  (0x4000U)
#define CIM_ETMROPT0_ETMR0_CH6OUTSEL_SHIFT                 (14U)
#define CIM_ETMROPT0_ETMR0_CH6OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH6OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH6OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH5OUTSEL_MASK                  (0x2000U)
#define CIM_ETMROPT0_ETMR0_CH5OUTSEL_SHIFT                 (13U)
#define CIM_ETMROPT0_ETMR0_CH5OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH5OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH5OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH4OUTSEL_MASK                  (0x1000U)
#define CIM_ETMROPT0_ETMR0_CH4OUTSEL_SHIFT                 (12U)
#define CIM_ETMROPT0_ETMR0_CH4OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH4OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH4OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH3OUTSEL_MASK                  (0x800U)
#define CIM_ETMROPT0_ETMR0_CH3OUTSEL_SHIFT                 (11U)
#define CIM_ETMROPT0_ETMR0_CH3OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH3OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH3OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH2OUTSEL_MASK                  (0x400U)
#define CIM_ETMROPT0_ETMR0_CH2OUTSEL_SHIFT                 (10U)
#define CIM_ETMROPT0_ETMR0_CH2OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH2OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH2OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH1OUTSEL_MASK                  (0x200U)
#define CIM_ETMROPT0_ETMR0_CH1OUTSEL_SHIFT                 (9U)
#define CIM_ETMROPT0_ETMR0_CH1OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH1OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH1OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_CH0OUTSEL_MASK                  (0x100U)
#define CIM_ETMROPT0_ETMR0_CH0OUTSEL_SHIFT                 (8U)
#define CIM_ETMROPT0_ETMR0_CH0OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_CH0OUTSEL_SHIFT)) & CIM_ETMROPT0_ETMR0_CH0OUTSEL_MASK)
#define CIM_ETMROPT0_ETMR0_FAULT_SEL_MASK                  (0x70U)
#define CIM_ETMROPT0_ETMR0_FAULT_SEL_SHIFT                 (4U)
#define CIM_ETMROPT0_ETMR0_FAULT_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_FAULT_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_FAULT_SEL_MASK)
#define CIM_ETMROPT0_ETMR0_EXTCLK_SEL_MASK                  (0x3U)
#define CIM_ETMROPT0_ETMR0_EXTCLK_SEL_SHIFT                 (0U)
#define CIM_ETMROPT0_ETMR0_EXTCLK_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT0_ETMR0_EXTCLK_SEL_SHIFT)) & CIM_ETMROPT0_ETMR0_EXTCLK_SEL_MASK)
/* CIM_ETMROPT1 Register */
#define CIM_ETMROPT1_ETMR1_IN3_SEL_MASK                    (0xC00000U)
#define CIM_ETMROPT1_ETMR1_IN3_SEL_SHIFT                   (22U)
#define CIM_ETMROPT1_ETMR1_IN3_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_IN3_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_IN3_SEL_MASK)
#define CIM_ETMROPT1_ETMR1_IN2_SEL_MASK                    (0x300000U)
#define CIM_ETMROPT1_ETMR1_IN2_SEL_SHIFT                   (20U)
#define CIM_ETMROPT1_ETMR1_IN2_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_IN2_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_IN2_SEL_MASK)
#define CIM_ETMROPT1_ETMR1_IN1_SEL_MASK                    (0xC0000U)
#define CIM_ETMROPT1_ETMR1_IN1_SEL_SHIFT                   (18U)
#define CIM_ETMROPT1_ETMR1_IN1_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_IN1_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_IN1_SEL_MASK)
#define CIM_ETMROPT1_ETMR1_IN0_SEL_MASK                    (0x30000U)
#define CIM_ETMROPT1_ETMR1_IN0_SEL_SHIFT                   (16U)
#define CIM_ETMROPT1_ETMR1_IN0_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_IN0_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_IN0_SEL_MASK)
#define CIM_ETMROPT1_ETMR1_FAULT_SEL_MASK                  (0x70U)
#define CIM_ETMROPT1_ETMR1_FAULT_SEL_SHIFT                 (4U)
#define CIM_ETMROPT1_ETMR1_FAULT_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_FAULT_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_FAULT_SEL_MASK)
#define CIM_ETMROPT1_ETMR1_EXTCLK_SEL_MASK                  (0x3U)
#define CIM_ETMROPT1_ETMR1_EXTCLK_SEL_SHIFT                 (0U)
#define CIM_ETMROPT1_ETMR1_EXTCLK_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT1_ETMR1_EXTCLK_SEL_SHIFT)) & CIM_ETMROPT1_ETMR1_EXTCLK_SEL_MASK)
/* CIM_ETMROPT2 Register */
#define CIM_ETMROPT2_ETMR2_IN3_SEL_MASK                    (0xC00000U)
#define CIM_ETMROPT2_ETMR2_IN3_SEL_SHIFT                   (22U)
#define CIM_ETMROPT2_ETMR2_IN3_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_IN3_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_IN3_SEL_MASK)
#define CIM_ETMROPT2_ETMR2_IN2_SEL_MASK                    (0x300000U)
#define CIM_ETMROPT2_ETMR2_IN2_SEL_SHIFT                   (20U)
#define CIM_ETMROPT2_ETMR2_IN2_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_IN2_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_IN2_SEL_MASK)
#define CIM_ETMROPT2_ETMR2_IN1_SEL_MASK                    (0xC0000U)
#define CIM_ETMROPT2_ETMR2_IN1_SEL_SHIFT                   (18U)
#define CIM_ETMROPT2_ETMR2_IN1_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_IN1_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_IN1_SEL_MASK)
#define CIM_ETMROPT2_ETMR2_IN0_SEL_MASK                    (0x30000U)
#define CIM_ETMROPT2_ETMR2_IN0_SEL_SHIFT                   (16U)
#define CIM_ETMROPT2_ETMR2_IN0_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_IN0_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_IN0_SEL_MASK)
#define CIM_ETMROPT2_ETMR2_FAULT_SEL_MASK                  (0x70U)
#define CIM_ETMROPT2_ETMR2_FAULT_SEL_SHIFT                 (4U)
#define CIM_ETMROPT2_ETMR2_FAULT_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_FAULT_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_FAULT_SEL_MASK)
#define CIM_ETMROPT2_ETMR2_EXTCLK_SEL_MASK                  (0x3U)
#define CIM_ETMROPT2_ETMR2_EXTCLK_SEL_SHIFT                 (0U)
#define CIM_ETMROPT2_ETMR2_EXTCLK_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT2_ETMR2_EXTCLK_SEL_SHIFT)) & CIM_ETMROPT2_ETMR2_EXTCLK_SEL_MASK)
/* CIM_ETMROPT3 Register */
#define CIM_ETMROPT3_ETMR3_IN3_SEL_MASK                    (0xC00000U)
#define CIM_ETMROPT3_ETMR3_IN3_SEL_SHIFT                   (22U)
#define CIM_ETMROPT3_ETMR3_IN3_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_IN3_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_IN3_SEL_MASK)
#define CIM_ETMROPT3_ETMR3_IN2_SEL_MASK                    (0x300000U)
#define CIM_ETMROPT3_ETMR3_IN2_SEL_SHIFT                   (20U)
#define CIM_ETMROPT3_ETMR3_IN2_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_IN2_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_IN2_SEL_MASK)
#define CIM_ETMROPT3_ETMR3_IN1_SEL_MASK                    (0xC0000U)
#define CIM_ETMROPT3_ETMR3_IN1_SEL_SHIFT                   (18U)
#define CIM_ETMROPT3_ETMR3_IN1_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_IN1_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_IN1_SEL_MASK)
#define CIM_ETMROPT3_ETMR3_IN0_SEL_MASK                    (0x30000U)
#define CIM_ETMROPT3_ETMR3_IN0_SEL_SHIFT                   (16U)
#define CIM_ETMROPT3_ETMR3_IN0_SEL(x)                      (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_IN0_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_IN0_SEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH7OUTSEL_MASK                  (0x8000U)
#define CIM_ETMROPT3_ETMR3_CH7OUTSEL_SHIFT                 (15U)
#define CIM_ETMROPT3_ETMR3_CH7OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH7OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH7OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH6OUTSEL_MASK                  (0x4000U)
#define CIM_ETMROPT3_ETMR3_CH6OUTSEL_SHIFT                 (14U)
#define CIM_ETMROPT3_ETMR3_CH6OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH6OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH6OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH5OUTSEL_MASK                  (0x2000U)
#define CIM_ETMROPT3_ETMR3_CH5OUTSEL_SHIFT                 (13U)
#define CIM_ETMROPT3_ETMR3_CH5OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH5OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH5OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH4OUTSEL_MASK                  (0x1000U)
#define CIM_ETMROPT3_ETMR3_CH4OUTSEL_SHIFT                 (12U)
#define CIM_ETMROPT3_ETMR3_CH4OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH4OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH4OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH3OUTSEL_MASK                  (0x800U)
#define CIM_ETMROPT3_ETMR3_CH3OUTSEL_SHIFT                 (11U)
#define CIM_ETMROPT3_ETMR3_CH3OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH3OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH3OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH2OUTSEL_MASK                  (0x400U)
#define CIM_ETMROPT3_ETMR3_CH2OUTSEL_SHIFT                 (10U)
#define CIM_ETMROPT3_ETMR3_CH2OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH2OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH2OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH1OUTSEL_MASK                  (0x200U)
#define CIM_ETMROPT3_ETMR3_CH1OUTSEL_SHIFT                 (9U)
#define CIM_ETMROPT3_ETMR3_CH1OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH1OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH1OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_CH0OUTSEL_MASK                  (0x100U)
#define CIM_ETMROPT3_ETMR3_CH0OUTSEL_SHIFT                 (8U)
#define CIM_ETMROPT3_ETMR3_CH0OUTSEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_CH0OUTSEL_SHIFT)) & CIM_ETMROPT3_ETMR3_CH0OUTSEL_MASK)
#define CIM_ETMROPT3_ETMR3_FAULT_SEL_MASK                  (0x70U)
#define CIM_ETMROPT3_ETMR3_FAULT_SEL_SHIFT                 (4U)
#define CIM_ETMROPT3_ETMR3_FAULT_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_FAULT_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_FAULT_SEL_MASK)
#define CIM_ETMROPT3_ETMR3_EXTCLK_SEL_MASK                  (0x3U)
#define CIM_ETMROPT3_ETMR3_EXTCLK_SEL_SHIFT                 (0U)
#define CIM_ETMROPT3_ETMR3_EXTCLK_SEL(x)                    (((uint32)(((uint32)(x)) << CIM_ETMROPT3_ETMR3_EXTCLK_SEL_SHIFT)) & CIM_ETMROPT3_ETMR3_EXTCLK_SEL_MASK)
/* CIM_ETMR_GLB_OPT Register */
#define CIM_ETMR_GLB_OPT_ETMR3SS1C_MASK                    (0x8U)
#define CIM_ETMR_GLB_OPT_ETMR3SS1C_SHIFT                   (3U)
#define CIM_ETMR_GLB_OPT_ETMR3SS1C(x)                      (((uint32)(((uint32)(x)) << CIM_ETMR_GLB_OPT_ETMR3SS1C_SHIFT)) & CIM_ETMR_GLB_OPT_ETMR3SS1C_MASK)
#define CIM_ETMR_GLB_OPT_ETMR2SS1C_MASK                    (0x4U)
#define CIM_ETMR_GLB_OPT_ETMR2SS1C_SHIFT                   (2U)
#define CIM_ETMR_GLB_OPT_ETMR2SS1C(x)                      (((uint32)(((uint32)(x)) << CIM_ETMR_GLB_OPT_ETMR2SS1C_SHIFT)) & CIM_ETMR_GLB_OPT_ETMR2SS1C_MASK)
#define CIM_ETMR_GLB_OPT_ETMR1SS1C_MASK                    (0x2U)
#define CIM_ETMR_GLB_OPT_ETMR1SS1C_SHIFT                   (1U)
#define CIM_ETMR_GLB_OPT_ETMR1SS1C(x)                      (((uint32)(((uint32)(x)) << CIM_ETMR_GLB_OPT_ETMR1SS1C_SHIFT)) & CIM_ETMR_GLB_OPT_ETMR1SS1C_MASK)
#define CIM_ETMR_GLB_OPT_ETMR0SS1C_MASK                    (0x1U)
#define CIM_ETMR_GLB_OPT_ETMR0SS1C_SHIFT                   (0U)
#define CIM_ETMR_GLB_OPT_ETMR0SS1C(x)                      (((uint32)(((uint32)(x)) << CIM_ETMR_GLB_OPT_ETMR0SS1C_SHIFT)) & CIM_ETMR_GLB_OPT_ETMR0SS1C_MASK)
/* CIM_SYS_CTRL Register */
#define CIM_SYS_CTRL_FLASH_READ_ONLY_MASK                  (0x1U)
#define CIM_SYS_CTRL_FLASH_READ_ONLY_SHIFT                 (0U)
#define CIM_SYS_CTRL_FLASH_READ_ONLY(x)                    (((uint32)(((uint32)(x)) << CIM_SYS_CTRL_FLASH_READ_ONLY_SHIFT)) & CIM_SYS_CTRL_FLASH_READ_ONLY_MASK)
/* CIM_DIEINFO Register */
#define CIM_DIEINFO_FAMID_MASK                             (0xF0000000U)
#define CIM_DIEINFO_FAMID_SHIFT                            (28U)
#define CIM_DIEINFO_FAMID(x)                               (((uint32)(((uint32)(x)) << CIM_DIEINFO_FAMID_SHIFT)) & CIM_DIEINFO_FAMID_MASK)
#define CIM_DIEINFO_GENID_MASK                             (0xF000000U)
#define CIM_DIEINFO_GENID_SHIFT                            (24U)
#define CIM_DIEINFO_GENID(x)                               (((uint32)(((uint32)(x)) << CIM_DIEINFO_GENID_SHIFT)) & CIM_DIEINFO_GENID_MASK)
#define CIM_DIEINFO_SUBFAMIDH_MASK                         (0xF00000U)
#define CIM_DIEINFO_SUBFAMIDH_SHIFT                        (20U)
#define CIM_DIEINFO_SUBFAMIDH(x)                           (((uint32)(((uint32)(x)) << CIM_DIEINFO_SUBFAMIDH_SHIFT)) & CIM_DIEINFO_SUBFAMIDH_MASK)
#define CIM_DIEINFO_SUBFAMIDL_MASK                         (0xF0000U)
#define CIM_DIEINFO_SUBFAMIDL_SHIFT                        (16U)
#define CIM_DIEINFO_SUBFAMIDL(x)                           (((uint32)(((uint32)(x)) << CIM_DIEINFO_SUBFAMIDL_SHIFT)) & CIM_DIEINFO_SUBFAMIDL_MASK)
#define CIM_DIEINFO_MAJVER_MASK                            (0xF0U)
#define CIM_DIEINFO_MAJVER_SHIFT                           (4U)
#define CIM_DIEINFO_MAJVER(x)                              (((uint32)(((uint32)(x)) << CIM_DIEINFO_MAJVER_SHIFT)) & CIM_DIEINFO_MAJVER_MASK)
#define CIM_DIEINFO_MINVER_MASK                            (0xFU)
#define CIM_DIEINFO_MINVER_SHIFT                           (0U)
#define CIM_DIEINFO_MINVER(x)                              (((uint32)(((uint32)(x)) << CIM_DIEINFO_MINVER_SHIFT)) & CIM_DIEINFO_MINVER_MASK)
/* CIM_CHIPINFO0 Register */
#define CIM_CHIPINFO0_PKGS_MASK                            (0xF00000U)
#define CIM_CHIPINFO0_PKGS_SHIFT                           (20U)
#define CIM_CHIPINFO0_PKGS(x)                              (((uint32)(((uint32)(x)) << CIM_CHIPINFO0_PKGS_SHIFT)) & CIM_CHIPINFO0_PKGS_MASK)
#define CIM_CHIPINFO0_OCRAMS_MASK                          (0xF0000U)
#define CIM_CHIPINFO0_OCRAMS_SHIFT                         (16U)
#define CIM_CHIPINFO0_OCRAMS(x)                            (((uint32)(((uint32)(x)) << CIM_CHIPINFO0_OCRAMS_SHIFT)) & CIM_CHIPINFO0_OCRAMS_MASK)
#define CIM_CHIPINFO0_EEPROMS_MASK                         (0xF000U)
#define CIM_CHIPINFO0_EEPROMS_SHIFT                        (12U)
#define CIM_CHIPINFO0_EEPROMS(x)                           (((uint32)(((uint32)(x)) << CIM_CHIPINFO0_EEPROMS_SHIFT)) & CIM_CHIPINFO0_EEPROMS_MASK)
#define CIM_CHIPINFO0_PFLASHS_MASK                         (0xF00U)
#define CIM_CHIPINFO0_PFLASHS_SHIFT                        (8U)
#define CIM_CHIPINFO0_PFLASHS(x)                           (((uint32)(((uint32)(x)) << CIM_CHIPINFO0_PFLASHS_SHIFT)) & CIM_CHIPINFO0_PFLASHS_MASK)
/* CIM_CHIPINFO1 Register */
#define CIM_CHIPINFO1_FLEXCAN3_EN_MASK                     (0x80U)
#define CIM_CHIPINFO1_FLEXCAN3_EN_SHIFT                    (7U)
#define CIM_CHIPINFO1_FLEXCAN3_EN(x)                       (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN3_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN3_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN2_EN_MASK                     (0x40U)
#define CIM_CHIPINFO1_FLEXCAN2_EN_SHIFT                    (6U)
#define CIM_CHIPINFO1_FLEXCAN2_EN(x)                       (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN2_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN2_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN1_EN_MASK                     (0x20U)
#define CIM_CHIPINFO1_FLEXCAN1_EN_SHIFT                    (5U)
#define CIM_CHIPINFO1_FLEXCAN1_EN(x)                       (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN1_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN1_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN0_EN_MASK                     (0x10U)
#define CIM_CHIPINFO1_FLEXCAN0_EN_SHIFT                    (4U)
#define CIM_CHIPINFO1_FLEXCAN0_EN(x)                       (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN0_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN0_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN3_FD_EN_MASK                  (0x8U)
#define CIM_CHIPINFO1_FLEXCAN3_FD_EN_SHIFT                 (3U)
#define CIM_CHIPINFO1_FLEXCAN3_FD_EN(x)                    (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN3_FD_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN3_FD_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN2_FD_EN_MASK                  (0x4U)
#define CIM_CHIPINFO1_FLEXCAN2_FD_EN_SHIFT                 (2U)
#define CIM_CHIPINFO1_FLEXCAN2_FD_EN(x)                    (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN2_FD_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN2_FD_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN1_FD_EN_MASK                  (0x2U)
#define CIM_CHIPINFO1_FLEXCAN1_FD_EN_SHIFT                 (1U)
#define CIM_CHIPINFO1_FLEXCAN1_FD_EN(x)                    (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN1_FD_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN1_FD_EN_MASK)
#define CIM_CHIPINFO1_FLEXCAN0_FD_EN_MASK                  (0x1U)
#define CIM_CHIPINFO1_FLEXCAN0_FD_EN_SHIFT                 (0U)
#define CIM_CHIPINFO1_FLEXCAN0_FD_EN(x)                    (((uint32)(((uint32)(x)) << CIM_CHIPINFO1_FLEXCAN0_FD_EN_SHIFT)) & CIM_CHIPINFO1_FLEXCAN0_FD_EN_MASK)
/* CIM_BOOT_CFG Register */
#define CIM_BOOT_CFG_WDG_DIS_MASK                          (0x1000000U)
#define CIM_BOOT_CFG_WDG_DIS_SHIFT                         (24U)
#define CIM_BOOT_CFG_WDG_DIS(x)                            (((uint32)(((uint32)(x)) << CIM_BOOT_CFG_WDG_DIS_SHIFT)) & CIM_BOOT_CFG_WDG_DIS_MASK)
#define CIM_BOOT_CFG_BOOT_SEL_MASK                         (0xE0000U)
#define CIM_BOOT_CFG_BOOT_SEL_SHIFT                        (17U)
#define CIM_BOOT_CFG_BOOT_SEL(x)                           (((uint32)(((uint32)(x)) << CIM_BOOT_CFG_BOOT_SEL_SHIFT)) & CIM_BOOT_CFG_BOOT_SEL_MASK)


/**
 * @}
 */ /* end of group CIM_Register_Masks */


/**
 * @}
 */ /* end of group CIM_Peripheral_Access_Layer */

#endif /* PSIP_CIM_H */

