Lines Matching refs:dsoc
192 int dsoc; member
966 if (di->dsoc < 1) in rk818_get_capacity_leve()
968 else if (di->dsoc <= 20) in rk818_get_capacity_leve()
970 else if (di->dsoc <= 70) in rk818_get_capacity_leve()
972 else if (di->dsoc <= 90) in rk818_get_capacity_leve()
1020 val->intval = di->dsoc; in rk818_battery_get_property()
1039 else if (di->dsoc == 100) in rk818_battery_get_property()
1267 di->dsoc = di->rsoc; in rk818_bat_first_pwron()
1271 di->dsoc, di->rsoc, di->nac, di->fcc, ocv_vol); in rk818_bat_first_pwron()
1331 di->dsoc = pre_soc; in rk818_bat_not_first_pwron()
1337 di->dsoc, di->nac, rk818_bat_get_avg_voltage(di), in rk818_bat_not_first_pwron()
1580 delta = abs(di->dsoc - di->rsoc); in rk818_bat_calc_sm_linek()
1584 if (di->dsoc < di->rsoc) in rk818_bat_calc_sm_linek()
1586 else if (di->dsoc > di->rsoc) in rk818_bat_calc_sm_linek()
1590 di->dbg_meet_soc = (di->dsoc >= di->rsoc) ? in rk818_bat_calc_sm_linek()
1591 (di->dsoc + diff) : (di->rsoc + diff); in rk818_bat_calc_sm_linek()
1593 if (di->dsoc < di->rsoc) in rk818_bat_calc_sm_linek()
1595 else if (di->dsoc > di->rsoc) in rk818_bat_calc_sm_linek()
1599 di->dbg_meet_soc = (di->dsoc >= di->rsoc) ? in rk818_bat_calc_sm_linek()
1600 (di->dsoc - diff) : (di->rsoc - diff); in rk818_bat_calc_sm_linek()
1605 di->dbg_calc_dsoc = di->dsoc; in rk818_bat_calc_sm_linek()
1621 if ((abs(di->current_avg) < 500) && (di->dsoc > 10)) in rk818_bat_calc_zero_linek()
1675 if ((xsoc <= 30) && (di->dsoc >= di->pdata->zero_reserve_dsoc)) in rk818_bat_calc_zero_linek()
1680 if ((di->dsoc <= 1) && (xsoc > 0)) { in rk818_bat_calc_zero_linek()
1689 (xsoc - di->dsoc >= ZERO_GAP_XSOC3) && in rk818_bat_calc_zero_linek()
1690 (di->dsoc <= 10) && (di->zero_linek < 300)) { in rk818_bat_calc_zero_linek()
1694 } else if ((xsoc - di->dsoc >= min_gap_xsoc) || in rk818_bat_calc_zero_linek()
1695 ((xsoc - di->dsoc >= ZERO_GAP_XSOC2) && in rk818_bat_calc_zero_linek()
1696 (di->dsoc <= 10) && (xsoc > 15))) { in rk818_bat_calc_zero_linek()
1698 di->dsoc >= di->pdata->zero_reserve_dsoc) in rk818_bat_calc_zero_linek()
1700 else if (xsoc - di->dsoc >= 2 * min_gap_xsoc) in rk818_bat_calc_zero_linek()
1702 else if (xsoc - di->dsoc >= 3 + min_gap_xsoc) in rk818_bat_calc_zero_linek()
1708 } else if ((di->zero_linek > 1800) && (di->dsoc > 70)) { in rk818_bat_calc_zero_linek()
1716 } else if ((di->dsoc <= 15 && di->dsoc > 5) && in rk818_bat_calc_zero_linek()
1719 if (xsoc - di->dsoc >= min_gap_xsoc) in rk818_bat_calc_zero_linek()
1726 } else if ((di->zero_linek < 1000) && (di->dsoc >= 5)) { in rk818_bat_calc_zero_linek()
1727 if ((xsoc - di->dsoc) < min_gap_xsoc) { in rk818_bat_calc_zero_linek()
1738 } else if ((di->zero_linek < 1000) && (di->dsoc <= 5)) { in rk818_bat_calc_zero_linek()
1739 if ((xsoc - di->dsoc) <= 3) in rk818_bat_calc_zero_linek()
1753 di->dsoc--; in rk818_bat_calc_zero_linek()
1754 di->zero_dsoc = (di->dsoc + 1) * 1000 - in rk818_bat_calc_zero_linek()
1763 BAT_INFO("voltage extreme low...soc:%d->0\n", di->dsoc); in rk818_bat_calc_zero_linek()
1765 di->dsoc = 0; in rk818_bat_calc_zero_linek()
1775 org_linek, di->zero_linek, di->dsoc, xsoc, di->rsoc, in rk818_bat_calc_zero_linek()
1792 if (tmp_soc != di->dsoc) in rk818_bat_smooth_algo_prepare()
1793 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_smooth_algo_prepare()
1796 if (tmp_soc != di->dsoc) in rk818_bat_smooth_algo_prepare()
1798 (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_smooth_algo_prepare()
1801 __func__, tmp_soc, di->dsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc); in rk818_bat_smooth_algo_prepare()
1812 if (tmp_dsoc != di->dsoc) in rk818_bat_zero_algo_prepare()
1813 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_zero_algo_prepare()
1825 if (tmp_soc == di->dsoc) in rk818_bat_calc_zero_algorithm()
1828 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk818_bat_calc_zero_algorithm()
1830 if (di->dsoc < di->rsoc) { in rk818_bat_calc_zero_algorithm()
1833 if (tmp_soc == di->dsoc) { in rk818_bat_calc_zero_algorithm()
1834 sm_delta_dsoc = di->sm_chrg_dsoc - di->dsoc * 1000; in rk818_bat_calc_zero_algorithm()
1835 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_calc_zero_algorithm()
1842 if (di->dsoc > di->rsoc) { in rk818_bat_calc_zero_algorithm()
1845 if (tmp_soc == di->dsoc) { in rk818_bat_calc_zero_algorithm()
1847 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk818_bat_calc_zero_algorithm()
1848 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - in rk818_bat_calc_zero_algorithm()
1856 if (di->zero_dsoc > (di->dsoc + 1) * 1000 - MIN_ACCURACY) { in rk818_bat_calc_zero_algorithm()
1858 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_calc_zero_algorithm()
1863 if (tmp_soc != di->dsoc) { in rk818_bat_calc_zero_algorithm()
1865 if ((di->dsoc - tmp_soc) > 1) { in rk818_bat_calc_zero_algorithm()
1866 di->dsoc--; in rk818_bat_calc_zero_algorithm()
1867 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_calc_zero_algorithm()
1870 di->dsoc = tmp_soc; in rk818_bat_calc_zero_algorithm()
1877 di->zero_dsoc, di->dsoc, di->rsoc, tmp_soc); in rk818_bat_calc_zero_algorithm()
1893 di->zero_linek, di->zero_dsoc, di->dsoc, di->rsoc, in rk818_bat_zero_algorithm()
1913 int mod = di->dsoc % 10; in rk818_bat_dump_time_table()
1914 int index = di->dsoc / 10; in rk818_bat_dump_time_table()
1997 di->dsoc, di->rsoc, di->voltage_avg, di->current_avg, in rk818_bat_debug_info()
1998 di->remain_cap, di->fcc, di->rsoc - di->dsoc, in rk818_bat_debug_info()
2097 if (di->dsoc < 100) { in rk818_bat_finish_algorithm()
2100 finish_current = (di->rsoc - di->dsoc) > FINISH_MAX_SOC_DELAY ? in rk818_bat_finish_algorithm()
2107 di->dsoc += plus_soc; in rk818_bat_finish_algorithm()
2114 __func__, di->dsoc, soc_sec, finish_sec, plus_soc, rest); in rk818_bat_finish_algorithm()
2123 if (tmp_soc == di->dsoc) in rk818_bat_calc_smooth_dischrg()
2126 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk818_bat_calc_smooth_dischrg()
2128 if (di->dsoc < di->rsoc) { in rk818_bat_calc_smooth_dischrg()
2130 if (tmp_soc == di->dsoc) { in rk818_bat_calc_smooth_dischrg()
2131 sm_delta_dsoc = di->sm_chrg_dsoc - di->dsoc * 1000; in rk818_bat_calc_smooth_dischrg()
2132 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_calc_smooth_dischrg()
2140 if (di->dsoc > di->rsoc) { in rk818_bat_calc_smooth_dischrg()
2142 if (tmp_soc == di->dsoc) { in rk818_bat_calc_smooth_dischrg()
2143 zero_delta_dsoc = di->zero_dsoc - ((di->dsoc + 1) * in rk818_bat_calc_smooth_dischrg()
2145 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_calc_smooth_dischrg()
2153 if ((di->sm_dischrg_dsoc) > ((di->dsoc + 1) * 1000 - MIN_ACCURACY)) { in rk818_bat_calc_smooth_dischrg()
2155 di->sm_dischrg_dsoc = (di->dsoc + 1) * in rk818_bat_calc_smooth_dischrg()
2161 if (tmp_soc != di->dsoc) { in rk818_bat_calc_smooth_dischrg()
2162 di->dsoc = tmp_soc; in rk818_bat_calc_smooth_dischrg()
2163 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_calc_smooth_dischrg()
2167 __func__, di->dsoc, di->rsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc, in rk818_bat_calc_smooth_dischrg()
2177 if (tmp_soc == di->dsoc) in rk818_bat_calc_smooth_chrg()
2180 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk818_bat_calc_smooth_chrg()
2182 if (di->dsoc > di->rsoc) { in rk818_bat_calc_smooth_chrg()
2185 if (tmp_soc == di->dsoc) { in rk818_bat_calc_smooth_chrg()
2187 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk818_bat_calc_smooth_chrg()
2188 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - in rk818_bat_calc_smooth_chrg()
2197 if (tmp_soc == di->dsoc) { in rk818_bat_calc_smooth_chrg()
2199 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk818_bat_calc_smooth_chrg()
2200 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_calc_smooth_chrg()
2208 if (di->sm_chrg_dsoc < di->dsoc * 1000) { in rk818_bat_calc_smooth_chrg()
2210 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_calc_smooth_chrg()
2215 if (tmp_soc != di->dsoc) { in rk818_bat_calc_smooth_chrg()
2216 di->dsoc = tmp_soc; in rk818_bat_calc_smooth_chrg()
2217 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_calc_smooth_chrg()
2221 __func__, di->dsoc, di->rsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc, in rk818_bat_calc_smooth_chrg()
2233 if ((di->dsoc == 99) && (di->chrg_status == CC_OR_CV) && in rk818_bat_smooth_algorithm()
2238 (di->chrg_status == CC_OR_CV) && (di->dsoc >= TERM_CHRG_DSOC)) { in rk818_bat_smooth_algorithm()
2244 (di->dsoc < TERM_CHRG_DSOC) && in rk818_bat_smooth_algorithm()
2245 ((di->rsoc - di->dsoc) >= SIMULATE_CHRG_INTV)) { in rk818_bat_smooth_algorithm()
2265 if ((di->dsoc == di->rsoc) && (abs(di->sm_linek) != 1000) && in rk818_bat_smooth_algorithm()
2283 di->chrg_status == CC_OR_CV && di->dsoc >= 100)) { in rk818_bat_smooth_algorithm()
2286 di->dsoc = di->rsoc; in rk818_bat_smooth_algorithm()
2292 di->sm_chrg_dsoc = di->dsoc * 1000; in rk818_bat_smooth_algorithm()
2293 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk818_bat_smooth_algorithm()
2462 __func__, di->dsoc, di->rsoc, di->voltage_relax, in rk818_bat_sleep_dischrg()
2473 if (di->dsoc <= di->rsoc) { in rk818_bat_sleep_dischrg()
2476 tgt_dsoc = di->dsoc - sleep_soc; in rk818_bat_sleep_dischrg()
2479 di->rsoc, di->dsoc, sleep_soc); in rk818_bat_sleep_dischrg()
2480 if (di->dsoc < 5) { in rk818_bat_sleep_dischrg()
2481 di->dsoc--; in rk818_bat_sleep_dischrg()
2482 } else if ((tgt_dsoc < 5) && (di->dsoc >= 5)) { in rk818_bat_sleep_dischrg()
2483 if (di->dsoc == 5) in rk818_bat_sleep_dischrg()
2484 di->dsoc--; in rk818_bat_sleep_dischrg()
2486 di->dsoc = 5; in rk818_bat_sleep_dischrg()
2488 di->dsoc = tgt_dsoc; in rk818_bat_sleep_dischrg()
2498 gap_soc = di->dsoc - di->rsoc; in rk818_bat_sleep_dischrg()
2501 di->rsoc, di->dsoc, sleep_soc); in rk818_bat_sleep_dischrg()
2504 di->dsoc -= (sleep_soc * 2); in rk818_bat_sleep_dischrg()
2506 di->dsoc -= sleep_soc; in rk818_bat_sleep_dischrg()
2508 di->dsoc = di->rsoc; in rk818_bat_sleep_dischrg()
2516 di->dsoc = 0; in rk818_bat_sleep_dischrg()
2518 BAT_INFO("low power sleeping, shutdown... %d\n", di->dsoc); in rk818_bat_sleep_dischrg()
2521 if (ocv_soc_updated && sleep_soc && (di->rsoc - di->dsoc) < 5 && in rk818_bat_sleep_dischrg()
2522 di->dsoc < 40) { in rk818_bat_sleep_dischrg()
2523 di->dsoc--; in rk818_bat_sleep_dischrg()
2524 BAT_INFO("low power sleeping, reserved... %d\n", di->dsoc); in rk818_bat_sleep_dischrg()
2527 if (di->dsoc <= 0) { in rk818_bat_sleep_dischrg()
2528 di->dsoc = 0; in rk818_bat_sleep_dischrg()
2530 BAT_INFO("sleep dsoc is %d...\n", di->dsoc); in rk818_bat_sleep_dischrg()
2534 __func__, di->dsoc, di->rsoc, di->sleep_sum_cap); in rk818_bat_sleep_dischrg()
2544 if (di->dsoc > 100) in rk818_bat_power_supply_changed()
2545 di->dsoc = 100; in rk818_bat_power_supply_changed()
2546 else if (di->dsoc < 0) in rk818_bat_power_supply_changed()
2547 di->dsoc = 0; in rk818_bat_power_supply_changed()
2549 if (di->dsoc == old_soc) in rk818_bat_power_supply_changed()
2555 old_soc = di->dsoc; in rk818_bat_power_supply_changed()
2556 di->last_dsoc = di->dsoc; in rk818_bat_power_supply_changed()
2560 di->dsoc, di->rsoc, di->voltage_avg, di->voltage_ocv, in rk818_bat_power_supply_changed()
2580 BAT_INFO("reboot: %d --> %d\n", di->dsoc, di->rsoc); in rk818_bat_check_reboot()
2581 di->dsoc = di->rsoc; in rk818_bat_check_reboot()
2582 if (di->dsoc > 100) in rk818_bat_check_reboot()
2583 di->dsoc = 100; in rk818_bat_check_reboot()
2584 else if (di->dsoc < 0) in rk818_bat_check_reboot()
2585 di->dsoc = 0; in rk818_bat_check_reboot()
2586 rk818_bat_save_dsoc(di, di->dsoc); in rk818_bat_check_reboot()
2894 if (di->dsoc < 100) { in rk818_bat_init_dsoc_algorithm()
2895 di->dsoc++; in rk818_bat_init_dsoc_algorithm()
2899 rest, di->dsoc); in rk818_bat_init_dsoc_algorithm()
2912 if (di->dsoc < di->rsoc) { in rk818_bat_init_dsoc_algorithm()
2913 di->dsoc++; in rk818_bat_init_dsoc_algorithm()
2916 rest, di->dsoc); in rk818_bat_init_dsoc_algorithm()
2922 if (di->dsoc > di->rsoc) { in rk818_bat_init_dsoc_algorithm()
2923 di->dsoc--; in rk818_bat_init_dsoc_algorithm()
2926 rest, di->dsoc); in rk818_bat_init_dsoc_algorithm()
2935 if (di->dsoc >= 100) in rk818_bat_init_dsoc_algorithm()
2936 di->dsoc = 100; in rk818_bat_init_dsoc_algorithm()
2937 else if (di->dsoc <= 0) in rk818_bat_init_dsoc_algorithm()
2938 di->dsoc = 0; in rk818_bat_init_dsoc_algorithm()
2970 if (tmp_soc == di->dsoc) in rk818_bat_save_algo_rest()
2971 zero_rest = di->zero_dsoc - ((di->dsoc + 1) * 1000 - in rk818_bat_save_algo_rest()
2976 if (tmp_soc == di->dsoc) in rk818_bat_save_algo_rest()
2977 sm_chrg_rest = di->sm_chrg_dsoc - di->dsoc * 1000; in rk818_bat_save_algo_rest()
2981 if (tmp_soc == di->dsoc) in rk818_bat_save_algo_rest()
2982 sm_dischrg_rest = di->sm_dischrg_dsoc - ((di->dsoc + 1) * 1000 - in rk818_bat_save_algo_rest()
2992 if ((rk818_bat_chrg_online(di) && (di->dsoc > di->rsoc)) || in rk818_bat_save_algo_rest()
2993 (!rk818_bat_chrg_online(di) && (di->dsoc < di->rsoc)) || in rk818_bat_save_algo_rest()
2994 (di->dsoc == di->rsoc)) { in rk818_bat_save_algo_rest()
3005 if (rk818_bat_chrg_online(di) && (di->dsoc < di->rsoc)) in rk818_bat_save_algo_rest()
3007 else if (!rk818_bat_chrg_online(di) && (di->dsoc > di->rsoc)) in rk818_bat_save_algo_rest()
3046 rk818_bat_save_dsoc(di, di->dsoc); in rk818_bat_save_data()
3073 di->dsoc = 0; in rk818_vb_low_irq()
3076 di->voltage_avg, di->current_avg, di->dsoc); in rk818_vb_low_irq()
3198 di->dbg_pwr_dsoc = di->dsoc; in rk818_bat_init_fg()
3205 di->voltage_relax, di->dsoc, di->rsoc, di->current_avg); in rk818_bat_init_fg()
3510 di->dsoc, di->rsoc, di->current_avg, in rk818_battery_suspend()
3545 di->dsoc, di->rsoc, di->current_avg, di->voltage_avg, in rk818_battery_resume()
3592 di->dsoc, di->rsoc, di->current_avg, di->voltage_avg, in rk818_battery_shutdown()