1 /***************************************************************************//** 2 * \file cyip_backup.h 3 * 4 * \brief 5 * BACKUP IP definitions 6 * 7 ******************************************************************************** 8 * \copyright 9 * (c) (2016-2024), Cypress Semiconductor Corporation (an Infineon company) or 10 * an affiliate of Cypress Semiconductor Corporation. 11 * 12 * SPDX-License-Identifier: Apache-2.0 13 * 14 * Licensed under the Apache License, Version 2.0 (the "License"); 15 * you may not use this file except in compliance with the License. 16 * You may obtain a copy of the License at 17 * 18 * http://www.apache.org/licenses/LICENSE-2.0 19 * 20 * Unless required by applicable law or agreed to in writing, software 21 * distributed under the License is distributed on an "AS IS" BASIS, 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 * See the License for the specific language governing permissions and 24 * limitations under the License. 25 *******************************************************************************/ 26 27 #ifndef _CYIP_BACKUP_H_ 28 #define _CYIP_BACKUP_H_ 29 30 #include "cyip_headers.h" 31 32 /******************************************************************************* 33 * BACKUP 34 *******************************************************************************/ 35 36 #define BACKUP_CSV_BAK_CSV_SECTION_SIZE 0x00000010UL 37 #define BACKUP_CSV_BAK_SECTION_SIZE 0x00000010UL 38 #define BACKUP_SECTION_SIZE 0x00010000UL 39 40 /** 41 * \brief clk_bak Backup domain Clock Supervisor registers (BACKUP_CSV_BAK_CSV) 42 */ 43 typedef struct { 44 __IOM uint32_t REF_CTL; /*!< 0x00000000 Clock Supervision Reference Control */ 45 __IOM uint32_t REF_LIMIT; /*!< 0x00000004 Clock Supervision Reference Limits */ 46 __IOM uint32_t MON_CTL; /*!< 0x00000008 Clock Supervision Monitor Control */ 47 __IM uint32_t RESERVED; 48 } BACKUP_CSV_BAK_CSV_Type; /*!< Size = 16 (0x10) */ 49 50 /** 51 * \brief CSV registers for clk_bak clock (BACKUP_CSV_BAK) 52 */ 53 typedef struct { 54 BACKUP_CSV_BAK_CSV_Type CSV; /*!< 0x00000000 clk_bak Backup domain Clock Supervisor registers */ 55 } BACKUP_CSV_BAK_Type; /*!< Size = 16 (0x10) */ 56 57 /** 58 * \brief SRSS Backup Registers (BACKUP) 59 */ 60 typedef struct { 61 __IOM uint32_t CTL; /*!< 0x00000000 Control */ 62 __IM uint32_t RESERVED; 63 __IOM uint32_t RTC_RW; /*!< 0x00000008 RTC Read Write register */ 64 __IOM uint32_t CAL_CTL; /*!< 0x0000000C Oscillator calibration for absolute frequency */ 65 __IM uint32_t STATUS; /*!< 0x00000010 Status */ 66 __IOM uint32_t RTC_TIME; /*!< 0x00000014 Calendar Seconds, Minutes, Hours, Day of Week */ 67 __IOM uint32_t RTC_DATE; /*!< 0x00000018 Calendar Day of Month, Month, Year */ 68 __IOM uint32_t ALM1_TIME; /*!< 0x0000001C Alarm 1 Seconds, Minute, Hours, Day of Week */ 69 __IOM uint32_t ALM1_DATE; /*!< 0x00000020 Alarm 1 Day of Month, Month */ 70 __IOM uint32_t ALM2_TIME; /*!< 0x00000024 Alarm 2 Seconds, Minute, Hours, Day of Week */ 71 __IOM uint32_t ALM2_DATE; /*!< 0x00000028 Alarm 2 Day of Month, Month */ 72 __IOM uint32_t INTR; /*!< 0x0000002C Interrupt request register */ 73 __IOM uint32_t INTR_SET; /*!< 0x00000030 Interrupt set request register */ 74 __IOM uint32_t INTR_MASK; /*!< 0x00000034 Interrupt mask register */ 75 __IM uint32_t INTR_MASKED; /*!< 0x00000038 Interrupt masked request register */ 76 __IM uint32_t RESERVED1[2]; 77 __IOM uint32_t PMIC_CTL; /*!< 0x00000044 PMIC control register */ 78 __IOM uint32_t RESET; /*!< 0x00000048 Backup reset register */ 79 __IM uint32_t RESERVED2[13]; 80 __IOM uint32_t LPECO_CTL; /*!< 0x00000080 Low-power external crystal oscillator control */ 81 __IOM uint32_t LPECO_PRESCALE; /*!< 0x00000084 Low-power external crystal oscillator prescaler */ 82 __IM uint32_t LPECO_STATUS; /*!< 0x00000088 Low-power external crystal oscillator status */ 83 __IM uint32_t RESERVED3; 84 __IM uint32_t WCO_STATUS; /*!< 0x00000090 WCO Status Register */ 85 __IM uint32_t RESERVED4[27]; 86 BACKUP_CSV_BAK_Type CSV_BAK; /*!< 0x00000100 CSV registers for clk_bak clock */ 87 __IM uint32_t RESERVED5[956]; 88 __IOM uint32_t BREG_SET0[4]; /*!< 0x00001000 Backup register region 0 */ 89 __IOM uint32_t BREG_SET1[4]; /*!< 0x00001010 Backup register region 1 */ 90 __IOM uint32_t BREG_SET2[8]; /*!< 0x00001020 Backup register region 2 */ 91 __IM uint32_t RESERVED6[16]; 92 __IOM uint32_t BREG_SET3[48]; /*!< 0x00001080 Backup register region 3 */ 93 } BACKUP_Type; /*!< Size = 4416 (0x1140) */ 94 95 96 /* BACKUP_CSV_BAK_CSV.REF_CTL */ 97 #define BACKUP_CSV_BAK_CSV_REF_CTL_STARTUP_Pos 0UL 98 #define BACKUP_CSV_BAK_CSV_REF_CTL_STARTUP_Msk 0xFFUL 99 #define BACKUP_CSV_BAK_CSV_REF_CTL_CSV_EN_Pos 31UL 100 #define BACKUP_CSV_BAK_CSV_REF_CTL_CSV_EN_Msk 0x80000000UL 101 /* BACKUP_CSV_BAK_CSV.REF_LIMIT */ 102 #define BACKUP_CSV_BAK_CSV_REF_LIMIT_LOWER_Pos 0UL 103 #define BACKUP_CSV_BAK_CSV_REF_LIMIT_LOWER_Msk 0xFFUL 104 #define BACKUP_CSV_BAK_CSV_REF_LIMIT_UPPER_Pos 16UL 105 #define BACKUP_CSV_BAK_CSV_REF_LIMIT_UPPER_Msk 0xFF0000UL 106 /* BACKUP_CSV_BAK_CSV.MON_CTL */ 107 #define BACKUP_CSV_BAK_CSV_MON_CTL_PERIOD_Pos 0UL 108 #define BACKUP_CSV_BAK_CSV_MON_CTL_PERIOD_Msk 0xFFUL 109 110 111 /* BACKUP.CTL */ 112 #define BACKUP_CTL_WCO_EN_Pos 3UL 113 #define BACKUP_CTL_WCO_EN_Msk 0x8UL 114 #define BACKUP_CTL_CLK_SEL_Pos 8UL 115 #define BACKUP_CTL_CLK_SEL_Msk 0x700UL 116 #define BACKUP_CTL_PRESCALER_Pos 12UL 117 #define BACKUP_CTL_PRESCALER_Msk 0x3000UL 118 #define BACKUP_CTL_WCO_BYPASS_Pos 16UL 119 #define BACKUP_CTL_WCO_BYPASS_Msk 0x10000UL 120 #define BACKUP_CTL_VDDBAK_CTL_Pos 17UL 121 #define BACKUP_CTL_VDDBAK_CTL_Msk 0x60000UL 122 #define BACKUP_CTL_VBACKUP_MEAS_Pos 19UL 123 #define BACKUP_CTL_VBACKUP_MEAS_Msk 0x80000UL 124 #define BACKUP_CTL_EN_CHARGE_KEY_Pos 24UL 125 #define BACKUP_CTL_EN_CHARGE_KEY_Msk 0xFF000000UL 126 /* BACKUP.RTC_RW */ 127 #define BACKUP_RTC_RW_READ_Pos 0UL 128 #define BACKUP_RTC_RW_READ_Msk 0x1UL 129 #define BACKUP_RTC_RW_WRITE_Pos 1UL 130 #define BACKUP_RTC_RW_WRITE_Msk 0x2UL 131 /* BACKUP.CAL_CTL */ 132 #define BACKUP_CAL_CTL_CALIB_VAL_Pos 0UL 133 #define BACKUP_CAL_CTL_CALIB_VAL_Msk 0x3FUL 134 #define BACKUP_CAL_CTL_CALIB_SIGN_Pos 6UL 135 #define BACKUP_CAL_CTL_CALIB_SIGN_Msk 0x40UL 136 #define BACKUP_CAL_CTL_CAL_COMP_PER_MIN_Pos 16UL 137 #define BACKUP_CAL_CTL_CAL_COMP_PER_MIN_Msk 0x30000UL 138 #define BACKUP_CAL_CTL_CAL_SEL_Pos 28UL 139 #define BACKUP_CAL_CTL_CAL_SEL_Msk 0x30000000UL 140 #define BACKUP_CAL_CTL_CAL_OUT_Pos 31UL 141 #define BACKUP_CAL_CTL_CAL_OUT_Msk 0x80000000UL 142 /* BACKUP.STATUS */ 143 #define BACKUP_STATUS_RTC_BUSY_Pos 0UL 144 #define BACKUP_STATUS_RTC_BUSY_Msk 0x1UL 145 #define BACKUP_STATUS_WCO_OK_Pos 2UL 146 #define BACKUP_STATUS_WCO_OK_Msk 0x4UL 147 /* BACKUP.RTC_TIME */ 148 #define BACKUP_RTC_TIME_RTC_SEC_Pos 0UL 149 #define BACKUP_RTC_TIME_RTC_SEC_Msk 0x3FUL 150 #define BACKUP_RTC_TIME_RTC_MIN_Pos 8UL 151 #define BACKUP_RTC_TIME_RTC_MIN_Msk 0x3F00UL 152 #define BACKUP_RTC_TIME_RTC_HOUR_Pos 16UL 153 #define BACKUP_RTC_TIME_RTC_HOUR_Msk 0x1F0000UL 154 #define BACKUP_RTC_TIME_CTRL_12HR_Pos 22UL 155 #define BACKUP_RTC_TIME_CTRL_12HR_Msk 0x400000UL 156 #define BACKUP_RTC_TIME_RTC_DAY_Pos 24UL 157 #define BACKUP_RTC_TIME_RTC_DAY_Msk 0x7000000UL 158 /* BACKUP.RTC_DATE */ 159 #define BACKUP_RTC_DATE_RTC_DATE_Pos 0UL 160 #define BACKUP_RTC_DATE_RTC_DATE_Msk 0x1FUL 161 #define BACKUP_RTC_DATE_RTC_MON_Pos 8UL 162 #define BACKUP_RTC_DATE_RTC_MON_Msk 0xF00UL 163 #define BACKUP_RTC_DATE_RTC_YEAR_Pos 16UL 164 #define BACKUP_RTC_DATE_RTC_YEAR_Msk 0x7F0000UL 165 /* BACKUP.ALM1_TIME */ 166 #define BACKUP_ALM1_TIME_ALM_SEC_Pos 0UL 167 #define BACKUP_ALM1_TIME_ALM_SEC_Msk 0x3FUL 168 #define BACKUP_ALM1_TIME_ALM_SEC_EN_Pos 7UL 169 #define BACKUP_ALM1_TIME_ALM_SEC_EN_Msk 0x80UL 170 #define BACKUP_ALM1_TIME_ALM_MIN_Pos 8UL 171 #define BACKUP_ALM1_TIME_ALM_MIN_Msk 0x3F00UL 172 #define BACKUP_ALM1_TIME_ALM_MIN_EN_Pos 15UL 173 #define BACKUP_ALM1_TIME_ALM_MIN_EN_Msk 0x8000UL 174 #define BACKUP_ALM1_TIME_ALM_HOUR_Pos 16UL 175 #define BACKUP_ALM1_TIME_ALM_HOUR_Msk 0x1F0000UL 176 #define BACKUP_ALM1_TIME_ALM_HOUR_EN_Pos 23UL 177 #define BACKUP_ALM1_TIME_ALM_HOUR_EN_Msk 0x800000UL 178 #define BACKUP_ALM1_TIME_ALM_DAY_Pos 24UL 179 #define BACKUP_ALM1_TIME_ALM_DAY_Msk 0x7000000UL 180 #define BACKUP_ALM1_TIME_ALM_DAY_EN_Pos 31UL 181 #define BACKUP_ALM1_TIME_ALM_DAY_EN_Msk 0x80000000UL 182 /* BACKUP.ALM1_DATE */ 183 #define BACKUP_ALM1_DATE_ALM_DATE_Pos 0UL 184 #define BACKUP_ALM1_DATE_ALM_DATE_Msk 0x1FUL 185 #define BACKUP_ALM1_DATE_ALM_DATE_EN_Pos 7UL 186 #define BACKUP_ALM1_DATE_ALM_DATE_EN_Msk 0x80UL 187 #define BACKUP_ALM1_DATE_ALM_MON_Pos 8UL 188 #define BACKUP_ALM1_DATE_ALM_MON_Msk 0xF00UL 189 #define BACKUP_ALM1_DATE_ALM_MON_EN_Pos 15UL 190 #define BACKUP_ALM1_DATE_ALM_MON_EN_Msk 0x8000UL 191 #define BACKUP_ALM1_DATE_ALM_EN_Pos 31UL 192 #define BACKUP_ALM1_DATE_ALM_EN_Msk 0x80000000UL 193 /* BACKUP.ALM2_TIME */ 194 #define BACKUP_ALM2_TIME_ALM_SEC_Pos 0UL 195 #define BACKUP_ALM2_TIME_ALM_SEC_Msk 0x3FUL 196 #define BACKUP_ALM2_TIME_ALM_SEC_EN_Pos 7UL 197 #define BACKUP_ALM2_TIME_ALM_SEC_EN_Msk 0x80UL 198 #define BACKUP_ALM2_TIME_ALM_MIN_Pos 8UL 199 #define BACKUP_ALM2_TIME_ALM_MIN_Msk 0x3F00UL 200 #define BACKUP_ALM2_TIME_ALM_MIN_EN_Pos 15UL 201 #define BACKUP_ALM2_TIME_ALM_MIN_EN_Msk 0x8000UL 202 #define BACKUP_ALM2_TIME_ALM_HOUR_Pos 16UL 203 #define BACKUP_ALM2_TIME_ALM_HOUR_Msk 0x1F0000UL 204 #define BACKUP_ALM2_TIME_ALM_HOUR_EN_Pos 23UL 205 #define BACKUP_ALM2_TIME_ALM_HOUR_EN_Msk 0x800000UL 206 #define BACKUP_ALM2_TIME_ALM_DAY_Pos 24UL 207 #define BACKUP_ALM2_TIME_ALM_DAY_Msk 0x7000000UL 208 #define BACKUP_ALM2_TIME_ALM_DAY_EN_Pos 31UL 209 #define BACKUP_ALM2_TIME_ALM_DAY_EN_Msk 0x80000000UL 210 /* BACKUP.ALM2_DATE */ 211 #define BACKUP_ALM2_DATE_ALM_DATE_Pos 0UL 212 #define BACKUP_ALM2_DATE_ALM_DATE_Msk 0x1FUL 213 #define BACKUP_ALM2_DATE_ALM_DATE_EN_Pos 7UL 214 #define BACKUP_ALM2_DATE_ALM_DATE_EN_Msk 0x80UL 215 #define BACKUP_ALM2_DATE_ALM_MON_Pos 8UL 216 #define BACKUP_ALM2_DATE_ALM_MON_Msk 0xF00UL 217 #define BACKUP_ALM2_DATE_ALM_MON_EN_Pos 15UL 218 #define BACKUP_ALM2_DATE_ALM_MON_EN_Msk 0x8000UL 219 #define BACKUP_ALM2_DATE_ALM_EN_Pos 31UL 220 #define BACKUP_ALM2_DATE_ALM_EN_Msk 0x80000000UL 221 /* BACKUP.INTR */ 222 #define BACKUP_INTR_ALARM1_Pos 0UL 223 #define BACKUP_INTR_ALARM1_Msk 0x1UL 224 #define BACKUP_INTR_ALARM2_Pos 1UL 225 #define BACKUP_INTR_ALARM2_Msk 0x2UL 226 #define BACKUP_INTR_CENTURY_Pos 2UL 227 #define BACKUP_INTR_CENTURY_Msk 0x4UL 228 /* BACKUP.INTR_SET */ 229 #define BACKUP_INTR_SET_ALARM1_Pos 0UL 230 #define BACKUP_INTR_SET_ALARM1_Msk 0x1UL 231 #define BACKUP_INTR_SET_ALARM2_Pos 1UL 232 #define BACKUP_INTR_SET_ALARM2_Msk 0x2UL 233 #define BACKUP_INTR_SET_CENTURY_Pos 2UL 234 #define BACKUP_INTR_SET_CENTURY_Msk 0x4UL 235 /* BACKUP.INTR_MASK */ 236 #define BACKUP_INTR_MASK_ALARM1_Pos 0UL 237 #define BACKUP_INTR_MASK_ALARM1_Msk 0x1UL 238 #define BACKUP_INTR_MASK_ALARM2_Pos 1UL 239 #define BACKUP_INTR_MASK_ALARM2_Msk 0x2UL 240 #define BACKUP_INTR_MASK_CENTURY_Pos 2UL 241 #define BACKUP_INTR_MASK_CENTURY_Msk 0x4UL 242 /* BACKUP.INTR_MASKED */ 243 #define BACKUP_INTR_MASKED_ALARM1_Pos 0UL 244 #define BACKUP_INTR_MASKED_ALARM1_Msk 0x1UL 245 #define BACKUP_INTR_MASKED_ALARM2_Pos 1UL 246 #define BACKUP_INTR_MASKED_ALARM2_Msk 0x2UL 247 #define BACKUP_INTR_MASKED_CENTURY_Pos 2UL 248 #define BACKUP_INTR_MASKED_CENTURY_Msk 0x4UL 249 /* BACKUP.PMIC_CTL */ 250 #define BACKUP_PMIC_CTL_UNLOCK_Pos 8UL 251 #define BACKUP_PMIC_CTL_UNLOCK_Msk 0xFF00UL 252 #define BACKUP_PMIC_CTL_POLARITY_Pos 16UL 253 #define BACKUP_PMIC_CTL_POLARITY_Msk 0x10000UL 254 #define BACKUP_PMIC_CTL_PMIC_EN_OUTEN_Pos 29UL 255 #define BACKUP_PMIC_CTL_PMIC_EN_OUTEN_Msk 0x20000000UL 256 #define BACKUP_PMIC_CTL_PMIC_ALWAYSEN_Pos 30UL 257 #define BACKUP_PMIC_CTL_PMIC_ALWAYSEN_Msk 0x40000000UL 258 #define BACKUP_PMIC_CTL_PMIC_EN_Pos 31UL 259 #define BACKUP_PMIC_CTL_PMIC_EN_Msk 0x80000000UL 260 /* BACKUP.RESET */ 261 #define BACKUP_RESET_RESET_Pos 31UL 262 #define BACKUP_RESET_RESET_Msk 0x80000000UL 263 /* BACKUP.LPECO_CTL */ 264 #define BACKUP_LPECO_CTL_LPECO_CRANGE_Pos 4UL 265 #define BACKUP_LPECO_CTL_LPECO_CRANGE_Msk 0x30UL 266 #define BACKUP_LPECO_CTL_LPECO_FRANGE_Pos 8UL 267 #define BACKUP_LPECO_CTL_LPECO_FRANGE_Msk 0x100UL 268 #define BACKUP_LPECO_CTL_LPECO_AMP_SEL_Pos 12UL 269 #define BACKUP_LPECO_CTL_LPECO_AMP_SEL_Msk 0x1000UL 270 #define BACKUP_LPECO_CTL_LPECO_DIV_ENABLE_Pos 28UL 271 #define BACKUP_LPECO_CTL_LPECO_DIV_ENABLE_Msk 0x10000000UL 272 #define BACKUP_LPECO_CTL_LPECO_AMPDET_EN_Pos 30UL 273 #define BACKUP_LPECO_CTL_LPECO_AMPDET_EN_Msk 0x40000000UL 274 #define BACKUP_LPECO_CTL_LPECO_EN_Pos 31UL 275 #define BACKUP_LPECO_CTL_LPECO_EN_Msk 0x80000000UL 276 /* BACKUP.LPECO_PRESCALE */ 277 #define BACKUP_LPECO_PRESCALE_LPECO_DIV_ENABLED_Pos 0UL 278 #define BACKUP_LPECO_PRESCALE_LPECO_DIV_ENABLED_Msk 0x1UL 279 #define BACKUP_LPECO_PRESCALE_LPECO_FRAC_DIV_Pos 8UL 280 #define BACKUP_LPECO_PRESCALE_LPECO_FRAC_DIV_Msk 0xFF00UL 281 #define BACKUP_LPECO_PRESCALE_LPECO_INT_DIV_Pos 16UL 282 #define BACKUP_LPECO_PRESCALE_LPECO_INT_DIV_Msk 0x3FF0000UL 283 /* BACKUP.LPECO_STATUS */ 284 #define BACKUP_LPECO_STATUS_LPECO_AMPDET_OK_Pos 0UL 285 #define BACKUP_LPECO_STATUS_LPECO_AMPDET_OK_Msk 0x1UL 286 #define BACKUP_LPECO_STATUS_LPECO_READY_Pos 1UL 287 #define BACKUP_LPECO_STATUS_LPECO_READY_Msk 0x2UL 288 /* BACKUP.WCO_STATUS */ 289 #define BACKUP_WCO_STATUS_WCO_OK_Pos 2UL 290 #define BACKUP_WCO_STATUS_WCO_OK_Msk 0x4UL 291 /* BACKUP.BREG_SET0 */ 292 #define BACKUP_BREG_SET0_BREG_Pos 0UL 293 #define BACKUP_BREG_SET0_BREG_Msk 0xFFFFFFFFUL 294 /* BACKUP.BREG_SET1 */ 295 #define BACKUP_BREG_SET1_BREG_Pos 0UL 296 #define BACKUP_BREG_SET1_BREG_Msk 0xFFFFFFFFUL 297 /* BACKUP.BREG_SET2 */ 298 #define BACKUP_BREG_SET2_BREG_Pos 0UL 299 #define BACKUP_BREG_SET2_BREG_Msk 0xFFFFFFFFUL 300 /* BACKUP.BREG_SET3 */ 301 #define BACKUP_BREG_SET3_BREG_Pos 0UL 302 #define BACKUP_BREG_SET3_BREG_Msk 0xFFFFFFFFUL 303 304 305 #endif /* _CYIP_BACKUP_H_ */ 306 307 308 /* [] END OF FILE */ 309