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