board: msm7x27a: Put BT vregs in LPM Pin control.
BT vregs are put in LPM with D1_XO_EN. It doesn't disable
the vreg anymore.Capacitive charging Current Spikes are
seen if the vreg is disabled, instead of putting in LPM.
Signed-off-by: Rahul Kashyap <rkashyap@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-msm7x27a.c b/arch/arm/mach-msm/board-msm7x27a.c
index 6590ec0..d45ee3c 100644
--- a/arch/arm/mach-msm/board-msm7x27a.c
+++ b/arch/arm/mach-msm/board-msm7x27a.c
@@ -642,17 +642,28 @@
__func__, rc);
goto vreg_set_level_fail;
}
+ rc = on ? vreg_enable(bt_vregs[i].vregs) : 0;
+
+ if (rc < 0) {
+ pr_err("%s: vreg %s %s failed(%d)\n",
+ __func__, bt_vregs[i].name,
+ on ? "enable" : "disable", rc);
+ goto vreg_fail;
+ }
if (bt_vregs[i].is_pin_controlled == 1) {
- rc = pmapp_vreg_pincntrl_vote(id,
+ rc = pmapp_vreg_lpm_pincntrl_vote(id,
bt_vregs[i].pmapp_id,
PMAPP_CLOCK_ID_D1,
on ? PMAPP_CLOCK_VOTE_ON :
PMAPP_CLOCK_VOTE_OFF);
- } else {
- rc = on ? vreg_enable(bt_vregs[i].vregs) :
- vreg_disable(bt_vregs[i].vregs);
+ if (rc < 0) {
+ pr_err("%s: vreg %s pin ctrl failed(%d)\n",
+ __func__, bt_vregs[i].name,
+ rc);
+ goto pincntrl_fail;
+ }
}
-
+ rc = on ? 0 : vreg_disable(bt_vregs[i].vregs);
if (rc < 0) {
pr_err("%s: vreg %s %s failed(%d)\n",
__func__, bt_vregs[i].name,
@@ -662,7 +673,9 @@
}
return rc;
-
+pincntrl_fail:
+ if (on)
+ vreg_disable(bt_vregs[i].vregs);
vreg_fail:
while (i) {
if (on)