* [PATCH 0/2] regulator: twl6030: do not write to _GRP for enable/disable
@ 2011-05-20 13:33 Balaji T K
2011-05-20 13:33 ` [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable Balaji T K
2011-05-20 13:33 ` [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable Balaji T K
0 siblings, 2 replies; 6+ messages in thread
From: Balaji T K @ 2011-05-20 13:33 UTC (permalink / raw)
To: linux-omap, lrg; +Cc: broonie, lrg, gg, Balaji T K
TWL6030: regulator is enabled/disabled via VREG_STATE
Resetting VREG_GRP is not needed to disable it.
TWL4030: regulator is enabled/disabled via VREG_GRP
Since there is nothing common, split twlreg_enable similar to other regulator_ops
Balaji T K (2):
regulator: twl6030: do not write to _GRP for regulator enable
regulator: twl6030: do not write to _GRP for regulator disable
drivers/regulator/twl-regulator.c | 86 ++++++++++++++++++++-----------------
1 files changed, 47 insertions(+), 39 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable
2011-05-20 13:33 [PATCH 0/2] regulator: twl6030: do not write to _GRP for enable/disable Balaji T K
@ 2011-05-20 13:33 ` Balaji T K
2011-05-22 6:50 ` Mark Brown
2011-05-20 13:33 ` [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable Balaji T K
1 sibling, 1 reply; 6+ messages in thread
From: Balaji T K @ 2011-05-20 13:33 UTC (permalink / raw)
To: linux-omap, lrg; +Cc: broonie, lrg, gg, Balaji T K
TWL6030: regulator is enabled via VREG_STATE
TWL4030: regulator is enabled 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>
---
drivers/regulator/twl-regulator.c | 39 +++++++++++++++++++++++-------------
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
index 2a808c2..abb40c6 100644
--- a/drivers/regulator/twl-regulator.c
+++ b/drivers/regulator/twl-regulator.c
@@ -156,7 +156,7 @@ static int twl6030reg_is_enabled(struct regulator_dev *rdev)
return grp && (val == TWL6030_CFG_STATE_ON);
}
-static int twlreg_enable(struct regulator_dev *rdev)
+static int twl4030reg_enable(struct regulator_dev *rdev)
{
struct twlreg_info *info = rdev_get_drvdata(rdev);
int grp;
@@ -166,17 +166,28 @@ static int twlreg_enable(struct regulator_dev *rdev)
if (grp < 0)
return grp;
- if (twl_class_is_4030())
- grp |= P1_GRP_4030;
- else
- grp |= P1_GRP_6030;
+ grp |= P1_GRP_4030;
ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_GRP, grp);
- if (!ret && twl_class_is_6030())
- ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
- grp << TWL6030_CFG_STATE_GRP_SHIFT |
- TWL6030_CFG_STATE_ON);
+ udelay(info->delay);
+
+ return ret;
+}
+
+static int twl6030reg_enable(struct regulator_dev *rdev)
+{
+ struct twlreg_info *info = rdev_get_drvdata(rdev);
+ int grp;
+ int ret;
+
+ grp = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_GRP);
+ if (grp < 0)
+ return grp;
+
+ ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
+ grp << TWL6030_CFG_STATE_GRP_SHIFT |
+ TWL6030_CFG_STATE_ON);
udelay(info->delay);
@@ -473,7 +484,7 @@ static struct regulator_ops twl4030ldo_ops = {
.set_voltage = twl4030ldo_set_voltage,
.get_voltage = twl4030ldo_get_voltage,
- .enable = twlreg_enable,
+ .enable = twl4030reg_enable,
.disable = twlreg_disable,
.is_enabled = twl4030reg_is_enabled,
@@ -531,7 +542,7 @@ static struct regulator_ops twl6030ldo_ops = {
.set_voltage = twl6030ldo_set_voltage,
.get_voltage = twl6030ldo_get_voltage,
- .enable = twlreg_enable,
+ .enable = twl6030reg_enable,
.disable = twlreg_disable,
.is_enabled = twl6030reg_is_enabled,
@@ -564,7 +575,7 @@ static struct regulator_ops twl4030fixed_ops = {
.get_voltage = twlfixed_get_voltage,
- .enable = twlreg_enable,
+ .enable = twl4030reg_enable,
.disable = twlreg_disable,
.is_enabled = twl4030reg_is_enabled,
@@ -578,7 +589,7 @@ static struct regulator_ops twl6030fixed_ops = {
.get_voltage = twlfixed_get_voltage,
- .enable = twlreg_enable,
+ .enable = twl6030reg_enable,
.disable = twlreg_disable,
.is_enabled = twl6030reg_is_enabled,
@@ -588,7 +599,7 @@ static struct regulator_ops twl6030fixed_ops = {
};
static struct regulator_ops twl6030_fixed_resource = {
- .enable = twlreg_enable,
+ .enable = twl6030reg_enable,
.disable = twlreg_disable,
.is_enabled = twl6030reg_is_enabled,
.get_status = twl6030reg_get_status,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable
2011-05-20 13:33 [PATCH 0/2] regulator: twl6030: do not write to _GRP for enable/disable Balaji T K
2011-05-20 13:33 ` [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable Balaji T K
@ 2011-05-20 13:33 ` Balaji T K
2011-05-22 6:59 ` Mark Brown
1 sibling, 1 reply; 6+ messages in thread
From: Balaji T K @ 2011-05-20 13:33 UTC (permalink / raw)
To: linux-omap, lrg; +Cc: broonie, lrg, gg, Balaji T K
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>
---
drivers/regulator/twl-regulator.c | 47 +++++++++++++++++-------------------
1 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
index abb40c6..4702b8a 100644
--- a/drivers/regulator/twl-regulator.c
+++ b/drivers/regulator/twl-regulator.c
@@ -194,7 +194,7 @@ static int twl6030reg_enable(struct regulator_dev *rdev)
return ret;
}
-static int twlreg_disable(struct regulator_dev *rdev)
+static int twl4030reg_disable(struct regulator_dev *rdev)
{
struct twlreg_info *info = rdev_get_drvdata(rdev);
int grp;
@@ -204,28 +204,25 @@ static int twlreg_disable(struct regulator_dev *rdev)
if (grp < 0)
return grp;
- /* For 6030, set the off state for all grps enabled */
- if (twl_class_is_6030()) {
- ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
- (grp & (P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030)) <<
- TWL6030_CFG_STATE_GRP_SHIFT |
- TWL6030_CFG_STATE_OFF);
- if (ret)
- return ret;
- }
-
- if (twl_class_is_4030())
- grp &= ~(P1_GRP_4030 | P2_GRP_4030 | P3_GRP_4030);
- else
- grp &= ~(P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030);
+ grp &= ~(P1_GRP_4030 | P2_GRP_4030 | P3_GRP_4030);
ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_GRP, grp);
- /* Next, associate cleared grp in state register */
- if (!ret && twl_class_is_6030())
- ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
- grp << TWL6030_CFG_STATE_GRP_SHIFT |
- TWL6030_CFG_STATE_OFF);
+ return ret;
+}
+
+static int twl6030reg_disable(struct regulator_dev *rdev)
+{
+ struct twlreg_info *info = rdev_get_drvdata(rdev);
+ int grp = 0;
+ int ret;
+
+ grp = P1_GRP_6030 | P2_GRP_6030 | P3_GRP_6030;
+
+ /* For 6030, set the off state for all grps enabled */
+ ret = twlreg_write(info, TWL_MODULE_PM_RECEIVER, VREG_STATE,
+ (grp) << TWL6030_CFG_STATE_GRP_SHIFT |
+ TWL6030_CFG_STATE_OFF);
return ret;
}
@@ -485,7 +482,7 @@ static struct regulator_ops twl4030ldo_ops = {
.get_voltage = twl4030ldo_get_voltage,
.enable = twl4030reg_enable,
- .disable = twlreg_disable,
+ .disable = twl4030reg_disable,
.is_enabled = twl4030reg_is_enabled,
.set_mode = twl4030reg_set_mode,
@@ -543,7 +540,7 @@ static struct regulator_ops twl6030ldo_ops = {
.get_voltage = twl6030ldo_get_voltage,
.enable = twl6030reg_enable,
- .disable = twlreg_disable,
+ .disable = twl6030reg_disable,
.is_enabled = twl6030reg_is_enabled,
.set_mode = twl6030reg_set_mode,
@@ -576,7 +573,7 @@ static struct regulator_ops twl4030fixed_ops = {
.get_voltage = twlfixed_get_voltage,
.enable = twl4030reg_enable,
- .disable = twlreg_disable,
+ .disable = twl4030reg_disable,
.is_enabled = twl4030reg_is_enabled,
.set_mode = twl4030reg_set_mode,
@@ -590,7 +587,7 @@ static struct regulator_ops twl6030fixed_ops = {
.get_voltage = twlfixed_get_voltage,
.enable = twl6030reg_enable,
- .disable = twlreg_disable,
+ .disable = twl6030reg_disable,
.is_enabled = twl6030reg_is_enabled,
.set_mode = twl6030reg_set_mode,
@@ -600,7 +597,7 @@ static struct regulator_ops twl6030fixed_ops = {
static struct regulator_ops twl6030_fixed_resource = {
.enable = twl6030reg_enable,
- .disable = twlreg_disable,
+ .disable = twl6030reg_disable,
.is_enabled = twl6030reg_is_enabled,
.get_status = twl6030reg_get_status,
};
--
1.7.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable
2011-05-20 13:33 ` [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable Balaji T K
@ 2011-05-22 6:50 ` Mark Brown
2011-05-22 9:26 ` Liam Girdwood
0 siblings, 1 reply; 6+ messages in thread
From: Mark Brown @ 2011-05-22 6:50 UTC (permalink / raw)
To: Balaji T K; +Cc: linux-omap, lrg, lrg, gg
On Fri, May 20, 2011 at 07:03:51PM +0530, Balaji T K wrote:
> TWL6030: regulator is enabled via VREG_STATE
> TWL4030: regulator is enabled 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>
but
>
> udelay(info->delay);
all these need to be replaced by implementing get_enable_time().
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable
2011-05-20 13:33 ` [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable Balaji T K
@ 2011-05-22 6:59 ` Mark Brown
0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2011-05-22 6:59 UTC (permalink / raw)
To: Balaji T K; +Cc: linux-omap, lrg, lrg, gg
On Fri, May 20, 2011 at 07:03:52PM +0530, Balaji T K wrote:
> 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>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable
2011-05-22 6:50 ` Mark Brown
@ 2011-05-22 9:26 ` Liam Girdwood
0 siblings, 0 replies; 6+ messages in thread
From: Liam Girdwood @ 2011-05-22 9:26 UTC (permalink / raw)
To: Mark Brown; +Cc: Balaji T K, linux-omap, lrg, gg
On Sun, 2011-05-22 at 14:50 +0800, Mark Brown wrote:
> On Fri, May 20, 2011 at 07:03:51PM +0530, Balaji T K wrote:
> > TWL6030: regulator is enabled via VREG_STATE
> > TWL4030: regulator is enabled 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>
>
> but
>
> >
> > udelay(info->delay);
>
> all these need to be replaced by implementing get_enable_time().
Both Applied.
Can you fix this incrementally.
Thanks
Liam
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-05-22 9:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-20 13:33 [PATCH 0/2] regulator: twl6030: do not write to _GRP for enable/disable Balaji T K
2011-05-20 13:33 ` [PATCH 1/2] regulator: twl6030: do not write to _GRP for regulator enable Balaji T K
2011-05-22 6:50 ` Mark Brown
2011-05-22 9:26 ` Liam Girdwood
2011-05-20 13:33 ` [PATCH 2/2] regulator: twl6030: do not write to _GRP for regulator disable Balaji T K
2011-05-22 6:59 ` Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.