kernel_optimize_test/drivers/regulator
Olliver Schinagl 77e3e3b165
regulator: axp20x: add software based soft_start for AXP209 LDO3
In the past, there have been words on various lists that if LDO3 is
disabled in u-boot, but enabled in the DTS, the axp209 driver would
fail to continue/hang. Several enable/disable patches have been
issues to devicetree's in both the kernel and u-boot to address
this issue.

What really happened however, was that the AXP209 shuts down without
a notice and without setting an interrupt. This is caused when LDO3
gets overloaded, for example with large capacitors on the LDO3 output.

Normally, we would expect that AXP209 would source 200 mA as per
datasheet and set and trigger an interrupt when being overloaded.
For some reason however, this does not happen.

As a work-around, we use the soft-start constraint of the regulator
node to first bring up the LDO3 to the lowest possible voltage and
then enable the LDO. After that, we can set the requested voltage
as usual.

Combining this setting with the regulator-ramp-delay allows LDO3 to
enable voltage slowly and staggered, potentially reducing overall
inrush current.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Priit Laes <plaes@plaes.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2018-12-13 16:39:55 +00:00
..
88pg86x.c regulator: 88pg86x: new i2c dual regulator chip 2018-03-09 13:01:17 +00:00
88pm800.c
88pm8607.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
aat2870-regulator.c
ab3100.c
ab8500-ext.c
ab8500.c regulator: ab8500: Drop AB8540/9540 support 2018-04-16 13:08:59 +01:00
act8865-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
act8945a-regulator.c regulator: act8945a-regulator: add shutdown function 2018-12-12 16:59:35 +00:00
ad5398.c
anatop-regulator.c regulator: anatop: Switch to SPDX identifier 2018-05-24 15:17:07 +01:00
arizona-ldo1.c regulator: arizona-ldo1: Rely on core to handle GPIO descriptor 2018-12-12 16:49:36 +00:00
arizona-micsupp.c
as3711-regulator.c regulator: as3711: convert to SPDX identifiers 2018-11-13 16:21:50 -08:00
as3722-regulator.c
axp20x-regulator.c regulator: axp20x: add software based soft_start for AXP209 LDO3 2018-12-13 16:39:55 +00:00
bcm590xx-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
bd718x7-regulator.c Merge branch 'for-linus' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-4.21 2018-12-11 20:44:49 +00:00
bd9571mwv-regulator.c regulator: bd9571mwv: convert to SPDX identifiers 2018-11-13 16:21:49 -08:00
core.c regulator: core: Clean enabling always-on regulators + their supplies 2018-12-11 20:45:00 +00:00
cpcap-regulator.c regulator: Add support for CPCAP regulators on Motorola Xoom devices. 2018-07-24 15:37:08 +01:00
da903x.c
da9052-regulator.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
da9055-regulator.c regulator: da905{2,5}: Remove unnecessary array check 2018-09-20 18:28:09 -07:00
da9062-regulator.c
da9063-regulator.c regulator: da9063: Handle less LDOs on DA9063L 2018-07-04 07:17:08 +01:00
da9210-regulator.c regulator: core: Use ww_mutex for regulators locking 2018-11-19 12:33:17 +00:00
da9210-regulator.h
da9211-regulator.c regulator: da9211: Hand over GPIO to regulator core 2018-12-11 01:04:37 +00:00
da9211-regulator.h
db8500-prcmu.c
dbx500-prcmu.c
dbx500-prcmu.h
devres.c
dummy.c
dummy.h
fan53555.c
fixed-helper.c regulator: fixed: Convert to use GPIO descriptor only 2018-09-17 14:32:22 -07:00
fixed.c regulator: fixed: Let core handle GPIO descriptor 2018-12-11 01:03:40 +00:00
gpio-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
helpers.c regulator/mfd: Support for the ROHM BD71847 2018-09-28 15:07:30 +01:00
hi655x-regulator.c
hi6421-regulator.c
hi6421v530-regulator.c
internal.h regulator: core: Only count load for enabled consumers 2018-11-22 14:38:00 +00:00
isl6271a-regulator.c
isl9305.c regulator: isl9305: Add missing .owner field in regulator_desc 2018-08-28 19:41:36 +01:00
Kconfig regulator: mcp16502: add regulator driver for MCP16502 2018-12-13 12:19:04 +00:00
lm363x-regulator.c regulator: lm363x: Let core handle GPIO descriptor 2018-12-11 01:03:49 +00:00
lochnagar-regulator.c regulator: lochnagar: Move driver to binding from DT 2018-11-20 15:45:09 +00:00
lp872x.c
lp873x-regulator.c
lp3971.c
lp3972.c
lp8755.c
lp8788-buck.c
lp8788-ldo.c regulator: lp8788-ldo: Let core handle GPIO descriptor 2018-12-11 01:03:54 +00:00
lp87565-regulator.c regulator: lp87565: Enable LP87565_BUCK_CTRL_1_FPWM_MP_0_2 2018-04-17 10:57:21 +01:00
ltc3589.c regmap: split up regmap_config.use_single_rw 2018-09-07 13:03:55 +01:00
ltc3676.c regmap: split up regmap_config.use_single_rw 2018-09-07 13:03:55 +01:00
Makefile regulator: mcp16502: add regulator driver for MCP16502 2018-12-13 12:19:04 +00:00
max1586.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
max8649.c
max8660.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
max8907-regulator.c
max8925-regulator.c
max8952.c regulator: max8952: Let core handle GPIO descriptor 2018-12-11 01:03:59 +00: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: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max14577-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max77620-regulator.c
max77686-regulator.c regulator: max77686: Let core handle GPIO descriptor 2018-12-11 01:04:08 +00:00
max77693-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max77802-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
mc13xxx-regulator-core.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
mc13xxx.h
mc13783-regulator.c regulator: Updates for v4.18 2018-06-08 13:08:57 -07:00
mc13892-regulator.c regulator: Updates for v4.18 2018-06-08 13:08:57 -07:00
mcp16502.c regulator: mcp16502: add regulator driver for MCP16502 2018-12-13 12:19:04 +00:00
mt6311-regulator.c
mt6311-regulator.h
mt6323-regulator.c
mt6380-regulator.c
mt6397-regulator.c
of_regulator.c regulator: Allow regulator nodes to contain their own init data 2018-12-04 16:41:38 +00:00
palmas-regulator.c
pbias-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
pcap-regulator.c
pcf50633-regulator.c
pfuze100-regulator.c regulator: pfuze100-regulator: add coin support to PF0100 2018-11-06 17:27:46 +00:00
pv88060-regulator.c
pv88060-regulator.h
pv88080-regulator.c
pv88080-regulator.h
pv88090-regulator.c
pv88090-regulator.h
pwm-regulator.c
qcom_rpm-regulator.c
qcom_smd-regulator.c regulator: qcom: Add PMS405 regulators 2018-09-20 10:06:37 -07:00
qcom_spmi-regulator.c regulator: qcom_spmi: Indent with tabs instead of spaces 2018-07-20 17:40:57 +01:00
qcom-rpmh-regulator.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
rc5t583-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
rk808-regulator.c
rn5t618-regulator.c
rt5033-regulator.c
s2mpa01.c regulator: samsung: Add SPDX license identifiers 2018-08-08 10:52:54 +01:00
s2mps11.c regulator: s2mps11: Hand over GPIO to regulator core 2018-12-11 01:05:00 +00:00
s5m8767.c regulator: s5m8767: Hand over GPIO to regulator core 2018-12-11 01:04:43 +00:00
sc2731-regulator.c regulator: sc2731: Fix defines for SC2731_WR_UNLOCK and SC2731_PWR_WR_PROT_VALUE 2018-01-03 12:10:14 +00:00
sky81452-regulator.c
stm32-vrefbuf.c regulator: stm32-vrefbuf: fix check on ready flag 2018-02-08 15:28:35 +00:00
stpmic1_regulator.c regulator: stpmic1: fix regulator_lock usage 2018-12-03 11:39:24 +00:00
stw481x-vmmc.c
sy8106a-regulator.c regulator: add support for SY8106A regulator 2018-05-09 18:25:06 +09:00
ti-abb-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
tps6105x-regulator.c
tps6507x-regulator.c
tps6524x-regulator.c
tps6586x-regulator.c regulator: tps6586x: Add support for TPS658624 2018-04-20 11:44:34 +01:00
tps51632-regulator.c
tps62360-regulator.c
tps65023-regulator.c
tps65086-regulator.c
tps65090-regulator.c regulator: tps65090: Hand over GPIO to regulator core 2018-12-11 01:04:56 +00:00
tps65132-regulator.c
tps65217-regulator.c regulator: tps65217: Fix NULL pointer dereference on probe 2018-07-30 09:41:04 +01:00
tps65218-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
tps65910-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -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 treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
twl-regulator.c regulator: Don't return or expect -errno from of_map_mode() 2018-04-20 12:45:36 +01:00
twl6030-regulator.c
uniphier-regulator.c regulator: uniphier: add regulator driver for UniPhier SoC 2018-07-11 10:30:32 +01:00
userspace-consumer.c
vctrl-regulator.c
vexpress-regulator.c
virtual.c
wm831x-dcdc.c
wm831x-isink.c
wm831x-ldo.c
wm8350-regulator.c regulator: core: Use ww_mutex for regulators locking 2018-11-19 12:33:17 +00:00
wm8400-regulator.c
wm8994-regulator.c regulator: wm8994: Rely on core to handle GPIO descriptor 2018-12-12 16:47:10 +00:00