
On 6/28/22 22:02, Fabio Estevam wrote:
On 28/06/2022 11:06, Heiko Thiery wrote:
The regulator driver uses the DVS registers PCA9450_REG_BUCKxOUT_DVS0 to set the voltage for the buck regulators 1, 2 and 3. This has no effect as the PRESET_EN bit is set by default and therefore the preset values are used instead, which are set to 850 mV.
This is a port of the same change in the Linux kernel: 98b94b6e38ca0 ("regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting")
Cc: Frieder Schrempf frieder.schrempf@kontron.de Signed-off-by: Heiko Thiery heiko.thiery@gmail.com
drivers/power/pmic/pca9450.c | 6 ++++++ include/power/pca9450.h | 3 +++ 2 files changed, 9 insertions(+)
diff --git a/drivers/power/pmic/pca9450.c b/drivers/power/pmic/pca9450.c index fecab0496f..1c59362ab4 100644 --- a/drivers/power/pmic/pca9450.c +++ b/drivers/power/pmic/pca9450.c @@ -94,6 +94,12 @@ static int pca9450_probe(struct udevice *dev)
priv->regmap = syscon_node_to_regmap(dev_ofnode(dev));
+ /* Clear PRESET_EN bit in BUCK123_DVS to use DVS registers */ + if (CONFIG_IS_ENABLED(DM_REGULATOR_PCA9450)) { + ret = regmap_update_bits(priv->regmap, PCA9450_BUCK123_DVS, + BUCK123_PRESET_EN, 0); + }
Nit: the braces could be dropped.
IIRC they were recommended on multi-line code in conditional. I think checkpatch --strict might even warn about them missing.