]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regulator: pca9450: add enable_value for all bucks
authorRobin Gong <yibin.gong@nxp.com>
Thu, 5 Dec 2024 16:51:09 +0000 (11:51 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 9 Dec 2024 13:14:14 +0000 (13:14 +0000)
Set 'enable_value' in the regulator descriptor for different bucks to
manage their enable modes:

- 00b: OFF
- 01b: ON when PMIC_ON_REQ = H
- 10b: ON when PMIC_ON_REQ = H && PMIC_STBY_REQ = L
- 11b: Always ON

Ensure appropriate behavior based on the intended design. For example:
- Buck2, designed for vddarm, should be set to '10b' (ON when
PMIC_STBY_REQ = L) since it can be off when `PMIC_STBY_REQ = H` after the
kernel enters suspend.
- Other bucks remain '01b' (ON when PMIC_ON_REQ = H), matching the default
setting. This avoids the need to re-enable them during kernel boot as they
are already enabled after PMIC initialization.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20241205-pca9450-v1-1-aab448b74e78@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/pca9450-regulator.c

index 9714afe347dcc0205b40243252638dff5f9298ad..caeeed433165c839abe44873ac033c1bbfcaafba 100644 (file)
@@ -247,6 +247,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .ramp_mask = BUCK1_RAMP_MASK,
                        .ramp_delay_table = pca9450_dvs_buck_ramp_table,
                        .n_ramp_values = ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                        .of_parse_cb = pca9450_set_dvs_levels,
                },
@@ -272,6 +273,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .vsel_mask = BUCK2OUT_DVS0_MASK,
                        .enable_reg = PCA9450_REG_BUCK2CTRL,
                        .enable_mask = BUCK2_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
                        .ramp_reg = PCA9450_REG_BUCK2CTRL,
                        .ramp_mask = BUCK2_RAMP_MASK,
                        .ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -301,6 +303,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .vsel_mask = BUCK3OUT_DVS0_MASK,
                        .enable_reg = PCA9450_REG_BUCK3CTRL,
                        .enable_mask = BUCK3_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .ramp_reg = PCA9450_REG_BUCK3CTRL,
                        .ramp_mask = BUCK3_RAMP_MASK,
                        .ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -330,6 +333,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .vsel_mask = BUCK4OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK4CTRL,
                        .enable_mask = BUCK4_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },
@@ -348,6 +352,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .vsel_mask = BUCK5OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK5CTRL,
                        .enable_mask = BUCK5_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },
@@ -366,6 +371,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
                        .vsel_mask = BUCK6OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK6CTRL,
                        .enable_mask = BUCK6_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },
@@ -481,6 +487,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
                        .vsel_mask = BUCK1OUT_DVS0_MASK,
                        .enable_reg = PCA9450_REG_BUCK1CTRL,
                        .enable_mask = BUCK1_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .ramp_reg = PCA9450_REG_BUCK1CTRL,
                        .ramp_mask = BUCK1_RAMP_MASK,
                        .ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -510,6 +517,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
                        .vsel_mask = BUCK2OUT_DVS0_MASK,
                        .enable_reg = PCA9450_REG_BUCK2CTRL,
                        .enable_mask = BUCK2_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
                        .ramp_reg = PCA9450_REG_BUCK2CTRL,
                        .ramp_mask = BUCK2_RAMP_MASK,
                        .ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -539,6 +547,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
                        .vsel_mask = BUCK4OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK4CTRL,
                        .enable_mask = BUCK4_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },
@@ -557,6 +566,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
                        .vsel_mask = BUCK5OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK5CTRL,
                        .enable_mask = BUCK5_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },
@@ -575,6 +585,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
                        .vsel_mask = BUCK6OUT_MASK,
                        .enable_reg = PCA9450_REG_BUCK6CTRL,
                        .enable_mask = BUCK6_ENMODE_MASK,
+                       .enable_val = BUCK_ENMODE_ONREQ,
                        .owner = THIS_MODULE,
                },
        },