Skip to content

Commit 229773f

Browse files
Robin Gongbroonie
authored andcommitted
regulator: pca9450: add enable_value for all bucks
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>
1 parent a6ebabd commit 229773f

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

drivers/regulator/pca9450-regulator.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
247247
.ramp_mask = BUCK1_RAMP_MASK,
248248
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
249249
.n_ramp_values = ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
250+
.enable_val = BUCK_ENMODE_ONREQ,
250251
.owner = THIS_MODULE,
251252
.of_parse_cb = pca9450_set_dvs_levels,
252253
},
@@ -272,6 +273,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
272273
.vsel_mask = BUCK2OUT_DVS0_MASK,
273274
.enable_reg = PCA9450_REG_BUCK2CTRL,
274275
.enable_mask = BUCK2_ENMODE_MASK,
276+
.enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
275277
.ramp_reg = PCA9450_REG_BUCK2CTRL,
276278
.ramp_mask = BUCK2_RAMP_MASK,
277279
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -301,6 +303,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
301303
.vsel_mask = BUCK3OUT_DVS0_MASK,
302304
.enable_reg = PCA9450_REG_BUCK3CTRL,
303305
.enable_mask = BUCK3_ENMODE_MASK,
306+
.enable_val = BUCK_ENMODE_ONREQ,
304307
.ramp_reg = PCA9450_REG_BUCK3CTRL,
305308
.ramp_mask = BUCK3_RAMP_MASK,
306309
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -330,6 +333,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
330333
.vsel_mask = BUCK4OUT_MASK,
331334
.enable_reg = PCA9450_REG_BUCK4CTRL,
332335
.enable_mask = BUCK4_ENMODE_MASK,
336+
.enable_val = BUCK_ENMODE_ONREQ,
333337
.owner = THIS_MODULE,
334338
},
335339
},
@@ -348,6 +352,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
348352
.vsel_mask = BUCK5OUT_MASK,
349353
.enable_reg = PCA9450_REG_BUCK5CTRL,
350354
.enable_mask = BUCK5_ENMODE_MASK,
355+
.enable_val = BUCK_ENMODE_ONREQ,
351356
.owner = THIS_MODULE,
352357
},
353358
},
@@ -366,6 +371,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
366371
.vsel_mask = BUCK6OUT_MASK,
367372
.enable_reg = PCA9450_REG_BUCK6CTRL,
368373
.enable_mask = BUCK6_ENMODE_MASK,
374+
.enable_val = BUCK_ENMODE_ONREQ,
369375
.owner = THIS_MODULE,
370376
},
371377
},
@@ -481,6 +487,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
481487
.vsel_mask = BUCK1OUT_DVS0_MASK,
482488
.enable_reg = PCA9450_REG_BUCK1CTRL,
483489
.enable_mask = BUCK1_ENMODE_MASK,
490+
.enable_val = BUCK_ENMODE_ONREQ,
484491
.ramp_reg = PCA9450_REG_BUCK1CTRL,
485492
.ramp_mask = BUCK1_RAMP_MASK,
486493
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -510,6 +517,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
510517
.vsel_mask = BUCK2OUT_DVS0_MASK,
511518
.enable_reg = PCA9450_REG_BUCK2CTRL,
512519
.enable_mask = BUCK2_ENMODE_MASK,
520+
.enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
513521
.ramp_reg = PCA9450_REG_BUCK2CTRL,
514522
.ramp_mask = BUCK2_RAMP_MASK,
515523
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -539,6 +547,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
539547
.vsel_mask = BUCK4OUT_MASK,
540548
.enable_reg = PCA9450_REG_BUCK4CTRL,
541549
.enable_mask = BUCK4_ENMODE_MASK,
550+
.enable_val = BUCK_ENMODE_ONREQ,
542551
.owner = THIS_MODULE,
543552
},
544553
},
@@ -557,6 +566,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
557566
.vsel_mask = BUCK5OUT_MASK,
558567
.enable_reg = PCA9450_REG_BUCK5CTRL,
559568
.enable_mask = BUCK5_ENMODE_MASK,
569+
.enable_val = BUCK_ENMODE_ONREQ,
560570
.owner = THIS_MODULE,
561571
},
562572
},
@@ -575,6 +585,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
575585
.vsel_mask = BUCK6OUT_MASK,
576586
.enable_reg = PCA9450_REG_BUCK6CTRL,
577587
.enable_mask = BUCK6_ENMODE_MASK,
588+
.enable_val = BUCK_ENMODE_ONREQ,
578589
.owner = THIS_MODULE,
579590
},
580591
},

0 commit comments

Comments
 (0)