1 //------------------------------------------------------------------------------ 2 // Copyright 2012 (c) Silicon Laboratories Inc. 3 // 4 // SPDX-License-Identifier: Zlib 5 // 6 // This siHAL software is provided 'as-is', without any express or implied 7 // warranty. In no event will the authors be held liable for any damages 8 // arising from the use of this software. 9 // 10 // Permission is granted to anyone to use this software for any purpose, 11 // including commercial applications, and to alter it and redistribute it 12 // freely, subject to the following restrictions: 13 // 14 // 1. The origin of this software must not be misrepresented; you must not 15 // claim that you wrote the original software. If you use this software 16 // in a product, an acknowledgment in the product documentation would be 17 // appreciated but is not required. 18 // 2. Altered source versions must be plainly marked as such, and must not be 19 // misrepresented as being the original software. 20 // 3. This notice may not be removed or altered from any source distribution. 21 //------------------------------------------------------------------------------ 22 // 23 // Script: 0.57 24 // Version: 1 25 26 #ifndef __SI32_EXTVREG_A_REGISTERS_H__ 27 #define __SI32_EXTVREG_A_REGISTERS_H__ 28 29 #include <stdint.h> 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 struct SI32_EXTVREG_A_CONTROL_Struct 36 { 37 union 38 { 39 struct 40 { 41 // Stand-Alone Mode Enable 42 volatile uint32_t SAEN: 1; 43 uint32_t reserved0: 23; 44 // Weak Pull Up/Down Enable 45 volatile uint32_t WPULLEN: 1; 46 // Foldback Limiting Enable 47 volatile uint32_t FBLEN: 1; 48 // NPN/PNP Type Select 49 volatile uint32_t PNSEL: 1; 50 // Foldback Sensing Pin Select 51 volatile uint32_t FBPINSEL: 1; 52 uint32_t reserved1: 3; 53 // External Regulator Enable 54 volatile uint32_t EVREGEN: 1; 55 }; 56 volatile uint32_t U32; 57 }; 58 }; 59 60 #define SI32_EXTVREG_A_CONTROL_SAEN_MASK 0x00000001 61 #define SI32_EXTVREG_A_CONTROL_SAEN_SHIFT 0 62 // Use the external regulator in normal mode. 63 #define SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_VALUE 0 64 #define SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_U32 \ 65 (SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_SAEN_SHIFT) 66 // Use the external regulator in stand-alone mode. 67 #define SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_VALUE 1 68 #define SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_U32 \ 69 (SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_SAEN_SHIFT) 70 71 #define SI32_EXTVREG_A_CONTROL_WPULLEN_MASK 0x01000000 72 #define SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT 24 73 // Disable the external regulator weak pull-up/down resistor on the EXREGBD pin and 74 // weak pull-down resistor on the EXREGOUT pin. 75 #define SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_VALUE 0 76 #define SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_U32 \ 77 (SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT) 78 // Enable the external regulator weak pull-up/down resistor on the EXREGBD pin and 79 // weak pull-down resistor on the EXREGOUT pin. 80 #define SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_VALUE 1 81 #define SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_U32 \ 82 (SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT) 83 84 #define SI32_EXTVREG_A_CONTROL_FBLEN_MASK 0x02000000 85 #define SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT 25 86 // Disable foldback limiting. 87 #define SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_VALUE 0 88 #define SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_U32 \ 89 (SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT) 90 // Enable foldback limiting. 91 #define SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_VALUE 1 92 #define SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_U32 \ 93 (SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT) 94 95 #define SI32_EXTVREG_A_CONTROL_PNSEL_MASK 0x04000000 96 #define SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT 26 97 // Select NPN Mode. 98 #define SI32_EXTVREG_A_CONTROL_PNSEL_NPN_VALUE 0 99 #define SI32_EXTVREG_A_CONTROL_PNSEL_NPN_U32 \ 100 (SI32_EXTVREG_A_CONTROL_PNSEL_NPN_VALUE << SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT) 101 // Select PNP Mode. 102 #define SI32_EXTVREG_A_CONTROL_PNSEL_PNP_VALUE 1 103 #define SI32_EXTVREG_A_CONTROL_PNSEL_PNP_U32 \ 104 (SI32_EXTVREG_A_CONTROL_PNSEL_PNP_VALUE << SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT) 105 106 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_MASK 0x08000000 107 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT 27 108 // Use the input to the EXREGSN pin for foldback limiting. 109 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_VALUE 0 110 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_U32 \ 111 (SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_VALUE << SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT) 112 // Use the input to the VREGIN pin for foldback limiting. 113 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_VALUE 1 114 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_U32 \ 115 (SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_VALUE << SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT) 116 117 #define SI32_EXTVREG_A_CONTROL_EVREGEN_MASK 0x80000000 118 #define SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT 31 119 // Disable the external regulator. 120 #define SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_VALUE 0U 121 #define SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_U32 \ 122 (SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT) 123 // Enable the external regulator. 124 #define SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_VALUE 1U 125 #define SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_U32 \ 126 (SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT) 127 128 129 130 struct SI32_EXTVREG_A_CONFIG_Struct 131 { 132 union 133 { 134 struct 135 { 136 // Minimum Current Fine Select 137 volatile uint32_t IMINFINE: 2; 138 // Minimum Current Select 139 volatile uint32_t IMIN: 3; 140 uint32_t reserved0: 3; 141 // Foldback Voltage Offset Select 142 volatile uint32_t FBVOSEL: 3; 143 uint32_t reserved1: 1; 144 // Voltage Sense Gain Multiplier 145 volatile uint32_t FBRATE: 3; 146 uint32_t reserved2: 1; 147 // Maximum Current Select 148 volatile uint32_t IMAX: 3; 149 uint32_t reserved3: 5; 150 // Regulator Output Voltage Select 151 volatile uint32_t VOUTSEL: 6; 152 uint32_t reserved4: 2; 153 }; 154 volatile uint32_t U32; 155 }; 156 }; 157 158 #define SI32_EXTVREG_A_CONFIG_IMINFINE_MASK 0x00000003 159 #define SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT 0 160 // Minimum current limit is IMIN current + 0 uA. 161 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_VALUE 0 162 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_U32 \ 163 (SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT) 164 // Minimum current limit is IMIN current + 0.25 uA. 165 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_VALUE 1 166 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_U32 \ 167 (SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT) 168 // Minimum current limit is IMIN current + 0.50 uA. 169 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_VALUE 2 170 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_U32 \ 171 (SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT) 172 // Minimum current limit is IMIN current + 0.75 uA. 173 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_VALUE 3 174 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_U32 \ 175 (SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT) 176 177 #define SI32_EXTVREG_A_CONFIG_IMIN_MASK 0x0000001C 178 #define SI32_EXTVREG_A_CONFIG_IMIN_SHIFT 2 179 // Minimum current limit is 1 uA + IMINFINE current. 180 #define SI32_EXTVREG_A_CONFIG_IMIN_1_UA_VALUE 0 181 #define SI32_EXTVREG_A_CONFIG_IMIN_1_UA_U32 \ 182 (SI32_EXTVREG_A_CONFIG_IMIN_1_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 183 // Minimum current limit is 2 uA + IMINFINE current. 184 #define SI32_EXTVREG_A_CONFIG_IMIN_2_UA_VALUE 1 185 #define SI32_EXTVREG_A_CONFIG_IMIN_2_UA_U32 \ 186 (SI32_EXTVREG_A_CONFIG_IMIN_2_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 187 // Minimum current limit is 3 uA + IMINFINE current. 188 #define SI32_EXTVREG_A_CONFIG_IMIN_3_UA_VALUE 2 189 #define SI32_EXTVREG_A_CONFIG_IMIN_3_UA_U32 \ 190 (SI32_EXTVREG_A_CONFIG_IMIN_3_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 191 // Minimum current limit is 4 uA + IMINFINE current. 192 #define SI32_EXTVREG_A_CONFIG_IMIN_4_UA_VALUE 3 193 #define SI32_EXTVREG_A_CONFIG_IMIN_4_UA_U32 \ 194 (SI32_EXTVREG_A_CONFIG_IMIN_4_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 195 // Minimum current limit is 5 uA + IMINFINE current. 196 #define SI32_EXTVREG_A_CONFIG_IMIN_5_UA_VALUE 4 197 #define SI32_EXTVREG_A_CONFIG_IMIN_5_UA_U32 \ 198 (SI32_EXTVREG_A_CONFIG_IMIN_5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 199 // Minimum current limit is 6 uA + IMINFINE current. 200 #define SI32_EXTVREG_A_CONFIG_IMIN_6_UA_VALUE 5 201 #define SI32_EXTVREG_A_CONFIG_IMIN_6_UA_U32 \ 202 (SI32_EXTVREG_A_CONFIG_IMIN_6_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 203 // Minimum current limit is 7 uA + IMINFINE current. 204 #define SI32_EXTVREG_A_CONFIG_IMIN_7_UA_VALUE 6 205 #define SI32_EXTVREG_A_CONFIG_IMIN_7_UA_U32 \ 206 (SI32_EXTVREG_A_CONFIG_IMIN_7_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 207 // Minimum current limit is 8 uA + IMINFINE current. 208 #define SI32_EXTVREG_A_CONFIG_IMIN_8_UA_VALUE 7 209 #define SI32_EXTVREG_A_CONFIG_IMIN_8_UA_U32 \ 210 (SI32_EXTVREG_A_CONFIG_IMIN_8_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT) 211 212 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_MASK 0x00000700 213 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT 8 214 // Foldback voltage offset is 0 V. 215 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_VALUE 0 216 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_U32 \ 217 (SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 218 // Foldback voltage offset is 0.5 V. 219 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_VALUE 1 220 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_U32 \ 221 (SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 222 // Foldback voltage offset is 1 V. 223 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_VALUE 2 224 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_U32 \ 225 (SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 226 // Foldback voltage offset is 1.5 V. 227 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_VALUE 3 228 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_U32 \ 229 (SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 230 // Foldback voltage offset is 2 V. 231 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_VALUE 4 232 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_U32 \ 233 (SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 234 // Foldback voltage offset is 2.5 V. 235 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_VALUE 5 236 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_U32 \ 237 (SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 238 // Foldback voltage offset is 3 V. 239 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_VALUE 6 240 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_U32 \ 241 (SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 242 // Foldback voltage offset is 3.5 V. 243 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_VALUE 7 244 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_U32 \ 245 (SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT) 246 247 #define SI32_EXTVREG_A_CONFIG_FBRATE_MASK 0x00007000 248 #define SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT 12 249 // Set the foldback rate to 4 uA/V. 250 #define SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_VALUE 0 251 #define SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_U32 \ 252 (SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 253 // Set the foldback rate to 2 uA/V. 254 #define SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_VALUE 1 255 #define SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_U32 \ 256 (SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 257 // Set the foldback rate to 1 uA/V. 258 #define SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_VALUE 2 259 #define SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_U32 \ 260 (SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 261 // Set the foldback rate to 0.5 uA/V. 262 #define SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_VALUE 3 263 #define SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_U32 \ 264 (SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 265 // Set the foldback rate to 8 uA/V. 266 #define SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_VALUE 5 267 #define SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_U32 \ 268 (SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 269 // Set the foldback rate to 16 uA/V. 270 #define SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_VALUE 6 271 #define SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_U32 \ 272 (SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 273 // Set the foldback rate to 32 uA/V. 274 #define SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_VALUE 7 275 #define SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_U32 \ 276 (SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT) 277 278 #define SI32_EXTVREG_A_CONFIG_IMAX_MASK 0x00070000 279 #define SI32_EXTVREG_A_CONFIG_IMAX_SHIFT 16 280 // Maximum current limit is 2 uA. 281 #define SI32_EXTVREG_A_CONFIG_IMAX_2_UA_VALUE 0 282 #define SI32_EXTVREG_A_CONFIG_IMAX_2_UA_U32 \ 283 (SI32_EXTVREG_A_CONFIG_IMAX_2_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 284 // Maximum current limit is 3 uA. 285 #define SI32_EXTVREG_A_CONFIG_IMAX_3_UA_VALUE 1 286 #define SI32_EXTVREG_A_CONFIG_IMAX_3_UA_U32 \ 287 (SI32_EXTVREG_A_CONFIG_IMAX_3_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 288 // Maximum current limit is 4 uA. 289 #define SI32_EXTVREG_A_CONFIG_IMAX_4_UA_VALUE 2 290 #define SI32_EXTVREG_A_CONFIG_IMAX_4_UA_U32 \ 291 (SI32_EXTVREG_A_CONFIG_IMAX_4_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 292 // Maximum current limit is 5 uA. 293 #define SI32_EXTVREG_A_CONFIG_IMAX_5_UA_VALUE 3 294 #define SI32_EXTVREG_A_CONFIG_IMAX_5_UA_U32 \ 295 (SI32_EXTVREG_A_CONFIG_IMAX_5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 296 // Maximum current limit is 6 uA. 297 #define SI32_EXTVREG_A_CONFIG_IMAX_6_UA_VALUE 4 298 #define SI32_EXTVREG_A_CONFIG_IMAX_6_UA_U32 \ 299 (SI32_EXTVREG_A_CONFIG_IMAX_6_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 300 // Maximum current limit is 7 uA. 301 #define SI32_EXTVREG_A_CONFIG_IMAX_7_UA_VALUE 5 302 #define SI32_EXTVREG_A_CONFIG_IMAX_7_UA_U32 \ 303 (SI32_EXTVREG_A_CONFIG_IMAX_7_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 304 // Maximum current limit is 8 uA. 305 #define SI32_EXTVREG_A_CONFIG_IMAX_8_UA_VALUE 6 306 #define SI32_EXTVREG_A_CONFIG_IMAX_8_UA_U32 \ 307 (SI32_EXTVREG_A_CONFIG_IMAX_8_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 308 // Maximum current limit is 9 uA. 309 #define SI32_EXTVREG_A_CONFIG_IMAX_9_UA_VALUE 7 310 #define SI32_EXTVREG_A_CONFIG_IMAX_9_UA_U32 \ 311 (SI32_EXTVREG_A_CONFIG_IMAX_9_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT) 312 313 #define SI32_EXTVREG_A_CONFIG_VOUTSEL_MASK 0x3F000000 314 #define SI32_EXTVREG_A_CONFIG_VOUTSEL_SHIFT 24 315 316 317 318 struct SI32_EXTVREG_A_STATUS_Struct 319 { 320 union 321 { 322 struct 323 { 324 // Maximum Foldback Flag 325 volatile uint32_t FBMAXF: 1; 326 uint32_t reserved0: 31; 327 }; 328 volatile uint32_t U32; 329 }; 330 }; 331 332 #define SI32_EXTVREG_A_STATUS_FBMAXF_MASK 0x00000001 333 #define SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT 0 334 // Maximum foldback has not been reached. 335 #define SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_VALUE 0 336 #define SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_U32 \ 337 (SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_VALUE << SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT) 338 // Maximum foldback has been reached. 339 #define SI32_EXTVREG_A_STATUS_FBMAXF_SET_VALUE 1 340 #define SI32_EXTVREG_A_STATUS_FBMAXF_SET_U32 \ 341 (SI32_EXTVREG_A_STATUS_FBMAXF_SET_VALUE << SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT) 342 343 344 345 struct SI32_EXTVREG_A_CSCONTROL_Struct 346 { 347 union 348 { 349 struct 350 { 351 uint32_t reserved0: 30; 352 // External Regulator Current Sense Enable 353 volatile uint32_t ISNSEN: 1; 354 // ADC Current Sense Enable 355 volatile uint32_t ADCISNSEN: 1; 356 }; 357 volatile uint32_t U32; 358 }; 359 }; 360 361 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_MASK 0x40000000 362 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT 30 363 // Disable external regulator current sensing. 364 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_VALUE 0 365 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_U32 \ 366 (SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT) 367 // Enable external regulator current sensing. 368 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_VALUE 1 369 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_U32 \ 370 (SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT) 371 372 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_MASK 0x80000000 373 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT 31 374 // Disable ADC current sensing. 375 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_VALUE 0U 376 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_U32 \ 377 (SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT) 378 // Enable ADC current sensing. 379 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_VALUE 1U 380 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_U32 \ 381 (SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT) 382 383 384 385 struct SI32_EXTVREG_A_CSCONFIG_Struct 386 { 387 union 388 { 389 struct 390 { 391 // ADC Current Sense Gain 392 volatile uint32_t ISADCGAIN: 3; 393 // External Regulator Current Sense Gain 394 volatile uint32_t ISOGAIN: 3; 395 // External Regulator Current Sense Input Select 396 volatile uint32_t ISINSEL: 2; 397 uint32_t reserved0: 24; 398 }; 399 volatile uint32_t U32; 400 }; 401 }; 402 403 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_MASK 0x00000007 404 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT 0 405 // ADC current sensing input gain is 16. 406 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_VALUE 0 407 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_U32 \ 408 (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT) 409 // ADC current sensing input gain is 8. 410 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_VALUE 1 411 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_U32 \ 412 (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT) 413 // ADC current sensing input gain is 4. 414 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_VALUE 2 415 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_U32 \ 416 (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT) 417 // ADC current sensing input gain is 2. 418 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_VALUE 3 419 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_U32 \ 420 (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT) 421 // ADC current sensing input gain is 1. 422 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_VALUE 4 423 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_U32 \ 424 (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT) 425 426 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_MASK 0x00000038 427 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT 3 428 // External regulator current sensing gain is 16. 429 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_VALUE 0 430 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_U32 \ 431 (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT) 432 // External regulator current sensing gain is 8. 433 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_VALUE 1 434 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_U32 \ 435 (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT) 436 // External regulator current sensing gain is 4. 437 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_VALUE 2 438 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_U32 \ 439 (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT) 440 // External regulator current sensing gain is 2. 441 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_VALUE 3 442 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_U32 \ 443 (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT) 444 // External regulator current sensing gain is 1. 445 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_VALUE 4 446 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_U32 \ 447 (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT) 448 449 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MASK 0x000000C0 450 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT 6 451 // Select external regulator current sensing mode 0. 452 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_VALUE 0 453 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_U32 \ 454 (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT) 455 // Select external regulator current sensing mode 1. 456 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_VALUE 1 457 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_U32 \ 458 (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT) 459 // Select external regulator current sensing mode 2. 460 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_VALUE 2 461 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_U32 \ 462 (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT) 463 464 465 466 typedef struct SI32_EXTVREG_A_Struct 467 { 468 struct SI32_EXTVREG_A_CONTROL_Struct CONTROL ; // Base Address + 0x0 469 volatile uint32_t CONTROL_SET; 470 volatile uint32_t CONTROL_CLR; 471 uint32_t reserved0; 472 struct SI32_EXTVREG_A_CONFIG_Struct CONFIG ; // Base Address + 0x10 473 uint32_t reserved1; 474 uint32_t reserved2; 475 uint32_t reserved3; 476 struct SI32_EXTVREG_A_STATUS_Struct STATUS ; // Base Address + 0x20 477 uint32_t reserved4; 478 uint32_t reserved5; 479 uint32_t reserved6; 480 uint32_t reserved7[4]; 481 struct SI32_EXTVREG_A_CSCONTROL_Struct CSCONTROL ; // Base Address + 0x40 482 volatile uint32_t CSCONTROL_SET; 483 volatile uint32_t CSCONTROL_CLR; 484 uint32_t reserved8; 485 struct SI32_EXTVREG_A_CSCONFIG_Struct CSCONFIG ; // Base Address + 0x50 486 uint32_t reserved9; 487 uint32_t reserved10; 488 uint32_t reserved11; 489 } SI32_EXTVREG_A_Type; 490 491 #ifdef __cplusplus 492 } 493 #endif 494 495 #endif // __SI32_EXTVREG_A_REGISTERS_H__ 496 497 //-eof-------------------------------------------------------------------------- 498 499