android_kernel_oneplus_msm8998/include/linux/mfd
Krzysztof Kozlowski fc2d8c98f7 regulator: s2mps11: Fix invalid selector mask and voltages for buck9
commit 3b672623079bb3e5685b8549e514f2dfaa564406 upstream.

The buck9 regulator of S2MPS11 PMIC had incorrect vsel_mask (0xff
instead of 0x1f) thus reading entire register as buck9's voltage. This
effectively caused regulator core to interpret values as higher voltages
than they were and then to set real voltage much lower than intended.

The buck9 provides power to other regulators, including LDO13
and LDO19 which supply the MMC2 (SD card). On Odroid XU3/XU4 the lower
voltage caused SD card detection errors on Odroid XU3/XU4:
	mmc1: card never left busy state
	mmc1: error -110 whilst initialising SD card

During driver probe the regulator core was checking whether initial
voltage matches the constraints. With incorrect vsel_mask of 0xff and
default value of 0x50, the core interpreted this as 5 V which is outside
of constraints (3-3.775 V). Then the regulator core was adjusting the
voltage to match the constraints. With incorrect vsel_mask this new
voltage mapped to a vere low voltage in the driver.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-05-18 17:06:51 -07:00
..
abx500 power_supply: Change ownership from driver to core 2015-03-13 23:15:51 +01:00
arizona mfd: arizona: Add register bits to support the ANC block 2015-10-26 14:49:06 +00:00
da9052 mfd: da9053: Addition of extra registers for GPIOs 8-13 2015-10-30 17:19:49 +00:00
da9055 mfd: Constify regmap and irq configuration data 2015-06-22 12:25:01 +01:00
da9062 mfd: da9062: Supply core driver 2015-08-11 15:08:45 +01:00
da9063 mfd: da9063: Fix missing DA9063_M_DVC_RDY mask bit 2015-08-11 15:08:51 +01:00
da9150 mfd: da9150: Add support for Fuel-Gauge 2015-10-13 11:27:54 +01:00
mt6397 mfd: mt6397: Implement wake handler and suspend/resume to handle wake up event 2015-08-11 15:09:11 +01:00
pcf50633
samsung regulator: s2mps11: Fix invalid selector mask and voltages for buck9 2016-05-18 17:06:51 -07:00
syscon ARM: imx7d: add imx7d iomux-gpr field define 2015-09-22 17:47:53 -07:00
wm831x
wm8350 power_supply: Change ownership from driver to core 2015-03-13 23:15:51 +01:00
wm8994
88pm80x.h mfd: 88pm80x: Add 88pm860 chip type support 2015-10-26 14:48:56 +00:00
88pm860x.h
aat2870.h
ab3100.h
abx500.h mfd: abx500-core: Remove unused function abx500_dump_all_banks() 2014-06-03 08:11:51 +01:00
adp5520.h
as3711.h
as3722.h
asic3.h
atmel-hlcdc.h mfd: Add atmel-hlcdc driver 2014-11-25 16:18:43 +00:00
axp20x.h power: Add an axp20x-usb-power driver 2015-09-22 13:35:28 +02:00
bcm590xx.h
core.h mfd: core: redo ACPI matching of the children devices 2015-10-26 15:25:53 +01:00
cros_ec.h platform/chrome: Support reading/writing the vboot context 2015-10-07 15:05:53 -07:00
cros_ec_commands.h mfd: cros_ec: rev cros_ec_commands.h 2015-06-15 13:18:20 +01:00
da903x.h
davinci_voicecodec.h ASoC: cq93vc: Remove unused state struct 2014-11-27 11:11:30 +00:00
db8500-prcmu.h
dbx500-prcmu.h
dln2.h mfd: Add support for Diolan DLN-2 devices 2014-11-10 16:30:05 +00:00
ds1wm.h
ezx-pcap.h
hi6421-pmic.h mfd: Add HI6421 PMIC Core driver 2014-09-26 08:23:43 +01:00
htc-egpio.h
htc-pasic3.h
intel_bxtwc.h mfd: add Intel Broxton Whiskey Cove PMIC driver 2015-10-30 17:18:50 +00:00
intel_msic.h
intel_soc_pmic.h mfd: intel_soc_pmic: Add support for Broxton WC PMIC 2015-10-30 17:18:03 +00:00
ipaq-micro.h mfd: Add driver for Atmel Microcontroller on iPaq h3xxx 2014-06-03 08:11:42 +01:00
janz.h
kempld.h mfd: Add sysfs attributes for Kontron PLD firmware revision 2014-06-03 08:11:11 +01:00
lm3533.h
lp3943.h
lp8788-isink.h
lp8788.h
lpc_ich.h mfd: watchdog: iTCO_wdt: Expose watchdog properties using platform data 2015-08-11 15:03:21 +01:00
max8907.h
max8925.h
max8997-private.h
max8997.h
max8998-private.h
max8998.h
max14577-private.h charger: max14577: Configure battery-dependent settings from DTS and sysfs 2014-09-24 15:25:49 +01:00
max14577.h charger: max14577: Configure battery-dependent settings from DTS and sysfs 2014-09-24 15:25:49 +01:00
max77686-private.h mfd: max77686/802: Remove support for board files 2015-01-22 16:03:55 +00:00
max77686.h mfd: max77686: Remove unused struct max77686_opmode_data 2015-06-22 12:25:05 +01:00
max77693-common.h drivers: max77843: Switch to common max77693 state container 2015-07-16 21:39:30 +01:00
max77693-private.h mfd/extcon: max77693: Rename defines to allow inclusion with max77843 2015-07-16 21:39:30 +01:00
max77693.h == Changes to existing drivers == 2015-04-14 17:29:55 -07:00
max77843-private.h mfd/extcon: max77843: Rename defines to allow inclusion with max77693 2015-07-16 21:39:30 +01:00
mc13xxx.h mfd: mc13xxx: Use regmap irq framework for interrupts 2014-07-09 14:58:10 +01:00
mc13783.h mfd: mc13xxx: Use regmap irq framework for interrupts 2014-07-09 14:58:10 +01:00
mc13892.h
mcp.h
menelaus.h mfd: menelaus: Drop support for SW controller VCORE 2015-03-30 10:06:50 +01:00
palmas.h extcon: palmas: Support GPIO based USB ID detection 2015-08-10 21:26:25 +09:00
qcom_rpm.h mfd: qcom-rpm: Driver for the Qualcomm RPM 2015-01-22 16:04:00 +00:00
rc5t583.h
rdc321x.h mfd: rdc321x: Fix off-by-one for ngpio setting 2014-06-03 08:11:17 +01:00
retu.h
rk808.h mfd: rk808: Disable the under voltage detect 2015-03-12 09:07:10 +00:00
rn5t618.h mfd: Add Ricoh RN5T618 PMIC core driver 2014-09-26 08:15:51 +01:00
rt5033-private.h mfd: rt5033: Add Richtek RT5033 driver core. 2015-01-22 15:55:47 +00:00
rt5033.h power_supply: Change ownership from driver to core 2015-03-13 23:15:51 +01:00
rtsx_common.h
rtsx_pci.h mfd: rtsx: Add support for rts522A 2015-10-30 17:19:51 +00:00
rtsx_usb.h
si476x-core.h
si476x-platform.h
si476x-reports.h
sky81452.h mfd: Add support for Skyworks SKY81452 driver 2015-03-12 09:08:12 +00:00
smsc.h
sta2x11-mfd.h
stmpe.h Input: stmpe-ts - enforce device tree only mode 2015-05-26 14:16:08 -07:00
stw481x.h regulator: stw481x: Remove unused fields from struct stw481x 2015-03-21 01:05:56 +00:00
syscon.h mfd: syscon: Include linux/err.h to fix build error 2014-06-03 08:11:41 +01:00
t7l66xb.h
tc3589x.h Input: tc3589x - localize platform data 2015-04-03 17:08:59 -07:00
tc6387xb.h
tc6393xb.h
ti_am335x_tscadc.h mfd: ti_am335x_tscadc: Remove unwanted reg_se_cache save 2015-03-03 16:41:15 +00:00
tmio.h mmc: tmio: mmc: tmio: tmio_mmc_data has .chan_priv_?x 2015-03-05 21:54:17 +05:30
tps6105x.h mfd: tps6105x: Use i2c regmap to access registers 2015-10-05 10:38:22 +01:00
tps6507x.h
tps6586x.h
tps65090.h
tps65217.h mfd: tps65217: Tell regmap what registers are valid 2014-09-26 08:23:50 +01:00
tps65218.h mfd: tps65218: Remove unused *rdev[] from struct tps65218 2014-06-03 08:11:13 +01:00
tps65910.h mfd: tps65910: Rid data size incompatibility warn when building for 64bit 2014-07-09 16:38:01 +01:00
tps65912.h
tps80031.h
twl4030-audio.h
twl6040.h mfd: twl6040: Optional clk32k clock handling 2014-06-03 08:11:20 +01:00
ucb1x00.h
viperboard.h
wl1273-core.h
wm8400-audio.h
wm8400-private.h
wm8400.h