linux/drivers/power/supply
Hans de Goede 2220af8ca6 power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier()
Some (USB) charger ICs have variants with USB D+ and D- pins to do their
own builtin charger-type detection, like e.g. the bq24190 and bq25890 and
also variants which lack this functionality, e.g. the bq24192 and bq25892.

In case the charger-type; and thus the input-current-limit detection is
done outside the charger IC then we need some way to communicate this to
the charger IC. In the past extcon was used for this, but if the external
detection does e.g. full USB PD negotiation then the extcon cable-types do
not convey enough information.

For these setups it was decided to model the external charging "brick"
and the parameters negotiated with it as a power_supply class-device
itself; and power_supply_set_input_current_limit_from_supplier() was
introduced to allow drivers to get the input-current-limit this way.

But in some cases psy drivers may want to know other properties, e.g. the
bq25892 can do "quick-charge" negotiation by pulsing its current draw,
but this should only be done if the usb_type psy-property of its supplier
is set to DCP (and device-properties indicate the board allows higher
voltages).

Instead of adding extra helper functions for each property which
a psy-driver wants to query from its supplier, refactor
power_supply_set_input_current_limit_from_supplier() into a
more generic power_supply_get_property_from_supplier() function.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2022-02-01 14:55:11 +01:00
..
88pm860x_battery.c power: supply: 88pm860x_battery: Remove unnecessary int for long long 2021-04-02 14:14:58 +02:00
88pm860x_charger.c
ab8500-bm.h power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
ab8500-chargalg.h power: supply: ab8500: Standardize CV voltage 2021-11-22 17:16:26 +01:00
ab8500_bmdata.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
ab8500_btemp.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
ab8500_chargalg.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
ab8500_charger.c power: supply: ab8500: Fix the error handling path of ab8500_charger_probe() 2022-01-03 18:33:29 +01:00
ab8500_fg.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
acer_a500_battery.c power: supply: Add battery gauge driver for Acer Iconia Tab A500 2021-01-14 23:39:43 +01:00
act8945a_charger.c power: supply: act8945a: correct kerneldoc 2021-04-20 16:18:08 +02:00
adp5061.c
apm_power.c
axp20x_ac_power.c
axp20x_battery.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
axp20x_usb_power.c power supply and reset changes for the v5.13 series 2021-04-28 15:43:58 -07:00
axp288_charger.c power: supply: axp288-charger: Simplify axp288_get_charger_health() 2021-10-18 18:18:56 +02:00
axp288_fuel_gauge.c power: supply: axp288_fuel_gauge: Take the P-Unit semaphore only once during probe() 2021-08-05 18:54:52 +02:00
bd99954-charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
bd99954-charger.h power: supply: Support ROHM bd99954 charger 2020-05-10 02:35:49 +02:00
bq27xxx_battery.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
bq27xxx_battery_hdq.c power supply and reset changes for the v5.10 series 2020-10-20 10:56:34 -07:00
bq27xxx_battery_i2c.c power: supply: bq27xxx: Fix kernel crash on IRQ handler register error 2021-11-02 13:47:19 +01:00
bq256xx_charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
bq2415x_charger.c power: supply: bq2xxxx: Replace HTTP links with HTTPS ones 2020-07-28 02:07:35 +02:00
bq2515x_charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
bq24190_charger.c power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier() 2022-02-01 14:55:11 +01:00
bq24257_charger.c power: supply: bq24257: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
bq24735-charger.c power: supply: bq24735: reorganize ChargeOption command macros 2021-08-13 18:38:17 +02:00
bq25890_charger.c power supply and reset changes for the v5.17 series 2022-01-11 11:20:27 -08:00
bq25980_charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
bq25980_charger.h power: supply: bq25980: Add support for the BQ259xx family 2020-10-04 01:54:35 +02:00
charger-manager.c power: supply: charger-manager: add missing MODULE_DEVICE_TABLE 2021-06-29 23:57:10 +02:00
collie_battery.c power: supply: collie_battery: Convert to GPIO descriptors 2020-11-30 02:18:49 +01:00
cpcap-battery.c power: supply: cpcap-battery: use device_get_match_data() to simplify code 2021-10-02 17:58:38 +02:00
cpcap-charger.c power: supply: cpcap-charger: get the battery inserted infomation from cpcap-battery 2021-06-04 14:36:17 +02:00
cros_peripheral_charger.c power: supply: PCHG: Peripheral device charger 2021-07-16 15:54:34 +02:00
cros_usbpd-charger.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
cw2015_battery.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
da9030_battery.c power: Convert to DEFINE_SHOW_ATTRIBUTE 2020-07-27 00:05:56 +02:00
da9052-battery.c
da9150-charger.c
da9150-fg.c
ds2760_battery.c power-supply: use kobj_to_dev() 2021-01-28 01:31:42 +01:00
ds2780_battery.c power: supply: ds2780: Switch to using the new API kobj_to_dev() 2021-01-16 12:36:26 +01:00
ds2781_battery.c power: supply: ds2781: use kobj_to_dev() 2021-03-22 15:05:41 +01:00
ds2782_battery.c
generic-adc-battery.c power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() 2021-04-08 14:35:19 +02:00
goldfish_battery.c power: supply: goldfish: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
gpio-charger.c power: supply: gpio-charger: add charge-current-limit feature 2020-08-27 21:13:23 +02:00
ingenic-battery.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
ipaq_micro_battery.c
isp1704_charger.c
Kconfig power: supply: max77976: add Maxim MAX77976 charger driver 2021-11-16 16:10:07 +01:00
lego_ev3_battery.c power: supply: lego_ev3: Simplify with dev_err_probe() 2020-08-26 17:25:45 +02:00
lp8727_charger.c
lp8788-charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
lt3651-charger.c
ltc2941-battery-gauge.c power: supply: Clean-up few drivers by using managed work init 2021-03-23 15:22:40 +01:00
ltc4162-l-charger.c power: supply: ltc4162-l: Constify static struct attribute_group 2021-01-13 22:11:43 +01:00
Makefile power: supply: max77976: add Maxim MAX77976 charger driver 2021-11-16 16:10:07 +01:00
max1721x_battery.c power: supply: max1721x: Correct spelling 2021-03-22 15:11:22 +01:00
max8903_charger.c power: supply: max8903: Convert to GPIO descriptors 2021-01-12 23:23:49 +01:00
max8925_power.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
max8997_charger.c power: supply: max8997_charger: Switch to new binding 2021-04-02 14:12:52 +02:00
max8998_charger.c power: supply: max8998_charger: Correct ONLINE and add STATUS props 2020-06-19 19:58:23 +02:00
max14577_charger.c power: supply: max14577: remove unneeded variable initialization 2021-04-20 16:18:08 +02:00
max14656_charger_detector.c power: supply: max14656: Drop unused includes 2021-01-12 23:09:45 +01:00
max17040_battery.c power: supply: max17040: fix null-ptr-deref in max17040_probe() 2021-10-12 17:18:46 +02:00
max17042_battery.c power: supply: max17042_battery: Prevent int underflow in set_soc_threshold 2021-10-12 17:59:10 +02:00
max77650-charger.c
max77693_charger.c
max77976_charger.c power: supply: max77976: add Maxim MAX77976 charger driver 2021-11-16 16:10:07 +01:00
mp2629_charger.c power: supply: Add support for mps mp2629 battery charger 2020-05-26 10:41:52 +01:00
mt6360_charger.c power: supply: mt6360_charger: add MT6360 charger support 2021-08-13 18:37:49 +02:00
olpc_battery.c power: supply: olpc_battery: fix the power supply name 2020-05-10 18:56:30 +02:00
pcf50633-charger.c
pda_power.c
pm2301_charger.h
pmu_battery.c
power_supply.h
power_supply_core.c power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier() 2022-02-01 14:55:11 +01:00
power_supply_hwmon.c power: supply: remove duplicated argument in power_supply_hwmon_info 2021-01-12 23:00:32 +01:00
power_supply_leds.c
power_supply_sysfs.c platform-drivers-x86 for v5.17-1 2022-01-11 11:26:57 -08:00
qcom_smbb.c power: supply: qcom_smbb: support pm8226 2021-11-30 11:34:27 +01:00
rn5t618_power.c power: supply: rn5t618: Add voltage_now property 2021-08-13 18:38:17 +02:00
rt5033_battery.c power: supply: rt5033_battery: Change voltage values to µV 2021-10-12 17:12:23 +02:00
rt9455_charger.c power: supply: rt9455: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
rx51_battery.c
s3c_adc_battery.c power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() 2021-04-08 14:36:08 +02:00
sbs-battery.c power: supply: sbs-battery: add support for time_to_empty_now attribute 2021-08-06 23:48:51 +02:00
sbs-charger.c power: supply: sbs-charger: drop unused gpio includes 2021-04-02 14:19:25 +02:00
sbs-manager.c power: supply: sbs-manager: update gpio include 2021-04-02 14:19:26 +02:00
sc27xx_fuel_gauge.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
sc2731_charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
smb347-charger.c power: supply_core: Pass pointer to battery info 2022-01-03 18:53:10 +01:00
surface_battery.c power: supply: surface_battery: Fix battery event handling 2021-05-13 18:26:07 +02:00
surface_charger.c power: supply: surface-charger: Fix type of integer variable 2021-06-03 20:53:54 +02:00
test_power.c power: supply: test-power: revise parameter printing to use sprintf 2020-10-09 01:02:30 +02:00
tosa_battery.c
tps65090-charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
tps65217_charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
twl4030_charger.c
twl4030_madc_battery.c
ucs1002_power.c power: supply: ucs1002: fix some health status issues 2020-10-01 00:18:05 +02:00
wilco-charger.c power: supply: wilco_ec: Add long life charging mode 2020-07-31 14:33:56 +02:00
wm97xx_battery.c power: supply: wm97xx_battery: Convert to GPIO descriptor 2021-01-13 22:25:07 +01:00
wm831x_backup.c
wm831x_power.c power: supply: wm831x_power: fix spelling mistake on function name 2021-10-02 17:31:15 +02:00
wm8350_power.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
z2_battery.c power: supply: z2_battery: Drop unused variable 2021-03-15 00:08:07 +01:00