1 // Copyright 2017-2021 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #ifndef _SOC_PERI_BACKUP_STRUCT_H_
15 #define _SOC_PERI_BACKUP_STRUCT_H_
16 
17 
18 #include <stdint.h>
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 typedef volatile struct peri_backup_dev_s {
24     union {
25         struct {
26             uint32_t reg_peri_backup_flow_err      :    3;
27             uint32_t reg_peri_backup_addr_map_mode :    1;
28             uint32_t reg_peri_backup_burst_limit   :    5;
29             uint32_t reg_peri_backup_tout_thres    :    10;
30             uint32_t reg_peri_backup_size          :    10;
31             uint32_t reg_peri_backup_start         :    1;
32             uint32_t reg_peri_backup_to_mem        :    1;
33             uint32_t reg_peri_backup_ena           :    1;
34         };
35         uint32_t val;
36     } config;
37     uint32_t apb_addr;
38     uint32_t mem_addr;
39     uint32_t reg_map0;
40     uint32_t reg_map1;
41     uint32_t reg_map2;
42     uint32_t reg_map3;
43     union {
44         struct {
45             uint32_t reg_peri_backup_done_int_raw  :    1;
46             uint32_t reg_peri_backup_err_int_raw   :    1;
47             uint32_t reserved2                     :    30;
48         };
49         uint32_t val;
50     } int_raw;
51     union {
52         struct {
53             uint32_t reg_peri_backup_done_int_st   :    1;
54             uint32_t reg_peri_backup_err_int_st    :    1;
55             uint32_t reserved2                     :    30;
56         };
57         uint32_t val;
58     } int_st;
59     union {
60         struct {
61             uint32_t reg_peri_backup_done_int_ena  :    1;
62             uint32_t reg_peri_backup_err_int_ena   :    1;
63             uint32_t reserved2                     :    30;
64         };
65         uint32_t val;
66     } int_ena;
67     union {
68         struct {
69             uint32_t reg_peri_backup_done_int_clr  :    1;
70             uint32_t reg_peri_backup_err_int_clr   :    1;
71             uint32_t reserved2                     :    30;
72         };
73         uint32_t val;
74     } int_clr;
75     uint32_t reserved_2c;
76     uint32_t reserved_30;
77     uint32_t reserved_34;
78     uint32_t reserved_38;
79     uint32_t reserved_3c;
80     uint32_t reserved_40;
81     uint32_t reserved_44;
82     uint32_t reserved_48;
83     uint32_t reserved_4c;
84     uint32_t reserved_50;
85     uint32_t reserved_54;
86     uint32_t reserved_58;
87     uint32_t reserved_5c;
88     uint32_t reserved_60;
89     uint32_t reserved_64;
90     uint32_t reserved_68;
91     uint32_t reserved_6c;
92     uint32_t reserved_70;
93     uint32_t reserved_74;
94     uint32_t reserved_78;
95     uint32_t reserved_7c;
96     uint32_t reserved_80;
97     uint32_t reserved_84;
98     uint32_t reserved_88;
99     uint32_t reserved_8c;
100     uint32_t reserved_90;
101     uint32_t reserved_94;
102     uint32_t reserved_98;
103     uint32_t reserved_9c;
104     uint32_t reserved_a0;
105     uint32_t reserved_a4;
106     uint32_t reserved_a8;
107     uint32_t reserved_ac;
108     uint32_t reserved_b0;
109     uint32_t reserved_b4;
110     uint32_t reserved_b8;
111     uint32_t reserved_bc;
112     uint32_t reserved_c0;
113     uint32_t reserved_c4;
114     uint32_t reserved_c8;
115     uint32_t reserved_cc;
116     uint32_t reserved_d0;
117     uint32_t reserved_d4;
118     uint32_t reserved_d8;
119     uint32_t reserved_dc;
120     uint32_t reserved_e0;
121     uint32_t reserved_e4;
122     uint32_t reserved_e8;
123     uint32_t reserved_ec;
124     uint32_t reserved_f0;
125     uint32_t reserved_f4;
126     uint32_t reserved_f8;
127     union {
128         struct {
129             uint32_t reg_date                      :    28;
130             uint32_t reserved28                    :    3;
131             uint32_t reg_clk_en                    :    1;  /*register file clk gating*/
132         };
133         uint32_t val;
134     } date;
135 } peri_backup_dev_t;
136 extern peri_backup_dev_t PERI_BACKUP;
137 #ifdef __cplusplus
138 }
139 #endif
140 
141 
142 
143 #endif /*_SOC_PERI_BACKUP_STRUCT_H_ */
144