linux/drivers/regulator
Pascal Paillet f44b07472f regulator: core: Let boot-on regulators be powered off
[ Upstream commit 089b3f61ec ]

Boot-on regulators are always kept on because their use_count value
is now incremented at boot time and never cleaned.

Only increment count value for alway-on regulators.
regulator_late_cleanup() is now able to power off boot-on regulators
when unused.

Fixes: 05f224ca66 ("regulator: core: Clean enabling always-on regulators + their supplies")
Signed-off-by: Pascal Paillet <p.paillet@st.com>
Link: https://lore.kernel.org/r/20191113102737.27831-1-p.paillet@st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-31 16:45:32 +01:00
..
88pg86x.c regulator: 88pg86x: new i2c dual regulator chip 2018-03-09 13:01:17 +00:00
88pm800-regulator.c Merge branch 'regulator-5.3' into regulator-next 2019-07-04 17:34:32 +01:00
88pm8607.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aat2870-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
ab3100.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
ab8500-ext.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
ab8500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
act8865-regulator.c regulator: act8865: operating mode and suspend state support 2019-08-15 18:10:40 +01:00
act8945a-regulator.c regulator: act8945a-regulator: fix ldo register addresses in set_mode hook 2019-08-13 12:41:46 +01:00
ad5398.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
anatop-regulator.c regulator: anatop: Remove unneeded fields from struct anatop_regulator 2019-04-10 12:23:04 +01:00
arizona-ldo1.c regulator: arizona-ldo1: Add support for Cirrus Logic Madera codecs 2019-05-21 21:23:24 +01:00
arizona-micsupp.c regulator: arizona-micsupp: Delete unused include 2019-06-03 17:51:20 +01:00
as3711-regulator.c regulator: as3711: Remove struct as3711_regulator_info and as3711_regulator 2019-03-18 12:10:45 +00:00
as3722-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
axp20x-regulator.c regulator: axp20x: fix DCDC5 and DCDC6 for AXP803 2019-07-16 19:14:14 +01:00
bcm590xx-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bd718x7-regulator.c - Core Frameworks 2019-07-15 20:18:40 -07:00
bd9571mwv-regulator.c regulator: bd9571mwv: Constify regulator_ops 2019-01-24 17:53:12 +00:00
bd70528-regulator.c regulator: bd70528: Drop unused include 2019-06-03 17:52:02 +01:00
core.c regulator: core: Let boot-on regulators be powered off 2019-12-31 16:45:32 +01:00
cpcap-regulator.c regulator: cpcap: Spelling s/configuraion/configuration/ 2019-06-07 13:14:37 +01:00
da903x.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9052-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9055-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9062-regulator.c regulator: da9062: fix suspend_enable/disable preparation 2019-09-23 14:21:05 -07:00
da9063-regulator.c regulator: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:13:23 +01:00
da9210-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9210-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9211-regulator.c regulator: da9211: fix obtaining "enable" GPIO 2019-09-11 11:17:07 +01:00
da9211-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
db8500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
devres.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
fan53555.c regulator: fan53555: Switch to SPDX identifier 2019-04-26 10:38:22 +01:00
fixed-helper.c regulator: fixed: Convert to use GPIO descriptor only 2018-09-17 14:32:22 -07:00
fixed.c regulator: fixed: Prevent NULL pointer dereference when !CONFIG_OF 2019-09-23 14:19:52 -07:00
gpio-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
helpers.c regulator: provide regulator_bulk_set_supply_names() 2019-09-02 12:49:42 +01:00
hi655x-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421v530-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
internal.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
isl6271a-regulator.c regulator: isl6271a: Constify isl_core_ops and isl_fixed_ops 2019-01-28 15:30:58 +00:00
isl9305.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Kconfig regulator: mt6358: Add BROKEN dependency while waiting for MFD to merge 2019-08-30 12:29:22 +01:00
lm363x-regulator.c regulator: lm363x: Fix n_voltages setting for lm36274 2019-07-22 13:18:13 +01:00
lochnagar-regulator.c regulator: lochnagar: Add on_off_delay for VDDCORE 2019-10-01 17:46:01 +01:00
lp872x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp873x-regulator.c regulator: lp873x: Convert to use regulator_set/get_current_limit_regmap 2019-03-03 23:47:06 +00:00
lp3971.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp3972.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8755.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-buck.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-ldo.c regulator: lp8788-ldo: make array en_mask static const, makes object smaller 2019-09-09 10:53:48 +01:00
lp87565-regulator.c regulator: lp87565: Simplify lp87565_buck_set_ramp_delay 2019-09-09 13:22:49 +01:00
ltc3589.c regulator: ltc3589: Switch to SPDX identifier 2019-04-26 10:38:20 +01:00
ltc3676.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
Makefile regulator: mt6358: Add support for MT6358 regulator 2019-08-28 11:51:27 +01:00
max1586.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
max8649.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8660.c regulator: max8660: remove redundant assignment of variable ret 2019-08-15 15:09:21 +01:00
max8907-regulator.c regulator: max8907: Fix the usage of uninitialized variable in max8907_regulator_probe() 2019-12-31 16:43:39 +01:00
max8925-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8952.c Linux 5.2-rc4 2019-06-18 19:12:47 +01:00
max8973-regulator.c regulator: max8973: Let core handle GPIO descriptor 2018-12-11 01:04:31 +00:00
max8997-regulator.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
max8998.c regulator: max8998: Factor out struct voltage_map_desc 2019-04-15 09:45:15 +01:00
max14577-regulator.c regulator: max14577: Get rid of match_init_data/match_of_node functions 2019-03-13 15:12:47 +00:00
max77620-regulator.c regulator: max77620: remove redundant assignment to variable ret 2019-07-03 13:02:38 +01:00
max77650-regulator.c regulator: max77650: use vsel_step 2019-07-04 17:31:37 +01:00
max77686-regulator.c regulator: max77686: fix obtaining "maxim,ena" GPIO 2019-09-11 11:16:51 +01:00
max77693-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max77802-regulator.c regulator: max77802: Drop unused includes 2019-06-10 15:40:58 +01:00
mc13xxx-regulator-core.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mc13783-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13892-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mcp16502.c regulator: mcp16502: Remove setup_regulators function 2019-04-11 12:17:32 +01:00
mt6311-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6311-regulator.h regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6323-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6358-regulator.c regulator: mt6358: Add support for MT6358 regulator 2019-08-28 11:51:27 +01:00
mt6380-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6397-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
of_regulator.c regulator: Fixes for v5.4 2019-10-23 15:31:17 -04:00
palmas-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pbias-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
pcap-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pcf50633-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pfuze100-regulator.c regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized 2019-10-01 18:36:42 +01:00
pv88060-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88060-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pwm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
qcom_rpm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom_smd-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom_spmi-regulator.c regulator: qcom_spmi: Do NULL check for lvs 2019-06-24 17:26:15 +01:00
qcom-rpmh-regulator.c regulator: qcom-rpmh: Fix PMIC5 BoB min voltage 2019-10-04 18:44:37 +01:00
rc5t583-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rk808-regulator.c regulator: rk808: Return REGULATOR_MODE_INVALID for invalid mode 2019-07-22 13:18:33 +01:00
rn5t618-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446 2019-06-05 17:37:18 +02:00
rt5033-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 2019-06-05 17:37:18 +02:00
s2mpa01.c regulator: s2mpa01: Remove unused define for S2MPA01_REGULATOR_CNT 2019-04-10 12:22:50 +01:00
s2mps11.c regulator: s2mps11: Consistently use local variable 2019-09-10 11:03:30 +01:00
s5m8767.c gpio: Fix return value mismatch of function gpiod_get_from_of_node() 2019-06-25 15:26:24 +01:00
sc2731-regulator.c regulator: sc2731: Constify regulators 2019-03-26 13:25:35 +00:00
sky81452-regulator.c regulator: sky81452: Switch to SPDX identifier 2019-04-26 10:38:27 +01:00
slg51000-regulator.c regulator: slg51000: use devm_gpiod_get_optional() in probe 2019-09-09 10:58:15 +01:00
slg51000-regulator.h regulator: slg51000: add slg51000 regulator driver 2019-05-13 11:07:43 +01:00
stm32-booster.c regulator: stm32-booster: Remove .min_uV and .list_voltage for fixed regulator 2019-07-23 12:28:01 +01:00
stm32-pwr.c regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage 2019-05-03 15:07:15 +09:00
stm32-vrefbuf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
stpmic1_regulator.c Merge branch 'regulator-5.0' into regulator-5.1 stpmic1 const/range 2019-02-19 11:06:41 +00:00
stw481x-vmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
sy8106a-regulator.c regulator: sy8106a: Get rid of struct sy8106a 2019-04-26 10:38:25 +01:00
sy8824x.c regulator: sy8824x: add prefixes to BUCK_EN and MODE macros 2019-08-30 12:39:47 +01:00
ti-abb-regulator.c regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone 2019-10-01 12:21:02 +01:00
tps6105x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
tps6507x-regulator.c regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer 2019-05-16 17:11:47 +01:00
tps6524x-regulator.c regulator: tps6524x: Remove *rdev[N_REGULATORS] from struct tps6524x 2019-04-15 09:44:41 +01:00
tps6586x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tps51632-regulator.c regulator: tps51632: Fix setting ramp delay 2016-05-31 16:38:01 +01:00
tps62360-regulator.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
tps65023-regulator.c regulator: tps65023: Fix inverted core enable logic. 2017-04-18 18:55:05 +01:00
tps65086-regulator.c regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB 2019-03-21 15:00:07 +00:00
tps65090-regulator.c gpio: Fix return value mismatch of function gpiod_get_from_of_node() 2019-06-25 15:26:24 +01:00
tps65132-regulator.c regulator: tps65132: Stop parsing DT when gpio is not found 2019-09-05 19:07:30 +01:00
tps65217-regulator.c Merge branch 'regulator-5.2' into regulator-next 2019-05-06 22:52:14 +09:00
tps65218-regulator.c regulator: tps65218: Convert to use regulator_get_current_limit_regmap 2019-04-15 09:44:09 +01:00
tps65910-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tps65912-regulator.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
tps80031-regulator.c regulator: tps80031: Switch to SPDX identifier 2019-04-16 17:30:56 +01:00
twl6030-regulator.c regulator: twl6030: workaround the VMMC reset behavior 2019-08-09 18:04:22 +01:00
twl-regulator.c regulator: twl: voltage lists for vdd1/2 on twl4030 2019-08-15 15:08:41 +01:00
uniphier-regulator.c regulator: uniphier: Add Pro5 USB3 VBUS support 2019-09-10 11:04:12 +01:00
userspace-consumer.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vctrl-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
vexpress-regulator.c regulator: vexpress: Switch to SPDX identifier 2019-05-02 11:16:18 +09:00
virtual.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm831x-dcdc.c regulator: wm831x: Convert to use GPIO descriptors 2019-06-12 13:59:11 +01:00
wm831x-isink.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm831x-ldo.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm8350-regulator.c regulator: wm8350: Switch to SPDX identifier 2019-04-17 17:40:44 +01:00
wm8400-regulator.c regulator: wm8400: Switch to SPDX identifier 2019-04-17 17:41:00 +01:00
wm8994-regulator.c regulator: wm8994: Switch to SPDX identifier 2019-04-17 17:39:58 +01:00