kernel-fxtec-pro1x/drivers/mfd
Tony Lindgren 5540d01461 mfd: twl6040: Fix device init errors for ACCCTL register
[ Upstream commit 48171d0ea7caccf21c9ee3ae75eb370f2a756062 ]

I noticed that we can get a -EREMOTEIO errors on at least omap4 duovero:

twl6040 0-004b: Failed to write 2d = 19: -121

And then any following register access will produce errors.

There 2d offset above is register ACCCTL that gets written on twl6040
powerup. With error checking added to the related regcache_sync() call,
the -EREMOTEIO error is reproducable on twl6040 powerup at least
duovero.

To fix the error, we need to wait until twl6040 is accessible after the
powerup. Based on tests on omap4 duovero, we need to wait over 8ms after
powerup before register write will complete without failures. Let's also
make sure we warn about possible errors too.

Note that we have twl6040_patch[] reg_sequence with the ACCCTL register
configuration and regcache_sync() will write the new value to ACCCTL.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-06-15 11:54:03 +02:00
..
88pm80x.c
88pm800.c
88pm805.c
88pm860x-core.c
88pm860x-i2c.c
aat2870-core.c
ab3100-core.c
ab3100-otp.c
ab8500-core.c mfd: ab8500-core: Return zero in get_register_interruptible() 2019-02-27 10:08:51 +01:00
ab8500-debugfs.c
ab8500-gpadc.c
ab8500-sysctrl.c
abx500-core.c
ac100.c
act8945a.c
adp5520.c
altera-a10sr.c
arizona-core.c
arizona-i2c.c
arizona-irq.c
arizona-spi.c
arizona.h
as3711.c
as3722.c
asic3.c
atmel-flexcom.c
atmel-hlcdc.c
atmel-smc.c
axp20x-i2c.c
axp20x-rsb.c
axp20x.c mfd: axp20x: Add supported cells for AXP803 2019-02-27 10:08:52 +01:00
bcm590xx.c
bd9571mwv.c mfd: bd9571mwv: Add volatile register to make DVFS work 2019-02-27 10:08:51 +01:00
cros_ec.c
cros_ec_dev.c mfd: cros_ec_dev: Add missing mfd_remove_devices() call in remove 2019-02-27 10:08:52 +01:00
cros_ec_dev.h
cs47l24-tables.c
cs47l35-tables.c
cs47l85-tables.c
cs47l90-tables.c
cs5535-mfd.c
da903x.c
da9052-core.c
da9052-i2c.c
da9052-irq.c
da9052-spi.c
da9055-core.c
da9055-i2c.c
da9062-core.c
da9063-core.c
da9063-i2c.c
da9063-irq.c
da9150-core.c
davinci_voicecodec.c
db8500-prcmu.c mfd: db8500-prcmu: Fix some section annotations 2019-02-27 10:08:51 +01:00
dbx500-prcmu-regs.h
dln2.c
dm355evm_msp.c
exynos-lpass.c
ezx-pcap.c
fsl-imx25-tsadc.c
hi655x-pmic.c
hi6421-pmic-core.c
htc-i2cpld.c
htc-pasic3.c
intel-lpss-acpi.c
intel-lpss-pci.c
intel-lpss.c mfd: intel-lpss: Set the device in reset state when init 2019-06-15 11:54:02 +02:00
intel-lpss.h
intel_msic.c
intel_quark_i2c_gpio.c
intel_soc_pmic_bxtwc.c
intel_soc_pmic_chtdc_ti.c
intel_soc_pmic_chtwc.c
intel_soc_pmic_core.c
intel_soc_pmic_core.h
intel_soc_pmic_crc.c
ipaq-micro.c
janz-cmodio.c
jz4740-adc.c
Kconfig
kempld-core.c
lm3533-core.c
lm3533-ctrlbank.c
lp873x.c
lp3943.c
lp8788-irq.c
lp8788.c
lp87565.c
lpc_ich.c
lpc_sch.c
madera-core.c
madera-i2c.c
madera-spi.c
madera.h
Makefile
max8907.c
max8925-core.c
max8925-i2c.c
max8997-irq.c
max8997.c
max8998-irq.c
max8998.c
max14577.c
max77620.c
max77686.c
max77693.c
max77843.c
mc13xxx-core.c mfd: mc13xxx: Fix a missing check of a register-read failure 2019-02-27 10:08:52 +01:00
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c
menf21bmc.c
mfd-core.c
motorola-cpcap.c
mt6397-core.c mfd: mt6397: Do not call irq_domain_remove if PMIC unsupported 2019-02-27 10:08:51 +01:00
mxs-lradc.c
omap-usb-host.c
omap-usb-tll.c
omap-usb.h
palmas.c
pcf50633-adc.c
pcf50633-core.c
pcf50633-gpio.c
pcf50633-irq.c
qcom-pm8xxx.c
qcom-spmi-pmic.c
qcom_rpm.c mfd: qcom_rpm: write fw_version to CTRL_REG 2019-02-27 10:08:51 +01:00
rave-sp.c
rc5t583-irq.c
rc5t583.c
rdc321x-southbridge.c
retu-mfd.c
rk808.c
rn5t618.c
rohm-bd718x7.c
rt5033.c
sec-core.c
sec-irq.c
si476x-cmd.c
si476x-i2c.c
si476x-prop.c
sky81452.c
sm501.c mfd: sm501: Fix potential NULL pointer dereference 2019-03-23 20:10:09 +01:00
smsc-ece1099.c
sprd-sc27xx-spi.c
ssbi.c
sta2x11-mfd.c
stm32-lptimer.c
stm32-timers.c
stmpe-i2c.c
stmpe-spi.c
stmpe.c
stmpe.h
stw481x.c
sun4i-gpadc.c
sun6i-prcm.c
syscon.c
t7l66xb.c
tc3589x.c
tc6387xb.c
tc6393xb.c
ti-lmu.c
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells 2019-02-27 10:08:50 +01:00
timberdale.c
timberdale.h
tmio_core.c
tps6105x.c
tps6507x.c
tps6586x.c
tps65010.c
tps65086.c
tps65090.c
tps65217.c
tps65218.c mfd: tps65218: Use devm_regmap_add_irq_chip and clean up error path in probe() 2019-02-27 10:08:52 +01:00
tps65910.c
tps65911-comparator.c
tps65912-core.c
tps65912-i2c.c
tps65912-spi.c mfd: tps65912-spi: Add missing of table registration 2019-06-15 11:54:02 +02:00
tps68470.c
tps80031.c
twl-core.c mfd: twl-core: Disable IRQ while suspended 2019-05-08 07:21:48 +02:00
twl-core.h
twl4030-audio.c
twl4030-irq.c
twl4030-power.c
twl6030-irq.c
twl6040.c mfd: twl6040: Fix device init errors for ACCCTL register 2019-06-15 11:54:03 +02:00
ucb1x00-assabet.c
ucb1x00-core.c
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c
viperboard.c
vx855.c
wl1273-core.c
wm97xx-core.c
wm831x-auxadc.c
wm831x-core.c
wm831x-i2c.c
wm831x-irq.c
wm831x-otp.c
wm831x-spi.c
wm5102-tables.c
wm5110-tables.c mfd: wm5110: Add missing ASRC rate register 2019-02-27 10:08:51 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c
wm8994-core.c
wm8994-irq.c
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c