linux/drivers/power/supply
Hans de Goede d8e6519535 power: supply: axp288_charger: Do not stop + restart charging at boot
Before this commit we were relying solely on the extcon interface for
cable detection, including to determine if a cable providing vbus is
connected at all. This caused us to turn off charging at boot, because
when we run the initial state processing the axp288-extcon driver is still
running charger-type detection most of the time, so all charger cable
types read as disconnected when we run the initial state processing.

This commit reworks the axp288_charger_extcon_evt_worker flow to use the
VBUS_VALID bit from the PWR_INPUT_STATUS register to determine if we
should turn charging on/off. Note this is the same bit as we use for the
online property.

If VBUS_VALID is set, but the extcon code has not completed the charger
type detection yet, we now simply bail leaving things as configured by
the BIOS (we will get a notifier call when the extcon code is done and
reschedule the axp288_charger_extcon_evt_worker).

The extcon code is the only one to trigger the worker (outside of the
initial run) and we can rely on it to only call us if things have changed,
so while we are completely refactoring axp288_charger_extcon_evt_worker,
also remove the code to check if the state has changed.

Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
2018-01-08 18:38:56 +01:00
..
88pm860x_battery.c
88pm860x_charger.c
ab8500_bmdata.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ab8500_btemp.c power: supply: ab8500_btemp: Compress return logic into one line. 2017-01-17 00:28:38 +01:00
ab8500_charger.c power: supply: ab8500_charger: Bail out in case of error in 'ab8500_charger_init_hw_registers()' 2017-12-01 16:21:18 +01:00
ab8500_fg.c power: supply: improve function-level documentation 2016-10-19 05:06:22 +02:00
abx500_chargalg.c
act8945a_charger.c power: supply: act8945a_charger: fix of_irq_get() error check 2017-07-24 14:09:00 +02:00
apm_power.c
axp20x_ac_power.c power: supply: add AC power supply driver for AXP20X and AXP22X PMICs 2017-01-29 23:15:18 +01:00
axp20x_battery.c power: supply: axp20x_battery: add DT support for battery max constant charge current 2017-06-08 17:57:53 +02:00
axp20x_usb_power.c power: supply: axp20x_usb_power: Drop unnecessary static 2017-05-15 15:28:14 +02:00
axp288_charger.c power: supply: axp288_charger: Do not stop + restart charging at boot 2018-01-08 18:38:56 +01:00
axp288_fuel_gauge.c power: supply: axp288_fuel_gauge: Remove unnecessary irq?_en register writes 2017-01-04 22:03:44 +01:00
bq27xxx_battery_hdq.c power: supply: bq27xxx: move platform driver code into bq27xxx_battery_hdq.c 2017-07-25 15:31:21 +02:00
bq27xxx_battery_i2c.c Add support for bq27521 battery monitor 2017-12-08 18:02:15 +01:00
bq27xxx_battery.c Add support for bq27521 battery monitor 2017-12-08 18:02:15 +01:00
bq2415x_charger.c power: supply: bq2415x: check for NULL acpi_id to avoid null pointer dereference 2017-01-21 03:35:07 +01:00
bq24190_charger.c power: supply: bq24190_charger: Remove extcon handling 2017-12-01 16:43:21 +01:00
bq24257_charger.c power: bq24257: Fix use of uninitialized pointer bq->charger 2016-09-19 20:56:22 +02:00
bq24735-charger.c power: supply: bq24735: remove incorrect le16_to_cpu calls 2017-06-15 16:47:35 +02:00
bq25890_charger.c power: supply: bq25890: Use gpiod_get() 2017-04-14 01:41:34 +02:00
charger-manager.c power: supply: charger-manager: Fix typo in condition 2017-12-01 16:14:06 +01:00
collie_battery.c
cpcap-battery.c power: supply: cpcap-battery: Fix platform_get_irq_byname's error checking 2017-12-01 16:22:10 +01:00
cpcap-charger.c power: supply: cpcap-charger: fix incorrect return value check 2017-11-13 11:56:12 +01:00
da9030_battery.c
da9052-battery.c
da9150-charger.c
da9150-fg.c
ds2760_battery.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
ds2780_battery.c power: supply: add const to bin_attribute structures 2017-08-09 17:42:56 +02:00
ds2781_battery.c power: supply: add const to bin_attribute structures 2017-08-09 17:42:56 +02:00
ds2782_battery.c
generic-adc-battery.c power: supply: generic-adc-battery: remove redundant variable pdata 2017-11-06 13:49:14 +01:00
goldfish_battery.c
gpio-charger.c power: supply: gpio_charger: switch to using GPIO descriptors 2017-01-04 22:04:50 +01:00
ipaq_micro_battery.c power: ipaq_micro_battery: fix alias 2016-11-23 23:44:40 +01:00
isp1704_charger.c power: supply: isp1704: Fix unchecked return value of devm_kzalloc 2017-05-01 11:52:25 +02:00
jz4740-battery.c
Kconfig Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2017-11-15 10:14:11 -08:00
lego_ev3_battery.c power: supply: New driver for LEGO MINDSTORMS EV3 battery 2017-04-14 01:41:35 +02:00
lp8727_charger.c
lp8788-charger.c power: supply: lp8788: Make several arrays static const * const 2017-08-12 13:58:14 -04:00
ltc2941-battery-gauge.c power: ltc2941-battery-gauge: Disable continuous monitoring on shutdown 2017-12-01 16:41:05 +01:00
ltc3651-charger.c power: supply: ltc3651-charger: fix some error codes in probe 2017-06-08 13:05:27 +02:00
Makefile Merge branch 'i2c/for-4.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-11-14 17:52:21 -08:00
max1721x_battery.c power: supply: Add support for MAX1721x standalone fuel gauge 2017-07-24 14:09:34 +02:00
max8903_charger.c
max8925_power.c
max8997_charger.c power: supply: max8997: Improve a size determination in probe 2017-11-06 13:49:12 +01:00
max8998_charger.c
max14577_charger.c
max14656_charger_detector.c power: supply: max14656: Export I2C and OF device ID as module aliases 2017-01-29 23:15:17 +01:00
max17040_battery.c power: supply: max17040: Add OF device ID table 2017-04-14 01:41:33 +02:00
max17042_battery.c power: supply: max17042_battery: Fix compiler warning 2017-08-29 12:04:14 +02:00
max77693_charger.c
olpc_battery.c power: supply: make device_attribute const 2017-08-28 18:48:44 +02:00
pcf50633-charger.c power: supply: pcf50633-charger: remove redundant variable charging_start 2017-11-06 13:49:57 +01:00
pda_power.c power: supply: pda_power: move from timer to delayed_work 2017-05-01 12:41:58 +02:00
pm2301_charger.c
pm2301_charger.h
pmu_battery.c
power_supply_core.c power: supply: replace pr_* with dev_* 2017-11-06 13:59:41 +01:00
power_supply_leds.c
power_supply_sysfs.c power: supply: core: Add power_supply_prop_precharge 2017-06-08 16:29:28 +02:00
power_supply.h
qcom_smbb.c extcon: Split out extcon header file for consumer and provider device 2017-10-23 14:07:58 +09:00
rt5033_battery.c
rt9455_charger.c
rx51_battery.c power: supply: avoid unused twl4030-madc.h 2017-05-01 13:03:09 +02:00
s3c_adc_battery.c
sbs-battery.c power: supply: sbs-battery: remove unchecked return var 2017-10-29 00:45:59 +02:00
sbs-charger.c power: supply: sbs-charger: simplified bool function 2017-04-14 01:41:34 +02:00
sbs-manager.c power: supply: sbs-message: double left shift bug in sbsm_select() 2017-12-01 16:08:00 +01:00
smb347-charger.c
test_power.c
tosa_battery.c
tps65090-charger.c
tps65217_charger.c power: supply: tps65217: remove debug messages for function calls 2017-04-14 01:41:35 +02:00
twl4030_charger.c power: supply: replace pr_* with dev_* 2017-11-06 13:59:41 +01:00
twl4030_madc_battery.c power: supply: avoid unused twl4030-madc.h 2017-05-01 13:03:09 +02:00
wm97xx_battery.c power: supply: wm97xx_battery: remove redundant 2nd null check on pdata 2017-01-04 22:04:20 +01:00
wm831x_backup.c
wm831x_power.c power: wm831x_power: Support USB charger current limit management 2017-08-15 15:05:01 +03:00
wm8350_power.c wm8350_power: use permission-specific DEVICE_ATTR variants 2016-11-23 23:46:20 +01:00
z2_battery.c