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