Some Flex pmbus converters (BMR310, BMR458, BMR80, BMR490 and BMR491) end up in an undefined state when trying to read a register that does not exist in the chip. This causes the following chip access to also fail even if it is a valid register read or write. This will mess up the pmbus driver auto-detection process. One way to reset the pmbus state machine to a known state is to read a register that is known to exist. This read will fail but will also reset the chip into a known state. For such chips we suggest adding a new pmbus flag: PMBUS_READ_STATUS_AFTER_FAILED_CHECK By setting this flag the driver will try to read the STATUS register after each failed register check. This read may fail, but it will put the chip into a known state so that the auto-detection process can proceed correctly. Add support for Flex BMR310, BMR456, BMR457, BMR458, BMR480, BMR490, BMR491 and BMR492 to the pmbus driver This patch has been tested with Flex BMR310, BMR456, BMR457, BMR458, BMR480, BMR490, BMR491 and BMR492 converter modules v2 -Copy all flags to pmbus_platform_data struct instead of one by one -Fix code formatting in pmbus_core documentation -Add documentation for flag NO_CAPABILITY -Fix sorting of chip names and prefix in pmbus documentation Erik Rosen (3): Add new flag PMBUS_READ_STATUS_AFTER_FAILED_CHECK Add documentation for new flags Add support for Flex BMR310, BMR456, BMR457, BMR458, BMR480, BMR490, BMR491 and BMR492 to the pmbus driver Documentation/hwmon/pmbus-core.rst | 42 +++++++++++++++++++++++++++--- Documentation/hwmon/pmbus.rst | 11 +++++--- drivers/hwmon/pmbus/Kconfig | 7 ++--- drivers/hwmon/pmbus/pmbus.c | 19 ++++++++++++-- drivers/hwmon/pmbus/pmbus_core.c | 2 ++ include/linux/pmbus.h | 13 +++++++++ 6 files changed, 81 insertions(+), 13 deletions(-) base-commit: 1e28eed17697bcf343c6743f0028cc3b5dd88bf0 -- 2.20.1