Commit 0ff3897d79d4607d37432b3eb81a304f7e4b4841

Authored by Balaji T K
Committed by Liam Girdwood
1 parent f8c2940bcd

regulator: twl6030: do not write to _GRP for regulator disable

TWL6030: regulator is disabled via VREG_STATE
TWL4030: regulator is disabled via VREG_GRP
Since there is nothing common, split twlreg_enable similar to other regulator_ops

Signed-off-by: Balaji T K <balajitk@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>

Showing 1 changed file with 22 additions and 25 deletions Side-by-side Diff

drivers/regulator/twl-regulator.c
... ... @@ -194,7 +194,7 @@
194 194 return ret;
195 195 }
196 196  
197   -static int twlreg_disable(struct regulator_dev *rdev)
  197 +static int twl4030reg_disable(struct regulator_dev *rdev)
198 198 {
199 199 struct twlreg_info *info = rdev_get_drvdata(rdev);
200 200 int grp;
201 201  
202 202  
203 203  
... ... @@ -204,29 +204,26 @@
204 204 if (grp < 0)
205 205 return grp;
206 206  
207   - /* For 6030, set the off state for all grps enabled */
208   - if (twl_class_is_6030()) {
209   - ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
210   - (grp & (P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030)) <<
211   - TWL6030_CFG_STATE_GRP_SHIFT |
212   - TWL6030_CFG_STATE_OFF);
213   - if (ret)
214   - return ret;
215   - }
  207 + grp &= ~(P1_GRP_4030 | P2_GRP_4030 | P3_GRP_4030);
216 208  
217   - if (twl_class_is_4030())
218   - grp &= ~(P1_GRP_4030 | P2_GRP_4030 | P3_GRP_4030);
219   - else
220   - grp &= ~(P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030);
221   -
222 209 ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_GRP, grp);
223 210  
224   - /* Next, associate cleared grp in state register */
225   - if (!ret && twl_class_is_6030())
226   - ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
227   - grp << TWL6030_CFG_STATE_GRP_SHIFT |
228   - TWL6030_CFG_STATE_OFF);
  211 + return ret;
  212 +}
229 213  
  214 +static int twl6030reg_disable(struct regulator_dev *rdev)
  215 +{
  216 + struct twlreg_info *info = rdev_get_drvdata(rdev);
  217 + int grp = 0;
  218 + int ret;
  219 +
  220 + grp = P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030;
  221 +
  222 + /* For 6030, set the off state for all grps enabled */
  223 + ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
  224 + (grp) << TWL6030_CFG_STATE_GRP_SHIFT |
  225 + TWL6030_CFG_STATE_OFF);
  226 +
230 227 return ret;
231 228 }
232 229  
... ... @@ -485,7 +482,7 @@
485 482 .get_voltage = twl4030ldo_get_voltage,
486 483  
487 484 .enable = twl4030reg_enable,
488   - .disable = twlreg_disable,
  485 + .disable = twl4030reg_disable,
489 486 .is_enabled = twl4030reg_is_enabled,
490 487  
491 488 .set_mode = twl4030reg_set_mode,
... ... @@ -543,7 +540,7 @@
543 540 .get_voltage = twl6030ldo_get_voltage,
544 541  
545 542 .enable = twl6030reg_enable,
546   - .disable = twlreg_disable,
  543 + .disable = twl6030reg_disable,
547 544 .is_enabled = twl6030reg_is_enabled,
548 545  
549 546 .set_mode = twl6030reg_set_mode,
... ... @@ -576,7 +573,7 @@
576 573 .get_voltage = twlfixed_get_voltage,
577 574  
578 575 .enable = twl4030reg_enable,
579   - .disable = twlreg_disable,
  576 + .disable = twl4030reg_disable,
580 577 .is_enabled = twl4030reg_is_enabled,
581 578  
582 579 .set_mode = twl4030reg_set_mode,
... ... @@ -590,7 +587,7 @@
590 587 .get_voltage = twlfixed_get_voltage,
591 588  
592 589 .enable = twl6030reg_enable,
593   - .disable = twlreg_disable,
  590 + .disable = twl6030reg_disable,
594 591 .is_enabled = twl6030reg_is_enabled,
595 592  
596 593 .set_mode = twl6030reg_set_mode,
... ... @@ -600,7 +597,7 @@
600 597  
601 598 static struct regulator_ops twl6030_fixed_resource = {
602 599 .enable = twl6030reg_enable,
603   - .disable = twlreg_disable,
  600 + .disable = twl6030reg_disable,
604 601 .is_enabled = twl6030reg_is_enabled,
605 602 .get_status = twl6030reg_get_status,
606 603 };