power: supply: generic-adc-battery: add temperature support
authorSebastian Reichel <sre@kernel.org>
Fri, 17 Mar 2023 22:57:03 +0000 (23:57 +0100)
committerSebastian Reichel <sre@kernel.org>
Wed, 29 Mar 2023 20:38:57 +0000 (22:38 +0200)
Another typical thing to monitor via an ADC line is
the battery temperature.

Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
drivers/power/supply/generic-adc-battery.c

index 4811e72df8cda737db87dff7986d02d6e9fbd24b..0124d8d51af7e7a10dc59807bf0b46441f57bf4b 100644 (file)
@@ -30,6 +30,7 @@ enum gab_chan_type {
        GAB_VOLTAGE = 0,
        GAB_CURRENT,
        GAB_POWER,
+       GAB_TEMP,
        GAB_MAX_CHAN_TYPE
 };
 
@@ -40,7 +41,8 @@ enum gab_chan_type {
 static const char *const gab_chan_name[] = {
        [GAB_VOLTAGE]   = "voltage",
        [GAB_CURRENT]   = "current",
-       [GAB_POWER]             = "power",
+       [GAB_POWER]     = "power",
+       [GAB_TEMP]      = "temperature",
 };
 
 struct gab {
@@ -77,6 +79,7 @@ static const enum power_supply_property gab_dyn_props[] = {
        POWER_SUPPLY_PROP_VOLTAGE_NOW,
        POWER_SUPPLY_PROP_CURRENT_NOW,
        POWER_SUPPLY_PROP_POWER_NOW,
+       POWER_SUPPLY_PROP_TEMP,
 };
 
 static bool gab_charge_finished(struct gab *adc_bat)
@@ -115,6 +118,8 @@ static int gab_get_property(struct power_supply *psy,
                return read_channel(adc_bat, GAB_CURRENT, &val->intval);
        case POWER_SUPPLY_PROP_POWER_NOW:
                return read_channel(adc_bat, GAB_POWER, &val->intval);
+       case POWER_SUPPLY_PROP_TEMP:
+               return read_channel(adc_bat, GAB_TEMP, &val->intval);
        default:
                return -EINVAL;
        }