linux/drivers/regulator
Chen-Yu Tsai 618c808968 regulator: axp20x: Fix axp809 ldo_io registration error on cold boot
The maximum supported voltage for ldo_io# is 3.3V, but on cold boot
the selector comes up at 0x1f, which maps to 3.8V. This was previously
corrected by Allwinner's U-boot, which set all regulators on the PMICs
to some pre-configured voltage. With recent progress in U-boot SPL
support, this is no longer the case. In any case we should handle
this quirk in the kernel driver as well.

This invalid setting causes _regulator_get_voltage() to fail with -EINVAL
which causes regulator registration to fail when constrains are used:

[    1.054181] vcc-pg: failed to get the current voltage(-22)
[    1.059670] axp20x-regulator axp20x-regulator.0: Failed to register ldo_io0
[    1.069749] axp20x-regulator: probe of axp20x-regulator.0 failed with error -22

This commits makes the axp20x regulator driver accept the 0x1f register
value, fixing this.

The datasheet does not guarantee reliable operation above 3.3V, so on
boards where this regulator is used the regulator-max-microvolt setting
must be 3.3V or less.

This is essentially the same as the commit f40d4896bf ("regulator:
axp20x: Fix axp22x ldo_io registration error on cold boot") for AXP22x
PMICs.

Fixes: a51f9f4622 ("regulator: axp20x: support AXP809 variant")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-11-11 15:34:45 +00:00
..
88pm800.c Merge branch 'fix/88pm800' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-88pm800 2015-07-17 12:42:48 +01:00
88pm8607.c regulator: 88pm8607: Constify platform_device_id 2015-05-01 17:44:55 +01:00
aat2870-regulator.c
ab3100.c
ab8500-ext.c ARM: ux500: move ab8500_regulator_plat_data into driver 2016-07-12 11:23:50 +02:00
ab8500.c
act8865-regulator.c regulator: act8865: Fix missing of_node_put() in act8865_pdata_from_dt() 2016-07-14 17:22:22 +01:00
act8945a-regulator.c regulator: act8945a: add regulator driver for ACT8945A 2016-02-05 18:18:47 +00:00
ad5398.c regulator: ad5398: Fix return value of ad5398_write_reg 2016-02-20 01:02:34 +09:00
anatop-regulator.c regulator: anatop: allow regulator to be in bypass mode 2016-06-17 11:40:20 +01:00
arizona-ldo1.c regulator: arizona-ldo1: Fix handling of GPIO 0 2015-10-16 15:48:39 +01:00
arizona-micsupp.c == Changes to existing drivers == 2015-04-14 17:29:55 -07:00
as3711-regulator.c
as3722-regulator.c regulator: as3722: Constify regulator ops 2016-04-11 15:15:36 +01:00
axp20x-regulator.c regulator: axp20x: Fix axp809 ldo_io registration error on cold boot 2016-11-11 15:34:45 +00:00
bcm590xx-regulator.c regulator: bcm590xx: Remove unneeded semicolon 2015-09-14 19:48:34 +01:00
core.c Merge remote-tracking branches 'regulator/topic/of', 'regulator/topic/pv88080', 'regulator/topic/rk808', 'regulator/topic/set-voltage' and 'regulator/topic/tps65218' into regulator-next 2016-09-30 09:13:58 -07:00
da903x.c regulator: da9*: constify regulator_ops structures 2015-12-22 23:59:57 +00:00
da9052-regulator.c regulator: da9053/52: Fix incorrectly stated minimum and maximum voltage limits 2016-07-20 17:00:34 +01:00
da9055-regulator.c regulator: da9*: constify regulator_ops structures 2015-12-22 23:59:57 +00:00
da9062-regulator.c regulator: da9*: constify regulator_ops structures 2015-12-22 23:59:57 +00:00
da9063-regulator.c regulator: da9063: Correct module alias prefix to fix module autoloading 2016-05-10 20:00:49 +01:00
da9210-regulator.c regulator: da9210: addition of device tree support 2016-07-15 11:45:26 +01:00
da9210-regulator.h
da9211-regulator.c regulator: da9211: add descriptions for da9212/da9214 2016-06-29 17:24:55 +01:00
da9211-regulator.h regulator: da9211: add descriptions for da9212/da9214 2016-06-29 17:24:55 +01:00
db8500-prcmu.c
dbx500-prcmu.c regulator: dbx500: remove unused functions in dbx500-prcmu.c 2016-09-26 09:40:22 -07:00
dbx500-prcmu.h
devres.c regulator: Remove support for optional supplies in the bulk API 2016-08-16 20:00:44 +01:00
dummy.c
dummy.h
fan53555.c regulator: fan53555: Add support for FAN53555UC13X type 2016-04-20 10:57:26 +01:00
fixed-helper.c
fixed.c regulator: fixed: Remove workaround to handle of_get_named_gpio() return 2016-05-30 16:29:34 +01:00
gpio-regulator.c regulator: gpio: check return value of of_get_named_gpio 2016-03-17 11:44:57 +00:00
helpers.c regulator: helpers: Ensure bypass register field matches ON value 2016-04-22 11:49:03 +01:00
hi655x-regulator.c regulator: hi655x: enable regulator for hi655x PMIC 2016-02-15 19:54:55 +00:00
hi6421-regulator.c regulator: hi6421: mark hi6421_regulator_ldo_get_optimum_mode() static 2016-09-01 20:54:29 +01:00
internal.h
isl6271a-regulator.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
isl9305.c Merge remote-tracking branches 'regulator/topic/mt6311', 'regulator/topic/ocp', 'regulator/topic/owner', 'regulator/topic/pfuze100' and 'regulator/topic/pwm' into regulator-next 2015-08-30 14:39:48 +01:00
Kconfig - Core Frameworks 2016-10-07 08:35:35 -07:00
lm363x-regulator.c regulator: lm363x: Staticise ldo_cont_enable_time 2015-11-30 11:32:52 +00:00
lp872x.c regulator: lp872x: Add enable GPIO pin support 2016-02-05 18:57:09 +00:00
lp873x-regulator.c regulator: lp873x: Drop _nlr parameter from LP873X_REGULATOR() 2016-06-21 18:43:48 +01:00
lp3971.c regulator: lp3971: Silence uninitialized variable warning 2016-04-14 14:46:05 +01:00
lp3972.c regulator: lp3972: Silence uninitialized variable warning 2016-04-14 14:46:19 +01:00
lp8755.c regulator: lp8755: Convert to devm_request_threaded_irq 2015-06-02 15:35:17 +01:00
lp8788-buck.c regulator: lp8788: constify regulator_ops structures 2015-12-23 00:01:23 +00:00
lp8788-ldo.c regulator: lp8788: constify regulator_ops structures 2015-12-23 00:01:23 +00:00
ltc3589.c regulator: ltc3589: Make IRQ optional 2016-02-12 22:35:00 +00:00
ltc3676.c regulator: Add LTC3676 support 2016-08-16 12:28:00 +01:00
Makefile regulator: Add LTC3676 support 2016-08-16 12:28:00 +01:00
max1586.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
max8649.c
max8660.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
max8907-regulator.c
max8925-regulator.c
max8952.c
max8973-regulator.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
max8997-regulator.c regulator: max8997/max77802: Fix misspelled Samsung address 2016-04-05 11:37:49 -07:00
max8998.c
max14577-regulator.c regulator: Change Krzysztof Kozlowski's email to kernel.org 2016-08-17 13:41:14 +01:00
max77620-regulator.c regulator: max77620: check for valid regulator info 2016-06-29 18:50:05 +01:00
max77686-regulator.c regulator: max77686: Configure enable time to properly handle regulator enable 2016-04-29 12:31:39 +01:00
max77693-regulator.c regulator: Change Krzysztof Kozlowski's email to kernel.org 2016-08-17 13:41:14 +01:00
max77802-regulator.c regulator: max8997/max77802: Fix misspelled Samsung address 2016-04-05 11:37:49 -07:00
mc13xxx-regulator-core.c
mc13xxx.h
mc13783-regulator.c
mc13892-regulator.c
mt6311-regulator.c regulator: mt6311: Use REGCACHE_RBTREE 2015-12-18 12:14:27 +00:00
mt6311-regulator.h regulator: mt6311: Add support for mt6311 regulator 2015-07-24 12:30:49 +01:00
mt6323-regulator.c regulator: mt6323: Constify struct regulator_ops 2016-07-19 18:31:59 +01:00
mt6397-regulator.c regulator: mt6397: Add buck change mode regulator interface for mt6397 2016-05-30 16:29:43 +01:00
of_regulator.c regulator: of: setup initial suspend state 2016-06-22 16:15:34 +01:00
palmas-regulator.c regulator: tps65917/palmas: Simplify multiple dereference of match->of_node 2016-05-06 18:15:18 +01:00
pbias-regulator.c Merge remote-tracking branches 'regulator/fix/anatop', 'regulator/fix/gpio', 'regulator/fix/pbias', 'regulator/fix/tpx65218' and 'regulator/fix/vexpress' into regulator-linus 2015-09-21 14:16:09 -07:00
pcap-regulator.c
pcf50633-regulator.c
pfuze100-regulator.c regulator: pfuze100-regulator: Adjust MODULE_DESCRIPTION() 2016-06-06 19:13:48 +01:00
pv88060-regulator.c regulator: pv880x0: Clean up unnecessary header inclusion 2016-05-30 16:29:39 +01:00
pv88060-regulator.h regulator: pv88060: new regulator driver 2015-11-20 18:06:15 +00:00
pv88080-regulator.c regulator: pv88080: Update regulator for PV88080 BB silicon support 2016-09-26 08:59:08 -07:00
pv88080-regulator.h regulator: pv88080: Update regulator for PV88080 BB silicon support 2016-09-26 08:59:08 -07:00
pv88090-regulator.c regulator: pv880x0: Clean up unnecessary header inclusion 2016-05-30 16:29:39 +01:00
pv88090-regulator.h regulator: pv88090: new regulator driver 2015-12-08 18:21:06 +00:00
pwm-regulator.c regulator: core: Add set_voltage_time op 2016-09-16 18:38:22 +01:00
qcom_rpm-regulator.c regulator: qcom_rpm-regulator: Add support for pm8018 rpm regulator 2016-08-31 09:33:54 +01:00
qcom_smd-regulator.c regulator: qcom_smd: Fix voltage ranges for pma8084 ftsmps and pldo 2016-08-05 12:51:51 +01:00
qcom_spmi-regulator.c regulator: qcom_spmi: Add support for get_mode/set_mode on switches 2016-06-26 12:24:07 +01:00
rc5t583-regulator.c
rk808-regulator.c - Core Frameworks 2016-10-07 08:35:35 -07:00
rn5t618-regulator.c regulator: rn5t618: Add RN5T567 PMIC support 2016-06-29 10:11:29 +01:00
rt5033-regulator.c
s2mpa01.c
s2mps11.c regulator: s2mps11: Fix the voltage linear range for s2mps15 2016-07-12 09:24:05 +01:00
s5m8767.c regulator: s5m8767: fix get_register() error handling 2016-02-16 17:08:59 +00:00
sky81452-regulator.c
stw481x-vmmc.c regulator: stw481x: Remove unused fields from struct stw481x 2015-03-21 01:05:56 +00:00
ti-abb-regulator.c
tps6105x-regulator.c regulator: tps6105x: Convert to use regmap helper functions 2015-11-18 13:19:47 +00:00
tps6507x-regulator.c
tps6524x-regulator.c regulator: tps6524x: Fix broken use of spi_dev_get() 2016-04-20 17:37:59 +01:00
tps6586x-regulator.c regulator: tps6586x: silence pointer-to-int-cast 2015-07-23 15:58:33 +01: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: add device tree support 2015-09-21 10:13:17 -07:00
tps65086-regulator.c regulator: tps65086: Update regulator driver for the TPS65086 PMIC 2015-12-01 19:58:58 +00:00
tps65090-regulator.c
tps65217-regulator.c regulator: tps65217: Enable suspend configuration 2016-06-27 17:56:43 +01:00
tps65218-regulator.c regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs 2016-08-10 18:21:55 +01:00
tps65910-regulator.c regulator: tps65910: Work around silicon erratum SWCZ010 2016-09-24 19:04:36 +01:00
tps65912-regulator.c regulator: tps65912: Add regulator driver for the TPS65912 PMIC 2016-02-11 16:31:06 +00:00
tps80031-regulator.c
twl-regulator.c regulator: twl: fix use of integer as pointer 2016-06-08 18:18:24 +01:00
userspace-consumer.c
vexpress-regulator.c regulator: vexpress: rename vexpress regulator implementation 2016-02-15 21:01:52 +00:00
virtual.c
wm831x-dcdc.c Merge remote-tracking branch 'regulator/topic/wm831x' into regulator-next 2016-01-12 18:26:12 +00:00
wm831x-isink.c regulator: wm8*: constify regulator_ops structures 2015-12-23 00:00:00 +00:00
wm831x-ldo.c Merge remote-tracking branch 'regulator/topic/wm831x' into regulator-next 2016-01-12 18:26:12 +00:00
wm8350-regulator.c regulator: wm8*: constify regulator_ops structures 2015-12-23 00:00:00 +00:00
wm8400-regulator.c regulator: wm8*: constify regulator_ops structures 2015-12-23 00:00:00 +00:00
wm8994-regulator.c regulator: wm8*: constify regulator_ops structures 2015-12-23 00:00:00 +00:00