summaryrefslogtreecommitdiffstats
path: root/drivers/power/supply/bq24190_charger.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2022-02-06 19:35:40 +0100
committerSebastian Reichel <sebastian.reichel@collabora.com>2022-02-11 19:08:34 +0100
commit73633ccbba38b9e7bc1ac0527f52cb421beb68f1 (patch)
treed2ec9c95858d6c026f365aa7e392f127e9715c56 /drivers/power/supply/bq24190_charger.c
parenta314fae312639876ff00788c6b8a5dca55be3190 (diff)
downloadlinux-73633ccbba38b9e7bc1ac0527f52cb421beb68f1.tar.bz2
power: supply: bq24190_charger: Store ichg-max and vreg-max in bq24190_dev_info
Store ichg-max and vreg-max in bq24190_dev_info once from bq24190_get_config() and drop the bq24190_charger_get_current_max() and bq24190_charger_get_voltage_max() helpers. This is a preparation patch for honoring the constant_charge_current_max_ua and constant_charge_voltage_max_uv values from power_supply_get_battery_info(). Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/power/supply/bq24190_charger.c')
-rw-r--r--drivers/power/supply/bq24190_charger.c34
1 files changed, 13 insertions, 21 deletions
diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
index 83873119ba24..cb36ccbb731a 100644
--- a/drivers/power/supply/bq24190_charger.c
+++ b/drivers/power/supply/bq24190_charger.c
@@ -165,6 +165,8 @@ struct bq24190_dev_info {
u16 sys_min;
u16 iprechg;
u16 iterm;
+ u32 ichg_max;
+ u32 vreg_max;
struct mutex f_reg_lock;
u8 f_reg;
u8 ss_reg;
@@ -977,15 +979,6 @@ static int bq24190_charger_get_current(struct bq24190_dev_info *bdi,
return 0;
}
-static int bq24190_charger_get_current_max(struct bq24190_dev_info *bdi,
- union power_supply_propval *val)
-{
- int idx = ARRAY_SIZE(bq24190_ccc_ichg_values) - 1;
-
- val->intval = bq24190_ccc_ichg_values[idx];
- return 0;
-}
-
static int bq24190_charger_set_current(struct bq24190_dev_info *bdi,
const union power_supply_propval *val)
{
@@ -1024,15 +1017,6 @@ static int bq24190_charger_get_voltage(struct bq24190_dev_info *bdi,
return 0;
}
-static int bq24190_charger_get_voltage_max(struct bq24190_dev_info *bdi,
- union power_supply_propval *val)
-{
- int idx = ARRAY_SIZE(bq24190_cvc_vreg_values) - 1;
-
- val->intval = bq24190_cvc_vreg_values[idx];
- return 0;
-}
-
static int bq24190_charger_set_voltage(struct bq24190_dev_info *bdi,
const union power_supply_propval *val)
{
@@ -1109,13 +1093,15 @@ static int bq24190_charger_get_property(struct power_supply *psy,
ret = bq24190_charger_get_current(bdi, val);
break;
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:
- ret = bq24190_charger_get_current_max(bdi, val);
+ val->intval = bdi->ichg_max;
+ ret = 0;
break;
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE:
ret = bq24190_charger_get_voltage(bdi, val);
break;
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX:
- ret = bq24190_charger_get_voltage_max(bdi, val);
+ val->intval = bdi->vreg_max;
+ ret = 0;
break;
case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT:
ret = bq24190_charger_get_iinlimit(bdi, val);
@@ -1682,7 +1668,13 @@ static int bq24190_get_config(struct bq24190_dev_info *bdi)
{
const char * const s = "ti,system-minimum-microvolt";
struct power_supply_battery_info *info;
- int v;
+ int v, idx;
+
+ idx = ARRAY_SIZE(bq24190_ccc_ichg_values) - 1;
+ bdi->ichg_max = bq24190_ccc_ichg_values[idx];
+
+ idx = ARRAY_SIZE(bq24190_cvc_vreg_values) - 1;
+ bdi->vreg_max = bq24190_cvc_vreg_values[idx];
if (device_property_read_u32(bdi->dev, s, &v) == 0) {
v /= 1000;