linux/drivers/hwmon/pmbus
Lakshmi Yadlapati 205e0c0577 hwmon: (pmbus/max31785) Add delay between bus accesses
The MAX31785 has shown erratic behaviour across multiple system
designs, unexpectedly clock stretching and NAKing transactions.

Experimentation shows that this seems to be triggered by a register access
directly back to back with a previous register write. Experimentation also
shows that inserting a small delay after register writes makes the issue go
away.

Use a similar solution to what the max15301 driver does to solve the same
problem. Create a custom set of bus read and write functions that make sure
that the delay is added.

Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>
Link: https://lore.kernel.org/r/20231027044346.2167548-1-lakshmiy@us.ibm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2023-10-28 09:22:03 -07:00
..
acbel-fsg032.c hwmon: (pmbus/acbel-fsg032) Add firmware version debugfs attribute 2023-08-21 06:04:29 -07:00
adm1266.c hwmon: (pmbus/adm1266) Drop unnecessary error check for debugfs_create_dir 2023-06-08 06:43:00 -07:00
adm1275.c hwmon: (pmbus/adm1275) Disable ADC while updating PMON_CONFIG 2023-06-22 10:39:58 -07:00
bel-pfe.c hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100 2023-08-06 06:22:33 -07:00
bpa-rs600.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
delta-ahe50dc-fan.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
dps920ab.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
fsp-3y.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ibm-cffps.c hwmon: (pmbus/ibm-cffps) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
inspur-ipsps.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir35221.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir36021.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir38064.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
irps5401.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
isl68137.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
Kconfig hwmon: (pmbus/mp2975) Add regulator support 2023-08-21 06:04:30 -07:00
lm25066.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lt7182s.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2978.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc3815.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
Makefile hwmon: (pmbus/acbel-fsg032) Add Acbel power supply 2023-04-19 07:08:40 -07:00
max8688.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max15301.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16064.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16601.c hwmon: (pmbus/max16601) Add support for new revisions of MAX16508 2023-06-10 08:28:14 -07:00
max20730.c hwmon: (max20730) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
max20751.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max31785.c hwmon: (pmbus/max31785) Add delay between bus accesses 2023-10-28 09:22:03 -07:00
max34440.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2888.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2975.c hwmon: (pmbus/mp2975) Move PGOOD fix 2023-10-27 07:26:29 -07:00
mp5023.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
mpq7932.c hwmon: (pmbus/mpq7932) Add a support for mpq2286 Power Management IC 2023-10-28 09:21:48 -07:00
pim4328.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pli1209bc.c hwmon: pmbus: Fix -EIO seen on pli1209 2023-08-21 06:04:31 -07:00
pm6764tr.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus_core.c hwmon: pmbus: Drop unnecessary clear fault page 2023-08-21 06:04:31 -07:00
pmbus.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus.h hwmon: (pmbus/core) Add helper macro to define single pmbus regulator 2023-10-28 09:21:48 -07:00
pxe1610.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
q54sj108a2.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
stpddc60.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tda38640.c hwmon: (pmbus/tda38640) Add workaround for SVID mode 2023-10-27 07:27:23 -07:00
tps546d24.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps40422.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps53679.c hwmon: (pmbus/tps53679) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
ucd9000.c hwmon: (pmbus/ucd9000) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
ucd9200.c hwmon: (pmbus/ucd9200) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:31 -07:00
xdpe152c4.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
xdpe12284.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
zl6100.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00