1 /* 2 * Copyright (c) 2024 Microchip Technology Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef _MEC5_VBATR_V1_4_H 7 #define _MEC5_VBATR_V1_4_H 8 9 /** @addtogroup Device_Peripheral_peripherals 10 * @{ 11 */ 12 13 /** 14 * @brief VBAT 0 register bank (MEC_VBATR) 15 */ 16 17 typedef struct mec_vbatr_regs { /*!< (@ 0x4000A400) MEC_VBATR Structure */ 18 __IOM uint32_t PFRS; /*!< (@ 0x00000000) VBAT Power fail reset status */ 19 __IM uint32_t RESERVED; 20 __IOM uint32_t CLK32K_SRC; /*!< (@ 0x00000008) VBAT 32KHz source select */ 21 __IM uint32_t RESERVED1[2]; 22 __IOM uint32_t ST32KV; /*!< (@ 0x00000014) VBAT 32KHz silicon OSC trim value */ 23 __IM uint32_t RESERVED2; 24 __IOM uint32_t ST32KC; /*!< (@ 0x0000001C) VBAT 32KHz silicon OSC trim control */ 25 __IM uint32_t MCNTL; /*!< (@ 0x00000020) VBAT Monotonic counter bits[31:0] */ 26 __IOM uint32_t MCNTH; /*!< (@ 0x00000024) VBAT Monotonic counter bits[63:32] */ 27 __IOM uint32_t ROM_FEAT; /*!< (@ 0x00000028) VBAT ROM Feature */ 28 __IM uint32_t RESERVED3[2]; 29 __IOM uint32_t ERDE; /*!< (@ 0x00000034) VBAT embedded reset debounce enable */ 30 } MEC_VBATR_Type; /*!< Size = 56 (0x38) */ 31 32 /** @} */ /* End of group Device_Peripheral_peripherals */ 33 34 /** @addtogroup PosMask_peripherals 35 * @{ 36 */ 37 /* ========================================================= PFRS ========================================================== */ 38 #define MEC_VBATR_PFRS_SOFT_SYS_Pos (2UL) /*!< SOFT_SYS (Bit 2) */ 39 #define MEC_VBATR_PFRS_SOFT_SYS_Msk (0x4UL) /*!< SOFT_SYS (Bitfield-Mask: 0x01) */ 40 #define MEC_VBATR_PFRS_RESETI_Pos (4UL) /*!< RESETI (Bit 4) */ 41 #define MEC_VBATR_PFRS_RESETI_Msk (0x10UL) /*!< RESETI (Bitfield-Mask: 0x01) */ 42 #define MEC_VBATR_PFRS_WDT_Pos (5UL) /*!< WDT (Bit 5) */ 43 #define MEC_VBATR_PFRS_WDT_Msk (0x20UL) /*!< WDT (Bitfield-Mask: 0x01) */ 44 #define MEC_VBATR_PFRS_SYSRSTREQ_Pos (6UL) /*!< SYSRSTREQ (Bit 6) */ 45 #define MEC_VBATR_PFRS_SYSRSTREQ_Msk (0x40UL) /*!< SYSRSTREQ (Bitfield-Mask: 0x01) */ 46 #define MEC_VBATR_PFRS_VBAT_RST_Pos (7UL) /*!< VBAT_RST (Bit 7) */ 47 #define MEC_VBATR_PFRS_VBAT_RST_Msk (0x80UL) /*!< VBAT_RST (Bitfield-Mask: 0x01) */ 48 /* ====================================================== CLK32K_SRC ======================================================= */ 49 #define MEC_VBATR_CLK32K_SRC_SILOSC_Pos (0UL) /*!< SILOSC (Bit 0) */ 50 #define MEC_VBATR_CLK32K_SRC_SILOSC_Msk (0x1UL) /*!< SILOSC (Bitfield-Mask: 0x01) */ 51 #define MEC_VBATR_CLK32K_SRC_XTAL_Pos (8UL) /*!< XTAL (Bit 8) */ 52 #define MEC_VBATR_CLK32K_SRC_XTAL_Msk (0x100UL) /*!< XTAL (Bitfield-Mask: 0x01) */ 53 #define MEC_VBATR_CLK32K_SRC_XTAL_XOSEL_Pos (9UL) /*!< XTAL_XOSEL (Bit 9) */ 54 #define MEC_VBATR_CLK32K_SRC_XTAL_XOSEL_Msk (0x200UL) /*!< XTAL_XOSEL (Bitfield-Mask: 0x01) */ 55 #define MEC_VBATR_CLK32K_SRC_XTAL_HSC_Pos (10UL) /*!< XTAL_HSC (Bit 10) */ 56 #define MEC_VBATR_CLK32K_SRC_XTAL_HSC_Msk (0x400UL) /*!< XTAL_HSC (Bitfield-Mask: 0x01) */ 57 #define MEC_VBATR_CLK32K_SRC_XTAL_CNTR_Pos (11UL) /*!< XTAL_CNTR (Bit 11) */ 58 #define MEC_VBATR_CLK32K_SRC_XTAL_CNTR_Msk (0x1800UL) /*!< XTAL_CNTR (Bitfield-Mask: 0x03) */ 59 #define MEC_VBATR_CLK32K_SRC_PSSEL_Pos (16UL) /*!< PSSEL (Bit 16) */ 60 #define MEC_VBATR_CLK32K_SRC_PSSEL_Msk (0x30000UL) /*!< PSSEL (Bitfield-Mask: 0x03) */ 61 #define MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC_Pos (18UL) /*!< NOVTR_SILOSC (Bit 18) */ 62 #define MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC_Msk (0x40000UL) /*!< NOVTR_SILOSC (Bitfield-Mask: 0x01) */ 63 /* ========================================================= ERDE ========================================================== */ 64 #define MEC_VBATR_ERDE_EN_Pos (0UL) /*!< EN (Bit 0) */ 65 #define MEC_VBATR_ERDE_EN_Msk (0x1UL) /*!< EN (Bitfield-Mask: 0x01) */ 66 67 /** @} */ /* End of group PosMask_peripherals */ 68 69 /** @addtogroup EnumValue_peripherals 70 * @{ 71 */ 72 /* ========================================================= PFRS ========================================================== */ 73 /* ============================================ MEC_VBATR PFRS SOFT_SYS [2..2] ============================================= */ 74 typedef enum { /*!< MEC_VBATR_PFRS_SOFT_SYS */ 75 MEC_VBATR_PFRS_SOFT_SYS_STS = 1, /*!< STS : Active */ 76 } MEC_VBATR_PFRS_SOFT_SYS_Enum; 77 78 /* ============================================= MEC_VBATR PFRS RESETI [4..4] ============================================== */ 79 typedef enum { /*!< MEC_VBATR_PFRS_RESETI */ 80 MEC_VBATR_PFRS_RESETI_STS = 1, /*!< STS : Active */ 81 } MEC_VBATR_PFRS_RESETI_Enum; 82 83 /* =============================================== MEC_VBATR PFRS WDT [5..5] =============================================== */ 84 typedef enum { /*!< MEC_VBATR_PFRS_WDT */ 85 MEC_VBATR_PFRS_WDT_STS = 1, /*!< STS : Active */ 86 } MEC_VBATR_PFRS_WDT_Enum; 87 88 /* ============================================ MEC_VBATR PFRS SYSRSTREQ [6..6] ============================================ */ 89 typedef enum { /*!< MEC_VBATR_PFRS_SYSRSTREQ */ 90 MEC_VBATR_PFRS_SYSRSTREQ_STS = 1, /*!< STS : Active */ 91 } MEC_VBATR_PFRS_SYSRSTREQ_Enum; 92 93 /* ============================================ MEC_VBATR PFRS VBAT_RST [7..7] ============================================= */ 94 typedef enum { /*!< MEC_VBATR_PFRS_VBAT_RST */ 95 MEC_VBATR_PFRS_VBAT_RST_STS = 1, /*!< STS : Active */ 96 } MEC_VBATR_PFRS_VBAT_RST_Enum; 97 98 /* ====================================================== CLK32K_SRC ======================================================= */ 99 /* ========================================== MEC_VBATR CLK32K_SRC SILOSC [0..0] =========================================== */ 100 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_SILOSC */ 101 MEC_VBATR_CLK32K_SRC_SILOSC_EN = 1, /*!< EN : Enable */ 102 } MEC_VBATR_CLK32K_SRC_SILOSC_Enum; 103 104 /* =========================================== MEC_VBATR CLK32K_SRC XTAL [8..8] ============================================ */ 105 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_XTAL */ 106 MEC_VBATR_CLK32K_SRC_XTAL_EN = 1, /*!< EN : Enable */ 107 } MEC_VBATR_CLK32K_SRC_XTAL_Enum; 108 109 /* ======================================== MEC_VBATR CLK32K_SRC XTAL_XOSEL [9..9] ========================================= */ 110 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_XTAL_XOSEL */ 111 MEC_VBATR_CLK32K_SRC_XTAL_XOSEL_PAR = 0, /*!< PAR : Parallel connection between XTAL1 and XTAL2 pins */ 112 MEC_VBATR_CLK32K_SRC_XTAL_XOSEL_SE = 1, /*!< SE : Single-ended connection to XTAL2 pin only */ 113 } MEC_VBATR_CLK32K_SRC_XTAL_XOSEL_Enum; 114 115 /* ======================================== MEC_VBATR CLK32K_SRC XTAL_HSC [10..10] ========================================= */ 116 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_XTAL_HSC */ 117 MEC_VBATR_CLK32K_SRC_XTAL_HSC_EN = 0, /*!< EN : Enable */ 118 MEC_VBATR_CLK32K_SRC_XTAL_HSC_DIS = 1, /*!< DIS : Enable */ 119 } MEC_VBATR_CLK32K_SRC_XTAL_HSC_Enum; 120 121 /* ======================================== MEC_VBATR CLK32K_SRC XTAL_CNTR [11..12] ======================================== */ 122 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_XTAL_CNTR */ 123 MEC_VBATR_CLK32K_SRC_XTAL_CNTR_MODE0 = 0, /*!< MODE0 : Crystal startup mode 0 */ 124 MEC_VBATR_CLK32K_SRC_XTAL_CNTR_MODE1 = 1, /*!< MODE1 : Crystal startup mode 1 */ 125 MEC_VBATR_CLK32K_SRC_XTAL_CNTR_MODE2 = 2, /*!< MODE2 : Crystal startup mode 2 */ 126 MEC_VBATR_CLK32K_SRC_XTAL_CNTR_MODE3 = 3, /*!< MODE3 : Crystal startup mode 3 */ 127 } MEC_VBATR_CLK32K_SRC_XTAL_CNTR_Enum; 128 129 /* ========================================== MEC_VBATR CLK32K_SRC PSSEL [16..17] ========================================== */ 130 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_PSSEL */ 131 MEC_VBATR_CLK32K_SRC_PSSEL_SILOSC = 0, /*!< SILOSC : Use silicon OSC for VTR and VBAT-only */ 132 MEC_VBATR_CLK32K_SRC_PSSEL_XTAL = 1, /*!< XTAL : Use crystal for VTR and VBAT-only */ 133 MEC_VBATR_CLK32K_SRC_PSSEL_PIN_SIL = 2, /*!< PIN_SIL : Use 32KHZ_IN for VTR and Sil-OSC for VBAT-only */ 134 MEC_VBATR_CLK32K_SRC_PSSEL_PIN_XTAL = 3, /*!< PIN_XTAL : Use 32KHZ_IN pin for VTR and XTAL for VBAT-only */ 135 } MEC_VBATR_CLK32K_SRC_PSSEL_Enum; 136 137 /* ====================================== MEC_VBATR CLK32K_SRC NOVTR_SILOSC [18..18] ======================================= */ 138 typedef enum { /*!< MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC */ 139 MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC_EN = 0, /*!< EN : Keep silicon oscillator enabled when VTR is off */ 140 MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC_DIS = 1, /*!< DIS : Disable silicon oscillator when VTR is off */ 141 } MEC_VBATR_CLK32K_SRC_NOVTR_SILOSC_Enum; 142 143 /* ========================================================= ERDE ========================================================== */ 144 /* =============================================== MEC_VBATR ERDE EN [0..0] ================================================ */ 145 typedef enum { /*!< MEC_VBATR_ERDE_EN */ 146 MEC_VBATR_ERDE_EN_ON = 1, /*!< ON : Enable */ 147 } MEC_VBATR_ERDE_EN_Enum; 148 149 /** @} */ /* End of group EnumValue_peripherals */ 150 151 #endif /* _MEC5_VBATR_V1_4_H */ 152