]> www.infradead.org Git - users/willy/xarray.git/commitdiff
regulator: tps6594-regulator: Correct multi-phase configuration
authorNeha Malcom Francis <n-francis@ti.com>
Tue, 21 May 2024 09:47:58 +0000 (15:17 +0530)
committerMark Brown <broonie@kernel.org>
Tue, 21 May 2024 11:27:36 +0000 (12:27 +0100)
According to the TPS6594 PMIC Manual (linked) 8.3.2.1.4 Multi-Phase BUCK
Regulator Configurations section, the PMIC ignores all the other bucks'
except the primary buck's regulator registers. This is BUCK1 for
configurations BUCK12, BUCK123 and BUCK1234 while it is BUCK3 for
BUCK34. Correct the registers mapped for these configurations
accordingly.

Fixes: f17ccc5deb4d ("regulator: tps6594-regulator: Add driver for TI TPS6594 regulators")
Link: https://www.ti.com/lit/gpn/tps6594-q1
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Link: https://msgid.link/r/20240521094758.2190331-1-n-francis@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/tps6594-regulator.c

index b7f0c87797577eee4d34a9cbb16ccae039559169..5fad61785e72f826165a550e29da6bcfc97754a2 100644 (file)
@@ -287,30 +287,30 @@ static struct tps6594_regulator_irq_type *tps6594_ldos_irq_types[] = {
 static const struct regulator_desc multi_regs[] = {
        TPS6594_REGULATOR("BUCK12", "buck12", TPS6594_BUCK_1,
                          REGULATOR_VOLTAGE, tps6594_bucks_ops, TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_VOUT_1(1),
+                         TPS6594_REG_BUCKX_VOUT_1(0),
                          TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_CTRL(1),
+                         TPS6594_REG_BUCKX_CTRL(0),
                          TPS6594_BIT_BUCK_EN, 0, 0, bucks_ranges,
                          4, 4000, 0, NULL, 0, 0),
        TPS6594_REGULATOR("BUCK34", "buck34", TPS6594_BUCK_3,
                          REGULATOR_VOLTAGE, tps6594_bucks_ops, TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_VOUT_1(3),
+                         TPS6594_REG_BUCKX_VOUT_1(2),
                          TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_CTRL(3),
+                         TPS6594_REG_BUCKX_CTRL(2),
                          TPS6594_BIT_BUCK_EN, 0, 0, bucks_ranges,
                          4, 0, 0, NULL, 0, 0),
        TPS6594_REGULATOR("BUCK123", "buck123", TPS6594_BUCK_1,
                          REGULATOR_VOLTAGE, tps6594_bucks_ops, TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_VOUT_1(1),
+                         TPS6594_REG_BUCKX_VOUT_1(0),
                          TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_CTRL(1),
+                         TPS6594_REG_BUCKX_CTRL(0),
                          TPS6594_BIT_BUCK_EN, 0, 0, bucks_ranges,
                          4, 4000, 0, NULL, 0, 0),
        TPS6594_REGULATOR("BUCK1234", "buck1234", TPS6594_BUCK_1,
                          REGULATOR_VOLTAGE, tps6594_bucks_ops, TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_VOUT_1(1),
+                         TPS6594_REG_BUCKX_VOUT_1(0),
                          TPS6594_MASK_BUCKS_VSET,
-                         TPS6594_REG_BUCKX_CTRL(1),
+                         TPS6594_REG_BUCKX_CTRL(0),
                          TPS6594_BIT_BUCK_EN, 0, 0, bucks_ranges,
                          4, 4000, 0, NULL, 0, 0),
 };