SIMO PMIC with 300mA Switching Charger

Committer:
Okan Sahin
Date:
Mon Aug 22 19:05:12 2022 +0300
Revision:
0:047a7089311e
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Okan Sahin 0:047a7089311e 1 /*******************************************************************************
Okan Sahin 0:047a7089311e 2 * Copyright (C) 2022 Analog Devices, Inc., All rights Reserved.
Okan Sahin 0:047a7089311e 3 *
Okan Sahin 0:047a7089311e 4 * This software is protected by copyright laws of the United States and
Okan Sahin 0:047a7089311e 5 * of foreign countries. This material may also be protected by patent laws
Okan Sahin 0:047a7089311e 6 * and technology transfer regulations of the United States and of foreign
Okan Sahin 0:047a7089311e 7 * countries. This software is furnished under a license agreement and/or a
Okan Sahin 0:047a7089311e 8 * nondisclosure agreement and may only be used or reproduced in accordance
Okan Sahin 0:047a7089311e 9 * with the terms of those agreements. Dissemination of this information to
Okan Sahin 0:047a7089311e 10 * any party or parties not specified in the license agreement and/or
Okan Sahin 0:047a7089311e 11 * nondisclosure agreement is expressly prohibited.
Okan Sahin 0:047a7089311e 12 *
Okan Sahin 0:047a7089311e 13 * The above copyright notice and this permission notice shall be included
Okan Sahin 0:047a7089311e 14 * in all copies or substantial portions of the Software.
Okan Sahin 0:047a7089311e 15 *
Okan Sahin 0:047a7089311e 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
Okan Sahin 0:047a7089311e 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Okan Sahin 0:047a7089311e 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Okan Sahin 0:047a7089311e 19 * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY CLAIM, DAMAGES
Okan Sahin 0:047a7089311e 20 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
Okan Sahin 0:047a7089311e 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
Okan Sahin 0:047a7089311e 22 * OTHER DEALINGS IN THE SOFTWARE.
Okan Sahin 0:047a7089311e 23 *
Okan Sahin 0:047a7089311e 24 * Except as contained in this notice, the name of Maxim Integrated
Okan Sahin 0:047a7089311e 25 * Products, Inc. shall not be used except as stated in the Maxim Integrated
Okan Sahin 0:047a7089311e 26 * Products, Inc. Branding Policy.
Okan Sahin 0:047a7089311e 27 *
Okan Sahin 0:047a7089311e 28 * The mere transfer of this software does not imply any licenses
Okan Sahin 0:047a7089311e 29 * of trade secrets, proprietary technology, copyrights, patents,
Okan Sahin 0:047a7089311e 30 * trademarks, maskwork rights, or any other form of intellectual
Okan Sahin 0:047a7089311e 31 * property whatsoever. Analog Devices, Inc. retains all
Okan Sahin 0:047a7089311e 32 * ownership rights.
Okan Sahin 0:047a7089311e 33 *******************************************************************************
Okan Sahin 0:047a7089311e 34 */
Okan Sahin 0:047a7089311e 35
Okan Sahin 0:047a7089311e 36 #ifndef MAX77659_REGS_H_
Okan Sahin 0:047a7089311e 37 #define MAX77659_REGS_H_
Okan Sahin 0:047a7089311e 38
Okan Sahin 0:047a7089311e 39 /**
Okan Sahin 0:047a7089311e 40 * @brief INT_GLBL0 Register
Okan Sahin 0:047a7089311e 41 *
Okan Sahin 0:047a7089311e 42 * Address : 0x00
Okan Sahin 0:047a7089311e 43 */
Okan Sahin 0:047a7089311e 44 typedef union {
Okan Sahin 0:047a7089311e 45 unsigned char raw;
Okan Sahin 0:047a7089311e 46 struct {
Okan Sahin 0:047a7089311e 47 unsigned char gpi0_f : 1; /**< GPI Falling Interrupt. Bit 0.
Okan Sahin 0:047a7089311e 48 Note that "GPI" refers to the GPIO programmed to be an input.
Okan Sahin 0:047a7089311e 49 0 = No GPI falling edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 50 1 = A GPI falling edge has occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 51 unsigned char gpi0_r : 1; /**< GPI Rising Interrupt. Bit 1.
Okan Sahin 0:047a7089311e 52 Note that "GPI" refers to the GPIO programmed to be an input.
Okan Sahin 0:047a7089311e 53 0 = No GPI rising edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 54 1 = A GPI rising edge has occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 55 unsigned char nen_f : 1; /**< nEN Falling Interrupt.Bit 2.
Okan Sahin 0:047a7089311e 56 0 = No nEN falling edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 57 1 = A nEN falling edge as occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 58 unsigned char nen_r : 1; /**< nEN Rising Interrupt. Bit 3.
Okan Sahin 0:047a7089311e 59 0 = No nEN rising edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 60 1 = A nEN rising edge as occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 61 unsigned char tjal1_r : 1; /**< Thermal Alarm 1 Rising Interrupt. Bit 4.
Okan Sahin 0:047a7089311e 62 0 = The junction temperature has not risen above TJAL1 since the last time this bit was read.
Okan Sahin 0:047a7089311e 63 1 = The junction temperature has risen above TJAL1 since the last time this bit was read. */
Okan Sahin 0:047a7089311e 64 unsigned char tjal2_r : 1; /**< Thermal Alarm 2 Rising Interrupt. Bit 5.
Okan Sahin 0:047a7089311e 65 0 = The junction temperature has not risen above TJAL2 since the last time this bit was read.
Okan Sahin 0:047a7089311e 66 1 = The junction temperature has risen above TJAL2 since the last time this bit was read. */
Okan Sahin 0:047a7089311e 67 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 6. */
Okan Sahin 0:047a7089311e 68 unsigned char dod_r : 1; /**< LDO Dropout Detector Rising Interrupt. Bit 7.
Okan Sahin 0:047a7089311e 69 0 = The LDO has not detected dropout since the last time this bit was read.
Okan Sahin 0:047a7089311e 70 1 = The LDO has detected dropout since the last time this bit was read. */
Okan Sahin 0:047a7089311e 71 } bits;
Okan Sahin 0:047a7089311e 72 } reg_int_glbl0_t;
Okan Sahin 0:047a7089311e 73
Okan Sahin 0:047a7089311e 74 /**
Okan Sahin 0:047a7089311e 75 * @brief INT_GLBL1 Register
Okan Sahin 0:047a7089311e 76 *
Okan Sahin 0:047a7089311e 77 * Address : 0x04
Okan Sahin 0:047a7089311e 78 */
Okan Sahin 0:047a7089311e 79 typedef union {
Okan Sahin 0:047a7089311e 80 unsigned char raw;
Okan Sahin 0:047a7089311e 81 struct {
Okan Sahin 0:047a7089311e 82 unsigned char gpi1_f : 1; /**< GPI Falling Interrupt. Bit 0.
Okan Sahin 0:047a7089311e 83 Note that "GPI" refers to the GPIO programmed to be an input.
Okan Sahin 0:047a7089311e 84 0 = No GPI falling edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 85 1 = A GPI falling edge has occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 86 unsigned char gpi1_r : 1; /**< GPI Rising Interrupt. Bit 1.
Okan Sahin 0:047a7089311e 87 Note that "GPI" refers to the GPIO programmed to be an input.
Okan Sahin 0:047a7089311e 88 0 = No GPI rising edges have occurred since the last time this bit was read.
Okan Sahin 0:047a7089311e 89 1 = A GPI rising edge has occurred since the last time this bit was read. */
Okan Sahin 0:047a7089311e 90 unsigned char rsvd1 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 3:2. */
Okan Sahin 0:047a7089311e 91 unsigned char sbb_to : 1; /**< SBB Timeout. Bit 4.
Okan Sahin 0:047a7089311e 92 0 = NO SBB timeout occurred since the last time this bit was read
Okan Sahin 0:047a7089311e 93 1 = SBB timeout occurred since the last time this bit was read */
Okan Sahin 0:047a7089311e 94 unsigned char ldo_f : 1; /**< LDO Fault Interrupt. Bit 5.
Okan Sahin 0:047a7089311e 95 0 = No fault has occurred on LDO since the last time this bit was read.
Okan Sahin 0:047a7089311e 96 1 = LDO has fallen out of regulation since the last time this bit was read. */
Okan Sahin 0:047a7089311e 97 unsigned char ldo1_f : 1; /**< LDO1 Fault Interrupt. Bit 6.
Okan Sahin 0:047a7089311e 98 0 = No fault has occurred on LDO1 since the last time this bit was read.
Okan Sahin 0:047a7089311e 99 1 = LDO1 has fallen out of regulation since the last time this bit was read. */
Okan Sahin 0:047a7089311e 100 unsigned char rsvd2 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 7:6. */
Okan Sahin 0:047a7089311e 101 } bits;
Okan Sahin 0:047a7089311e 102 } reg_int_glbl1_t;
Okan Sahin 0:047a7089311e 103
Okan Sahin 0:047a7089311e 104 /**
Okan Sahin 0:047a7089311e 105 * @brief ERCFLAG Register
Okan Sahin 0:047a7089311e 106 *
Okan Sahin 0:047a7089311e 107 * Address : 0x05
Okan Sahin 0:047a7089311e 108 */
Okan Sahin 0:047a7089311e 109 typedef union {
Okan Sahin 0:047a7089311e 110 unsigned char raw;
Okan Sahin 0:047a7089311e 111 struct {
Okan Sahin 0:047a7089311e 112 unsigned char tovld : 1; /**< Thermal Overload. Bit 0.
Okan Sahin 0:047a7089311e 113 0 = Thermal overload has not occurred since the last read of this register.
Okan Sahin 0:047a7089311e 114 1 = Thermal overload has occurred since the list read of this register.
Okan Sahin 0:047a7089311e 115 This indicates that the junction temperature has exceeded 165ºC. */
Okan Sahin 0:047a7089311e 116 unsigned char sysovlo : 1; /**< SYS Domain Overvoltage Lockout. Bit 1.
Okan Sahin 0:047a7089311e 117 0 = The SYS domain overvoltage lockout has not occurred since this last read of this register.
Okan Sahin 0:047a7089311e 118 1 = The SYS domain overvoltage lockout has occurred since the last read of this register. */
Okan Sahin 0:047a7089311e 119 unsigned char avluvlo : 1; /**< AVL Domain Undervoltage Lockout. Bit 2.
Okan Sahin 0:047a7089311e 120 0 = The AVL domain undervoltage lockout has not occurred since this last read of this register.
Okan Sahin 0:047a7089311e 121 1 = The AVL domain undervoltage lockout has occurred since the last read of this register. */
Okan Sahin 0:047a7089311e 122 unsigned char mrst : 1; /**< Manual Reset Timer. Bit 3.
Okan Sahin 0:047a7089311e 123 0 = A Manual Reset has not occurred since this last read of this register.
Okan Sahin 0:047a7089311e 124 1 = A Manual Reset has occurred since this last read of this register. */
Okan Sahin 0:047a7089311e 125 unsigned char sft_off_f : 1; /**< Software Off Flag. Bit 4.
Okan Sahin 0:047a7089311e 126 0 = The SFT_OFF function has not occurred since the last read of this register.
Okan Sahin 0:047a7089311e 127 1 = The SFT_OFF function has occurred since the last read of this register. */
Okan Sahin 0:047a7089311e 128 unsigned char sft_crst_f: 1; /**< Software Cold Reset Flag. Bit 5.
Okan Sahin 0:047a7089311e 129 0 = The software cold reset has not occurred since the last read of this register.
Okan Sahin 0:047a7089311e 130 1 = The software cold reset has occurred since the last read of this register. */
Okan Sahin 0:047a7089311e 131 unsigned char wdt_off : 1; /**< Watchdog Timer OFF Flag. Bit 6.
Okan Sahin 0:047a7089311e 132 This bit sets when the watchdog timer expires and causes a power-off.
Okan Sahin 0:047a7089311e 133 0 = Watchdog timer has not caused a power-off since the last time this bit was read.
Okan Sahin 0:047a7089311e 134 1 = Watchdog timer has expired and caused a power-off since the last time this bit was read. */
Okan Sahin 0:047a7089311e 135 unsigned char wdt_rst : 1; /**< Watchdog Timer Reset Flag. Bit 7.
Okan Sahin 0:047a7089311e 136 This bit sets when the watchdog timer expires and causes a power-reset.
Okan Sahin 0:047a7089311e 137 0 = Watchdog timer has not caused a power-reset since the last time this bit was read.
Okan Sahin 0:047a7089311e 138 1 = Watchdog timer has expired and caused a power-reset since the last time this bit was read.*/
Okan Sahin 0:047a7089311e 139 } bits;
Okan Sahin 0:047a7089311e 140 } reg_ercflag_t;
Okan Sahin 0:047a7089311e 141
Okan Sahin 0:047a7089311e 142 /**
Okan Sahin 0:047a7089311e 143 * @brief STAT_GLBL Register
Okan Sahin 0:047a7089311e 144 *
Okan Sahin 0:047a7089311e 145 * Address : 0x06
Okan Sahin 0:047a7089311e 146 */
Okan Sahin 0:047a7089311e 147 typedef union {
Okan Sahin 0:047a7089311e 148 unsigned char raw;
Okan Sahin 0:047a7089311e 149 struct {
Okan Sahin 0:047a7089311e 150 unsigned char stat_irq : 1; /**< Software Version of the nIRQ MOSFET gate drive. Bit 0.
Okan Sahin 0:047a7089311e 151 0 = unmasked gate drive is logic low
Okan Sahin 0:047a7089311e 152 1 = unmasked gate drive is logic high */
Okan Sahin 0:047a7089311e 153 unsigned char stat_en : 1; /**< Debounced Status for the nEN input. Bit 1.
Okan Sahin 0:047a7089311e 154 0 = nEN is not active (logic high)
Okan Sahin 0:047a7089311e 155 1 = nEN is active (logic low) */
Okan Sahin 0:047a7089311e 156 unsigned char tjal1_s : 1; /**< Thermal Alarm 1 Status. Bit 2.
Okan Sahin 0:047a7089311e 157 0 = The junction temperature is less than TJAL1
Okan Sahin 0:047a7089311e 158 1 = The junction temperature is greater than TJAL1 */
Okan Sahin 0:047a7089311e 159 unsigned char tjal2_s : 1; /**< Thermal Alarm 2 Status. Bit 3.
Okan Sahin 0:047a7089311e 160 0 = The junction temperature is less than TJAL2
Okan Sahin 0:047a7089311e 161 1 = The junction temperature is greater than TJAL2 */
Okan Sahin 0:047a7089311e 162 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 163 unsigned char dod_s : 1; /**< LDO0 Dropout Detector Rising Status. Bit 5.
Okan Sahin 0:047a7089311e 164 0 = LDO0 is not in dropout
Okan Sahin 0:047a7089311e 165 1 = LDO0 is in dropout */
Okan Sahin 0:047a7089311e 166 unsigned char bok : 1; /**< BOK Interrupt Status. Bit 6.
Okan Sahin 0:047a7089311e 167 0 = Main Bias is not ready.
Okan Sahin 0:047a7089311e 168 1 = Main Bias enabled and ready. */
Okan Sahin 0:047a7089311e 169 unsigned char didm : 1; /**< Device Identification Bits for Metal Options. Bit 7.
Okan Sahin 0:047a7089311e 170 0 = MAX77659
Okan Sahin 0:047a7089311e 171 1 = Reserved */
Okan Sahin 0:047a7089311e 172 } bits;
Okan Sahin 0:047a7089311e 173 } reg_stat_glbl_t;
Okan Sahin 0:047a7089311e 174
Okan Sahin 0:047a7089311e 175 /**
Okan Sahin 0:047a7089311e 176 * @brief INTM_GLBL1 Register
Okan Sahin 0:047a7089311e 177 *
Okan Sahin 0:047a7089311e 178 * Address : 0x08
Okan Sahin 0:047a7089311e 179 */
Okan Sahin 0:047a7089311e 180 typedef union {
Okan Sahin 0:047a7089311e 181 unsigned char raw;
Okan Sahin 0:047a7089311e 182 struct {
Okan Sahin 0:047a7089311e 183 unsigned char gpi1_fm : 1; /**< GPI Falling Interrupt Mask. Bit 0.
Okan Sahin 0:047a7089311e 184 0 = Unmasked. If GPI_F goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 185 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 186 1 = Masked. nIRQ does not go low due to GPI_F. */
Okan Sahin 0:047a7089311e 187 unsigned char gpi1_rm : 1; /**< GPI Rising Interrupt Mask. Bit 1.
Okan Sahin 0:047a7089311e 188 0 = Unmasked. If GPI_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 189 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 190 1 = Masked. nIRQ does not go low due to GPI_R. */
Okan Sahin 0:047a7089311e 191 unsigned char rsvd1 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 3:2. */
Okan Sahin 0:047a7089311e 192 unsigned char sbb_to_m : 1; /**< SBB Timeout Mask. Bit 4.
Okan Sahin 0:047a7089311e 193 0 = Unmasked. If SBB_TO goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 194 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 195 1 = Masked. nIRQ does not go low due to SBB_TO */
Okan Sahin 0:047a7089311e 196 unsigned char ldo_m : 1; /**< LDO0 Fault Interrupt. Bit 5.
Okan Sahin 0:047a7089311e 197 0 = Unmasked. If LDO0_F goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 198 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 199 1 = Masked. nIRQ does not go low due to LDO0_F. */
Okan Sahin 0:047a7089311e 200 unsigned char rsvd2 : 2; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 7:6. */
Okan Sahin 0:047a7089311e 201 } bits;
Okan Sahin 0:047a7089311e 202 } reg_intm_glbl1_t;
Okan Sahin 0:047a7089311e 203
Okan Sahin 0:047a7089311e 204 /**
Okan Sahin 0:047a7089311e 205 * @brief INTM_GLBL0 Register
Okan Sahin 0:047a7089311e 206 *
Okan Sahin 0:047a7089311e 207 * Address : 0x09
Okan Sahin 0:047a7089311e 208 */
Okan Sahin 0:047a7089311e 209 typedef union {
Okan Sahin 0:047a7089311e 210 unsigned char raw;
Okan Sahin 0:047a7089311e 211 struct {
Okan Sahin 0:047a7089311e 212 unsigned char gpi0_fm : 1; /**< GPI Falling Interrupt Mask. Bit 0.
Okan Sahin 0:047a7089311e 213 0 = Unmasked. If GPI_F goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 214 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 215 1 = Masked. nIRQ does not go low due to GPI_F. */
Okan Sahin 0:047a7089311e 216 unsigned char gpi0_rm : 1; /**< GPI Rising Interrupt Mask. Bit 1.
Okan Sahin 0:047a7089311e 217 0 = Unmasked. If GPI_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 218 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 219 1 = Masked. nIRQ does not go low due to GPI_R. */
Okan Sahin 0:047a7089311e 220 unsigned char nen_fm : 1; /**< nEN Falling Interrupt Mask. Bit 2.
Okan Sahin 0:047a7089311e 221 0 = Unmasked. If nEN_F goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 222 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 223 1 = Masked. nIRQ does not go low due to nEN_F. */
Okan Sahin 0:047a7089311e 224 unsigned char nen_rm : 1; /**< nEN Rising Interrupt Mask. Bit 3.
Okan Sahin 0:047a7089311e 225 0 = Unmasked. If nEN_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 226 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 227 1 = Masked. nIRQ does not go low due to nEN_R. */
Okan Sahin 0:047a7089311e 228 unsigned char tjal1_rm : 1; /**< Thermal Alarm 1 Rising Interrupt Mask. Bit 4.
Okan Sahin 0:047a7089311e 229 0 = Unmasked. If TJAL1_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 230 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 231 1 = Masked. nIRQ does not go low due to TJAL1_R. */
Okan Sahin 0:047a7089311e 232 unsigned char tjal2_rm : 1; /**< Thermal Alarm 2 Rising Interrupt Mask. Bit 5.
Okan Sahin 0:047a7089311e 233 0 = Unmasked. If TJAL2_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 234 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 235 1 = Masked. nIRQ does not go low due to TJAL2_R. */
Okan Sahin 0:047a7089311e 236 unsigned char rsvd : 1; /**< Reserved. Unutilized bit. Write to 0. Reads are don't care. Bit 6. */
Okan Sahin 0:047a7089311e 237 unsigned char dod_rm : 1; /**< LDO Dropout Detector Rising Interrupt Mask. Bit 7.
Okan Sahin 0:047a7089311e 238 0 = Unmasked. If DOD0_R goes from 0 to 1, then nIRQ goes low.
Okan Sahin 0:047a7089311e 239 nIRQ goes high when all interrupt bits are cleared.
Okan Sahin 0:047a7089311e 240 1 = Masked. nIRQ does not go low due to DOD0_R. */
Okan Sahin 0:047a7089311e 241 } bits;
Okan Sahin 0:047a7089311e 242 } reg_intm_glbl0_t;
Okan Sahin 0:047a7089311e 243
Okan Sahin 0:047a7089311e 244 /**
Okan Sahin 0:047a7089311e 245 * @brief CNFG_GLBL Register
Okan Sahin 0:047a7089311e 246 *
Okan Sahin 0:047a7089311e 247 * Address : 0x10
Okan Sahin 0:047a7089311e 248 */
Okan Sahin 0:047a7089311e 249 typedef union {
Okan Sahin 0:047a7089311e 250 unsigned char raw;
Okan Sahin 0:047a7089311e 251 struct {
Okan Sahin 0:047a7089311e 252 unsigned char sft_ctrl : 2; /**< Software Reset Functions. Bit 1:0.
Okan Sahin 0:047a7089311e 253 0b00 = No Action
Okan Sahin 0:047a7089311e 254 0b01 = Software Cold Reset (SFT_CRST). The device powers down, resets, and the powers up again.
Okan Sahin 0:047a7089311e 255 0b10 = Software Off (SFT_OFF). The device powers down, resets, and then remains off and waiting for a wake-up event.
Okan Sahin 0:047a7089311e 256 0b11 = Factory-Ship Mode Enter (FSM). */
Okan Sahin 0:047a7089311e 257 unsigned char dben_nen : 1; /**< Debounce Timer Enable for the nEN Pin. Bit 2.
Okan Sahin 0:047a7089311e 258 0 = 500μs Debounce
Okan Sahin 0:047a7089311e 259 1 = 30ms Debounce */
Okan Sahin 0:047a7089311e 260 unsigned char nen_mode : 1; /**< nEN Input (ON-KEY) Default Configuration Mode. Bit 3.
Okan Sahin 0:047a7089311e 261 0 = Push-Button Mode
Okan Sahin 0:047a7089311e 262 1 = Slide-Switch Mode */
Okan Sahin 0:047a7089311e 263 unsigned char sbia_en : 1; /**< Main Bias Enable Software Request. Bit 4.
Okan Sahin 0:047a7089311e 264 0 = Main Bias not enabled by software.
Okan Sahin 0:047a7089311e 265 Note that the main bias may be on via the on/off controller.
Okan Sahin 0:047a7089311e 266 1 = Main Bias force enabled by software. */
Okan Sahin 0:047a7089311e 267 unsigned char sbia_lpm : 1; /**< Main Bias Low-Power Mode Software Request. Bit 5.
Okan Sahin 0:047a7089311e 268 0 = Main Bias requested to be in Normal-Power Mode by software.
Okan Sahin 0:047a7089311e 269 1 = Main Bias request to be in Low-Power Mode by software. */
Okan Sahin 0:047a7089311e 270 unsigned char t_mrst : 1; /**< Sets the Manual Reset Time (tMRST). Bit 6.
Okan Sahin 0:047a7089311e 271 0 = 8s
Okan Sahin 0:047a7089311e 272 1 = 3.3s */
Okan Sahin 0:047a7089311e 273 unsigned char pu_dis : 1; /**< nEN Internal Pullup Resistor. Bit 7.
Okan Sahin 0:047a7089311e 274 0 = Strong internal nEN pullup (200kΩ)
Okan Sahin 0:047a7089311e 275 1 = Weak internal nEN pullup (10MΩ) */
Okan Sahin 0:047a7089311e 276 } bits;
Okan Sahin 0:047a7089311e 277 } reg_cnfg_glbl_t;
Okan Sahin 0:047a7089311e 278
Okan Sahin 0:047a7089311e 279 /**
Okan Sahin 0:047a7089311e 280 * @brief CNFG_GPIO0 Register
Okan Sahin 0:047a7089311e 281 *
Okan Sahin 0:047a7089311e 282 * Address : 0x11
Okan Sahin 0:047a7089311e 283 */
Okan Sahin 0:047a7089311e 284 typedef union {
Okan Sahin 0:047a7089311e 285 unsigned char raw;
Okan Sahin 0:047a7089311e 286 struct {
Okan Sahin 0:047a7089311e 287 unsigned char gpo_dir : 1; /**< GPIO Direction. Bit 0.
Okan Sahin 0:047a7089311e 288 0 = General purpose output (GPO)
Okan Sahin 0:047a7089311e 289 1 = General purpose input (GPI) */
Okan Sahin 0:047a7089311e 290 unsigned char gpo_di : 1; /**< GPIO Digital Input Value. Bit 1.
Okan Sahin 0:047a7089311e 291 0 = Input logic low
Okan Sahin 0:047a7089311e 292 1 = Input logic high */
Okan Sahin 0:047a7089311e 293 unsigned char gpo_drv : 1; /**< General Purpose Output Driver Type. Bit 2.
Okan Sahin 0:047a7089311e 294 This bit is a don't care when DIR = 1 (configured as input) When set for GPO (DIR = 0):
Okan Sahin 0:047a7089311e 295 0 = Open-Drain
Okan Sahin 0:047a7089311e 296 1 = Push-Pull */
Okan Sahin 0:047a7089311e 297 unsigned char gpo_do : 1; /**< General Purpose Output Data Output. Bit 3.
Okan Sahin 0:047a7089311e 298 This bit is a don't care when DIR = 1 (configured as input). When set for GPO (DIR = 0):
Okan Sahin 0:047a7089311e 299 0 = GPIO is output is logic low
Okan Sahin 0:047a7089311e 300 1 = GPIO is output logic high when set as push-pull output (DRV = 1). */
Okan Sahin 0:047a7089311e 301 unsigned char dben_gpi : 1; /**< General Purpose Input Debounce Timer Enable. Bit 4.
Okan Sahin 0:047a7089311e 302 0 = no debounce
Okan Sahin 0:047a7089311e 303 1 = 30ms debounce */
Okan Sahin 0:047a7089311e 304 unsigned char alt_gpio : 1; /**< Alternate Mode Enable for GPIO0. Bit 5.
Okan Sahin 0:047a7089311e 305 0 = Standard GPIO.
Okan Sahin 0:047a7089311e 306 1 = Active-high input, enable control for low-power mode. */
Okan Sahin 0:047a7089311e 307 unsigned char : 1; /**< Bit 6. */
Okan Sahin 0:047a7089311e 308 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 309 } bits;
Okan Sahin 0:047a7089311e 310 } reg_cnfg_gpio0_t;
Okan Sahin 0:047a7089311e 311
Okan Sahin 0:047a7089311e 312 /**
Okan Sahin 0:047a7089311e 313 * @brief CNFG_GPIO1 Register
Okan Sahin 0:047a7089311e 314 *
Okan Sahin 0:047a7089311e 315 * Address : 0x12
Okan Sahin 0:047a7089311e 316 */
Okan Sahin 0:047a7089311e 317 typedef union {
Okan Sahin 0:047a7089311e 318 unsigned char raw;
Okan Sahin 0:047a7089311e 319 struct {
Okan Sahin 0:047a7089311e 320 unsigned char gpo_dir : 1; /**< GPIO Direction. Bit 0.
Okan Sahin 0:047a7089311e 321 0 = General purpose output (GPO)
Okan Sahin 0:047a7089311e 322 1 = General purpose input (GPI) */
Okan Sahin 0:047a7089311e 323 unsigned char gpo_di : 1; /**< GPIO Digital Input Value. Bit 1.
Okan Sahin 0:047a7089311e 324 0 = Input logic low
Okan Sahin 0:047a7089311e 325 1 = Input logic high */
Okan Sahin 0:047a7089311e 326 unsigned char gpo_drv : 1; /**< General Purpose Output Driver Type. Bit 2.
Okan Sahin 0:047a7089311e 327 This bit is a don't care when DIR = 1 (configured as input) When set for GPO (DIR = 0):
Okan Sahin 0:047a7089311e 328 0 = Open-Drain
Okan Sahin 0:047a7089311e 329 1 = Push-Pull */
Okan Sahin 0:047a7089311e 330 unsigned char gpo_do : 1; /**< General Purpose Output Data Output. Bit 3.
Okan Sahin 0:047a7089311e 331 This bit is a don't care when DIR = 1 (configured as input). When set for GPO (DIR = 0):
Okan Sahin 0:047a7089311e 332 0 = GPIO is output is logic low
Okan Sahin 0:047a7089311e 333 1 = GPIO is output logic high when set as push-pull output (DRV = 1). */
Okan Sahin 0:047a7089311e 334 unsigned char dben_gpi : 1; /**< General Purpose Input Debounce Timer Enable. Bit 4.
Okan Sahin 0:047a7089311e 335 0 = no debounce
Okan Sahin 0:047a7089311e 336 1 = 30ms debounce */
Okan Sahin 0:047a7089311e 337 unsigned char alt_gpio : 1; /**< Alternate Mode Enable for GPIO1. Bit 5.
Okan Sahin 0:047a7089311e 338 0 = Standard GPIO.
Okan Sahin 0:047a7089311e 339 1 = Active-high input, enable control for the DVS feature for SBB0. */
Okan Sahin 0:047a7089311e 340 unsigned char rsvd : 2; /**< Reserved. Bit 7:6. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 341 } bits;
Okan Sahin 0:047a7089311e 342 } reg_cnfg_gpio1_t;
Okan Sahin 0:047a7089311e 343
Okan Sahin 0:047a7089311e 344 /**
Okan Sahin 0:047a7089311e 345 * @brief CID Register
Okan Sahin 0:047a7089311e 346 *
Okan Sahin 0:047a7089311e 347 * Address : 0x14
Okan Sahin 0:047a7089311e 348 */
Okan Sahin 0:047a7089311e 349 typedef union {
Okan Sahin 0:047a7089311e 350 unsigned char raw;
Okan Sahin 0:047a7089311e 351 struct {
Okan Sahin 0:047a7089311e 352 unsigned char cid_3_0 : 4; /**< Bits 0 to 3 of the Chip Identification Code. Bit 3:0.
Okan Sahin 0:047a7089311e 353 The Chip Identification Code refers to a set of reset values in the register map, or the "OTP configuration.". */
Okan Sahin 0:047a7089311e 354 unsigned char : 3; /**< Bit 6:4. */
Okan Sahin 0:047a7089311e 355 unsigned char cid_7 : 1; /**< Bit 4 of the Chip Identification Code. Bit 7.
Okan Sahin 0:047a7089311e 356 The Chip Identification Code refers to a set of reset values in the register map, or the "OTP configuration.". */
Okan Sahin 0:047a7089311e 357 } bits;
Okan Sahin 0:047a7089311e 358 } reg_cid_t;
Okan Sahin 0:047a7089311e 359
Okan Sahin 0:047a7089311e 360 /**
Okan Sahin 0:047a7089311e 361 * @brief CNFG_WDT Register
Okan Sahin 0:047a7089311e 362 *
Okan Sahin 0:047a7089311e 363 * Address : 0x17
Okan Sahin 0:047a7089311e 364 */
Okan Sahin 0:047a7089311e 365 typedef union {
Okan Sahin 0:047a7089311e 366 unsigned char raw;
Okan Sahin 0:047a7089311e 367 struct {
Okan Sahin 0:047a7089311e 368 unsigned char wdt_lock : 1; /**< Factory-Set Safety Bit for the Watchdog Timer. Bit 0.
Okan Sahin 0:047a7089311e 369 0 = Watchdog timer can be enabled and disabled with WDT_EN.
Okan Sahin 0:047a7089311e 370 1 = Watchdog timer can not be disabled with WDT_EN.
Okan Sahin 0:047a7089311e 371 However, WDT_EN can still be used to enable the watchdog timer. */
Okan Sahin 0:047a7089311e 372 unsigned char wdt_en : 1; /**< Watchdog Timer Enable. Bit 1.
Okan Sahin 0:047a7089311e 373 0 = Watchdog timer is not enabled.
Okan Sahin 0:047a7089311e 374 1 = Watchdog timer is enabled. The timer will expire if not reset by setting WDT_CLR. */
Okan Sahin 0:047a7089311e 375 unsigned char wdt_clr : 1; /**< Watchdog Timer Clear Control. Bit 2.
Okan Sahin 0:047a7089311e 376 0 = Watchdog timer period is not reset.
Okan Sahin 0:047a7089311e 377 1 = Watchdog timer is reset back to tWD. */
Okan Sahin 0:047a7089311e 378 unsigned char wdt_mode : 1; /**< Watchdog Timer Expired Action. Bit 3.
Okan Sahin 0:047a7089311e 379 0 = Watchdog timer expire causes power-off.
Okan Sahin 0:047a7089311e 380 1 = Watchdog timer expire causes power-reset. */
Okan Sahin 0:047a7089311e 381 unsigned char wdt_per : 2; /**< Watchdog Timer Period. Bit 5:4.
Okan Sahin 0:047a7089311e 382 0b00 = 16 seconds 0b01 = 32 seconds
Okan Sahin 0:047a7089311e 383 0b10 = 64 seconds 0b11 = 128 seconds. */
Okan Sahin 0:047a7089311e 384 unsigned char rsvd : 2; /**< Reserved. Bit 7:6.
Okan Sahin 0:047a7089311e 385 Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 386 } bits;
Okan Sahin 0:047a7089311e 387 } reg_cnfg_wdt_t;
Okan Sahin 0:047a7089311e 388
Okan Sahin 0:047a7089311e 389 /**
Okan Sahin 0:047a7089311e 390 * @brief INT_CHG Register
Okan Sahin 0:047a7089311e 391 *
Okan Sahin 0:047a7089311e 392 * Address : 0x01
Okan Sahin 0:047a7089311e 393 */
Okan Sahin 0:047a7089311e 394 typedef union {
Okan Sahin 0:047a7089311e 395 unsigned char raw;
Okan Sahin 0:047a7089311e 396 struct {
Okan Sahin 0:047a7089311e 397 unsigned char thm_i : 1; /**< Thermistor related interrupt. Bit 0.
Okan Sahin 0:047a7089311e 398 0 = The bits in THM_DTLS[2:0] have not changed since the last time this bit was read
Okan Sahin 0:047a7089311e 399 1 = The bits in THM_DTLS[2:0] have changed since the last time this bit was read */
Okan Sahin 0:047a7089311e 400 unsigned char chg_i : 1; /**< Charger related interrupt. Bit 1.
Okan Sahin 0:047a7089311e 401 0 = The bits in CHG_DTLS[3:0] have not changed since the last time this bit was read
Okan Sahin 0:047a7089311e 402 1 = The bits in CHG_DTLS[3:0] have changed since the last time this bit was read */
Okan Sahin 0:047a7089311e 403 unsigned char chgin_i : 1; /**< CHGIN related interrupt. Bit 2.
Okan Sahin 0:047a7089311e 404 0 = The bits in CHGIN_DTLS[1:0] have not changed since the last time this bit was read
Okan Sahin 0:047a7089311e 405 1 = The bits in CHGIN_DTLS[1:0] have changed since the last time this bit was read */
Okan Sahin 0:047a7089311e 406 unsigned char tj_reg_i : 1; /**< Die junction temperature regulation interrupt. Bit 3.
Okan Sahin 0:047a7089311e 407 0 = The die temperature has not exceeded TJ-REG since the last time this bit was read
Okan Sahin 0:047a7089311e 408 1 = The die temperature has exceeded TJ-REG since the last time this bit was read */
Okan Sahin 0:047a7089311e 409 unsigned char sys_ctrl_i : 1; /**< Minimum System Voltage Regulation-loop related interrupt. Bit 4.
Okan Sahin 0:047a7089311e 410 0 = The minimum system voltage regulation loop has not engaged since the last time this bit was read
Okan Sahin 0:047a7089311e 411 1 = The minimum system voltage regulation loop has engaged since the last time this bit was read */
Okan Sahin 0:047a7089311e 412 unsigned char rsvd : 1; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 413 } bits;
Okan Sahin 0:047a7089311e 414 } reg_int_chg_t;
Okan Sahin 0:047a7089311e 415
Okan Sahin 0:047a7089311e 416 /**
Okan Sahin 0:047a7089311e 417 * @brief STAT_CHG_A
Okan Sahin 0:047a7089311e 418 *
Okan Sahin 0:047a7089311e 419 * Address : 0x02
Okan Sahin 0:047a7089311e 420 */
Okan Sahin 0:047a7089311e 421 typedef union {
Okan Sahin 0:047a7089311e 422 unsigned char raw;
Okan Sahin 0:047a7089311e 423 struct
Okan Sahin 0:047a7089311e 424 {
Okan Sahin 0:047a7089311e 425 unsigned char thm_dtls : 3; /**< Battery Temperature Details. Bit 2:0.
Okan Sahin 0:047a7089311e 426 0b000 = Thermistor is disabled (THM_EN = 0)
Okan Sahin 0:047a7089311e 427 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.
Okan Sahin 0:047a7089311e 428 0b010 = Battery is cool as programmed by THM_COOL[1:0]
Okan Sahin 0:047a7089311e 429 0b011 = Battery is warm as programmed by THM_WARM[1:0]
Okan Sahin 0:047a7089311e 430 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.
Okan Sahin 0:047a7089311e 431 0b101 = Battery is in the normal temperature region
Okan Sahin 0:047a7089311e 432 0b110 - 0b111 = reserved */
Okan Sahin 0:047a7089311e 433 unsigned char tj_reg_stat : 1; /**< Maximum Junction Temperature Regulation Loop Status. Bit 3.
Okan Sahin 0:047a7089311e 434 0 = The maximum junction temperature regulation loop is not engaged
Okan Sahin 0:047a7089311e 435 1 = The maximum junction temperature regulation loop has engaged to regulate the junction temperature to less than TJ-REG */
Okan Sahin 0:047a7089311e 436 unsigned char vsys_min_stat : 1; /**< Minimum System Voltage Regulation Loop Status. Bit 4.
Okan Sahin 0:047a7089311e 437 0 = The minimum system voltage regulation loop is not enganged
Okan Sahin 0:047a7089311e 438 1 = The minimum system voltage regulation loop is engaged to regulate VSYS ≥ VSYS-MIN */
Okan Sahin 0:047a7089311e 439 unsigned char rsvd : 3; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 440 } bits;
Okan Sahin 0:047a7089311e 441 } reg_stat_chg_a_t;
Okan Sahin 0:047a7089311e 442
Okan Sahin 0:047a7089311e 443 /**
Okan Sahin 0:047a7089311e 444 * @brief STAT_CHG_B
Okan Sahin 0:047a7089311e 445 *
Okan Sahin 0:047a7089311e 446 * Address : 0x03
Okan Sahin 0:047a7089311e 447 */
Okan Sahin 0:047a7089311e 448 typedef union {
Okan Sahin 0:047a7089311e 449 unsigned char raw;
Okan Sahin 0:047a7089311e 450 struct
Okan Sahin 0:047a7089311e 451 {
Okan Sahin 0:047a7089311e 452 unsigned char time_sus : 1; /**< Time Suspend Indicator. Bit 0.
Okan Sahin 0:047a7089311e 453 0 = The charger's timers are either not active, or not suspended
Okan Sahin 0:047a7089311e 454 1 = The charger's active timer is suspended due to one of three reasons:
Okan Sahin 0:047a7089311e 455 charge current dropped below 20% of IFAST-CHG while the charger state machine is in FAST CHARGE CC mode,
Okan Sahin 0:047a7089311e 456 the charger is in SUPPLEMENT mode, or the charger state machine is in BATTERY TEMPERATURE FAULT mode. */
Okan Sahin 0:047a7089311e 457 unsigned char chg : 1; /**< Quick Charger Status. Bit 1.
Okan Sahin 0:047a7089311e 458 0 = Charging is not happening
Okan Sahin 0:047a7089311e 459 1 = Charging is happening */
Okan Sahin 0:047a7089311e 460 unsigned char chgin_dtls : 2; /**< CHGIN Status Detail. Bit 3:2.
Okan Sahin 0:047a7089311e 461 0b00 = The CHGIN input voltage is below the UVLO threshold (VCHGIN < VUVLO)
Okan Sahin 0:047a7089311e 462 0b01 = The CHGIN input voltage is above the OVP threshold (VCHGIN > VOVP)
Okan Sahin 0:047a7089311e 463 0b10 = The CHGIN input is being debounced (no power accepted from CHGIN during debounce)
Okan Sahin 0:047a7089311e 464 0b11 = The CHGIN input is okay and debounced */
Okan Sahin 0:047a7089311e 465 unsigned char chg_dtls : 4; /**< Charger Details. Bit 7:4.
Okan Sahin 0:047a7089311e 466 0b0000 = Off
Okan Sahin 0:047a7089311e 467 0b0001 = Prequalification mode
Okan Sahin 0:047a7089311e 468 0b0010 = Fast-charge constant-current (CC) mode
Okan Sahin 0:047a7089311e 469 0b0011 = JEITA modified fast-charge constant-current mode
Okan Sahin 0:047a7089311e 470 0b0100 = Fast-charge constant-voltage (CV) mode
Okan Sahin 0:047a7089311e 471 0b0101 = JEITA modified fast-charge constant-voltage mode
Okan Sahin 0:047a7089311e 472 0b0110 = Top-off mode
Okan Sahin 0:047a7089311e 473 0b0111 = JEITA modified top-off mode
Okan Sahin 0:047a7089311e 474 0b1000 = Done
Okan Sahin 0:047a7089311e 475 0b1001 = JEITA modified done (done was entered through the JEITA-modified fast-charge states)
Okan Sahin 0:047a7089311e 476 0b1010 = Prequalification timer fault
Okan Sahin 0:047a7089311e 477 0b1011 = Fast-charge timer fault
Okan Sahin 0:047a7089311e 478 0b1100 = Battery temperature fault
Okan Sahin 0:047a7089311e 479 0b1101 - 0b1111 = reserved */
Okan Sahin 0:047a7089311e 480 } bits;
Okan Sahin 0:047a7089311e 481 } reg_stat_chg_b_t;
Okan Sahin 0:047a7089311e 482
Okan Sahin 0:047a7089311e 483 /**
Okan Sahin 0:047a7089311e 484 * @brief INT_M_CHG Register
Okan Sahin 0:047a7089311e 485 *
Okan Sahin 0:047a7089311e 486 * Address : 0x07
Okan Sahin 0:047a7089311e 487 */
Okan Sahin 0:047a7089311e 488 typedef union {
Okan Sahin 0:047a7089311e 489 unsigned char raw;
Okan Sahin 0:047a7089311e 490 struct {
Okan Sahin 0:047a7089311e 491 unsigned char thm_m : 1; /**< Setting this bit prevents the THM_I bit from causing hardware IRQs. Bit 0.
Okan Sahin 0:047a7089311e 492 0 = THM_I is not masked
Okan Sahin 0:047a7089311e 493 1 = THM_I is masked */
Okan Sahin 0:047a7089311e 494 unsigned char chg_m : 1; /**< Setting this bit prevents the CHG_I bit from causing hardware IRQs. Bit 1.
Okan Sahin 0:047a7089311e 495 0 = CHG_I is not masked
Okan Sahin 0:047a7089311e 496 1 = CHG_I is masked */
Okan Sahin 0:047a7089311e 497 unsigned char chgin_m : 1; /**< Setting this bit prevents the CHGIN_I bit from causing hardware IRQs. Bit 2.
Okan Sahin 0:047a7089311e 498 0 = CHGIN_I is not masked
Okan Sahin 0:047a7089311e 499 1 = CHGIN_I is masked */
Okan Sahin 0:047a7089311e 500 unsigned char tj_reg_m : 1; /**< Setting this bit prevents the TJREG_I bit from causing hardware IRQs. Bit 3.
Okan Sahin 0:047a7089311e 501 0 = TJREG_I is not masked
Okan Sahin 0:047a7089311e 502 1 = TJREG_I is masked */
Okan Sahin 0:047a7089311e 503 unsigned char sys_ctrl_m : 1; /**< Setting this bit prevents the SYS_CTRL_I bit from causing hardware IRQs. Bit 4.
Okan Sahin 0:047a7089311e 504 0 = SYS_CTRL_I is not masked
Okan Sahin 0:047a7089311e 505 1 = SYS_CTRL_I is masked */
Okan Sahin 0:047a7089311e 506 unsigned char rsvd : 3; /**< Reserved. Bit 7:5. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 507 } bits;
Okan Sahin 0:047a7089311e 508 } reg_int_m_chg_t;
Okan Sahin 0:047a7089311e 509
Okan Sahin 0:047a7089311e 510 /**
Okan Sahin 0:047a7089311e 511 * @brief CNFG_CHG_A
Okan Sahin 0:047a7089311e 512 *
Okan Sahin 0:047a7089311e 513 * Address : 0x20
Okan Sahin 0:047a7089311e 514 */
Okan Sahin 0:047a7089311e 515 typedef union {
Okan Sahin 0:047a7089311e 516 unsigned char raw;
Okan Sahin 0:047a7089311e 517 struct
Okan Sahin 0:047a7089311e 518 {
Okan Sahin 0:047a7089311e 519 unsigned char thm_cold : 2; /**< Sets the VCOLD JEITA Temperature Threshold. Bit 1:0.
Okan Sahin 0:047a7089311e 520 0b00 = VCOLD = 1.024V (-10ºC for β = 3380K)
Okan Sahin 0:047a7089311e 521 0b01 = VCOLD = 0.976V (-5ºC for β = 3380K)
Okan Sahin 0:047a7089311e 522 0b10 = VCOLD = 0.923V (0ºC for β = 3380K)
Okan Sahin 0:047a7089311e 523 0b11 = VCOLD = 0.867V (5ºC for β = 3380K) */
Okan Sahin 0:047a7089311e 524 unsigned char thm_cool : 2; /**< Sets the VCOOL JEITA Temperature Threshold. Bit 3:2.
Okan Sahin 0:047a7089311e 525 0b00 = VCOOL = 0.923V (0ºC for β = 3380K)
Okan Sahin 0:047a7089311e 526 0b01 = VCOOL = 0.867V (5ºC for β = 3380K)
Okan Sahin 0:047a7089311e 527 0b10 = VCOOL = 0.807V (10ºC for β = 3380K)
Okan Sahin 0:047a7089311e 528 0b11 = VCOOL = 0.747V (15ºC for β = 3380K) */
Okan Sahin 0:047a7089311e 529 unsigned char thm_warm : 2; /**< Sets the VWARM JEITA Temperature Threshold. Bit 5:4.
Okan Sahin 0:047a7089311e 530 0b00 = VWARM = 0.511V (35ºC for β = 3380K)
Okan Sahin 0:047a7089311e 531 0b01 = VWARM = 0.459V (40ºC for β = 3380K)
Okan Sahin 0:047a7089311e 532 0b10 = VWARM = 0.411V (45ºC for β = 3380K)
Okan Sahin 0:047a7089311e 533 0b11 = VWARM = 0.367V (50ºC for β = 3380K) */
Okan Sahin 0:047a7089311e 534 unsigned char thm_hot : 2; /**< Sets the VHOT JEITA Temperature Threshold. Bit 7:6.
Okan Sahin 0:047a7089311e 535 0b00 = VHOT = 0.411V (45ºC for β = 3380K)
Okan Sahin 0:047a7089311e 536 0b01 = VHOT = 0.367V (50ºC for β = 3380K)
Okan Sahin 0:047a7089311e 537 0b10 = VHOT = 0.327V (55ºC for β = 3380K)
Okan Sahin 0:047a7089311e 538 0b11 = VHOT = 0.291V (60ºC for β = 3380K) */
Okan Sahin 0:047a7089311e 539 } bits;
Okan Sahin 0:047a7089311e 540 } reg_cnfg_chg_a_t;
Okan Sahin 0:047a7089311e 541
Okan Sahin 0:047a7089311e 542 /**
Okan Sahin 0:047a7089311e 543 * @brief CNFG_CHG_B
Okan Sahin 0:047a7089311e 544 *
Okan Sahin 0:047a7089311e 545 * Address : 0x21
Okan Sahin 0:047a7089311e 546 */
Okan Sahin 0:047a7089311e 547 typedef union {
Okan Sahin 0:047a7089311e 548 unsigned char raw;
Okan Sahin 0:047a7089311e 549 struct
Okan Sahin 0:047a7089311e 550 {
Okan Sahin 0:047a7089311e 551 unsigned char chg_en : 1; /**< Charger Enable. Bit 0.
Okan Sahin 0:047a7089311e 552 0 = the battery charger is disabled
Okan Sahin 0:047a7089311e 553 1 = the battery charger is enabled */
Okan Sahin 0:047a7089311e 554 unsigned char i_pq : 1; /**< Sets the prequalification charge current (IPQ) as a percentage of IFAST-CHG. Bit 1.
Okan Sahin 0:047a7089311e 555 0 = 10% 1 = 20% */
Okan Sahin 0:047a7089311e 556 unsigned char rsvd : 6; /**< Reserved. Bit 7:2. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 557 } bits;
Okan Sahin 0:047a7089311e 558 } reg_cnfg_chg_b_t;
Okan Sahin 0:047a7089311e 559
Okan Sahin 0:047a7089311e 560 /**
Okan Sahin 0:047a7089311e 561 * @brief CNFG_CHG_C
Okan Sahin 0:047a7089311e 562 *
Okan Sahin 0:047a7089311e 563 * Address : 0x22
Okan Sahin 0:047a7089311e 564 */
Okan Sahin 0:047a7089311e 565 typedef union {
Okan Sahin 0:047a7089311e 566 unsigned char raw;
Okan Sahin 0:047a7089311e 567 struct
Okan Sahin 0:047a7089311e 568 {
Okan Sahin 0:047a7089311e 569 unsigned char t_topoff : 3; /**< Top-off timer value (tTO). Bit 2:0.
Okan Sahin 0:047a7089311e 570 0b000 = 0 minutes 0b001 = 5 minutes
Okan Sahin 0:047a7089311e 571 0b010 = 10 minutes 0b011 = 15 minutes
Okan Sahin 0:047a7089311e 572 0b100 = 20 minutes 0b101 = 25 minutes
Okan Sahin 0:047a7089311e 573 0b110 = 30 minutes 0b111 = 35 minutes */
Okan Sahin 0:047a7089311e 574 unsigned char i_term : 2; /**< Charger Termination Current (ITERM). Bit 4:3.
Okan Sahin 0:047a7089311e 575 00 = 5% 01 = 7.5%
Okan Sahin 0:047a7089311e 576 10 = 10% 11 = 15% */
Okan Sahin 0:047a7089311e 577 unsigned char chg_pq : 3; /**< Battery prequalification voltage threshold (VPQ). Bit 7:5.
Okan Sahin 0:047a7089311e 578 0b000 = 2.3V 0b001 = 2.4V
Okan Sahin 0:047a7089311e 579 0b010 = 2.5V 0b011 = 2.6V
Okan Sahin 0:047a7089311e 580 0b100 = 2.7V 0b101 = 2.8V
Okan Sahin 0:047a7089311e 581 0b110 = 2.9V 0b111 = 3.0V */
Okan Sahin 0:047a7089311e 582 } bits;
Okan Sahin 0:047a7089311e 583 } reg_cnfg_chg_c_t;
Okan Sahin 0:047a7089311e 584
Okan Sahin 0:047a7089311e 585 /**
Okan Sahin 0:047a7089311e 586 * @brief CNFG_CHG_D
Okan Sahin 0:047a7089311e 587 *
Okan Sahin 0:047a7089311e 588 * Address : 0x23
Okan Sahin 0:047a7089311e 589 */
Okan Sahin 0:047a7089311e 590 typedef union {
Okan Sahin 0:047a7089311e 591 unsigned char raw;
Okan Sahin 0:047a7089311e 592 struct
Okan Sahin 0:047a7089311e 593 {
Okan Sahin 0:047a7089311e 594 unsigned char vsys_min : 2; /**< Minimum SYS Voltage . Bit 1:0.
Okan Sahin 0:047a7089311e 595 0x0 = 3.2V 0x1 = 3.3V
Okan Sahin 0:047a7089311e 596 0x2 = 3.4V 0x3 = 3.5V */
Okan Sahin 0:047a7089311e 597 unsigned char rsvd : 2; /**< Reserved. Bit 3:2. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 598 unsigned char vsys_hdrm : 1; /**< SYS Headroom Voltage Regulation. Bit 4.
Okan Sahin 0:047a7089311e 599 0b0 = 0.15V 0b1 = 0.20V */
Okan Sahin 0:047a7089311e 600 unsigned char tj_reg : 3; /**< Sets the die junction temperature regulation point, TJ-REG. Bit 7:5.
Okan Sahin 0:047a7089311e 601 0b000 = 60ºC 0b001 = 70ºC
Okan Sahin 0:047a7089311e 602 0b010 = 80ºC 0b011 = 90ºC
Okan Sahin 0:047a7089311e 603 0b100 - 0b111 = 100ºC */
Okan Sahin 0:047a7089311e 604 } bits;
Okan Sahin 0:047a7089311e 605 } reg_cnfg_chg_d_t;
Okan Sahin 0:047a7089311e 606
Okan Sahin 0:047a7089311e 607 /**
Okan Sahin 0:047a7089311e 608 * @brief CNFG_CHG_E
Okan Sahin 0:047a7089311e 609 *
Okan Sahin 0:047a7089311e 610 * Address : 0x25
Okan Sahin 0:047a7089311e 611 */
Okan Sahin 0:047a7089311e 612 typedef union {
Okan Sahin 0:047a7089311e 613 unsigned char raw;
Okan Sahin 0:047a7089311e 614 struct
Okan Sahin 0:047a7089311e 615 {
Okan Sahin 0:047a7089311e 616 unsigned char t_fast_chg : 2; /**< System voltage regulation (VSYS-REG). Bit 1:0.
Okan Sahin 0:047a7089311e 617 0b00 = timer disabled 0b01 = 3 hours
Okan Sahin 0:047a7089311e 618 0b10 = 5 hours 0b11 = 7 hours */
Okan Sahin 0:047a7089311e 619 unsigned char chg_cc : 6; /**< Sets the fast-charge constant current value, IFAST-CHG. Bit 7:2.
Okan Sahin 0:047a7089311e 620 0x0 = 7.5mA 0x1 = 15.0mA
Okan Sahin 0:047a7089311e 621 0x2 = 22.5mA ...
Okan Sahin 0:047a7089311e 622 0x26 = 292.5mA 0x27 - 0x3F = 300.0mA */
Okan Sahin 0:047a7089311e 623 } bits;
Okan Sahin 0:047a7089311e 624 } reg_cnfg_chg_e_t;
Okan Sahin 0:047a7089311e 625
Okan Sahin 0:047a7089311e 626 /**
Okan Sahin 0:047a7089311e 627 * @brief CNFG_CHG_F
Okan Sahin 0:047a7089311e 628 *
Okan Sahin 0:047a7089311e 629 * Address : 0x25
Okan Sahin 0:047a7089311e 630 */
Okan Sahin 0:047a7089311e 631 typedef union {
Okan Sahin 0:047a7089311e 632 unsigned char raw;
Okan Sahin 0:047a7089311e 633 struct
Okan Sahin 0:047a7089311e 634 {
Okan Sahin 0:047a7089311e 635 unsigned char : 1; /**< Bit 0*/
Okan Sahin 0:047a7089311e 636 unsigned char thm_en : 1; /**< Thermistor enable bit. Bit 1.
Okan Sahin 0:047a7089311e 637 0 = Thermistor is disabled
Okan Sahin 0:047a7089311e 638 1 = Thermistor is enabled */
Okan Sahin 0:047a7089311e 639 unsigned char chg_cc_jeita : 6; /**< Sets IFAST-CHG-JEITA for when the battery is either cool or warm as defined
Okan Sahin 0:047a7089311e 640 by the VCOOL and VWARM temperature thresholds. Bit 7:2.
Okan Sahin 0:047a7089311e 641 0x0 = 7.5mA 0x1 = 15.0mA
Okan Sahin 0:047a7089311e 642 0x2 = 22.5mA ...
Okan Sahin 0:047a7089311e 643 0x26 = 292.5mA 0x27 - 0x3F = 300.0mA */
Okan Sahin 0:047a7089311e 644 } bits;
Okan Sahin 0:047a7089311e 645 } reg_cnfg_chg_f_t;
Okan Sahin 0:047a7089311e 646
Okan Sahin 0:047a7089311e 647 /**
Okan Sahin 0:047a7089311e 648 * @brief CNFG_CHG_G
Okan Sahin 0:047a7089311e 649 *
Okan Sahin 0:047a7089311e 650 * Address : 0x26
Okan Sahin 0:047a7089311e 651 */
Okan Sahin 0:047a7089311e 652 typedef union {
Okan Sahin 0:047a7089311e 653 unsigned char raw;
Okan Sahin 0:047a7089311e 654 struct
Okan Sahin 0:047a7089311e 655 {
Okan Sahin 0:047a7089311e 656 unsigned char rsvd : 1; /**< Reserved. Bit 0. Unutilized bit. Write to 0. Reads are don't care.*/
Okan Sahin 0:047a7089311e 657 unsigned char usbs : 1; /**< Setting this bit places CHGIN in USB suspend mode. Bit 1.
Okan Sahin 0:047a7089311e 658 0 = CHGIN is not suspended and may draw current from an adapter source
Okan Sahin 0:047a7089311e 659 1 = CHGIN is suspended and may draw no current from an adapter source */
Okan Sahin 0:047a7089311e 660 unsigned char chg_cv : 6; /**< Sets fast-charge battery regulation voltage, VFAST-CHG. Bit 7:2.
Okan Sahin 0:047a7089311e 661 0x0 = 3.600V 0x1 = 3.625V
Okan Sahin 0:047a7089311e 662 0x2 = 3.650V ...
Okan Sahin 0:047a7089311e 663 0x27 = 4.575V 0x28 - 0x3F = 4.600V */
Okan Sahin 0:047a7089311e 664 } bits;
Okan Sahin 0:047a7089311e 665 } reg_cnfg_chg_g_t;
Okan Sahin 0:047a7089311e 666
Okan Sahin 0:047a7089311e 667 /**
Okan Sahin 0:047a7089311e 668 * @brief CNFG_CHG_H
Okan Sahin 0:047a7089311e 669 *
Okan Sahin 0:047a7089311e 670 * Address : 0x27
Okan Sahin 0:047a7089311e 671 */
Okan Sahin 0:047a7089311e 672 typedef union {
Okan Sahin 0:047a7089311e 673 unsigned char raw;
Okan Sahin 0:047a7089311e 674 struct
Okan Sahin 0:047a7089311e 675 {
Okan Sahin 0:047a7089311e 676 unsigned char rsvd : 2; /**< Reserved. Bit 1:0. Unutilized bit. Write to 0. Reads are don't care.*/
Okan Sahin 0:047a7089311e 677 unsigned char chg_cv_jeita : 6; /**< Sets fast-charge battery regulation voltage, VFAST-CHG. Bit 7:2.
Okan Sahin 0:047a7089311e 678 0x0 = 3.600V 0x1 = 3.625V
Okan Sahin 0:047a7089311e 679 0x2 = 3.650V ...
Okan Sahin 0:047a7089311e 680 0x27 = 4.575V 0x28 - 0x3F = 4.600V */
Okan Sahin 0:047a7089311e 681 } bits;
Okan Sahin 0:047a7089311e 682 } reg_cnfg_chg_h_t;
Okan Sahin 0:047a7089311e 683
Okan Sahin 0:047a7089311e 684 /**
Okan Sahin 0:047a7089311e 685 * @brief CNFG_CHG_I
Okan Sahin 0:047a7089311e 686 *
Okan Sahin 0:047a7089311e 687 * Address : 0x28
Okan Sahin 0:047a7089311e 688 */
Okan Sahin 0:047a7089311e 689 typedef union {
Okan Sahin 0:047a7089311e 690 unsigned char raw;
Okan Sahin 0:047a7089311e 691 struct
Okan Sahin 0:047a7089311e 692 {
Okan Sahin 0:047a7089311e 693 unsigned char mux_sel : 4; /**< Selects the analog channel to connect to AMUX. Bit 3:0.
Okan Sahin 0:047a7089311e 694 0b0000 = Multiplexer is disabled and AMUX is high-impedance.
Okan Sahin 0:047a7089311e 695 0b0001 = CHGIN voltage monitor.
Okan Sahin 0:047a7089311e 696 0b0010 = CHGIN current monitor.
Okan Sahin 0:047a7089311e 697 0b0011 = BATT voltage monitor.
Okan Sahin 0:047a7089311e 698 0b0100 = BATT charge current monitor. Valid only while battery charging is happening (CHG = 1).
Okan Sahin 0:047a7089311e 699 0b0101 = BATT discharge current monitor normal measurement.
Okan Sahin 0:047a7089311e 700 0b0110 = BATT discharge current monitor nulling measurement.
Okan Sahin 0:047a7089311e 701 0b0111 = THM voltage monitor 0b1000 = TBIAS voltage monitor
Okan Sahin 0:047a7089311e 702 0b1001 = AGND voltage monitor (through 100Ω pull-down resistor)
Okan Sahin 0:047a7089311e 703 0b1010 - 0b1111 = SYS voltage monitor */
Okan Sahin 0:047a7089311e 704 unsigned char imon_dischg_scale : 4; /**< Selects the battery discharge current full-scale current value. Bit 7:4.
Okan Sahin 0:047a7089311e 705 0x0 = 8.2mA 0x1 = 40.5mA 0x2 = 72.3mA
Okan Sahin 0:047a7089311e 706 0x3 = 103.4mA 0x4 = 134.1mA
Okan Sahin 0:047a7089311e 707 0x5 = 164.1mA 0x6 = 193.7mA
Okan Sahin 0:047a7089311e 708 0x7 = 222.7mA 0x8 = 251.2mA
Okan Sahin 0:047a7089311e 709 0x9 = 279.3mA 0xA - 0xF = 300.0mA */
Okan Sahin 0:047a7089311e 710 } bits;
Okan Sahin 0:047a7089311e 711 } reg_cnfg_chg_i_t;
Okan Sahin 0:047a7089311e 712
Okan Sahin 0:047a7089311e 713 /**
Okan Sahin 0:047a7089311e 714 * @brief CNFG_SBB0_A
Okan Sahin 0:047a7089311e 715 *
Okan Sahin 0:047a7089311e 716 * Address : 0x29
Okan Sahin 0:047a7089311e 717 */
Okan Sahin 0:047a7089311e 718 typedef union {
Okan Sahin 0:047a7089311e 719 unsigned char raw;
Okan Sahin 0:047a7089311e 720 struct
Okan Sahin 0:047a7089311e 721 {
Okan Sahin 0:047a7089311e 722 unsigned char tv_sbb0 : 7; /**< SIMO Buck-Boost Channel 0 Target Output Voltage. Bit 6:0.
Okan Sahin 0:047a7089311e 723 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V
Okan Sahin 0:047a7089311e 724 0x03 = 0.575V 0x04 = 0.600V
Okan Sahin 0:047a7089311e 725 ...
Okan Sahin 0:047a7089311e 726 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V
Okan Sahin 0:047a7089311e 727 ...
Okan Sahin 0:047a7089311e 728 0x7B = 5.450V 0x7C = 5.500V
Okan Sahin 0:047a7089311e 729 0x7D to 0x7F = Reserved */
Okan Sahin 0:047a7089311e 730 unsigned char : 1; /**< Bit 7. */
Okan Sahin 0:047a7089311e 731 } bits;
Okan Sahin 0:047a7089311e 732 } reg_cnfg_sbb0_a_t;
Okan Sahin 0:047a7089311e 733
Okan Sahin 0:047a7089311e 734 /**
Okan Sahin 0:047a7089311e 735 * @brief CNFG_SBB0_B
Okan Sahin 0:047a7089311e 736 *
Okan Sahin 0:047a7089311e 737 * Address : 0x2A
Okan Sahin 0:047a7089311e 738 */
Okan Sahin 0:047a7089311e 739 typedef union {
Okan Sahin 0:047a7089311e 740 unsigned char raw;
Okan Sahin 0:047a7089311e 741 struct
Okan Sahin 0:047a7089311e 742 {
Okan Sahin 0:047a7089311e 743 unsigned char en_sbb0 : 3; /**< Enable Control for SIMO Buck-Boost Channel 0,
Okan Sahin 0:047a7089311e 744 selecting either an FPS slot the channel powers-up and powers-down in
Okan Sahin 0:047a7089311e 745 or whether the channel is forced on or off. Bit 2:0.
Okan Sahin 0:047a7089311e 746 0b000 = FPS slot 0 0b001 = FPS slot 1
Okan Sahin 0:047a7089311e 747 0b010 = FPS slot 2 0b011 = FPS slot 3
Okan Sahin 0:047a7089311e 748 0b100 = Off irrespective of FPS
Okan Sahin 0:047a7089311e 749 0b101 = same as 0b100 0b110 = On irrespective of FPS
Okan Sahin 0:047a7089311e 750 0b111 = same as 0b110 */
Okan Sahin 0:047a7089311e 751 unsigned char ade_sbb0 : 1; /**< SIMO Buck-Boost Channel 0 Active-Discharge Enable. Bit 3.
Okan Sahin 0:047a7089311e 752 0 = The active discharge function is disabled.
Okan Sahin 0:047a7089311e 753 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load.
Okan Sahin 0:047a7089311e 754 1 = The active discharge function is enabled.
Okan Sahin 0:047a7089311e 755 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */
Okan Sahin 0:047a7089311e 756 unsigned char : 2; /**< Bit 5:4*/
Okan Sahin 0:047a7089311e 757 unsigned char op_mode : 1; /**< Operation mode of SBB0. Bit 6.
Okan Sahin 0:047a7089311e 758 0 = Buck-Boost Mode
Okan Sahin 0:047a7089311e 759 1 = Buck Mode*/
Okan Sahin 0:047a7089311e 760 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/
Okan Sahin 0:047a7089311e 761 } bits;
Okan Sahin 0:047a7089311e 762 } reg_cnfg_sbb0_b_t;
Okan Sahin 0:047a7089311e 763
Okan Sahin 0:047a7089311e 764 /**
Okan Sahin 0:047a7089311e 765 * @brief CNFG_SBB1_A
Okan Sahin 0:047a7089311e 766 *
Okan Sahin 0:047a7089311e 767 * Address : 0x2B
Okan Sahin 0:047a7089311e 768 */
Okan Sahin 0:047a7089311e 769 typedef union {
Okan Sahin 0:047a7089311e 770 unsigned char raw;
Okan Sahin 0:047a7089311e 771 struct
Okan Sahin 0:047a7089311e 772 {
Okan Sahin 0:047a7089311e 773 unsigned char tv_sbb1 : 7; /**< SIMO Buck-Boost Channel 1 Target Output Voltage. Bit 6:0.
Okan Sahin 0:047a7089311e 774 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V
Okan Sahin 0:047a7089311e 775 0x03 = 0.575V 0x04 = 0.600V
Okan Sahin 0:047a7089311e 776 ...
Okan Sahin 0:047a7089311e 777 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V
Okan Sahin 0:047a7089311e 778 ...
Okan Sahin 0:047a7089311e 779 0x7B = 5.450V 0x7C = 5.500V
Okan Sahin 0:047a7089311e 780 0x7D to 0x7F = Reserved */
Okan Sahin 0:047a7089311e 781 unsigned char : 1; /**< Bit 7. */
Okan Sahin 0:047a7089311e 782 } bits;
Okan Sahin 0:047a7089311e 783 } reg_cnfg_sbb1_a_t;
Okan Sahin 0:047a7089311e 784
Okan Sahin 0:047a7089311e 785 /**
Okan Sahin 0:047a7089311e 786 * @brief CNFG_SBB1_B
Okan Sahin 0:047a7089311e 787 *
Okan Sahin 0:047a7089311e 788 * Address : 0x2C
Okan Sahin 0:047a7089311e 789 */
Okan Sahin 0:047a7089311e 790 typedef union {
Okan Sahin 0:047a7089311e 791 unsigned char raw;
Okan Sahin 0:047a7089311e 792 struct
Okan Sahin 0:047a7089311e 793 {
Okan Sahin 0:047a7089311e 794 unsigned char en_sbb1 : 3; /**< Enable Control for SIMO Buck-Boost Channel 1,
Okan Sahin 0:047a7089311e 795 selecting either an FPS slot the channel powers-up and powers-down in
Okan Sahin 0:047a7089311e 796 or whether the channel is forced on or off. Bit 2:0.
Okan Sahin 0:047a7089311e 797 0b000 = FPS slot 0 0b001 = FPS slot 1
Okan Sahin 0:047a7089311e 798 0b010 = FPS slot 2 0b011 = FPS slot 3
Okan Sahin 0:047a7089311e 799 0b100 = Off irrespective of FPS
Okan Sahin 0:047a7089311e 800 0b101 = same as 0b100 0b110 = On irrespective of FPS
Okan Sahin 0:047a7089311e 801 0b111 = same as 0b110 */
Okan Sahin 0:047a7089311e 802 unsigned char ade_sbb1 : 1; /**< SIMO Buck-Boost Channel 1 Active-Discharge Enable. Bit 3.
Okan Sahin 0:047a7089311e 803 0 = The active discharge function is disabled.
Okan Sahin 0:047a7089311e 804 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load.
Okan Sahin 0:047a7089311e 805 1 = The active discharge function is enabled.
Okan Sahin 0:047a7089311e 806 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */
Okan Sahin 0:047a7089311e 807 unsigned char : 2; /**< Bit 5:4.*/
Okan Sahin 0:047a7089311e 808 unsigned char op_mode : 1; /**< Operation mode of SBB1. Bit 6.
Okan Sahin 0:047a7089311e 809 0 = Buck-Boost Mode
Okan Sahin 0:047a7089311e 810 1 = Buck Mode*/
Okan Sahin 0:047a7089311e 811 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/
Okan Sahin 0:047a7089311e 812 } bits;
Okan Sahin 0:047a7089311e 813 } reg_cnfg_sbb1_b_t;
Okan Sahin 0:047a7089311e 814
Okan Sahin 0:047a7089311e 815 /**
Okan Sahin 0:047a7089311e 816 * @brief CNFG_SBB2_A
Okan Sahin 0:047a7089311e 817 *
Okan Sahin 0:047a7089311e 818 * Address : 0x2D
Okan Sahin 0:047a7089311e 819 */
Okan Sahin 0:047a7089311e 820 typedef union {
Okan Sahin 0:047a7089311e 821 unsigned char raw;
Okan Sahin 0:047a7089311e 822 struct
Okan Sahin 0:047a7089311e 823 {
Okan Sahin 0:047a7089311e 824 unsigned char tv_sbb2 : 7; /**< SIMO Buck-Boost Channel 2 Target Output Voltage. Bit 6:0.
Okan Sahin 0:047a7089311e 825 0x00 = 0.500V 0x01 = 0.525V 0x02 = 0.550V
Okan Sahin 0:047a7089311e 826 0x03 = 0.575V 0x04 = 0.600V
Okan Sahin 0:047a7089311e 827 ...
Okan Sahin 0:047a7089311e 828 0x30 = 1.700V 0x31 = 1.750V 0x32 = 1.800V
Okan Sahin 0:047a7089311e 829 ...
Okan Sahin 0:047a7089311e 830 0x7B = 5.450V 0x7C = 5.500V
Okan Sahin 0:047a7089311e 831 0x7D to 0x7F = Reserved */
Okan Sahin 0:047a7089311e 832 unsigned char : 1; /**< Bit 7. */
Okan Sahin 0:047a7089311e 833 } bits;
Okan Sahin 0:047a7089311e 834 } reg_cnfg_sbb2_a_t;
Okan Sahin 0:047a7089311e 835
Okan Sahin 0:047a7089311e 836 /**
Okan Sahin 0:047a7089311e 837 * @brief CNFG_SBB2_B
Okan Sahin 0:047a7089311e 838 *
Okan Sahin 0:047a7089311e 839 * Address : 0x2E
Okan Sahin 0:047a7089311e 840 */
Okan Sahin 0:047a7089311e 841 typedef union {
Okan Sahin 0:047a7089311e 842 unsigned char raw;
Okan Sahin 0:047a7089311e 843 struct
Okan Sahin 0:047a7089311e 844 {
Okan Sahin 0:047a7089311e 845 unsigned char en_sbb2 : 3; /**< Enable Control for SIMO Buck-Boost Channel 2,
Okan Sahin 0:047a7089311e 846 selecting either an FPS slot the channel powers-up and powers-down in
Okan Sahin 0:047a7089311e 847 or whether the channel is forced on or off. Bit 2:0.
Okan Sahin 0:047a7089311e 848 0b000 = FPS slot 0 0b001 = FPS slot 1
Okan Sahin 0:047a7089311e 849 0b010 = FPS slot 2 0b011 = FPS slot 3
Okan Sahin 0:047a7089311e 850 0b100 = Off irrespective of FPS
Okan Sahin 0:047a7089311e 851 0b101 = same as 0b100 0b110 = On irrespective of FPS
Okan Sahin 0:047a7089311e 852 0b111 = same as 0b110 */
Okan Sahin 0:047a7089311e 853 unsigned char ade_sbb2 : 1; /**< SIMO Buck-Boost Channel 2 Active-Discharge Enable Bit 3.
Okan Sahin 0:047a7089311e 854 0 = The active discharge function is disabled.
Okan Sahin 0:047a7089311e 855 When SBB0 is disabled, its discharge rate is a function of the output capacitance and the external load.
Okan Sahin 0:047a7089311e 856 1 = The active discharge function is enabled.
Okan Sahin 0:047a7089311e 857 When SBB0 is disabled, an internal resistor (RAD_SBB0) is activated from SBB0 to PGND to help the output voltage discharge. */
Okan Sahin 0:047a7089311e 858 unsigned char : 2; /**< Bit 5:4. */
Okan Sahin 0:047a7089311e 859 unsigned char op_mode : 1; /**< Operation mode of SBB2. Bit 6.
Okan Sahin 0:047a7089311e 860 0 = Buck-Boost Mode
Okan Sahin 0:047a7089311e 861 1 = Buck Mode*/
Okan Sahin 0:047a7089311e 862 unsigned char rsvd : 1; /**< Reserved. Bit 7. Unutilized bit. Write to 0. Reads are don't care.*/
Okan Sahin 0:047a7089311e 863 } bits;
Okan Sahin 0:047a7089311e 864 } reg_cnfg_sbb2_b_t;
Okan Sahin 0:047a7089311e 865
Okan Sahin 0:047a7089311e 866 /**
Okan Sahin 0:047a7089311e 867 * @brief CNFG_SBB_TOP
Okan Sahin 0:047a7089311e 868 *
Okan Sahin 0:047a7089311e 869 * Address : 0x2F
Okan Sahin 0:047a7089311e 870 */
Okan Sahin 0:047a7089311e 871 typedef union {
Okan Sahin 0:047a7089311e 872 unsigned char raw;
Okan Sahin 0:047a7089311e 873 struct
Okan Sahin 0:047a7089311e 874 {
Okan Sahin 0:047a7089311e 875 unsigned char drv_sbb : 2; /**< SIMO Buck-Boost (all channels) Drive Strength Trim. Bit 1:0.
Okan Sahin 0:047a7089311e 876 0b00 = fastest transition time
Okan Sahin 0:047a7089311e 877 0b01 = a little slower than 0b00
Okan Sahin 0:047a7089311e 878 0b10 = a little slower than 0b01
Okan Sahin 0:047a7089311e 879 0b11 = a little slower than 0b10 */
Okan Sahin 0:047a7089311e 880 unsigned char : 5; /**< Bit 6:2. */
Okan Sahin 0:047a7089311e 881 unsigned char op_mode_chg : 1; /**< Operation mode of the charging channel of SIMO. Bit 7.
Okan Sahin 0:047a7089311e 882 0 = Buck-boost mode
Okan Sahin 0:047a7089311e 883 1 = Buck mode */
Okan Sahin 0:047a7089311e 884 } bits;
Okan Sahin 0:047a7089311e 885 } reg_cnfg_sbb_top_t;
Okan Sahin 0:047a7089311e 886
Okan Sahin 0:047a7089311e 887 /**
Okan Sahin 0:047a7089311e 888 * @brief CNFG_SBB_TOP_B
Okan Sahin 0:047a7089311e 889 *
Okan Sahin 0:047a7089311e 890 * Address : 0x30
Okan Sahin 0:047a7089311e 891 */
Okan Sahin 0:047a7089311e 892 typedef union {
Okan Sahin 0:047a7089311e 893 unsigned char raw;
Okan Sahin 0:047a7089311e 894 struct
Okan Sahin 0:047a7089311e 895 {
Okan Sahin 0:047a7089311e 896 unsigned char ip_sbb0 : 2; /**< SIMO Buck-Boost Channel 0 Peak Current Limit. Bit 1:0.
Okan Sahin 0:047a7089311e 897 0b00 = 1.000A
Okan Sahin 0:047a7089311e 898 0b01 = 0.750A
Okan Sahin 0:047a7089311e 899 0b10 = 0.500A
Okan Sahin 0:047a7089311e 900 0b11 = 0.333A */
Okan Sahin 0:047a7089311e 901 unsigned char ip_sbb1 : 2; /**< SIMO Buck-Boost Channel 1 Peak Current Limit. Bit 3:2.
Okan Sahin 0:047a7089311e 902 0b00 = 1.000A
Okan Sahin 0:047a7089311e 903 0b01 = 0.750A
Okan Sahin 0:047a7089311e 904 0b10 = 0.500A
Okan Sahin 0:047a7089311e 905 0b11 = 0.333A */
Okan Sahin 0:047a7089311e 906 unsigned char ip_sbb2 : 2; /**< SIMO Buck-Boost Channel 2 Peak Current Limit. Bit 5:4.
Okan Sahin 0:047a7089311e 907 0b00 = 1.000A
Okan Sahin 0:047a7089311e 908 0b01 = 0.750A
Okan Sahin 0:047a7089311e 909 0b10 = 0.500A
Okan Sahin 0:047a7089311e 910 0b11 = 0.333A */
Okan Sahin 0:047a7089311e 911 unsigned char ip_chg : 2; /**< SIMO Buck-Boost Charging Channel Peak Current Limit. Bit 7:6.
Okan Sahin 0:047a7089311e 912 0b00 = 2.000A
Okan Sahin 0:047a7089311e 913 0b01 = 1.500A
Okan Sahin 0:047a7089311e 914 0b10 = 1.000A
Okan Sahin 0:047a7089311e 915 0b11 = 0.500A */
Okan Sahin 0:047a7089311e 916 } bits;
Okan Sahin 0:047a7089311e 917 } reg_cnfg_sbb_top_b_t;
Okan Sahin 0:047a7089311e 918
Okan Sahin 0:047a7089311e 919 /**
Okan Sahin 0:047a7089311e 920 * @brief CNFG_LDO0_A
Okan Sahin 0:047a7089311e 921 *
Okan Sahin 0:047a7089311e 922 * Address : 0x38
Okan Sahin 0:047a7089311e 923 */
Okan Sahin 0:047a7089311e 924 typedef union {
Okan Sahin 0:047a7089311e 925 unsigned char raw;
Okan Sahin 0:047a7089311e 926 struct
Okan Sahin 0:047a7089311e 927 {
Okan Sahin 0:047a7089311e 928 unsigned char tv_ldo_volt : 7; /**< LDO Target Output Voltage This 7-bit configuration is a linear transfer function
Okan Sahin 0:047a7089311e 929 that starts at 0.5V and ends at 3.675V, with 25mV increments. Bit 6:0.
Okan Sahin 0:047a7089311e 930 0x00 = 0.500V 0x01 = 0.525V
Okan Sahin 0:047a7089311e 931 0x02 = 0.550V 0x03 = 0.575V
Okan Sahin 0:047a7089311e 932 0x04 = 0.600V 0x05 = 0.625V
Okan Sahin 0:047a7089311e 933 0x06 = 0.650V ...
Okan Sahin 0:047a7089311e 934 0x7D = 3.625V 0x7E = 3.650V
Okan Sahin 0:047a7089311e 935 0x7F = 3.675V */
Okan Sahin 0:047a7089311e 936 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.
Okan Sahin 0:047a7089311e 937 0b0 = No offset 0b1 = 1.325V offset*/
Okan Sahin 0:047a7089311e 938 } bits;
Okan Sahin 0:047a7089311e 939 } reg_cnfg_ldo0_a_t;
Okan Sahin 0:047a7089311e 940
Okan Sahin 0:047a7089311e 941 /**
Okan Sahin 0:047a7089311e 942 * @brief CNFG_LDO0_B
Okan Sahin 0:047a7089311e 943 *
Okan Sahin 0:047a7089311e 944 * Address : 0x39
Okan Sahin 0:047a7089311e 945 */
Okan Sahin 0:047a7089311e 946 typedef union {
Okan Sahin 0:047a7089311e 947 unsigned char raw;
Okan Sahin 0:047a7089311e 948 struct
Okan Sahin 0:047a7089311e 949 {
Okan Sahin 0:047a7089311e 950 unsigned char en_ldo : 3; /**< Enable Control for LDO0, selecting either an FPS slot the channel powers-up and
Okan Sahin 0:047a7089311e 951 powers-down in or whether the channel is forced on or off. Bit 2:0.
Okan Sahin 0:047a7089311e 952 0b000 = FPS slot 0 0b001 = FPS slot 1
Okan Sahin 0:047a7089311e 953 0b010 = FPS slot 2 0b011 = FPS slot 3
Okan Sahin 0:047a7089311e 954 0b100 = Off irrespective of FPS
Okan Sahin 0:047a7089311e 955 0b101 = same as 0b100
Okan Sahin 0:047a7089311e 956 0b110 = On irrespective of FPS
Okan Sahin 0:047a7089311e 957 0b111 = same as 0b110 */
Okan Sahin 0:047a7089311e 958 unsigned char ade_ldo : 1; /**< LDO0 Active-Discharge Enable. Bit 3.
Okan Sahin 0:047a7089311e 959 0 = The active discharge function is disabled.
Okan Sahin 0:047a7089311e 960 1 = The active discharge function is enabled. */
Okan Sahin 0:047a7089311e 961 unsigned char ldo_md : 1; /**< Operation mode of LDO0. Bit 4.
Okan Sahin 0:047a7089311e 962 0 = Low Dropout Linear Regulator (LDO) Mode
Okan Sahin 0:047a7089311e 963 1 = Load Switch (LSW) Mode */
Okan Sahin 0:047a7089311e 964 unsigned char rsvd : 3; /**< Bit 7:5. Reserved. Unutilized bit. Write to 0. Reads are don't care. */
Okan Sahin 0:047a7089311e 965 } bits;
Okan Sahin 0:047a7089311e 966 } reg_cnfg_ldo0_b_t;
Okan Sahin 0:047a7089311e 967
Okan Sahin 0:047a7089311e 968 #endif /* MAX77659_REGS_H_ */