SIMO PMIC with 300mA Switching Charger
Embed:
(wiki syntax)
Show/hide line numbers
MAX77659_regs.h
00001 /******************************************************************************* 00002 * Copyright (C) 2022 Analog Devices, Inc., All rights Reserved. 00003 * 00004 * This software is protected by copyright laws of the United States and 00005 * of foreign countries. This material may also be protected by patent laws 00006 * and technology transfer regulations of the United States and of foreign 00007 * countries. This software is furnished under a license agreement and/or a 00008 * nondisclosure agreement and may only be used or reproduced in accordance 00009 * with the terms of those agreements. Dissemination of this information to 00010 * any party or parties not specified in the license agreement and/or 00011 * nondisclosure agreement is expressly prohibited. 00012 * 00013 * The above copyright notice and this permission notice shall be included 00014 * in all copies or substantial portions of the Software. 00015 * 00016 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00017 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00018 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00019 * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY CLAIM, DAMAGES 00020 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 00021 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 00022 * OTHER DEALINGS IN THE SOFTWARE. 00023 * 00024 * Except as contained in this notice, the name of Maxim Integrated 00025 * Products, Inc. shall not be used except as stated in the Maxim Integrated 00026 * Products, Inc. Branding Policy. 00027 * 00028 * The mere transfer of this software does not imply any licenses 00029 * of trade secrets, proprietary technology, copyrights, patents, 00030 * trademarks, maskwork rights, or any other form of intellectual 00031 * property whatsoever. Analog Devices, Inc. retains all 00032 * ownership rights. 00033 ******************************************************************************* 00034 */ 00035 00036 #ifndef MAX77659_REGS_H_ 00037 #define MAX77659_REGS_H_ 00038 00039 /** 00040 * @brief INT_GLBL0 Register 00041 * 00042 * Address : 0x00 00043 */ 00044 typedef union { 00045 unsigned char raw; 00046 struct { 00047 unsigned char gpi0_f : 1; /**< GPI Falling Interrupt. Bit 0. 00048 Note that "GPI" refers to the GPIO programmed to be an input. 00049 0 = No GPI falling edges have occurred since the last time this bit was read. 00050 1 = A GPI falling edge has occurred since the last time this bit was read. */ 00051 unsigned char gpi0_r : 1; /**< GPI Rising Interrupt. Bit 1. 00052 Note that "GPI" refers to the GPIO programmed to be an input. 00053 0 = No GPI rising edges have occurred since the last time this bit was read. 00054 1 = A GPI rising edge has occurred since the last time this bit was read. */ 00055 unsigned char nen_f : 1; /**< nEN Falling Interrupt.Bit 2. 00056 0 = No nEN falling edges have occurred since the last time this bit was read. 00057 1 = A nEN falling edge as occurred since the last time this bit was read. */ 00058 unsigned char nen_r : 1; /**< nEN Rising Interrupt. Bit 3. 00059 0 = No nEN rising edges have occurred since the last time this bit was read. 00060 1 = A nEN rising edge as occurred since the last time this bit was read. */ 00061 unsigned char tjal1_r : 1; /**< Thermal Alarm 1 Rising Interrupt. Bit 4. 00062 0 = The junction temperature has not risen above TJAL1 since the last time this bit was read. 00063 1 = The junction temperature has risen above TJAL1 since the last time this bit was read. */ 00064 unsigned char tjal2_r : 1; /**< Thermal Alarm 2 Rising Interrupt. Bit 5. 00065 0 = The junction temperature has not risen above TJAL2 since the last time this bit was read. 00066 1 = The junction temperature has risen above TJAL2 since the last time this bit was read. */ 00067 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 6. */ 00068 unsigned char dod_r : 1; /**< LDO Dropout Detector Rising Interrupt. Bit 7. 00069 0 = The LDO has not detected dropout since the last time this bit was read. 00070 1 = The LDO has detected dropout since the last time this bit was read. */ 00071 } bits; 00072 } reg_int_glbl0_t; 00073 00074 /** 00075 * @brief INT_GLBL1 Register 00076 * 00077 * Address : 0x04 00078 */ 00079 typedef union { 00080 unsigned char raw; 00081 struct { 00082 unsigned char gpi1_f : 1; /**< GPI Falling Interrupt. Bit 0. 00083 Note that "GPI" refers to the GPIO programmed to be an input. 00084 0 = No GPI falling edges have occurred since the last time this bit was read. 00085 1 = A GPI falling edge has occurred since the last time this bit was read. */ 00086 unsigned char gpi1_r : 1; /**< GPI Rising Interrupt. Bit 1. 00087 Note that "GPI" refers to the GPIO programmed to be an input. 00088 0 = No GPI rising edges have occurred since the last time this bit was read. 00089 1 = A GPI rising edge has occurred since the last time this bit was read. */ 00090 unsigned char rsvd1 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 3:2. */ 00091 unsigned char sbb_to : 1; /**< SBB Timeout. Bit 4. 00092 0 = NO SBB timeout occurred since the last time this bit was read 00093 1 = SBB timeout occurred since the last time this bit was read */ 00094 unsigned char ldo_f : 1; /**< LDO Fault Interrupt. Bit 5. 00095 0 = No fault has occurred on LDO since the last time this bit was read. 00096 1 = LDO has fallen out of regulation since the last time this bit was read. */ 00097 unsigned char ldo1_f : 1; /**< LDO1 Fault Interrupt. Bit 6. 00098 0 = No fault has occurred on LDO1 since the last time this bit was read. 00099 1 = LDO1 has fallen out of regulation since the last time this bit was read. */ 00100 unsigned char rsvd2 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 7:6. */ 00101 } bits; 00102 } reg_int_glbl1_t; 00103 00104 /** 00105 * @brief ERCFLAG Register 00106 * 00107 * Address : 0x05 00108 */ 00109 typedef union { 00110 unsigned char raw; 00111 struct { 00112 unsigned char tovld : 1; /**< Thermal Overload. Bit 0. 00113 0 = Thermal overload has not occurred since the last read of this register. 00114 1 = Thermal overload has occurred since the list read of this register. 00115 This indicates that the junction temperature has exceeded 165ºC. */ 00116 unsigned char sysovlo : 1; /**< SYS Domain Overvoltage Lockout. Bit 1. 00117 0 = The SYS domain overvoltage lockout has not occurred since this last read of this register. 00118 1 = The SYS domain overvoltage lockout has occurred since the last read of this register. */ 00119 unsigned char avluvlo : 1; /**< AVL Domain Undervoltage Lockout. Bit 2. 00120 0 = The AVL domain undervoltage lockout has not occurred since this last read of this register. 00121 1 = The AVL domain undervoltage lockout has occurred since the last read of this register. */ 00122 unsigned char mrst : 1; /**< Manual Reset Timer. Bit 3. 00123 0 = A Manual Reset has not occurred since this last read of this register. 00124 1 = A Manual Reset has occurred since this last read of this register. */ 00125 unsigned char sft_off_f : 1; /**< Software Off Flag. Bit 4. 00126 0 = The SFT_OFF function has not occurred since the last read of this register. 00127 1 = The SFT_OFF function has occurred since the last read of this register. */ 00128 unsigned char sft_crst_f: 1; /**< Software Cold Reset Flag. Bit 5. 00129 0 = The software cold reset has not occurred since the last read of this register. 00130 1 = The software cold reset has occurred since the last read of this register. */ 00131 unsigned char wdt_off : 1; /**< Watchdog Timer OFF Flag. Bit 6. 00132 This bit sets when the watchdog timer expires and causes a power-off. 00133 0 = Watchdog timer has not caused a power-off since the last time this bit was read. 00134 1 = Watchdog timer has expired and caused a power-off since the last time this bit was read. */ 00135 unsigned char wdt_rst : 1; /**< Watchdog Timer Reset Flag. Bit 7. 00136 This bit sets when the watchdog timer expires and causes a power-reset. 00137 0 = Watchdog timer has not caused a power-reset since the last time this bit was read. 00138 1 = Watchdog timer has expired and caused a power-reset since the last time this bit was read.*/ 00139 } bits; 00140 } reg_ercflag_t; 00141 00142 /** 00143 * @brief STAT_GLBL Register 00144 * 00145 * Address : 0x06 00146 */ 00147 typedef union { 00148 unsigned char raw; 00149 struct { 00150 unsigned char stat_irq : 1; /**< Software Version of the nIRQ MOSFET gate drive. Bit 0. 00151 0 = unmasked gate drive is logic low 00152 1 = unmasked gate drive is logic high */ 00153 unsigned char stat_en : 1; /**< Debounced Status for the nEN input. Bit 1. 00154 0 = nEN is not active (logic high) 00155 1 = nEN is active (logic low) */ 00156 unsigned char tjal1_s : 1; /**< Thermal Alarm 1 Status. Bit 2. 00157 0 = The junction temperature is less than TJAL1 00158 1 = The junction temperature is greater than TJAL1 */ 00159 unsigned char tjal2_s : 1; /**< Thermal Alarm 2 Status. Bit 3. 00160 0 = The junction temperature is less than TJAL2 00161 1 = The junction temperature is greater than TJAL2 */ 00162 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. */ 00163 unsigned char dod_s : 1; /**< LDO0 Dropout Detector Rising Status. Bit 5. 00164 0 = LDO0 is not in dropout 00165 1 = LDO0 is in dropout */ 00166 unsigned char bok : 1; /**< BOK Interrupt Status. Bit 6. 00167 0 = Main Bias is not ready. 00168 1 = Main Bias enabled and ready. */ 00169 unsigned char didm : 1; /**< Device Identification Bits for Metal Options. Bit 7. 00170 0 = MAX77659 00171 1 = Reserved */ 00172 } bits; 00173 } reg_stat_glbl_t; 00174 00175 /** 00176 * @brief INTM_GLBL1 Register 00177 * 00178 * Address : 0x08 00179 */ 00180 typedef union { 00181 unsigned char raw; 00182 struct { 00183 unsigned char gpi1_fm : 1; /**< GPI Falling Interrupt Mask. Bit 0. 00184 0 = Unmasked. If GPI_F goes from 0 to 1, then nIRQ goes low. 00185 nIRQ goes high when all interrupt bits are cleared. 00186 1 = Masked. nIRQ does not go low due to GPI_F. */ 00187 unsigned char gpi1_rm : 1; /**< GPI Rising Interrupt Mask. Bit 1. 00188 0 = Unmasked. If GPI_R goes from 0 to 1, then nIRQ goes low. 00189 nIRQ goes high when all interrupt bits are cleared. 00190 1 = Masked. nIRQ does not go low due to GPI_R. */ 00191 unsigned char rsvd1 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 3:2. */ 00192 unsigned char sbb_to_m : 1; /**< SBB Timeout Mask. Bit 4. 00193 0 = Unmasked. If SBB_TO goes from 0 to 1, then nIRQ goes low. 00194 nIRQ goes high when all interrupt bits are cleared. 00195 1 = Masked. nIRQ does not go low due to SBB_TO */ 00196 unsigned char ldo_m : 1; /**< LDO0 Fault Interrupt. Bit 5. 00197 0 = Unmasked. If LDO0_F goes from 0 to 1, then nIRQ goes low. 00198 nIRQ goes high when all interrupt bits are cleared. 00199 1 = Masked. nIRQ does not go low due to LDO0_F. */ 00200 unsigned char rsvd2 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 7:6. */ 00201 } bits; 00202 } reg_intm_glbl1_t; 00203 00204 /** 00205 * @brief INTM_GLBL0 Register 00206 * 00207 * Address : 0x09 00208 */ 00209 typedef union { 00210 unsigned char raw; 00211 struct { 00212 unsigned char gpi0_fm : 1; /**< GPI Falling Interrupt Mask. Bit 0. 00213 0 = Unmasked. If GPI_F goes from 0 to 1, then nIRQ goes low. 00214 nIRQ goes high when all interrupt bits are cleared. 00215 1 = Masked. nIRQ does not go low due to GPI_F. */ 00216 unsigned char gpi0_rm : 1; /**< GPI Rising Interrupt Mask. Bit 1. 00217 0 = Unmasked. If GPI_R goes from 0 to 1, then nIRQ goes low. 00218 nIRQ goes high when all interrupt bits are cleared. 00219 1 = Masked. nIRQ does not go low due to GPI_R. */ 00220 unsigned char nen_fm : 1; /**< nEN Falling Interrupt Mask. Bit 2. 00221 0 = Unmasked. If nEN_F goes from 0 to 1, then nIRQ goes low. 00222 nIRQ goes high when all interrupt bits are cleared. 00223 1 = Masked. nIRQ does not go low due to nEN_F. */ 00224 unsigned char nen_rm : 1; /**< nEN Rising Interrupt Mask. Bit 3. 00225 0 = Unmasked. If nEN_R goes from 0 to 1, then nIRQ goes low. 00226 nIRQ goes high when all interrupt bits are cleared. 00227 1 = Masked. nIRQ does not go low due to nEN_R. */ 00228 unsigned char tjal1_rm : 1; /**< Thermal Alarm 1 Rising Interrupt Mask. Bit 4. 00229 0 = Unmasked. If TJAL1_R goes from 0 to 1, then nIRQ goes low. 00230 nIRQ goes high when all interrupt bits are cleared. 00231 1 = Masked. nIRQ does not go low due to TJAL1_R. */ 00232 unsigned char tjal2_rm : 1; /**< Thermal Alarm 2 Rising Interrupt Mask. Bit 5. 00233 0 = Unmasked. If TJAL2_R goes from 0 to 1, then nIRQ goes low. 00234 nIRQ goes high when all interrupt bits are cleared. 00235 1 = Masked. nIRQ does not go low due to TJAL2_R. */ 00236 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 6. */ 00237 unsigned char dod_rm : 1; /**< LDO Dropout Detector Rising Interrupt Mask. Bit 7. 00238 0 = Unmasked. If DOD0_R goes from 0 to 1, then nIRQ goes low. 00239 nIRQ goes high when all interrupt bits are cleared. 00240 1 = Masked. nIRQ does not go low due to DOD0_R. */ 00241 } bits; 00242 } reg_intm_glbl0_t; 00243 00244 /** 00245 * @brief CNFG_GLBL Register 00246 * 00247 * Address : 0x10 00248 */ 00249 typedef union { 00250 unsigned char raw; 00251 struct { 00252 unsigned char sft_ctrl : 2; /**< Software Reset Functions. Bit 1:0. 00253 0b00 = No Action 00254 0b01 = Software Cold Reset (SFT_CRST). The device powers down, resets, and the powers up again. 00255 0b10 = Software Off (SFT_OFF). The device powers down, resets, and then remains off and waiting for a wake-up event. 00256 0b11 = Factory-Ship Mode Enter (FSM). */ 00257 unsigned char dben_nen : 1; /**< Debounce Timer Enable for the nEN Pin. Bit 2. 00258 0 = 500μs Debounce 00259 1 = 30ms Debounce */ 00260 unsigned char nen_mode : 1; /**< nEN Input (ON-KEY) Default Configuration Mode. Bit 3. 00261 0 = Push-Button Mode 00262 1 = Slide-Switch Mode */ 00263 unsigned char sbia_en : 1; /**< Main Bias Enable Software Request. Bit 4. 00264 0 = Main Bias not enabled by software. 00265 Note that the main bias may be on via the on/off controller. 00266 1 = Main Bias force enabled by software. */ 00267 unsigned char sbia_lpm : 1; /**< Main Bias Low-Power Mode Software Request. Bit 5. 00268 0 = Main Bias requested to be in Normal-Power Mode by software. 00269 1 = Main Bias request to be in Low-Power Mode by software. */ 00270 unsigned char t_mrst : 1; /**< Sets the Manual Reset Time (tMRST). Bit 6. 00271 0 = 8s 00272 1 = 3.3s */ 00273 unsigned char pu_dis : 1; /**< nEN Internal Pullup Resistor. Bit 7. 00274 0 = Strong internal nEN pullup (200kΩ) 00275 1 = Weak internal nEN pullup (10MΩ) */ 00276 } bits; 00277 } reg_cnfg_glbl_t; 00278 00279 /** 00280 * @brief CNFG_GPIO0 Register 00281 * 00282 * Address : 0x11 00283 */ 00284 typedef union { 00285 unsigned char raw; 00286 struct { 00287 unsigned char gpo_dir : 1; /**< GPIO Direction. Bit 0. 00288 0 = General purpose output (GPO) 00289 1 = General purpose input (GPI) */ 00290 unsigned char gpo_di : 1; /**< GPIO Digital Input Value. Bit 1. 00291 0 = Input logic low 00292 1 = Input logic high */ 00293 unsigned char gpo_drv : 1; /**< General Purpose Output Driver Type. Bit 2. 00294 This bit is a don't care when DIR = 1 (configured as input) When set for GPO (DIR = 0): 00295 0 = Open-Drain 00296 1 = Push-Pull */ 00297 unsigned char gpo_do : 1; /**< General Purpose Output Data Output. Bit 3. 00298 This bit is a don't care when DIR = 1 (configured as input). When set for GPO (DIR = 0): 00299 0 = GPIO is output is logic low 00300 1 = GPIO is output logic high when set as push-pull output (DRV = 1). */ 00301 unsigned char dben_gpi : 1; /**< General Purpose Input Debounce Timer Enable. Bit 4. 00302 0 = no debounce 00303 1 = 30ms debounce */ 00304 unsigned char alt_gpio : 1; /**< Alternate Mode Enable for GPIO0. Bit 5. 00305 0 = Standard GPIO. 00306 1 = Active-high input, enable control for low-power mode. */ 00307 unsigned char : 1; /**< Bit 6. */ 00308 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care. */ 00309 } bits; 00310 } reg_cnfg_gpio0_t; 00311 00312 /** 00313 * @brief CNFG_GPIO1 Register 00314 * 00315 * Address : 0x12 00316 */ 00317 typedef union { 00318 unsigned char raw; 00319 struct { 00320 unsigned char gpo_dir : 1; /**< GPIO Direction. Bit 0. 00321 0 = General purpose output (GPO) 00322 1 = General purpose input (GPI) */ 00323 unsigned char gpo_di : 1; /**< GPIO Digital Input Value. Bit 1. 00324 0 = Input logic low 00325 1 = Input logic high */ 00326 unsigned char gpo_drv : 1; /**< General Purpose Output Driver Type. Bit 2. 00327 This bit is a don't care when DIR = 1 (configured as input) When set for GPO (DIR = 0): 00328 0 = Open-Drain 00329 1 = Push-Pull */ 00330 unsigned char gpo_do : 1; /**< General Purpose Output Data Output. Bit 3. 00331 This bit is a don't care when DIR = 1 (configured as input). When set for GPO (DIR = 0): 00332 0 = GPIO is output is logic low 00333 1 = GPIO is output logic high when set as push-pull output (DRV = 1). */ 00334 unsigned char dben_gpi : 1; /**< General Purpose Input Debounce Timer Enable. Bit 4. 00335 0 = no debounce 00336 1 = 30ms debounce */ 00337 unsigned char alt_gpio : 1; /**< Alternate Mode Enable for GPIO1. Bit 5. 00338 0 = Standard GPIO. 00339 1 = Active-high input, enable control for the DVS feature for SBB0. */ 00340 unsigned char rsvd : 2; /**< Reserved. Bit 7:6. Unutilized bit. Write to 0. Reads are don't care. */ 00341 } bits; 00342 } reg_cnfg_gpio1_t; 00343 00344 /** 00345 * @brief CID Register 00346 * 00347 * Address : 0x14 00348 */ 00349 typedef union { 00350 unsigned char raw; 00351 struct { 00352 unsigned char cid_3_0 : 4; /**< Bits 0 to 3 of the Chip Identification Code. Bit 3:0. 00353 The Chip Identification Code refers to a set of reset values in the register map, or the "OTP configuration.". */ 00354 unsigned char : 3; /**< Bit 6:4. */ 00355 unsigned char cid_7 : 1; /**< Bit 4 of the Chip Identification Code. Bit 7. 00356 The Chip Identification Code refers to a set of reset values in the register map, or the "OTP configuration.". */ 00357 } bits; 00358 } reg_cid_t; 00359 00360 /** 00361 * @brief CNFG_WDT Register 00362 * 00363 * Address : 0x17 00364 */ 00365 typedef union { 00366 unsigned char raw; 00367 struct { 00368 unsigned char wdt_lock : 1; /**< Factory-Set Safety Bit for the Watchdog Timer. Bit 0. 00369 0 = Watchdog timer can be enabled and disabled with WDT_EN. 00370 1 = Watchdog timer can not be disabled with WDT_EN. 00371 However, WDT_EN can still be used to enable the watchdog timer. */ 00372 unsigned char wdt_en : 1; /**< Watchdog Timer Enable. Bit 1. 00373 0 = Watchdog timer is not enabled. 00374 1 = Watchdog timer is enabled. The timer will expire if not reset by setting WDT_CLR. */ 00375 unsigned char wdt_clr : 1; /**< Watchdog Timer Clear Control. Bit 2. 00376 0 = Watchdog timer period is not reset. 00377 1 = Watchdog timer is reset back to tWD. */ 00378 unsigned char wdt_mode : 1; /**< Watchdog Timer Expired Action. Bit 3. 00379 0 = Watchdog timer expire causes power-off. 00380 1 = Watchdog timer expire causes power-reset. */ 00381 unsigned char wdt_per : 2; /**< Watchdog Timer Period. Bit 5:4. 00382 0b00 = 16 seconds 0b01 = 32 seconds 00383 0b10 = 64 seconds 0b11 = 128 seconds. */ 00384 unsigned char rsvd : 2; /**< Reserved. Bit 7:6. 00385 Unutilized bit. Write to 0. Reads are don't care. */ 00386 } bits; 00387 } reg_cnfg_wdt_t; 00388 00389 /** 00390 * @brief INT_CHG Register 00391 * 00392 * Address : 0x01 00393 */ 00394 typedef union { 00395 unsigned char raw; 00396 struct { 00397 unsigned char thm_i : 1; /**< Thermistor related interrupt. Bit 0. 00398 0 = The bits in THM_DTLS[2:0] have not changed since the last time this bit was read 00399 1 = The bits in THM_DTLS[2:0] have changed since the last time this bit was read */ 00400 unsigned char chg_i : 1; /**< Charger related interrupt. Bit 1. 00401 0 = The bits in CHG_DTLS[3:0] have not changed since the last time this bit was read 00402 1 = The bits in CHG_DTLS[3:0] have changed since the last time this bit was read */ 00403 unsigned char chgin_i : 1; /**< CHGIN related interrupt. Bit 2. 00404 0 = The bits in CHGIN_DTLS[1:0] have not changed since the last time this bit was read 00405 1 = The bits in CHGIN_DTLS[1:0] have changed since the last time this bit was read */ 00406 unsigned char tj_reg_i : 1; /**< Die junction temperature regulation interrupt. Bit 3. 00407 0 = The die temperature has not exceeded TJ-REG since the last time this bit was read 00408 1 = The die temperature has exceeded TJ-REG since the last time this bit was read */ 00409 unsigned char sys_ctrl_i : 1; /**< Minimum System Voltage Regulation-loop related interrupt. Bit 4. 00410 0 = The minimum system voltage regulation loop has not engaged since the last time this bit was read 00411 1 = The minimum system voltage regulation loop has engaged since the last time this bit was read */ 00412 unsigned char rsvd : 1; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */ 00413 } bits; 00414 } reg_int_chg_t; 00415 00416 /** 00417 * @brief STAT_CHG_A 00418 * 00419 * Address : 0x02 00420 */ 00421 typedef union { 00422 unsigned char raw; 00423 struct 00424 { 00425 unsigned char thm_dtls : 3; /**< Battery Temperature Details. Bit 2:0. 00426 0b000 = Thermistor is disabled (THM_EN = 0) 00427 0b001 = Battery is cold as programmed by THM_COLD[1:0] If thermistor and charger are enabled while the battery is cold, a battery temperature fault will occur. 00428 0b010 = Battery is cool as programmed by THM_COOL[1:0] 00429 0b011 = Battery is warm as programmed by THM_WARM[1:0] 00430 0b100 = Battery is hot as programmed by THM_HOT[1:0]. If thermistor and charger are enabled while the battery is hot, a battery temperature fault will occur. 00431 0b101 = Battery is in the normal temperature region 00432 0b110 - 0b111 = reserved */ 00433 unsigned char tj_reg_stat : 1; /**< Maximum Junction Temperature Regulation Loop Status. Bit 3. 00434 0 = The maximum junction temperature regulation loop is not engaged 00435 1 = The maximum junction temperature regulation loop has engaged to regulate the junction temperature to less than TJ-REG */ 00436 unsigned char vsys_min_stat : 1; /**< Minimum System Voltage Regulation Loop Status. Bit 4. 00437 0 = The minimum system voltage regulation loop is not enganged 00438 1 = The minimum system voltage regulation loop is engaged to regulate VSYS ≥ VSYS-MIN */ 00439 unsigned char rsvd : 3; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */ 00440 } bits; 00441 } reg_stat_chg_a_t; 00442 00443 /** 00444 * @brief STAT_CHG_B 00445 * 00446 * Address : 0x03 00447 */ 00448 typedef union { 00449 unsigned char raw; 00450 struct 00451 { 00452 unsigned char time_sus : 1; /**< Time Suspend Indicator. Bit 0. 00453 0 = The charger's timers are either not active, or not suspended 00454 1 = The charger's active timer is suspended due to one of three reasons: 00455 charge current dropped below 20% of IFAST-CHG while the charger state machine is in FAST CHARGE CC mode, 00456 the charger is in SUPPLEMENT mode, or the charger state machine is in BATTERY TEMPERATURE FAULT mode. */ 00457 unsigned char chg : 1; /**< Quick Charger Status. Bit 1. 00458 0 = Charging is not happening 00459 1 = Charging is happening */ 00460 unsigned char chgin_dtls : 2; /**< CHGIN Status Detail. Bit 3:2. 00461 0b00 = The CHGIN input voltage is below the UVLO threshold (VCHGIN < VUVLO) 00462 0b01 = The CHGIN input voltage is above the OVP threshold (VCHGIN > VOVP) 00463 0b10 = The CHGIN input is being debounced (no power accepted from CHGIN during debounce) 00464 0b11 = The CHGIN input is okay and debounced */ 00465 unsigned char chg_dtls : 4; /**< Charger Details. Bit 7:4. 00466 0b0000 = Off 00467 0b0001 = Prequalification mode 00468 0b0010 = Fast-charge constant-current (CC) mode 00469 0b0011 = JEITA modified fast-charge constant-current mode 00470 0b0100 = Fast-charge constant-voltage (CV) mode 00471 0b0101 = JEITA modified fast-charge constant-voltage mode 00472 0b0110 = Top-off mode 00473 0b0111 = JEITA modified top-off mode 00474 0b1000 = Done 00475 0b1001 = JEITA modified done (done was entered through the JEITA-modified fast-charge states) 00476 0b1010 = Prequalification timer fault 00477 0b1011 = Fast-charge timer fault 00478 0b1100 = Battery temperature fault 00479 0b1101 - 0b1111 = reserved */ 00480 } bits; 00481 } reg_stat_chg_b_t; 00482 00483 /** 00484 * @brief INT_M_CHG Register 00485 * 00486 * Address : 0x07 00487 */ 00488 typedef union { 00489 unsigned char raw; 00490 struct { 00491 unsigned char thm_m : 1; /**< Setting this bit prevents the THM_I bit from causing hardware IRQs. Bit 0. 00492 0 = THM_I is not masked 00493 1 = THM_I is masked */ 00494 unsigned char chg_m : 1; /**< Setting this bit prevents the CHG_I bit from causing hardware IRQs. Bit 1. 00495 0 = CHG_I is not masked 00496 1 = CHG_I is masked */ 00497 unsigned char chgin_m : 1; /**< Setting this bit prevents the CHGIN_I bit from causing hardware IRQs. Bit 2. 00498 0 = CHGIN_I is not masked 00499 1 = CHGIN_I is masked */ 00500 unsigned char tj_reg_m : 1; /**< Setting this bit prevents the TJREG_I bit from causing hardware IRQs. Bit 3. 00501 0 = TJREG_I is not masked 00502 1 = TJREG_I is masked */ 00503 unsigned char sys_ctrl_m : 1; /**< Setting this bit prevents the SYS_CTRL_I bit from causing hardware IRQs. Bit 4. 00504 0 = SYS_CTRL_I is not masked 00505 1 = SYS_CTRL_I is masked */ 00506 unsigned char rsvd : 3; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */ 00507 } bits; 00508 } reg_int_m_chg_t; 00509 00510 /** 00511 * @brief CNFG_CHG_A 00512 * 00513 * Address : 0x20 00514 */ 00515 typedef union { 00516 unsigned char raw; 00517 struct 00518 { 00519 unsigned char thm_cold : 2; /**< Sets the VCOLD JEITA Temperature Threshold. Bit 1:0. 00520 0b00 = VCOLD = 1.024V (-10ºC for β = 3380K) 00521 0b01 = VCOLD = 0.976V (-5ºC for β = 3380K) 00522 0b10 = VCOLD = 0.923V (0ºC for β = 3380K) 00523 0b11 = VCOLD = 0.867V (5ºC for β = 3380K) */ 00524 unsigned char thm_cool : 2; /**< Sets the VCOOL JEITA Temperature Threshold. Bit 3:2. 00525 0b00 = VCOOL = 0.923V (0ºC for β = 3380K) 00526 0b01 = VCOOL = 0.867V (5ºC for β = 3380K) 00527 0b10 = VCOOL = 0.807V (10ºC for β = 3380K) 00528 0b11 = VCOOL = 0.747V (15ºC for β = 3380K) */ 00529 unsigned char thm_warm : 2; /**< Sets the VWARM JEITA Temperature Threshold. Bit 5:4. 00530 0b00 = VWARM = 0.511V (35ºC for β = 3380K) 00531 0b01 = VWARM = 0.459V (40ºC for β = 3380K) 00532 0b10 = VWARM = 0.411V (45ºC for β = 3380K) 00533 0b11 = VWARM = 0.367V (50ºC for β = 3380K) */ 00534 unsigned char thm_hot : 2; /**< Sets the VHOT JEITA Temperature Threshold. Bit 7:6. 00535 0b00 = VHOT = 0.411V (45ºC for β = 3380K) 00536 0b01 = VHOT = 0.367V (50ºC for β = 3380K) 00537 0b10 = VHOT = 0.327V (55ºC for β = 3380K) 00538 0b11 = VHOT = 0.291V (60ºC for β = 3380K) */ 00539 } bits; 00540 } reg_cnfg_chg_a_t; 00541 00542 /** 00543 * @brief CNFG_CHG_B 00544 * 00545 * Address : 0x21 00546 */ 00547 typedef union { 00548 unsigned char raw; 00549 struct 00550 { 00551 unsigned char chg_en : 1; /**< Charger Enable. Bit 0. 00552 0 = the battery charger is disabled 00553 1 = the battery charger is enabled */ 00554 unsigned char i_pq : 1; /**< Sets the prequalification charge current (IPQ) as a percentage of IFAST-CHG. Bit 1. 00555 0 = 10% 1 = 20% */ 00556 unsigned char rsvd : 6; /**< Reserved. Bit 7:2. Unutilized bit. Write to 0. Reads are don't care. */ 00557 } bits; 00558 } reg_cnfg_chg_b_t; 00559 00560 /** 00561 * @brief CNFG_CHG_C 00562 * 00563 * Address : 0x22 00564 */ 00565 typedef union { 00566 unsigned char raw; 00567 struct 00568 { 00569 unsigned char t_topoff : 3; /**< Top-off timer value (tTO). Bit 2:0. 00570 0b000 = 0 minutes 0b001 = 5 minutes 00571 0b010 = 10 minutes 0b011 = 15 minutes 00572 0b100 = 20 minutes 0b101 = 25 minutes 00573 0b110 = 30 minutes 0b111 = 35 minutes */ 00574 unsigned char i_term : 2; /**< Charger Termination Current (ITERM). Bit 4:3. 00575 00 = 5% 01 = 7.5% 00576 10 = 10% 11 = 15% */ 00577 unsigned char chg_pq : 3; /**< Battery prequalification voltage threshold (VPQ). Bit 7:5. 00578 0b000 = 2.3V 0b001 = 2.4V 00579 0b010 = 2.5V 0b011 = 2.6V 00580 0b100 = 2.7V 0b101 = 2.8V 00581 0b110 = 2.9V 0b111 = 3.0V */ 00582 } bits; 00583 } reg_cnfg_chg_c_t; 00584 00585 /** 00586 * @brief CNFG_CHG_D 00587 * 00588 * Address : 0x23 00589 */ 00590 typedef union { 00591 unsigned char raw; 00592 struct 00593 { 00594 unsigned char vsys_min : 2; /**< Minimum SYS Voltage . Bit 1:0. 00595 0x0 = 3.2V 0x1 = 3.3V 00596 0x2 = 3.4V 0x3 = 3.5V */ 00597 unsigned char rsvd : 2; /**< Reserved. Bit 3:2. Unutilized bit. Write to 0. Reads are don't care. */ 00598 unsigned char vsys_hdrm : 1; /**< SYS Headroom Voltage Regulation. Bit 4. 00599 0b0 = 0.15V 0b1 = 0.20V */ 00600 unsigned char tj_reg : 3; /**< Sets the die junction temperature regulation point, TJ-REG. Bit 7:5. 00601 0b000 = 60ºC 0b001 = 70ºC 00602 0b010 = 80ºC 0b011 = 90ºC 00603 0b100 - 0b111 = 100ºC */ 00604 } bits; 00605 } reg_cnfg_chg_d_t; 00606 00607 /** 00608 * @brief CNFG_CHG_E 00609 * 00610 * Address : 0x25 00611 */ 00612 typedef union { 00613 unsigned char raw; 00614 struct 00615 { 00616 unsigned char t_fast_chg : 2; /**< System voltage regulation (VSYS-REG). Bit 1:0. 00617 0b00 = timer disabled 0b01 = 3 hours 00618 0b10 = 5 hours 0b11 = 7 hours */ 00619 unsigned char chg_cc : 6; /**< Sets the fast-charge constant current value, IFAST-CHG. Bit 7:2. 00620 0x0 = 7.5mA 0x1 = 15.0mA 00621 0x2 = 22.5mA ... 00622 0x26 = 292.5mA 0x27 - 0x3F = 300.0mA */ 00623 } bits; 00624 } reg_cnfg_chg_e_t; 00625 00626 /** 00627 * @brief CNFG_CHG_F 00628 * 00629 * Address : 0x25 00630 */ 00631 typedef union { 00632 unsigned char raw; 00633 struct 00634 { 00635 unsigned char : 1; /**< Bit 0*/ 00636 unsigned char thm_en : 1; /**< Thermistor enable bit. Bit 1. 00637 0 = Thermistor is disabled 00638 1 = Thermistor is enabled */ 00639 unsigned char chg_cc_jeita : 6; /**< Sets IFAST-CHG-JEITA for when the battery is either cool or warm as defined 00640 by the VCOOL and VWARM temperature thresholds. Bit 7:2. 00641 0x0 = 7.5mA 0x1 = 15.0mA 00642 0x2 = 22.5mA ... 00643 0x26 = 292.5mA 0x27 - 0x3F = 300.0mA */ 00644 } bits; 00645 } reg_cnfg_chg_f_t; 00646 00647 /** 00648 * @brief CNFG_CHG_G 00649 * 00650 * Address : 0x26 00651 */ 00652 typedef union { 00653 unsigned char raw; 00654 struct 00655 { 00656 unsigned char rsvd : 1; /**< Reserved. Bit 0. Unutilized bit. Write to 0. Reads are don't care.*/ 00657 unsigned char usbs : 1; /**< Setting this bit places CHGIN in USB suspend mode. Bit 1. 00658 0 = CHGIN is not suspended and may draw current from an adapter source 00659 1 = CHGIN is suspended and may draw no current from an adapter source */ 00660 unsigned char chg_cv : 6; /**< Sets fast-charge battery regulation voltage, VFAST-CHG. Bit 7:2. 00661 0x0 = 3.600V 0x1 = 3.625V 00662 0x2 = 3.650V ... 00663 0x27 = 4.575V 0x28 - 0x3F = 4.600V */ 00664 } bits; 00665 } reg_cnfg_chg_g_t; 00666 00667 /** 00668 * @brief CNFG_CHG_H 00669 * 00670 * Address : 0x27 00671 */ 00672 typedef union { 00673 unsigned char raw; 00674 struct 00675 { 00676 unsigned char rsvd : 2; /**< Reserved. Bit 1:0. Unutilized bit. Write to 0. Reads are don't care.*/ 00677 unsigned char chg_cv_jeita : 6; /**< Sets fast-charge battery regulation voltage, VFAST-CHG. Bit 7:2. 00678 0x0 = 3.600V 0x1 = 3.625V 00679 0x2 = 3.650V ... 00680 0x27 = 4.575V 0x28 - 0x3F = 4.600V */ 00681 } bits; 00682 } reg_cnfg_chg_h_t; 00683 00684 /** 00685 * @brief CNFG_CHG_I 00686 * 00687 * Address : 0x28 00688 */ 00689 typedef union { 00690 unsigned char raw; 00691 struct 00692 { 00693 unsigned char mux_sel : 4; /**< Selects the analog channel to connect to AMUX. Bit 3:0. 00694 0b0000 = Multiplexer is disabled and AMUX is high-impedance. 00695 0b0001 = CHGIN voltage monitor. 00696 0b0010 = CHGIN current monitor. 00697 0b0011 = BATT voltage monitor. 00698 0b0100 = BATT charge current monitor. Valid only while battery charging is happening (CHG = 1). 00699 0b0101 = BATT discharge current monitor normal measurement. 00700 0b0110 = BATT discharge current monitor nulling measurement. 00701 0b0111 = THM voltage monitor 0b1000 = TBIAS voltage monitor 00702 0b1001 = AGND voltage monitor (through 100Ω pull-down resistor) 00703 0b1010 - 0b1111 = SYS voltage monitor */ 00704 unsigned char imon_dischg_scale : 4; /**< Selects the battery discharge current full-scale current value. Bit 7:4. 00705 0x0 = 8.2mA 0x1 = 40.5mA 0x2 = 72.3mA 00706 0x3 = 103.4mA 0x4 = 134.1mA 00707 0x5 = 164.1mA 0x6 = 193.7mA 00708 0x7 = 222.7mA 0x8 = 251.2mA 00709 0x9 = 279.3mA 0xA - 0xF = 300.0mA */ 00710 } bits; 00711 } reg_cnfg_chg_i_t; 00712 00713 /** 00714 * @brief CNFG_SBB0_A 00715 * 00716 * Address : 0x29 00717 */ 00718 typedef union { 00719 unsigned char raw; 00720 struct 00721 { 00722 unsigned char tv_sbb0 : 7; /**< SIMO Buck-Boost Channel 0 Target Output Voltage. Bit 6:0. 00723 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V 00724 0x03 = 0.575V 0x04 = 0.600V 00725 ... 00726 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V 00727 ... 00728 0x7B = 5.450V 0x7C = 5.500V 00729 0x7D to 0x7F = Reserved */ 00730 unsigned char : 1; /**< Bit 7. */ 00731 } bits; 00732 } reg_cnfg_sbb0_a_t; 00733 00734 /** 00735 * @brief CNFG_SBB0_B 00736 * 00737 * Address : 0x2A 00738 */ 00739 typedef union { 00740 unsigned char raw; 00741 struct 00742 { 00743 unsigned char en_sbb0 : 3; /**< Enable Control for SIMO Buck-Boost Channel 0, 00744 selecting either an FPS slot the channel powers-up and powers-down in 00745 or whether the channel is forced on or off. Bit 2:0. 00746 0b000 = FPS slot 0 0b001 = FPS slot 1 00747 0b010 = FPS slot 2 0b011 = FPS slot 3 00748 0b100 = Off irrespective of FPS 00749 0b101 = same as 0b100 0b110 = On irrespective of FPS 00750 0b111 = same as 0b110 */ 00751 unsigned char ade_sbb0 : 1; /**< SIMO Buck-Boost Channel 0 Active-Discharge Enable. Bit 3. 00752 0 = The active discharge function is disabled. 00753 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load. 00754 1 = The active discharge function is enabled. 00755 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */ 00756 unsigned char : 2; /**< Bit 5:4*/ 00757 unsigned char op_mode : 1; /**< Operation mode of SBB0. Bit 6. 00758 0 = Buck-Boost Mode 00759 1 = Buck Mode*/ 00760 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/ 00761 } bits; 00762 } reg_cnfg_sbb0_b_t; 00763 00764 /** 00765 * @brief CNFG_SBB1_A 00766 * 00767 * Address : 0x2B 00768 */ 00769 typedef union { 00770 unsigned char raw; 00771 struct 00772 { 00773 unsigned char tv_sbb1 : 7; /**< SIMO Buck-Boost Channel 1 Target Output Voltage. Bit 6:0. 00774 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V 00775 0x03 = 0.575V 0x04 = 0.600V 00776 ... 00777 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V 00778 ... 00779 0x7B = 5.450V 0x7C = 5.500V 00780 0x7D to 0x7F = Reserved */ 00781 unsigned char : 1; /**< Bit 7. */ 00782 } bits; 00783 } reg_cnfg_sbb1_a_t; 00784 00785 /** 00786 * @brief CNFG_SBB1_B 00787 * 00788 * Address : 0x2C 00789 */ 00790 typedef union { 00791 unsigned char raw; 00792 struct 00793 { 00794 unsigned char en_sbb1 : 3; /**< Enable Control for SIMO Buck-Boost Channel 1, 00795 selecting either an FPS slot the channel powers-up and powers-down in 00796 or whether the channel is forced on or off. Bit 2:0. 00797 0b000 = FPS slot 0 0b001 = FPS slot 1 00798 0b010 = FPS slot 2 0b011 = FPS slot 3 00799 0b100 = Off irrespective of FPS 00800 0b101 = same as 0b100 0b110 = On irrespective of FPS 00801 0b111 = same as 0b110 */ 00802 unsigned char ade_sbb1 : 1; /**< SIMO Buck-Boost Channel 1 Active-Discharge Enable. Bit 3. 00803 0 = The active discharge function is disabled. 00804 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load. 00805 1 = The active discharge function is enabled. 00806 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */ 00807 unsigned char : 2; /**< Bit 5:4.*/ 00808 unsigned char op_mode : 1; /**< Operation mode of SBB1. Bit 6. 00809 0 = Buck-Boost Mode 00810 1 = Buck Mode*/ 00811 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/ 00812 } bits; 00813 } reg_cnfg_sbb1_b_t; 00814 00815 /** 00816 * @brief CNFG_SBB2_A 00817 * 00818 * Address : 0x2D 00819 */ 00820 typedef union { 00821 unsigned char raw; 00822 struct 00823 { 00824 unsigned char tv_sbb2 : 7; /**< SIMO Buck-Boost Channel 2 Target Output Voltage. Bit 6:0. 00825 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V 00826 0x03 = 0.575V 0x04 = 0.600V 00827 ... 00828 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V 00829 ... 00830 0x7B = 5.450V 0x7C = 5.500V 00831 0x7D to 0x7F = Reserved */ 00832 unsigned char : 1; /**< Bit 7. */ 00833 } bits; 00834 } reg_cnfg_sbb2_a_t; 00835 00836 /** 00837 * @brief CNFG_SBB2_B 00838 * 00839 * Address : 0x2E 00840 */ 00841 typedef union { 00842 unsigned char raw; 00843 struct 00844 { 00845 unsigned char en_sbb2 : 3; /**< Enable Control for SIMO Buck-Boost Channel 2, 00846 selecting either an FPS slot the channel powers-up and powers-down in 00847 or whether the channel is forced on or off. Bit 2:0. 00848 0b000 = FPS slot 0 0b001 = FPS slot 1 00849 0b010 = FPS slot 2 0b011 = FPS slot 3 00850 0b100 = Off irrespective of FPS 00851 0b101 = same as 0b100 0b110 = On irrespective of FPS 00852 0b111 = same as 0b110 */ 00853 unsigned char ade_sbb2 : 1; /**< SIMO Buck-Boost Channel 2 Active-Discharge Enable Bit 3. 00854 0 = The active discharge function is disabled. 00855 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load. 00856 1 = The active discharge function is enabled. 00857 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */ 00858 unsigned char : 2; /**< Bit 5:4. */ 00859 unsigned char op_mode : 1; /**< Operation mode of SBB2. Bit 6. 00860 0 = Buck-Boost Mode 00861 1 = Buck Mode*/ 00862 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/ 00863 } bits; 00864 } reg_cnfg_sbb2_b_t; 00865 00866 /** 00867 * @brief CNFG_SBB_TOP 00868 * 00869 * Address : 0x2F 00870 */ 00871 typedef union { 00872 unsigned char raw; 00873 struct 00874 { 00875 unsigned char drv_sbb : 2; /**< SIMO Buck-Boost (all channels) Drive Strength Trim. Bit 1:0. 00876 0b00 = fastest transition time 00877 0b01 = a little slower than 0b00 00878 0b10 = a little slower than 0b01 00879 0b11 = a little slower than 0b10 */ 00880 unsigned char : 5; /**< Bit 6:2. */ 00881 unsigned char op_mode_chg : 1; /**< Operation mode of the charging channel of SIMO. Bit 7. 00882 0 = Buck-boost mode 00883 1 = Buck mode */ 00884 } bits; 00885 } reg_cnfg_sbb_top_t; 00886 00887 /** 00888 * @brief CNFG_SBB_TOP_B 00889 * 00890 * Address : 0x30 00891 */ 00892 typedef union { 00893 unsigned char raw; 00894 struct 00895 { 00896 unsigned char ip_sbb0 : 2; /**< SIMO Buck-Boost Channel 0 Peak Current Limit. Bit 1:0. 00897 0b00 = 1.000A 00898 0b01 = 0.750A 00899 0b10 = 0.500A 00900 0b11 = 0.333A */ 00901 unsigned char ip_sbb1 : 2; /**< SIMO Buck-Boost Channel 1 Peak Current Limit. Bit 3:2. 00902 0b00 = 1.000A 00903 0b01 = 0.750A 00904 0b10 = 0.500A 00905 0b11 = 0.333A */ 00906 unsigned char ip_sbb2 : 2; /**< SIMO Buck-Boost Channel 2 Peak Current Limit. Bit 5:4. 00907 0b00 = 1.000A 00908 0b01 = 0.750A 00909 0b10 = 0.500A 00910 0b11 = 0.333A */ 00911 unsigned char ip_chg : 2; /**< SIMO Buck-Boost Charging Channel Peak Current Limit. Bit 7:6. 00912 0b00 = 2.000A 00913 0b01 = 1.500A 00914 0b10 = 1.000A 00915 0b11 = 0.500A */ 00916 } bits; 00917 } reg_cnfg_sbb_top_b_t; 00918 00919 /** 00920 * @brief CNFG_LDO0_A 00921 * 00922 * Address : 0x38 00923 */ 00924 typedef union { 00925 unsigned char raw; 00926 struct 00927 { 00928 unsigned char tv_ldo_volt : 7; /**< LDO Target Output Voltage This 7-bit configuration is a linear transfer function 00929 that starts at 0.5V and ends at 3.675V, with 25mV increments. Bit 6:0. 00930 0x00 = 0.500V 0x01 = 0.525V 00931 0x02 = 0.550V 0x03 = 0.575V 00932 0x04 = 0.600V 0x05 = 0.625V 00933 0x06 = 0.650V ... 00934 0x7D = 3.625V 0x7E = 3.650V 00935 0x7F = 3.675V */ 00936 unsigned char tv_ldo_offset : 1; /**< LDO Output Voltage. This bit applies a 1.325V offset to the output voltage of the LDO. Bit 7. 00937 0b0 = No offset 0b1 = 1.325V offset*/ 00938 } bits; 00939 } reg_cnfg_ldo0_a_t; 00940 00941 /** 00942 * @brief CNFG_LDO0_B 00943 * 00944 * Address : 0x39 00945 */ 00946 typedef union { 00947 unsigned char raw; 00948 struct 00949 { 00950 unsigned char en_ldo : 3; /**< Enable Control for LDO0, selecting either an FPS slot the channel powers-up and 00951 powers-down in or whether the channel is forced on or off. Bit 2:0. 00952 0b000 = FPS slot 0 0b001 = FPS slot 1 00953 0b010 = FPS slot 2 0b011 = FPS slot 3 00954 0b100 = Off irrespective of FPS 00955 0b101 = same as 0b100 00956 0b110 = On irrespective of FPS 00957 0b111 = same as 0b110 */ 00958 unsigned char ade_ldo : 1; /**< LDO0 Active-Discharge Enable. Bit 3. 00959 0 = The active discharge function is disabled. 00960 1 = The active discharge function is enabled. */ 00961 unsigned char ldo_md : 1; /**< Operation mode of LDO0. Bit 4. 00962 0 = Low Dropout Linear Regulator (LDO) Mode 00963 1 = Load Switch (LSW) Mode */ 00964 unsigned char rsvd : 3; /**< Bit 7:5. Reserved. Unutilized bit. Write to 0. Reads are don't care. */ 00965 } bits; 00966 } reg_cnfg_ldo0_b_t; 00967 00968 #endif /* MAX77659_REGS_H_ */
Generated on Mon Aug 22 2022 16:08:46 by
![doxygen](doxygen.png)