aboutsummaryrefslogtreecommitdiff
path: root/drivers/power/supply/generic-adc-battery.c
diff options
context:
space:
mode:
authorGravatar Sebastian Reichel <sre@kernel.org> 2023-03-17 23:57:03 +0100
committerGravatar Sebastian Reichel <sre@kernel.org> 2023-03-29 22:38:57 +0200
commit33088c0513818d1d4cf2c510fd67456fd577d887 (patch)
treebc5691861c4deccab2109ec7e75d0dde630328b9 /drivers/power/supply/generic-adc-battery.c
parentpower: supply: generic-adc-battery: simplify read_channel logic (diff)
downloadlinux-33088c0513818d1d4cf2c510fd67456fd577d887.tar.gz
linux-33088c0513818d1d4cf2c510fd67456fd577d887.tar.bz2
linux-33088c0513818d1d4cf2c510fd67456fd577d887.zip
power: supply: generic-adc-battery: add temperature support
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>
Diffstat (limited to 'drivers/power/supply/generic-adc-battery.c')
-rw-r--r--drivers/power/supply/generic-adc-battery.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/power/supply/generic-adc-battery.c b/drivers/power/supply/generic-adc-battery.c
index 4811e72df8cd..0124d8d51af7 100644
--- a/drivers/power/supply/generic-adc-battery.c
+++ b/drivers/power/supply/generic-adc-battery.c
@@ -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;
}