Implement support for setting the VOUT_SCALE_LOOP PMBus register based on an optional device tree property "voltage-scale-loop". This allows the driver to provide the correct VOUT value depending on the feedback voltage divider configuration for chips where the bootloader does not configure the voltage scale. Signed-off-by: Pawel Dembicki <paweldembicki@xxxxxxxxx> --- drivers/hwmon/pmbus/mpq8785.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/hwmon/pmbus/mpq8785.c b/drivers/hwmon/pmbus/mpq8785.c index e6a643856f08..6e2325d7f37b 100644 --- a/drivers/hwmon/pmbus/mpq8785.c +++ b/drivers/hwmon/pmbus/mpq8785.c @@ -78,6 +78,8 @@ static int mpq8785_probe(struct i2c_client *client) struct device *dev = &client->dev; struct pmbus_driver_info *info; enum chips chip_id; + u32 voltage_scale; + int ret; info = devm_kmemdup(dev, &mpq8785_info, sizeof(*info), GFP_KERNEL); if (!info) @@ -105,6 +107,14 @@ static int mpq8785_probe(struct i2c_client *client) return -ENODEV; } + if (!of_property_read_u32(dev->of_node, "voltage-scale-loop", + &voltage_scale)) { + ret = i2c_smbus_write_word_data(client, PMBUS_VOUT_SCALE_LOOP, + voltage_scale); + if (ret) + return ret; + } + return pmbus_do_probe(client, info); }; -- 2.43.0