Lines Matching refs:dsoc
211 int dsoc; member
972 di->dsoc--; in rk816_bat_lowpwr_check()
974 di->dsoc, di->current_avg); in rk816_bat_lowpwr_check()
982 __func__, base2sec(time), di->dsoc, in rk816_bat_lowpwr_check()
1138 if (di->dsoc < 1) in rk816_get_capacity_leve()
1140 else if (di->dsoc <= 20) in rk816_get_capacity_leve()
1142 else if (di->dsoc <= 70) in rk816_get_capacity_leve()
1144 else if (di->dsoc <= 90) in rk816_get_capacity_leve()
1192 val->intval = di->dsoc; in rk816_battery_get_property()
1667 if (di->dsoc == 100 && rk816_bat_chrg_online(di)) in rk816_bat_set_chrg_param()
1957 di->dsoc = di->rsoc; in rk816_bat_first_pwron()
1961 di->dsoc, di->rsoc, di->nac, di->fcc, ocv_vol); in rk816_bat_first_pwron()
2021 di->dsoc = pre_soc; in rk816_bat_not_first_pwron()
2027 di->dsoc, di->nac, rk816_bat_get_avg_voltage(di), in rk816_bat_not_first_pwron()
2441 delta = abs(di->dsoc - di->rsoc); in rk816_bat_calc_sm_linek()
2445 if (di->dsoc < di->rsoc) in rk816_bat_calc_sm_linek()
2447 else if (di->dsoc > di->rsoc) in rk816_bat_calc_sm_linek()
2451 di->dbg_meet_soc = (di->dsoc >= di->rsoc) ? in rk816_bat_calc_sm_linek()
2452 (di->dsoc + diff) : (di->rsoc + diff); in rk816_bat_calc_sm_linek()
2454 if (di->dsoc < di->rsoc) in rk816_bat_calc_sm_linek()
2456 else if (di->dsoc > di->rsoc) in rk816_bat_calc_sm_linek()
2460 di->dbg_meet_soc = (di->dsoc >= di->rsoc) ? in rk816_bat_calc_sm_linek()
2461 (di->dsoc - diff) : (di->rsoc - diff); in rk816_bat_calc_sm_linek()
2466 di->dbg_calc_dsoc = di->dsoc; in rk816_bat_calc_sm_linek()
2481 if ((abs(di->current_avg) < 400) && (di->dsoc > 5)) in rk816_bat_calc_zero_linek()
2522 if ((xsoc <= 30) && (di->dsoc >= di->pdata->zero_reserve_dsoc)) in rk816_bat_calc_zero_linek()
2527 if ((di->dsoc <= 1) && (xsoc > 0)) { in rk816_bat_calc_zero_linek()
2536 (xsoc - di->dsoc >= MIN_ZERO_GAP_XSOC3) && in rk816_bat_calc_zero_linek()
2537 (di->dsoc <= 10) && (di->zero_linek < 300)) { in rk816_bat_calc_zero_linek()
2541 } else if ((xsoc - di->dsoc >= min_gap_xsoc) || in rk816_bat_calc_zero_linek()
2542 ((xsoc - di->dsoc >= MIN_ZERO_GAP_XSOC2) && in rk816_bat_calc_zero_linek()
2543 (di->dsoc <= 10) && (xsoc > 15))) { in rk816_bat_calc_zero_linek()
2545 di->dsoc >= di->pdata->zero_reserve_dsoc) in rk816_bat_calc_zero_linek()
2547 else if (xsoc - di->dsoc >= 2 * min_gap_xsoc) in rk816_bat_calc_zero_linek()
2549 else if (xsoc - di->dsoc >= 3 + min_gap_xsoc) in rk816_bat_calc_zero_linek()
2555 } else if ((di->zero_linek > 1800) && (di->dsoc > 70)) { in rk816_bat_calc_zero_linek()
2563 } else if ((di->dsoc <= 15 && di->dsoc > 5) && in rk816_bat_calc_zero_linek()
2566 if ((xsoc - di->dsoc) >= min_gap_xsoc) in rk816_bat_calc_zero_linek()
2573 } else if ((di->zero_linek < 1000) && (di->dsoc >= 5)) { in rk816_bat_calc_zero_linek()
2574 if ((xsoc - di->dsoc) < min_gap_xsoc) { in rk816_bat_calc_zero_linek()
2585 } else if ((di->zero_linek < 1000) && (di->dsoc <= 5)) { in rk816_bat_calc_zero_linek()
2586 if ((xsoc - di->dsoc) <= 3) in rk816_bat_calc_zero_linek()
2600 di->dsoc--; in rk816_bat_calc_zero_linek()
2601 di->zero_dsoc = (di->dsoc + 1) * 1000 - in rk816_bat_calc_zero_linek()
2610 BAT_INFO("voltage extreme low...soc:%d->0\n", di->dsoc); in rk816_bat_calc_zero_linek()
2612 di->dsoc = 0; in rk816_bat_calc_zero_linek()
2620 org_linek, di->zero_linek, di->dsoc, xsoc, di->rsoc, in rk816_bat_calc_zero_linek()
2637 if (tmp_soc != di->dsoc) in rk816_bat_smooth_algo_prepare()
2638 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_smooth_algo_prepare()
2641 if (tmp_soc != di->dsoc) in rk816_bat_smooth_algo_prepare()
2643 (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_smooth_algo_prepare()
2646 __func__, tmp_soc, di->dsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc); in rk816_bat_smooth_algo_prepare()
2657 if (tmp_dsoc != di->dsoc) in rk816_bat_zero_algo_prepare()
2658 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_zero_algo_prepare()
2670 if (tmp_soc == di->dsoc) in rk816_bat_calc_zero_algorithm()
2673 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk816_bat_calc_zero_algorithm()
2675 if (di->dsoc < di->rsoc) { in rk816_bat_calc_zero_algorithm()
2678 if (tmp_soc == di->dsoc) { in rk816_bat_calc_zero_algorithm()
2679 sm_delta_dsoc = di->sm_chrg_dsoc - di->dsoc * 1000; in rk816_bat_calc_zero_algorithm()
2680 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_calc_zero_algorithm()
2687 if (di->dsoc > di->rsoc) { in rk816_bat_calc_zero_algorithm()
2690 if (tmp_soc == di->dsoc) { in rk816_bat_calc_zero_algorithm()
2692 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk816_bat_calc_zero_algorithm()
2693 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - in rk816_bat_calc_zero_algorithm()
2701 if (di->zero_dsoc > (di->dsoc + 1) * 1000 - MIN_ACCURACY) { in rk816_bat_calc_zero_algorithm()
2703 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_calc_zero_algorithm()
2708 if (tmp_soc != di->dsoc) { in rk816_bat_calc_zero_algorithm()
2710 if ((di->dsoc - tmp_soc) > 1) { in rk816_bat_calc_zero_algorithm()
2711 di->dsoc--; in rk816_bat_calc_zero_algorithm()
2712 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_calc_zero_algorithm()
2715 di->dsoc = tmp_soc; in rk816_bat_calc_zero_algorithm()
2722 di->zero_dsoc, di->dsoc, di->rsoc, tmp_soc); in rk816_bat_calc_zero_algorithm()
2738 di->zero_linek, di->zero_dsoc, di->dsoc, di->rsoc, in rk816_bat_zero_algorithm()
2759 int mod = di->dsoc % 10; in rk816_bat_dump_time_table()
2760 int index = di->dsoc / 10; in rk816_bat_dump_time_table()
2851 di->dsoc, di->rsoc, di->voltage_avg, di->current_avg, in rk816_bat_debug_info()
2852 di->remain_cap, di->fcc, di->dsoc - di->rsoc, in rk816_bat_debug_info()
2960 if (di->dsoc < 100) { in rk816_bat_finish_algorithm()
2964 finish_current = (di->rsoc - di->dsoc) > FINISH_MAX_SOC_DELAY ? in rk816_bat_finish_algorithm()
2971 di->dsoc += plus_soc; in rk816_bat_finish_algorithm()
2978 __func__, di->dsoc, soc_sec, finish_sec, plus_soc, rest); in rk816_bat_finish_algorithm()
2987 if (tmp_soc == di->dsoc) in rk816_bat_calc_smooth_dischrg()
2990 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk816_bat_calc_smooth_dischrg()
2992 if (di->dsoc < di->rsoc) { in rk816_bat_calc_smooth_dischrg()
2994 if (tmp_soc == di->dsoc) { in rk816_bat_calc_smooth_dischrg()
2995 sm_delta_dsoc = di->sm_chrg_dsoc - di->dsoc * 1000; in rk816_bat_calc_smooth_dischrg()
2996 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_calc_smooth_dischrg()
3004 if (di->dsoc > di->rsoc) { in rk816_bat_calc_smooth_dischrg()
3006 if (tmp_soc == di->dsoc) { in rk816_bat_calc_smooth_dischrg()
3007 zero_delta_dsoc = di->zero_dsoc - ((di->dsoc + 1) * in rk816_bat_calc_smooth_dischrg()
3009 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_calc_smooth_dischrg()
3017 if ((di->sm_dischrg_dsoc) > ((di->dsoc + 1) * 1000 - MIN_ACCURACY)) { in rk816_bat_calc_smooth_dischrg()
3019 di->sm_dischrg_dsoc = (di->dsoc + 1) * in rk816_bat_calc_smooth_dischrg()
3025 if (tmp_soc != di->dsoc) { in rk816_bat_calc_smooth_dischrg()
3026 di->dsoc = tmp_soc; in rk816_bat_calc_smooth_dischrg()
3027 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_calc_smooth_dischrg()
3031 __func__, di->dsoc, di->rsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc, in rk816_bat_calc_smooth_dischrg()
3040 if (tmp_soc == di->dsoc) in rk816_bat_calc_smooth_chrg()
3043 DBG("<%s>. enter: dsoc=%d, rsoc=%d\n", __func__, di->dsoc, di->rsoc); in rk816_bat_calc_smooth_chrg()
3045 if (di->dsoc > di->rsoc) { in rk816_bat_calc_smooth_chrg()
3048 if (tmp_soc == di->dsoc) { in rk816_bat_calc_smooth_chrg()
3050 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk816_bat_calc_smooth_chrg()
3051 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - in rk816_bat_calc_smooth_chrg()
3060 if (tmp_soc == di->dsoc) { in rk816_bat_calc_smooth_chrg()
3062 ((di->dsoc + 1) * 1000 - MIN_ACCURACY); in rk816_bat_calc_smooth_chrg()
3063 di->zero_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_calc_smooth_chrg()
3071 if (di->sm_chrg_dsoc < di->dsoc * 1000) { in rk816_bat_calc_smooth_chrg()
3073 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_calc_smooth_chrg()
3078 if (tmp_soc != di->dsoc) { in rk816_bat_calc_smooth_chrg()
3079 di->dsoc = tmp_soc; in rk816_bat_calc_smooth_chrg()
3080 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_calc_smooth_chrg()
3084 __func__, di->dsoc, di->rsoc, di->sm_dischrg_dsoc, di->sm_chrg_dsoc, in rk816_bat_calc_smooth_chrg()
3096 if ((di->dsoc == 99) && (di->chrg_status == CC_OR_CV) && in rk816_bat_smooth_algorithm()
3101 (di->chrg_status == CC_OR_CV) && (di->dsoc >= TERM_CHRG_DSOC)) { in rk816_bat_smooth_algorithm()
3107 (di->dsoc < TERM_CHRG_DSOC) && in rk816_bat_smooth_algorithm()
3108 ((di->rsoc - di->dsoc) >= SIMULATE_CHRG_INTV)) { in rk816_bat_smooth_algorithm()
3128 if ((di->dsoc == di->rsoc) && (abs(di->sm_linek) != 1000) && in rk816_bat_smooth_algorithm()
3146 di->chrg_status == CC_OR_CV && di->dsoc >= 100)) { in rk816_bat_smooth_algorithm()
3149 di->dsoc = di->rsoc; in rk816_bat_smooth_algorithm()
3155 di->sm_chrg_dsoc = di->dsoc * 1000; in rk816_bat_smooth_algorithm()
3156 di->sm_dischrg_dsoc = (di->dsoc + 1) * 1000 - MIN_ACCURACY; in rk816_bat_smooth_algorithm()
3319 __func__, di->dsoc, di->rsoc, di->voltage_relax, in rk816_bat_sleep_dischrg()
3330 if (di->dsoc <= di->rsoc) { in rk816_bat_sleep_dischrg()
3333 tgt_dsoc = di->dsoc - sleep_soc; in rk816_bat_sleep_dischrg()
3336 di->rsoc, di->dsoc, sleep_soc); in rk816_bat_sleep_dischrg()
3337 if (di->dsoc < 5) { in rk816_bat_sleep_dischrg()
3338 di->dsoc--; in rk816_bat_sleep_dischrg()
3339 } else if ((tgt_dsoc < 5) && (di->dsoc >= 5)) { in rk816_bat_sleep_dischrg()
3340 if (di->dsoc == 5) in rk816_bat_sleep_dischrg()
3341 di->dsoc--; in rk816_bat_sleep_dischrg()
3343 di->dsoc = 5; in rk816_bat_sleep_dischrg()
3345 di->dsoc = tgt_dsoc; in rk816_bat_sleep_dischrg()
3355 gap_soc = di->dsoc - di->rsoc; in rk816_bat_sleep_dischrg()
3358 di->rsoc, di->dsoc, sleep_soc); in rk816_bat_sleep_dischrg()
3361 di->dsoc -= (sleep_soc * 2); in rk816_bat_sleep_dischrg()
3363 di->dsoc -= sleep_soc; in rk816_bat_sleep_dischrg()
3365 di->dsoc = di->rsoc; in rk816_bat_sleep_dischrg()
3373 di->dsoc = 0; in rk816_bat_sleep_dischrg()
3375 BAT_INFO("low power sleeping, shutdown... %d\n", di->dsoc); in rk816_bat_sleep_dischrg()
3378 if (ocv_soc_updated && sleep_soc && (di->rsoc - di->dsoc) < 5 && in rk816_bat_sleep_dischrg()
3379 di->dsoc < 40) { in rk816_bat_sleep_dischrg()
3380 di->dsoc--; in rk816_bat_sleep_dischrg()
3381 BAT_INFO("low power sleeping, reserved... %d\n", di->dsoc); in rk816_bat_sleep_dischrg()
3384 if (di->dsoc <= 0) { in rk816_bat_sleep_dischrg()
3385 di->dsoc = 0; in rk816_bat_sleep_dischrg()
3387 BAT_INFO("sleep dsoc is %d...\n", di->dsoc); in rk816_bat_sleep_dischrg()
3391 __func__, di->dsoc, di->rsoc, di->sleep_sum_cap); in rk816_bat_sleep_dischrg()
3402 if (di->dsoc > 100) in rk816_bat_power_supply_changed()
3403 di->dsoc = 100; in rk816_bat_power_supply_changed()
3404 else if (di->dsoc < 0) in rk816_bat_power_supply_changed()
3405 di->dsoc = 0; in rk816_bat_power_supply_changed()
3409 if (di->dsoc == 100) in rk816_bat_power_supply_changed()
3416 if (di->dsoc == old_soc) in rk816_bat_power_supply_changed()
3423 old_soc = di->dsoc; in rk816_bat_power_supply_changed()
3424 di->last_dsoc = di->dsoc; in rk816_bat_power_supply_changed()
3427 di->dsoc, di->rsoc, di->voltage_avg, di->voltage_ocv, in rk816_bat_power_supply_changed()
3446 BAT_INFO("reboot: %d --> %d\n", di->dsoc, di->rsoc); in rk816_bat_check_reboot()
3447 di->dsoc = di->rsoc; in rk816_bat_check_reboot()
3448 if (di->dsoc > 100) in rk816_bat_check_reboot()
3449 di->dsoc = 100; in rk816_bat_check_reboot()
3450 else if (di->dsoc < 0) in rk816_bat_check_reboot()
3451 di->dsoc = 0; in rk816_bat_check_reboot()
3452 rk816_bat_save_dsoc(di, di->dsoc); in rk816_bat_check_reboot()
3571 if (di->dsoc < 100) { in rk816_bat_init_dsoc_algorithm()
3572 di->dsoc++; in rk816_bat_init_dsoc_algorithm()
3575 rest, di->dsoc); in rk816_bat_init_dsoc_algorithm()
3589 if (di->dsoc < di->rsoc) { in rk816_bat_init_dsoc_algorithm()
3590 di->dsoc++; in rk816_bat_init_dsoc_algorithm()
3593 rest, di->dsoc); in rk816_bat_init_dsoc_algorithm()
3599 if (di->dsoc > di->rsoc) { in rk816_bat_init_dsoc_algorithm()
3600 di->dsoc--; in rk816_bat_init_dsoc_algorithm()
3603 rest, di->dsoc); in rk816_bat_init_dsoc_algorithm()
3612 if (di->dsoc >= 100) in rk816_bat_init_dsoc_algorithm()
3613 di->dsoc = 100; in rk816_bat_init_dsoc_algorithm()
3614 else if (di->dsoc <= 0) in rk816_bat_init_dsoc_algorithm()
3615 di->dsoc = 0; in rk816_bat_init_dsoc_algorithm()
3647 if (tmp_soc == di->dsoc) in rk816_bat_save_algo_rest()
3648 zero_rest = di->zero_dsoc - ((di->dsoc + 1) * 1000 - in rk816_bat_save_algo_rest()
3653 if (tmp_soc == di->dsoc) in rk816_bat_save_algo_rest()
3654 sm_chrg_rest = di->sm_chrg_dsoc - di->dsoc * 1000; in rk816_bat_save_algo_rest()
3658 if (tmp_soc == di->dsoc) in rk816_bat_save_algo_rest()
3659 sm_dischrg_rest = di->sm_dischrg_dsoc - ((di->dsoc + 1) * 1000 - in rk816_bat_save_algo_rest()
3670 if ((rk816_bat_chrg_online(di) && (di->dsoc > di->rsoc)) || in rk816_bat_save_algo_rest()
3671 (!rk816_bat_chrg_online(di) && (di->dsoc < di->rsoc)) || in rk816_bat_save_algo_rest()
3672 (di->dsoc == di->rsoc)) { in rk816_bat_save_algo_rest()
3683 if (rk816_bat_chrg_online(di) && (di->dsoc < di->rsoc)) in rk816_bat_save_algo_rest()
3685 else if (!rk816_bat_chrg_online(di) && (di->dsoc > di->rsoc)) in rk816_bat_save_algo_rest()
3723 rk816_bat_save_dsoc(di, di->dsoc); in rk816_bat_save_data()
4022 di->dsoc = 0; in rk816_vb_low_irq()
4446 di->dbg_pwr_dsoc = di->dsoc; in rk816_bat_init_fg()
4453 di->voltage_relax, di->dsoc, di->rsoc, di->current_avg); in rk816_bat_init_fg()
5045 di->dsoc, di->rsoc, di->current_avg, in rk816_battery_suspend()
5083 di->dsoc, di->rsoc, di->current_avg, di->voltage_avg, in rk816_battery_resume()
5141 di->dsoc, di->rsoc, di->current_avg, di->voltage_avg, in rk816_battery_shutdown()