diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-10-07 11:48:30 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-10-07 11:48:30 -0700 |
commit | 11c747e5a1f908e9e3a868461ba9992e5396402a (patch) | |
tree | 5ac9d34fef3eed50fb75c7fe40ffb5a361dadcb0 /drivers/power/supply/bq25890_charger.c | |
parent | 83da5ec6b7fccd37547477effa6a4b1162c1acf1 (diff) | |
parent | 189a2aaef9cbee4cd7c3d1bd142f790cc14c598e (diff) | |
download | linux-11c747e5a1f908e9e3a868461ba9992e5396402a.tar.bz2 |
Merge tag 'for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
Pull power supply and reset updates from Sebastian Reichel:
- new maintenance charging documentation
- mt6370: new charger driver
- bq25890: support input current limit
- added Qualcomm PMK8350 PON support
- misc minor fixes
* tag 'for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (22 commits)
power: supply: ab8500: remove unused static local variable
power: supply: mt6370: Fix return value check in mt6370_chg_probe()
power: supply: ab8500: Remove unused struct ab8500_chargalg_sysfs_entry
power: supply: mt6370: uses IIO interfaces, depends on IIO
power: supply: max1721x: Fix spelling mistake "Gauage" -> "Gauge"
power: supply: mt6370: Add MediaTek MT6370 charger driver
dt-bindings: power: supply: Add MediaTek MT6370 Charger
lib: add linear range index macro
power: supply: bq25890: Fix enum conversion in bq25890_power_supply_set_property()
power: supply: bq27xxx: fix NULL vs 0 warnings
power: supply: bq27xxx: fix __be16 warnings
power: supply: bq25890: Add support for setting IINLIM
power: supply: bq25890: Disable PUMPX_EN on errors
power: supply: Fix repeated word in comments
power: supply: adp5061: show unknown capacity_level as text
power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()
power: supply: tps65217: Fix comments typo
power: reset: qcom-pon: add support for qcom,pmk8350-pon compatible string
dt-bindings: power: reset: qcom-pon: Add new compatible "qcom,pmk8350-pon"
power: supply: cw2015: Use device managed API to simplify the code
...
Diffstat (limited to 'drivers/power/supply/bq25890_charger.c')
-rw-r--r-- | drivers/power/supply/bq25890_charger.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c index 06ea7399d151..6020b58c641d 100644 --- a/drivers/power/supply/bq25890_charger.c +++ b/drivers/power/supply/bq25890_charger.c @@ -613,6 +613,33 @@ static int bq25890_power_supply_get_property(struct power_supply *psy, return 0; } +static int bq25890_power_supply_set_property(struct power_supply *psy, + enum power_supply_property psp, + const union power_supply_propval *val) +{ + struct bq25890_device *bq = power_supply_get_drvdata(psy); + u8 lval; + + switch (psp) { + case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: + lval = bq25890_find_idx(val->intval, TBL_IINLIM); + return bq25890_field_write(bq, F_IINLIM, lval); + default: + return -EINVAL; + } +} + +static int bq25890_power_supply_property_is_writeable(struct power_supply *psy, + enum power_supply_property psp) +{ + switch (psp) { + case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT: + return true; + default: + return false; + } +} + /* On the BQ25892 try to get charger-type info from our supplier */ static void bq25890_charger_external_power_changed(struct power_supply *psy) { @@ -874,6 +901,8 @@ static const struct power_supply_desc bq25890_power_supply_desc = { .properties = bq25890_power_supply_props, .num_properties = ARRAY_SIZE(bq25890_power_supply_props), .get_property = bq25890_power_supply_get_property, + .set_property = bq25890_power_supply_set_property, + .property_is_writeable = bq25890_power_supply_property_is_writeable, .external_power_changed = bq25890_charger_external_power_changed, }; @@ -946,6 +975,7 @@ static void bq25890_pump_express_work(struct work_struct *data) return; error_print: + bq25890_field_write(bq, F_PUMPX_EN, 0); dev_err(bq->dev, "Failed to request hi-voltage charging\n"); } |