Some PMBus chips may boot in write protected mode by default. If the PMBus
chip is protected, it essentially becomes a read-only chip. Writing
protected register will be ignored by the chips and a communication fault
raised.
PMBus chips may also provide regulators, but protected chip are not
properly supported, since write are performed regardless of the protection.
This patchset adds callback in the regulator framework for drivers to
perform runtime init, such as checking the write protection status and
adjust the regulator constraints accordingly.
PMBus then make use of the added callback to adjust the validity of the
ops. In the future, PMBus could even use this callback to adjust the
constraints based on the supported registers.
Last, a module parameter is added to allow to set or clear the pmbus write
protection if necessary. These are 2 simple mode, more could be added
later.
The patchset targets 2 different subsystems. Please let me know if you
prefer a respin with 2 patchsets, one for each subsystem.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
Jerome Brunet (5):
regulator: core: add callback to perform runtime init
regulator: core: remove machine init callback from config
hwmon: (pmbus/core) allow drivers to override WRITE_PROTECT
hwmon: (pmbus/core) improve handling of write protected regulators
hwmon: (pmbus/core) add wp module param
Documentation/admin-guide/kernel-parameters.txt | 4 ++
drivers/hwmon/pmbus/pmbus.h | 4 ++
drivers/hwmon/pmbus/pmbus_core.c | 83 ++++++++++++++++++++++---
drivers/regulator/core.c | 13 ++--
include/linux/pmbus.h | 14 +++++
include/linux/regulator/driver.h | 2 +
include/linux/regulator/machine.h | 3 +-
7 files changed, 106 insertions(+), 17 deletions(-)
---
base-commit: cd87a98b53518e44cf3c1a7c1c07c869ce33bf83
change-id: 20240920-pmbus-wp-0281f54b7fe2
Best regards,
--
Jerome