regulator: pca9450: Support PWM mode also for pca9451a
authorPrimoz Fiser <primoz.fiser@norik.com>
Wed, 18 Jun 2025 06:33:39 +0000 (08:33 +0200)
committerMark Brown <broonie@kernel.org>
Sun, 22 Jun 2025 23:27:07 +0000 (00:27 +0100)
Previous commit 548d770c330c ("regulator: pca9450: Add support for mode
operations") added support for setting forced PWM mode on the buck
regulators for pca9450a and pca9450bc parts. However part pca9451a also
supports this feature, thus add support for it.

Fixes: 548d770c330c ("regulator: pca9450: Add support for mode operations")
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
Link: https://patch.msgid.link/20250618063339.2508893-1-primoz.fiser@norik.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/pca9450-regulator.c

index f6faf14a9c536093c7b4576272c6f94137707a3d..feadb21a8f30712b514aa45824e61dde72abb7f7 100644 (file)
@@ -873,12 +873,15 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
                        .n_ramp_values = ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
                        .owner = THIS_MODULE,
                        .of_parse_cb = pca9450_set_dvs_levels,
+                       .of_map_mode = pca9450_map_mode,
                },
                .dvs = {
                        .run_reg = PCA9450_REG_BUCK1OUT_DVS0,
                        .run_mask = BUCK1OUT_DVS0_MASK,
                        .standby_reg = PCA9450_REG_BUCK1OUT_DVS1,
                        .standby_mask = BUCK1OUT_DVS1_MASK,
+                       .mode_reg = PCA9450_REG_BUCK1CTRL,
+                       .mode_mask = BUCK1_FPWM,
                },
        },
        {
@@ -902,12 +905,15 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
                        .n_ramp_values = ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
                        .owner = THIS_MODULE,
                        .of_parse_cb = pca9450_set_dvs_levels,
+                       .of_map_mode = pca9450_map_mode,
                },
                .dvs = {
                        .run_reg = PCA9450_REG_BUCK2OUT_DVS0,
                        .run_mask = BUCK2OUT_DVS0_MASK,
                        .standby_reg = PCA9450_REG_BUCK2OUT_DVS1,
                        .standby_mask = BUCK2OUT_DVS1_MASK,
+                       .mode_reg = PCA9450_REG_BUCK2CTRL,
+                       .mode_mask = BUCK2_FPWM,
                },
        },
        {
@@ -927,6 +933,11 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
                        .enable_mask = BUCK4_ENMODE_MASK,
                        .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
+                       .of_map_mode = pca9450_map_mode,
+               },
+               .dvs = {
+                       .mode_reg = PCA9450_REG_BUCK4CTRL,
+                       .mode_mask = BUCK4_FPWM,
                },
        },
        {
@@ -946,6 +957,11 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
                        .enable_mask = BUCK5_ENMODE_MASK,
                        .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
+                       .of_map_mode = pca9450_map_mode,
+               },
+               .dvs = {
+                       .mode_reg = PCA9450_REG_BUCK5CTRL,
+                       .mode_mask = BUCK5_FPWM,
                },
        },
        {
@@ -965,6 +981,11 @@ static struct pca9450_regulator_desc pca9451a_regulators[] = {
                        .enable_mask = BUCK6_ENMODE_MASK,
                        .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
+                       .of_map_mode = pca9450_map_mode,
+               },
+               .dvs = {
+                       .mode_reg = PCA9450_REG_BUCK6CTRL,
+                       .mode_mask = BUCK6_FPWM,
                },
        },
        {