power: supply: ab8500: Standardize internal resistance
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 20 Nov 2021 15:53:20 +0000 (16:53 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Mon, 22 Nov 2021 16:16:25 +0000 (17:16 +0100)
The nominal internal resistance isn't used by the AB8500
charging code, instead this resistance is measured continuously,
but we anyways migrate this to the standard property in
struct power_supply_battery_info.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/ab8500-bm.h
drivers/power/supply/ab8500_bmdata.c

index b21d3a99471f596208b4c007e4d3e571fd4cc2f3..7e00f480756b60377f95d2523a351118eb8cd7c8 100644 (file)
@@ -388,7 +388,6 @@ struct ab8500_maxim_parameters {
  * @maint_b_chg_timer_h:       charge time in maintenance B state
  * @low_high_cur_lvl:          charger current in temp low/high state in mA
  * @low_high_vol_lvl:          charger voltage in temp low/high state in mV'
- * @battery_resistance:                battery inner resistance in mOhm.
  * @n_r_t_tbl_elements:                number of elements in r_to_t_tbl
  * @r_to_t_tbl:                        table containing resistance to temp points
  * @n_v_cap_tbl_elements:      number of elements in v_to_cap_tbl
@@ -411,7 +410,6 @@ struct ab8500_battery_type {
        int maint_b_chg_timer_h;
        int low_high_cur_lvl;
        int low_high_vol_lvl;
-       int battery_resistance;
        int n_temp_tbl_elements;
        const struct ab8500_res_to_temp *r_to_t_tbl;
        int n_v_cap_tbl_elements;
index 684cefccebd1003d501e5b41b1d03daae8bbcabf..981003105af69621737c8ddd7a255659dccdd678 100644 (file)
@@ -83,7 +83,6 @@ static const struct batres_vs_temp temp_to_batres_tbl_thermistor[] = {
 static struct ab8500_battery_type bat_type_thermistor_unknown = {
        .resis_high = 0,
        .resis_low = 0,
-       .battery_resistance = 300,
        .termination_curr = 200,
        .recharge_cap = 95,
        .normal_cur_lvl = 400,
@@ -204,6 +203,9 @@ int ab8500_bm_of_probe(struct power_supply *psy,
                bi->overvoltage_limit_uv = 4050000;
        }
 
+       if (bi->factory_internal_resistance_uohm < 0)
+               bi->factory_internal_resistance_uohm = 300000;
+
        if (bi->temp_min == INT_MIN)
                bi->temp_min = AB8500_TEMP_UNDER;
        if (bi->temp_max == INT_MAX)