power: supply: bq2415x_charger: report online status
authorSicelo A. Mhlongo <absicsz@gmail.com>
Thu, 29 Feb 2024 06:37:21 +0000 (08:37 +0200)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Fri, 1 Mar 2024 01:26:10 +0000 (02:26 +0100)
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>
drivers/power/supply/bq2415x_charger.c

index 6a4798a62588b4fbb9f86dbcfdda9cfe2cb22f59..25e28dac900deae8c3ab605f1fdab53c397c8ecb 100644 (file)
@@ -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;
        }