MAX77658 Ultra-Low Power PMIC Mbed Driver
Diff: MAX77658.cpp
- Revision:
- 1:40ef1dc30cb7
- Parent:
- 0:00d2a8670533
- Child:
- 2:70a11f46a913
diff -r 00d2a8670533 -r 40ef1dc30cb7 MAX77658.cpp --- a/MAX77658.cpp Thu Jun 30 12:15:15 2022 +0300 +++ b/MAX77658.cpp Fri Aug 26 15:02:25 2022 +0300 @@ -170,7 +170,7 @@ int MAX77658::get_ercflag(reg_bit_ercflag_t bit_field, uint8_t *flag) { int ret; - reg_ercflag_t reg_ercflag; + reg_ercflag_t reg_ercflag = {0}; ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag)); if (ret != MAX77658_NO_ERROR) return ret; @@ -212,7 +212,7 @@ int MAX77658::get_stat_glbl(reg_bit_stat_glbl_t bit_field, uint8_t *status) { int ret; - reg_stat_glbl_t reg_stat_glbl; + reg_stat_glbl_t reg_stat_glbl = {0}; ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl)); if (ret != MAX77658_NO_ERROR) return ret; @@ -255,9 +255,9 @@ { int ret; uint8_t reg_addr; - reg_int_m_chg_t reg_int_m_chg; - reg_intm_glbl0_t reg_intm_glbl0; - reg_intm_glbl1_t reg_intm_glbl1; + reg_int_m_chg_t reg_int_m_chg = {0}; + reg_intm_glbl0_t reg_intm_glbl0 = {0}; + reg_intm_glbl1_t reg_intm_glbl1 = {0}; //INT_M_CHG (0x07), INTM_GLBL0 (0x08) and INTM_GLBL1 (0x09) reg_addr = (uint8_t)floor((static_cast<uint8_t>(bit_field)) / 8) + 0x07; @@ -358,17 +358,15 @@ return write_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0)); else if (reg_addr == INTM_GLBL1) return write_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1)); - else - return MAX77658_INVALID_DATA; } int MAX77658::get_interrupt_mask(reg_bit_int_mask_t bit_field, uint8_t *maskBit) { int ret; uint8_t reg_addr; - reg_int_m_chg_t reg_int_m_chg; - reg_intm_glbl0_t reg_intm_glbl0; - reg_intm_glbl1_t reg_intm_glbl1; + reg_int_m_chg_t reg_int_m_chg = {0}; + reg_intm_glbl0_t reg_intm_glbl0 = {0}; + reg_intm_glbl1_t reg_intm_glbl1 = {0}; //INT_M_CHG (0x07), INTM_GLBL0 (0x08) and INTM_GLBL1 (0x09) reg_addr = (uint8_t)floor((static_cast<uint8_t>(bit_field)) / 8) + 0x07; @@ -469,7 +467,7 @@ int MAX77658::set_cnfg_glbl(reg_bit_cnfg_glbl_t bit_field, uint8_t config) { int ret; - reg_cnfg_glbl_t reg_cnfg_glbl; + reg_cnfg_glbl_t reg_cnfg_glbl = {0}; ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl)); if (ret != MAX77658_NO_ERROR) return ret; @@ -505,7 +503,7 @@ int MAX77658::get_cnfg_glbl(reg_bit_cnfg_glbl_t bit_field, uint8_t *config) { int ret; - reg_cnfg_glbl_t reg_cnfg_glbl; + reg_cnfg_glbl_t reg_cnfg_glbl = {0}; ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl)); if (ret != MAX77658_NO_ERROR) return ret; @@ -541,9 +539,9 @@ int MAX77658::set_cnfg_gpio(reg_bit_cnfg_gpio_t bit_field, uint8_t channel, uint8_t config) { int ret; - reg_cnfg_gpio0_t reg_cnfg_gpio0; - reg_cnfg_gpio1_t reg_cnfg_gpio1; - reg_cnfg_gpio2_t reg_cnfg_gpio2; + reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0}; + reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0}; + reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0}; if (channel == 0) { @@ -652,9 +650,9 @@ int MAX77658::get_cnfg_gpio(reg_bit_cnfg_gpio_t bit_field, uint8_t channel, uint8_t *config) { int ret; - reg_cnfg_gpio0_t reg_cnfg_gpio0; - reg_cnfg_gpio1_t reg_cnfg_gpio1; - reg_cnfg_gpio2_t reg_cnfg_gpio2; + reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0}; + reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0}; + reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0}; if (channel == 0) { @@ -769,7 +767,7 @@ int MAX77658::set_cnfg_wdt(reg_bit_cnfg_wdt_t bit_field, uint8_t config) { int ret; - reg_cnfg_wdt_t reg_cnfg_wdt; + reg_cnfg_wdt_t reg_cnfg_wdt = {0}; ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt)); if (ret != MAX77658_NO_ERROR) return ret; @@ -803,7 +801,7 @@ int MAX77658::get_cnfg_wdt(reg_bit_cnfg_wdt_t bit_field, uint8_t *config) { int ret; - reg_cnfg_wdt_t reg_cnfg_wdt; + reg_cnfg_wdt_t reg_cnfg_wdt = {0}; ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt)); if (ret != MAX77658_NO_ERROR) return ret; @@ -837,7 +835,7 @@ int MAX77658::get_stat_chg_a(reg_bit_stat_chg_a_t bit_field, uint8_t *status) { int ret; - reg_stat_chg_a_t reg_stat_chg_a; + reg_stat_chg_a_t reg_stat_chg_a = {0}; ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -871,7 +869,7 @@ int MAX77658::get_thm_dtls(decode_thm_dtls_t *thm_dtls) { int ret; - reg_stat_chg_a_t reg_stat_chg_a; + reg_stat_chg_a_t reg_stat_chg_a = {0}; ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -884,7 +882,7 @@ int MAX77658::get_stat_chg_b(reg_bit_stat_chg_b_t bit_field, uint8_t *status) { int ret; - reg_stat_chg_b_t reg_stat_chg_b; + reg_stat_chg_b_t reg_stat_chg_b = {0}; ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -914,7 +912,7 @@ int MAX77658::get_chg_dtls(decode_chg_dtls_t *chg_dtls) { int ret; - reg_stat_chg_b_t reg_stat_chg_b; + reg_stat_chg_b_t reg_stat_chg_b = {0}; ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -927,7 +925,7 @@ int MAX77658::set_thm_hot(int tempDegC) { uint8_t value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; if (tempDegC < 45) tempDegC = 45; else if (tempDegC > 60) tempDegC = 60; @@ -942,7 +940,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -959,7 +957,7 @@ int MAX77658::set_thm_warm(int tempDegC) { uint8_t value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; if (tempDegC < 35) tempDegC = 35; else if (tempDegC > 50) tempDegC = 50; @@ -974,7 +972,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -991,7 +989,7 @@ int MAX77658::set_thm_cool(int tempDegC) { uint8_t value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; if (tempDegC < 0) tempDegC = 0; else if (tempDegC > 15) tempDegC = 15; @@ -1006,7 +1004,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1023,7 +1021,7 @@ int MAX77658::set_thm_cold(int tempDegC) { uint8_t value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; if (tempDegC < -10) tempDegC = -10; else if (tempDegC > 5) tempDegC = 5; @@ -1038,7 +1036,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_a_t reg_cnfg_chg_a; + reg_cnfg_chg_a_t reg_cnfg_chg_a = {0}; ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1055,7 +1053,7 @@ int MAX77658::set_cnfg_chg_b(reg_bit_cnfg_chg_b_t bit_field, uint8_t config) { int ret; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1085,7 +1083,7 @@ int MAX77658::get_cnfg_chg_b(reg_bit_cnfg_chg_b_t bit_field, uint8_t *config) { int ret; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1115,7 +1113,7 @@ int MAX77658::set_vchgin_min(float voltV) { uint8_t value; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; float voltmV = voltV * 1000; if (voltmV < 4000) voltmV = 4000; @@ -1131,7 +1129,7 @@ { int ret; uint8_t value; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1144,7 +1142,7 @@ int MAX77658::set_ichgin_lim(int currentmA) { uint8_t value; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; if (currentmA < 95) currentmA = 95; else if (currentmA > 475) currentmA = 475; @@ -1159,7 +1157,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_b_t reg_cnfg_chg_b; + reg_cnfg_chg_b_t reg_cnfg_chg_b = {0}; ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1172,7 +1170,7 @@ int MAX77658::set_chg_pq(float voltV) { uint8_t value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; float voltmV = voltV * 1000; if (voltmV < 2300) voltmV = 2300; @@ -1188,7 +1186,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1201,7 +1199,7 @@ int MAX77658::set_i_term(float percent) { uint8_t value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; if (percent < 7.5f) value = 0; else if ((percent >= 7.5f) && (percent < 10)) value = 1; @@ -1216,7 +1214,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1235,7 +1233,7 @@ int MAX77658::set_t_topoff(uint8_t minute) { uint8_t value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; if (minute > 35) minute = 35; @@ -1249,7 +1247,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_c_t reg_cnfg_chg_c; + reg_cnfg_chg_c_t reg_cnfg_chg_c = {0}; ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1262,7 +1260,7 @@ int MAX77658::set_tj_reg(uint8_t tempDegC) { uint8_t value; - reg_cnfg_chg_d_t reg_cnfg_chg_d; + reg_cnfg_chg_d_t reg_cnfg_chg_d = {0}; if (tempDegC < 60) tempDegC = 60; else if (tempDegC > 100) tempDegC = 100; @@ -1277,7 +1275,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_d_t reg_cnfg_chg_d; + reg_cnfg_chg_d_t reg_cnfg_chg_d = {0}; ret = read_register(CNFG_CHG_D, (uint8_t *)&(reg_cnfg_chg_d)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1290,7 +1288,7 @@ int MAX77658::set_vsys_reg(float voltV) { uint8_t value; - reg_cnfg_chg_d_t reg_cnfg_chg_d; + reg_cnfg_chg_d_t reg_cnfg_chg_d = {0}; float voltmV = voltV * 1000; if (voltmV < 3300) voltmV = 3300; @@ -1306,7 +1304,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_d_t reg_cnfg_chg_d; + reg_cnfg_chg_d_t reg_cnfg_chg_d = {0}; ret = read_register(CNFG_CHG_D, (uint8_t *)&(reg_cnfg_chg_d)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1319,7 +1317,7 @@ int MAX77658::set_chg_cc(float currentmA) { uint8_t value; - reg_cnfg_chg_e_t reg_cnfg_chg_e; + reg_cnfg_chg_e_t reg_cnfg_chg_e = {0}; float currentuA = currentmA * 1000; if (currentuA < 7500) currentuA = 7500; @@ -1335,7 +1333,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_e_t reg_cnfg_chg_e; + reg_cnfg_chg_e_t reg_cnfg_chg_e = {0}; ret = read_register(CNFG_CHG_E, (uint8_t *)&(reg_cnfg_chg_e)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1350,7 +1348,7 @@ int MAX77658::set_t_fast_chg(decode_t_fast_chg_t t_fast_chg) { - reg_cnfg_chg_e_t reg_cnfg_chg_e; + reg_cnfg_chg_e_t reg_cnfg_chg_e = {0}; SET_BIT_FIELD(CNFG_CHG_E, reg_cnfg_chg_e, reg_cnfg_chg_e.bits.t_fast_chg, t_fast_chg); return MAX77658_NO_ERROR; @@ -1359,7 +1357,7 @@ int MAX77658::get_t_fast_chg(decode_t_fast_chg_t *t_fast_chg) { int ret; - reg_cnfg_chg_e_t reg_cnfg_chg_e; + reg_cnfg_chg_e_t reg_cnfg_chg_e = {0}; ret = read_register(CNFG_CHG_E, (uint8_t *)&(reg_cnfg_chg_e)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1372,7 +1370,7 @@ int MAX77658::set_chg_cc_jeita(float currentmA) { uint8_t value; - reg_cnfg_chg_f_t reg_cnfg_chg_f; + reg_cnfg_chg_f_t reg_cnfg_chg_f = {0}; float currentuA = currentmA * 1000; if (currentuA < 7500) currentuA = 7500; @@ -1388,7 +1386,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_f_t reg_cnfg_chg_f; + reg_cnfg_chg_f_t reg_cnfg_chg_f = {0}; ret = read_register(CNFG_CHG_F, (uint8_t *)&(reg_cnfg_chg_f)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1403,7 +1401,7 @@ int MAX77658::set_cnfg_chg_g(reg_bit_cnfg_chg_g_t bit_field, uint8_t config) { int ret; - reg_cnfg_chg_g_t reg_cnfg_chg_g; + reg_cnfg_chg_g_t reg_cnfg_chg_g = {0}; ret = read_register(CNFG_CHG_G, (uint8_t *)&(reg_cnfg_chg_g)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1430,7 +1428,7 @@ int MAX77658::get_cnfg_chg_g(reg_bit_cnfg_chg_g_t bit_field, uint8_t *config) { int ret; - reg_cnfg_chg_g_t reg_cnfg_chg_g; + reg_cnfg_chg_g_t reg_cnfg_chg_g = {0}; ret = read_register(CNFG_CHG_G, (uint8_t *)&(reg_cnfg_chg_g)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1457,7 +1455,7 @@ int MAX77658::set_chg_cv(float voltV) { uint8_t value; - reg_cnfg_chg_g_t reg_cnfg_chg_g; + reg_cnfg_chg_g_t reg_cnfg_chg_g = {0}; float voltmV = voltV * 1000; if (voltmV < 3600) voltmV = 3600; @@ -1473,7 +1471,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_g_t reg_cnfg_chg_g; + reg_cnfg_chg_g_t reg_cnfg_chg_g = {0}; ret = read_register(CNFG_CHG_G, (uint8_t *)&(reg_cnfg_chg_g)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1486,7 +1484,7 @@ int MAX77658::set_cnfg_chg_h(reg_bit_cnfg_chg_h_t bit_field, uint8_t config) { int ret; - reg_cnfg_chg_h_t reg_cnfg_chg_h; + reg_cnfg_chg_h_t reg_cnfg_chg_h = {0}; ret = read_register(CNFG_CHG_H, (uint8_t *)&(reg_cnfg_chg_h)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1513,7 +1511,7 @@ int MAX77658::get_cnfg_chg_h(reg_bit_cnfg_chg_h_t bit_field, uint8_t *config) { int ret; - reg_cnfg_chg_h_t reg_cnfg_chg_h; + reg_cnfg_chg_h_t reg_cnfg_chg_h = {0}; ret = read_register(CNFG_CHG_H, (uint8_t *)&(reg_cnfg_chg_h)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1540,7 +1538,7 @@ int MAX77658::set_chg_cv_jeita(float voltV) { uint8_t value; - reg_cnfg_chg_h_t reg_cnfg_chg_h; + reg_cnfg_chg_h_t reg_cnfg_chg_h = {0}; float voltmV = voltV * 1000; if (voltmV < 3600) voltmV = 3600; @@ -1556,7 +1554,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_h_t reg_cnfg_chg_h; + reg_cnfg_chg_h_t reg_cnfg_chg_h = {0}; ret = read_register(CNFG_CHG_H, (uint8_t *)&(reg_cnfg_chg_h)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1569,7 +1567,7 @@ int MAX77658::set_imon_dischg_scale(float currentmA) { uint8_t value; - reg_cnfg_chg_i_t reg_cnfg_chg_i; + reg_cnfg_chg_i_t reg_cnfg_chg_i = {0}; if (currentmA < 40.5f) value = 0; else if ((currentmA >= 40.5f) && (currentmA < 72.3f)) value = 1; @@ -1591,7 +1589,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_chg_i_t reg_cnfg_chg_i; + reg_cnfg_chg_i_t reg_cnfg_chg_i = {0}; ret = read_register(CNFG_CHG_I, (uint8_t *)&(reg_cnfg_chg_i)); if (ret != MAX77658_NO_ERROR) { @@ -1617,7 +1615,7 @@ int MAX77658::set_mux_sel(decode_mux_sel_t selection) { - reg_cnfg_chg_i_t reg_cnfg_chg_i; + reg_cnfg_chg_i_t reg_cnfg_chg_i = {0}; SET_BIT_FIELD(CNFG_CHG_I, reg_cnfg_chg_i, reg_cnfg_chg_i.bits.mux_sel, selection); return MAX77658_NO_ERROR; @@ -1626,7 +1624,7 @@ int MAX77658::get_mux_sel(decode_mux_sel_t *selection) { int ret; - reg_cnfg_chg_i_t reg_cnfg_chg_i; + reg_cnfg_chg_i_t reg_cnfg_chg_i = {0}; ret = read_register(CNFG_CHG_I, (uint8_t *)&(reg_cnfg_chg_i)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1638,7 +1636,7 @@ int MAX77658::set_cnfg_sbb_top(reg_bit_cnfg_sbb_top_t bit_field, uint8_t config) { int ret; - reg_cnfg_sbb_top_t reg_cnfg_sbb_top; + reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0}; ret = read_register(CNFG_SBB_TOP, (uint8_t *)&(reg_cnfg_sbb_top)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1662,7 +1660,7 @@ int MAX77658::get_cnfg_sbb_top(reg_bit_cnfg_sbb_top_t bit_field, uint8_t *config) { int ret; - reg_cnfg_sbb_top_t reg_cnfg_sbb_top; + reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0}; ret = read_register(CNFG_SBB_TOP, (uint8_t *)&(reg_cnfg_sbb_top)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1686,9 +1684,9 @@ int MAX77658::set_tv_sbb_a(uint8_t channel, float voltV) { uint8_t value; - reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a; - reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a; - reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a; + reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a = {0}; + reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a = {0}; + reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a = {0}; float voltmV = voltV * 1000; if (voltmV < 500) voltmV = 500; @@ -1716,9 +1714,9 @@ { int ret; uint8_t bit_value; - reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a; - reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a; - reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a; + reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a = {0}; + reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a = {0}; + reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a = {0}; if (channel == 0) { ret = read_register(CNFG_SBB0_A, (uint8_t *)&(reg_cnfg_sbb0_a)); @@ -1748,9 +1746,9 @@ int MAX77658::set_op_mode(uint8_t channel, decode_op_mode_t mode) { - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.op_mode0, mode); @@ -1771,9 +1769,9 @@ int MAX77658::get_op_mode(uint8_t channel, decode_op_mode_t *mode) { int ret; - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b)); @@ -1802,9 +1800,9 @@ int MAX77658::set_ip_sbb(uint8_t channel, decode_ip_sbb_t ip_sbb) { - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.ip_sbb0, ip_sbb); @@ -1825,9 +1823,9 @@ int MAX77658::get_ip_sbb(uint8_t channel, decode_ip_sbb_t *ip_sbb) { int ret; - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b)); @@ -1856,9 +1854,9 @@ int MAX77658::set_ade_sbb(uint8_t channel, decode_ade_sbb_t ade_sbb) { - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.ade_sbb0, ade_sbb); @@ -1879,9 +1877,9 @@ int MAX77658::get_ade_sbb(uint8_t channel, decode_ade_sbb_t *ade_sbb) { int ret; - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b)); @@ -1910,9 +1908,9 @@ int MAX77658::set_en_sbb(uint8_t channel, decode_en_sbb_t en_sbb) { - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.en_sbb0, en_sbb); @@ -1933,9 +1931,9 @@ int MAX77658::get_en_sbb(uint8_t channel, decode_en_sbb_t *en_sbb) { int ret; - reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b; - reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b; - reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b; + reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0}; + reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0}; + reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0}; if (channel == 0) { ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b)); @@ -1963,7 +1961,7 @@ int MAX77658::set_tv_sbb_dvs(float voltV) { uint8_t value; - reg_cnfg_dvs_sbb0_a_t reg_cnfg_dvs_sbb0_a; + reg_cnfg_dvs_sbb0_a_t reg_cnfg_dvs_sbb0_a = {0}; float voltmV = voltV * 1000; if (voltmV < 500) voltmV = 500; @@ -1979,7 +1977,7 @@ { int ret; uint8_t bit_value; - reg_cnfg_dvs_sbb0_a_t reg_cnfg_dvs_sbb0_a; + reg_cnfg_dvs_sbb0_a_t reg_cnfg_dvs_sbb0_a = {0}; ret = read_register(CNFG_DVS_SBB0_A, (uint8_t *)&(reg_cnfg_dvs_sbb0_a)); if (ret != MAX77658_NO_ERROR) return ret; @@ -1996,8 +1994,8 @@ { int ret; uint8_t value; - reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a; - reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a; + reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0}; + reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0}; float voltmV = voltV * 1000; if (channel == 0) { @@ -2045,8 +2043,8 @@ { int ret; uint8_t bit_value; - reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a; - reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a; + reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0}; + reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0}; if (channel == 0){ ret = read_register(CNFG_LDO0_A, (uint8_t *)&(reg_cnfg_ldo0_a)); @@ -2074,8 +2072,8 @@ int MAX77658::set_tv_ldo_offset_a(uint8_t channel, decode_tv_ldo_offset_a_t offset) { - reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a; - reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a; + reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0}; + reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_LDO0_A, reg_cnfg_ldo0_a, reg_cnfg_ldo0_a.bits.tv_ldo0_7, offset); @@ -2093,8 +2091,8 @@ int MAX77658::get_tv_ldo_offset_a(uint8_t channel, decode_tv_ldo_offset_a_t *offset) { int ret; - reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a; - reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a; + reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0}; + reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0}; if (channel == 0) { ret = read_register(CNFG_LDO0_A, (uint8_t *)&(reg_cnfg_ldo0_a)); @@ -2117,8 +2115,8 @@ int MAX77658::set_en_ldo(uint8_t channel, decode_en_ldo_t en_ldo) { - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.en_ldo0, en_ldo); @@ -2136,8 +2134,8 @@ int MAX77658::get_en_ldo(uint8_t channel, decode_en_ldo_t *en_ldo) { int ret; - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b)); @@ -2158,8 +2156,8 @@ int MAX77658::set_ade_ldo(uint8_t channel, decode_ade_ldo_t ade_ldo) { - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.ade_ldo0, ade_ldo); @@ -2177,8 +2175,8 @@ int MAX77658::get_ade_ldo(uint8_t channel, decode_ade_ldo_t *ade_ldo) { int ret; - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b)); @@ -2201,8 +2199,8 @@ int MAX77658::set_ldo_md(uint8_t channel, decode_ldo_md_t mode) { - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.ldo0_md, mode); @@ -2220,8 +2218,8 @@ int MAX77658::get_ldo_md(uint8_t channel, decode_ldo_md_t *mode) { int ret; - reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b; - reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b; + reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0}; + reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0}; if (channel == 0) { ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b)); @@ -2245,7 +2243,7 @@ int MAX77658::set_fg_status(reg_bit_status_t bit_field, uint8_t status) { int ret; - reg_status_t reg_status; + reg_status_t reg_status = {0}; ret = read_fg_register(Status, (uint8_t *)&(reg_status)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2311,7 +2309,7 @@ int MAX77658::get_fg_status(reg_bit_status_t bit_field, uint8_t *status) { int ret; - reg_status_t reg_status; + reg_status_t reg_status = {0}; ret = read_fg_register(Status, (uint8_t *)&(reg_status)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2378,7 +2376,7 @@ { int ret; uint8_t voltRaw; - reg_valrt_th_t reg_valrt_th; + reg_valrt_th_t reg_valrt_th = {0}; float voltmV = voltV * 1000; ret = read_fg_register(VAlrtTh, (uint8_t *)&(reg_valrt_th)); @@ -2407,7 +2405,7 @@ { int ret; int8_t voltSigned; - reg_valrt_th_t reg_valrt_th; + reg_valrt_th_t reg_valrt_th = {0}; ret = read_fg_register(VAlrtTh, (uint8_t *)&(reg_valrt_th)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2435,7 +2433,7 @@ { int ret; uint8_t tempRaw; - reg_talrt_th_t reg_talrt_th; + reg_talrt_th_t reg_talrt_th = {0}; ret = read_fg_register(TAlrtTh, (uint8_t *)&(reg_talrt_th)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2464,7 +2462,7 @@ int MAX77658::get_fg_talrt_th(reg_bit_talrt_th_t bit_field, int *tempDegC) { int ret, tempSigned; - reg_talrt_th_t reg_talrt_th; + reg_talrt_th_t reg_talrt_th = {0}; ret = read_fg_register(TAlrtTh, (uint8_t *)&(reg_talrt_th)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2494,7 +2492,7 @@ { int ret; uint8_t capRaw; - reg_salrt_th_t reg_salrt_th; + reg_salrt_th_t reg_salrt_th = {0}; ret = read_fg_register(SAlrtTh, (uint8_t *)&(reg_salrt_th)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2522,7 +2520,7 @@ { int ret; uint8_t capRaw; - reg_salrt_th_t reg_salrt_th; + reg_salrt_th_t reg_salrt_th = {0}; ret = read_fg_register(SAlrtTh, (uint8_t *)&(reg_salrt_th)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2549,7 +2547,7 @@ int MAX77658::set_fg_full_soc_thr(float soc_thr) { int capRaw; - reg_full_soc_thr_t reg_full_soc_thr; + reg_full_soc_thr_t reg_full_soc_thr = {0}; //LSB unit is 1/256%. capRaw = (int)round(soc_thr * 256); @@ -2561,7 +2559,7 @@ int MAX77658::get_fg_full_soc_thr(float *soc_thr) { int ret, capRaw; - reg_full_soc_thr_t reg_full_soc_thr; + reg_full_soc_thr_t reg_full_soc_thr = {0}; ret = read_fg_register(FullSocThr, (uint8_t *)&(reg_full_soc_thr)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2576,7 +2574,7 @@ int MAX77658::set_fg_design_cap(float capacitymAh) { int capRaw; - reg_design_cap_t reg_design_cap; + reg_design_cap_t reg_design_cap = {0}; //Min is 0.0mAh and Max is 6553.5mAh. if (capacitymAh < 0) capacitymAh = 0; @@ -2592,7 +2590,7 @@ int MAX77658::get_fg_design_cap(float *capacitymAh) { int ret, capRaw; - reg_design_cap_t reg_design_cap; + reg_design_cap_t reg_design_cap = {0}; ret = read_fg_register(DesignCap, (uint8_t *)&(reg_design_cap)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2607,7 +2605,7 @@ int MAX77658::set_fg_config(reg_bit_config_t bit_field, uint8_t config) { int ret; - reg_config_t reg_config; + reg_config_t reg_config = {0}; ret = read_fg_register(Config, (uint8_t *)&(reg_config)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2673,7 +2671,7 @@ int MAX77658::get_fg_config(reg_bit_config_t bit_field, uint8_t *config) { int ret; - reg_config_t reg_config; + reg_config_t reg_config = {0}; ret = read_fg_register(Config, (uint8_t *)&(reg_config)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2739,7 +2737,7 @@ int MAX77658::set_fg_ichg_term(float currentA) { uint16_t currentRaw; - reg_ichg_term_t reg_ichg_term; + reg_ichg_term_t reg_ichg_term = {0}; //Register scale range of ± 5.12 A if (currentA < -5.12f) currentA = -5.12f; @@ -2756,7 +2754,7 @@ { int ret; int16_t currentSigned; - reg_ichg_term_t reg_ichg_term; + reg_ichg_term_t reg_ichg_term = {0}; ret = read_fg_register(IChgTerm, (uint8_t *)&(reg_ichg_term)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2775,7 +2773,7 @@ int MAX77658::get_fg_dev_name(uint16_t *value) { int ret; - reg_dev_name_t reg_dev_name; + reg_dev_name_t reg_dev_name = {0}; ret = read_fg_register(DevName, (uint8_t *)&(reg_dev_name)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2787,7 +2785,7 @@ int MAX77658::set_fg_nempty(uint8_t nempty) { - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; SET_FG_BIT_FIELD(FilterCfg, reg_filter_cfg, reg_filter_cfg.bits.nempty, nempty); return MAX77658_NO_ERROR; @@ -2796,7 +2794,7 @@ int MAX77658::get_fg_nempty(uint8_t *nempty) { int ret; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; ret = read_fg_register(FilterCfg, (uint8_t *)&(reg_filter_cfg)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2809,7 +2807,7 @@ int MAX77658::set_fg_nmix(float second) { int nmixRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; //Mixing Period = 175.8ms × 2^(5+NMIX) nmixRaw = (int)round((log2(second * 1000.0f / 175.8f)) - 5.0f); @@ -2821,7 +2819,7 @@ int MAX77658::get_fg_nmix(float *second) { int ret, nmixRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; ret = read_fg_register(FilterCfg, (uint8_t *)&(reg_filter_cfg)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2836,7 +2834,7 @@ int MAX77658::set_fg_navgcell(float second) { int navgcellRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; //AverageVCELL time constant = 175.8ms × 2^(6+NAVGVCELL) navgcellRaw = (int)round((log2(second * 1000.0f / 175.8f)) - 6.0f); @@ -2848,7 +2846,7 @@ int MAX77658::get_fg_navgcell(float *second) { int ret, navgcellRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; ret = read_fg_register(FilterCfg, (uint8_t *)&(reg_filter_cfg)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2863,7 +2861,7 @@ int MAX77658::set_fg_ncurr(float second) { int ncurrRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; //AverageVCELL time constant = 175.8ms × 2^(2+NCURR) ncurrRaw = (int)round((log2(second * 1000.0f / 175.8f)) - 2.0f); @@ -2875,7 +2873,7 @@ int MAX77658::get_fg_ncurr(float *second) { int ret, ncurrRaw; - reg_filter_cfg_t reg_filter_cfg; + reg_filter_cfg_t reg_filter_cfg = {0}; ret = read_fg_register(FilterCfg, (uint8_t *)&(reg_filter_cfg)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2890,7 +2888,7 @@ int MAX77658::set_fg_iavg_empty(float currentA) { uint16_t currentRaw; - reg_iavg_empty_t reg_iavg_empty; + reg_iavg_empty_t reg_iavg_empty = {0}; //Register scale range of ± 5.12 A if (currentA < -5.12f) currentA = -5.12f; @@ -2907,7 +2905,7 @@ { int ret; int16_t currentSigned; - reg_iavg_empty_t reg_iavg_empty; + reg_iavg_empty_t reg_iavg_empty = {0}; ret = read_fg_register(IAvgEmpty, (uint8_t *)&(reg_iavg_empty)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2926,7 +2924,7 @@ int MAX77658::set_fg_v_empty(float voltV) { int voltRaw; - reg_v_empty_t reg_v_empty; + reg_v_empty_t reg_v_empty = {0}; float voltmV = voltV * 1000; //A 10mV resolution gives a 0 to 5.11V range. @@ -2942,7 +2940,7 @@ int MAX77658::get_fg_v_empty(float *voltV) { int ret, voltRaw; - reg_v_empty_t reg_v_empty; + reg_v_empty_t reg_v_empty = {0}; ret = read_fg_register(VEmpty, (uint8_t *)&(reg_v_empty)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2960,7 +2958,7 @@ int MAX77658::set_fg_v_recover(float voltV) { int voltRaw; - reg_v_empty_t reg_v_empty; + reg_v_empty_t reg_v_empty = {0}; float voltmV = voltV * 1000; //A 40mV resolution gives a 0 to 5.08V range. @@ -2976,7 +2974,7 @@ int MAX77658::get_fg_v_recover(float *voltV) { int ret, voltRaw; - reg_v_empty_t reg_v_empty; + reg_v_empty_t reg_v_empty = {0}; ret = read_fg_register(VEmpty, (uint8_t *)&(reg_v_empty)); if (ret != MAX77658_NO_ERROR) return ret; @@ -2995,7 +2993,7 @@ int MAX77658::set_fg_config2(reg_bit_config2_t bit_field, uint8_t config) { int ret; - reg_config2_t reg_config2; + reg_config2_t reg_config2 = {0}; ret = read_fg_register(Config2, (uint8_t *)&(reg_config2)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3040,7 +3038,7 @@ int MAX77658::get_fg_config2(reg_bit_config2_t bit_field, uint8_t *config) { int ret; - reg_config2_t reg_config2; + reg_config2_t reg_config2 = {0}; ret = read_fg_register(Config2, (uint8_t *)&(reg_config2)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3085,7 +3083,7 @@ int MAX77658::set_fg_isys_ncurr(float second) { int secondRaw; - reg_config2_t reg_config2; + reg_config2_t reg_config2 = {0}; //AvgISys time constant = 45s x 2^(ISysNCurr-7) secondRaw = (int)round(log2(second * 1000 / 45000) + 7); @@ -3097,7 +3095,7 @@ int MAX77658::get_fg_isys_ncurr(float *second) { int ret, secondRaw; - reg_config2_t reg_config2; + reg_config2_t reg_config2 = {0}; ret = read_fg_register(Config2, (uint8_t *)&(reg_config2)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3112,7 +3110,7 @@ int MAX77658::set_fg_temp(float tempDegC) { uint16_t tempRaw; - reg_temp_t reg_temp; + reg_temp_t reg_temp = {0}; //Min value is -128.0°C and Max value is 127.996°C. if (tempDegC < -128) tempDegC = -128; @@ -3129,7 +3127,7 @@ { int ret; int16_t tempSigned; - reg_temp_t reg_temp; + reg_temp_t reg_temp = {0}; ret = read_fg_register(Temp, (uint8_t *)&(reg_temp)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3148,7 +3146,7 @@ int MAX77658::set_fg_vcell(float voltV) { uint16_t voltRaw; - reg_vcell_t reg_vcell; + reg_vcell_t reg_vcell = {0}; float voltmV = voltV * 1000; //Register scale range between 0V and 5.11992V. //LSB value of 1.25mV/16 @@ -3164,7 +3162,7 @@ int MAX77658::get_fg_vcell(float *voltV) { int ret, voltRaw; - reg_vcell_t reg_vcell; + reg_vcell_t reg_vcell = {0}; ret = read_fg_register(Vcell, (uint8_t *)&(reg_vcell)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3182,7 +3180,7 @@ int MAX77658::set_fg_current(float currentA) { uint16_t currentRaw; - reg_current_t reg_current; + reg_current_t reg_current = {0}; float currentmA = currentA * 1000; if (currentmA < -1024) currentmA = -1024; @@ -3199,7 +3197,7 @@ { int ret; int16_t currentSigned; - reg_current_t reg_current; + reg_current_t reg_current = {0}; ret = read_fg_register(Current, (uint8_t *)&(reg_current)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3217,7 +3215,7 @@ int MAX77658::set_fg_avg_current(float currentA) { uint16_t currentRaw; - reg_avg_current_t reg_avg_current; + reg_avg_current_t reg_avg_current = {0}; float currentmA = currentA * 1000; if (currentmA < -1024) currentmA = -1024; @@ -3234,7 +3232,7 @@ { int ret; int16_t currentSigned; - reg_avg_current_t reg_avg_current; + reg_avg_current_t reg_avg_current = {0}; ret = read_fg_register(AvgCurrent, (uint8_t *)&(reg_avg_current)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3252,7 +3250,7 @@ int MAX77658::set_fg_avgta(float tempDegC) { uint16_t tempRaw; - reg_avg_ta_t reg_avg_ta; + reg_avg_ta_t reg_avg_ta = {0}; //Min value is -128.0°C and Max value is 127.996°C. if (tempDegC < -128) tempDegC = -128; @@ -3269,7 +3267,7 @@ { int ret; int16_t tempSigned; - reg_avg_ta_t reg_avg_ta; + reg_avg_ta_t reg_avg_ta = {0}; ret = read_fg_register(AvgTA, (uint8_t *)&(reg_avg_ta)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3288,7 +3286,7 @@ int MAX77658::set_fg_avgvcell(float voltV) { uint16_t voltRaw; - reg_avg_vcell_t reg_avg_vcell; + reg_avg_vcell_t reg_avg_vcell = {0}; float voltmV = voltV * 1000; //Register scale range between 0V and 5.11992V. //LSB value of 1.25mV/16 @@ -3304,7 +3302,7 @@ int MAX77658::get_fg_avgvcell(float *voltV) { int ret, voltRaw; - reg_avg_vcell_t reg_avg_vcell; + reg_avg_vcell_t reg_avg_vcell = {0}; ret = read_fg_register(AvgVCell, (uint8_t *)&(reg_avg_vcell)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3324,7 +3322,7 @@ { int ret; uint8_t tempRaw; - reg_max_min_temp_t reg_max_min_temp; + reg_max_min_temp_t reg_max_min_temp = {0}; ret = read_fg_register(MaxMinTemp, (uint8_t *)&(reg_max_min_temp)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3352,7 +3350,7 @@ { int ret; int8_t tempSigned; - reg_max_min_temp_t reg_max_min_temp; + reg_max_min_temp_t reg_max_min_temp = {0}; ret = read_fg_register(MaxMinTemp, (uint8_t *)&(reg_max_min_temp)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3380,7 +3378,7 @@ { int ret; uint8_t voltRaw; - reg_max_min_volt_t reg_max_min_volt; + reg_max_min_volt_t reg_max_min_volt = {0}; float voltmV = voltV * 1000; ret = read_fg_register(MaxMinVolt, (uint8_t *)&(reg_max_min_volt)); @@ -3409,7 +3407,7 @@ { int ret; int8_t voltSigned; - reg_max_min_volt_t reg_max_min_volt; + reg_max_min_volt_t reg_max_min_volt = {0}; ret = read_fg_register(MaxMinVolt, (uint8_t *)&(reg_max_min_volt)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3437,7 +3435,7 @@ { int ret; uint8_t currentRaw; - reg_max_min_curr_t reg_max_min_curr; + reg_max_min_curr_t reg_max_min_curr = {0}; float currentmA = currentA * 1000; ret = read_fg_register(MaxMinCurr, (uint8_t *)&(reg_max_min_curr)); @@ -3466,7 +3464,7 @@ { int ret; int8_t currentSigned; - reg_max_min_curr_t reg_max_min_curr; + reg_max_min_curr_t reg_max_min_curr = {0}; ret = read_fg_register(MaxMinCurr, (uint8_t *)&(reg_max_min_curr)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3493,7 +3491,7 @@ int MAX77658::set_fg_ain0(float percent) { int percentRaw; - reg_ain0_t reg_ain0; + reg_ain0_t reg_ain0 = {0}; //LSB of 0.0122% percentRaw = (int)round(percent / 0.0122f); @@ -3505,7 +3503,7 @@ int MAX77658::get_fg_ain0(float *percent) { int ret, percentRaw; - reg_ain0_t reg_ain0; + reg_ain0_t reg_ain0 = {0}; ret = read_fg_register(AIN0, (uint8_t *)&(reg_ain0)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3520,7 +3518,7 @@ int MAX77658::set_fg_timer(float second) { int secondRaw; - reg_timer_t reg_timer; + reg_timer_t reg_timer = {0}; //full-scale range of 0 to 3.2 hours= 11520 sec if (second < 0) second = 0; @@ -3536,7 +3534,7 @@ int MAX77658::get_fg_timer(float *second) { int ret, secondRaw; - reg_timer_t reg_timer; + reg_timer_t reg_timer = {0}; ret = read_fg_register(Timer, (uint8_t *)&(reg_timer)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3555,7 +3553,7 @@ int MAX77658::set_fg_shdnctr(float second) { int secondRaw; - reg_shdn_timer_t reg_shdn_timer; + reg_shdn_timer_t reg_shdn_timer = {0}; //The counter LSB is 1.4s secondRaw = (int)round(second / 1.4f); @@ -3567,7 +3565,7 @@ int MAX77658::get_fg_shdnctr(float *second) { int ret, secondRaw; - reg_shdn_timer_t reg_shdn_timer; + reg_shdn_timer_t reg_shdn_timer = {0}; ret = read_fg_register(ShdnTimer, (uint8_t *)&(reg_shdn_timer)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3582,7 +3580,7 @@ int MAX77658::set_fg_shdn_thr(float second) { int secondRaw; - reg_shdn_timer_t reg_shdn_timer; + reg_shdn_timer_t reg_shdn_timer = {0}; //minimum of 45s to a maximum of 1.6h=5760sec if (second < 45) second = 45; @@ -3598,7 +3596,7 @@ int MAX77658::get_fg_shdn_thr(float *second) { int ret, secondRaw; - reg_shdn_timer_t reg_shdn_timer; + reg_shdn_timer_t reg_shdn_timer = {0}; ret = read_fg_register(ShdnTimer, (uint8_t *)&(reg_shdn_timer)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3617,7 +3615,7 @@ int MAX77658::set_fg_timerh(float hour) { int hourRaw; - reg_timerh_t reg_timerh; + reg_timerh_t reg_timerh = {0}; // Full-scale range up to 23.94 years = 209853.5577138 hr if (hour > 209853.5577138f) hour = (209853.5577138f); @@ -3632,7 +3630,7 @@ int MAX77658::get_fg_timerh(float *hour) { int ret, hourRaw; - reg_timerh_t reg_timerh; + reg_timerh_t reg_timerh = {0}; ret = read_fg_register(TimerH, (uint8_t *)&(reg_timerh)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3650,7 +3648,7 @@ int MAX77658::set_fg_rep_cap(float repCapmAh) { int repCapRaw; - reg_rep_cap_t reg_rep_cap; + reg_rep_cap_t reg_rep_cap = {0}; //Min value is 0.0mAh and Max value is 6553.5mAh if (repCapmAh < 0) repCapmAh = 0; @@ -3666,7 +3664,7 @@ int MAX77658::get_fg_rep_cap(float *repCapmAh) { int ret, repCapRaw; - reg_rep_cap_t reg_rep_cap; + reg_rep_cap_t reg_rep_cap = {0}; ret = read_fg_register(RepCap, (uint8_t *)&(reg_rep_cap)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3685,7 +3683,7 @@ int MAX77658::set_fg_rep_soc(float percent) { int percentRaw; - reg_rep_soc_t reg_rep_soc; + reg_rep_soc_t reg_rep_soc = {0}; //Min value is 0.0% and Max value is 255.9961% if (percent < 0) percent = 0; @@ -3701,7 +3699,7 @@ int MAX77658::get_fg_rep_soc(float *percent) { int ret, percentRaw; - reg_rep_soc_t reg_rep_soc; + reg_rep_soc_t reg_rep_soc = {0}; ret = read_fg_register(RepSOC, (uint8_t *)&(reg_rep_soc)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3720,7 +3718,7 @@ int MAX77658::set_fg_av_soc(float percent) { int percentRaw; - reg_av_soc_t reg_av_soc; + reg_av_soc_t reg_av_soc = {0}; //Min value is 0.0% and Max value is 255.9961% if (percent < 0) percent = 0; @@ -3736,7 +3734,7 @@ int MAX77658::get_fg_av_soc(float *percent) { int ret, percentRaw; - reg_av_soc_t reg_av_soc; + reg_av_soc_t reg_av_soc = {0}; ret = read_fg_register(AvSOC, (uint8_t *)&(reg_av_soc)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3755,7 +3753,7 @@ int MAX77658::set_fg_full_cap_reg(float repCapmAh) { int repCapRaw; - reg_full_cap_rep_t reg_full_cap_rep; + reg_full_cap_rep_t reg_full_cap_rep = {0}; //Min value is 0.0mAh and Max value is 6553.5mAh if (repCapmAh < 0) repCapmAh = 0; @@ -3771,7 +3769,7 @@ int MAX77658::get_fg_full_cap_reg(float *repCapmAh) { int ret, repCapRaw; - reg_full_cap_rep_t reg_full_cap_rep; + reg_full_cap_rep_t reg_full_cap_rep = {0}; ret = read_fg_register(FullCapRep, (uint8_t *)&(reg_full_cap_rep)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3790,7 +3788,7 @@ int MAX77658::set_fg_tte(float minute) { int minuteRaw; - reg_tte_t reg_tte; + reg_tte_t reg_tte = {0}; //Min value is 0.0s and Max value is 102.3984h = 6143.904min. //LSB is 5.625s. @@ -3803,7 +3801,7 @@ int MAX77658::get_fg_tte(float *minute) { int ret, minuteRaw; - reg_tte_t reg_tte; + reg_tte_t reg_tte = {0}; ret = read_fg_register(TTE, (uint8_t *)&(reg_tte)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3822,7 +3820,7 @@ int MAX77658::set_fg_rcell(float resOhm) { int resistanceRaw; - reg_rcell_t reg_rcell; + reg_rcell_t reg_rcell = {0}; //Min value is 0.0Ohm and Max value is 15.99976Ohm. if (resOhm < 0) resOhm = 0; @@ -3838,7 +3836,7 @@ int MAX77658::get_fg_rcell(float *resOhm) { int ret, resistanceRaw; - reg_rcell_t reg_rcell; + reg_rcell_t reg_rcell = {0}; ret = read_fg_register(RCell, (uint8_t *)&(reg_rcell)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3856,7 +3854,7 @@ int MAX77658::set_fg_cycles(uint16_t percent) { - reg_cycles_t reg_cycles; + reg_cycles_t reg_cycles = {0}; //The LSB indicates 1%. SET_FG_BIT_FIELD(Cycles, reg_cycles, reg_cycles.bits.cycles, percent); @@ -3866,7 +3864,7 @@ int MAX77658::get_fg_cycles(uint16_t *percent) { int ret; - reg_cycles_t reg_cycles; + reg_cycles_t reg_cycles = {0}; ret = read_fg_register(Cycles, (uint8_t *)&(reg_cycles)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3879,7 +3877,7 @@ int MAX77658::set_fg_av_cap(float avCapmAh) { int avCapRaw; - reg_av_cap_t reg_av_cap; + reg_av_cap_t reg_av_cap = {0}; //LSB is 0.1mAh. Min value is 0.0mAh and Max value is 6553.5mAh. if (avCapmAh < 0) avCapmAh = 0; @@ -3894,7 +3892,7 @@ int MAX77658::get_fg_av_cap(float *avCapmAh) { int ret, avCapRaw; - reg_av_cap_t reg_av_cap; + reg_av_cap_t reg_av_cap = {0}; ret = read_fg_register(AvCap, (uint8_t *)&(reg_av_cap)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3912,7 +3910,7 @@ int MAX77658::set_fg_ttf(float minute) { int minuteRaw; - reg_ttf_t reg_ttf; + reg_ttf_t reg_ttf = {0}; //Min value is 0.0s and Max value is 102.3984h = = 6143.904 min.min. if (minute < 0) minute = 0; @@ -3928,7 +3926,7 @@ int MAX77658::get_fg_ttf(float *minute) { int ret, minuteRaw; - reg_ttf_t reg_ttf; + reg_ttf_t reg_ttf = {0}; ret = read_fg_register(TTF, (uint8_t *)&(reg_ttf)); if (ret != MAX77658_NO_ERROR) return ret; @@ -3985,7 +3983,7 @@ void MAX77658::post_interrupt_work() { int ret; - uint8_t reg, inten, not_inten, mask; + uint8_t reg = 0, inten = 0, not_inten = 0, mask = 0; while (true) {