aboutsummaryrefslogtreecommitdiff
path: root/drivers/power/supply
diff options
context:
space:
mode:
authorGravatar Sicelo A. Mhlongo <absicsz@gmail.com> 2024-02-29 08:37:21 +0200
committerGravatar Sebastian Reichel <sebastian.reichel@collabora.com> 2024-03-01 02:26:10 +0100
commit9a451f1b028e116d037a93bf13eb8f8620994205 (patch)
treebcf508d3793fd50c46e87e875cddfef3f3190f14 /drivers/power/supply
parentpower: supply: core: move power_supply_attr_group into #ifdef block (diff)
downloadlinux-9a451f1b028e116d037a93bf13eb8f8620994205.tar.gz
linux-9a451f1b028e116d037a93bf13eb8f8620994205.tar.bz2
linux-9a451f1b028e116d037a93bf13eb8f8620994205.zip
power: supply: bq2415x_charger: report online status
Provide the Online property. This chip does not have specific flags to indicate the presence of an input voltage, but this is implied by all valid charging states. Fault states also only occur when VBUS is present, so set Online true for those as well. Signed-off-by: Sicelo A. Mhlongo <absicsz@gmail.com> Link: https://lore.kernel.org/r/20240229063721.2592069-2-absicsz@gmail.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/power/supply')
-rw-r--r--drivers/power/supply/bq2415x_charger.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/power/supply/bq2415x_charger.c b/drivers/power/supply/bq2415x_charger.c
index 6a4798a62588..25e28dac900d 100644
--- a/drivers/power/supply/bq2415x_charger.c
+++ b/drivers/power/supply/bq2415x_charger.c
@@ -991,6 +991,7 @@ static enum power_supply_property bq2415x_power_supply_props[] = {
/* TODO: maybe add more power supply properties */
POWER_SUPPLY_PROP_STATUS,
POWER_SUPPLY_PROP_MODEL_NAME,
+ POWER_SUPPLY_PROP_ONLINE,
};
static int bq2415x_power_supply_get_property(struct power_supply *psy,
@@ -1017,6 +1018,15 @@ static int bq2415x_power_supply_get_property(struct power_supply *psy,
case POWER_SUPPLY_PROP_MODEL_NAME:
val->strval = bq->model;
break;
+ case POWER_SUPPLY_PROP_ONLINE:
+ /* VBUS is present for all charging and fault states,
+ * except the 'Ready' state.
+ */
+ ret = bq2415x_exec_command(bq, BQ2415X_CHARGE_STATUS);
+ if (ret < 0)
+ return ret;
+ val->intval = ret > 0;
+ break;
default:
return -EINVAL;
}