* [PATCH 1/4] regulator: core: Allow fixed enable_time to be set in the regulator_desc
@ 2012-06-27 14:10 Mark Brown
2012-06-27 14:10 ` [PATCH 2/4] regulator: fixed: Set enable enable_time in regulator_desc Mark Brown
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mark Brown @ 2012-06-27 14:10 UTC (permalink / raw)
To: Liam Girdwood; +Cc: linux-kernel, Mark Brown
Many regulators have a fixed specification for their enable time. Allow
this to be set in the regulator_desc as a number to save them having to
implement an explicit operation.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
drivers/regulator/core.c | 2 +-
include/linux/regulator/driver.h | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 43132b6..d19480b 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1150,7 +1150,7 @@ overflow_err:
static int _regulator_get_enable_time(struct regulator_dev *rdev)
{
if (!rdev->desc->ops->enable_time)
- return 0;
+ return rdev->desc->enable_time;
return rdev->desc->ops->enable_time(rdev);
}
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index 84f999ed..176bd43 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -180,6 +180,8 @@ enum regulator_type {
* @vsel_mask: Mask for register bitfield used for selector
* @enable_reg: Register for control when using regmap enable/disable ops
* @enable_mask: Mask for control when using regmap enable/disable ops
+ *
+ * @enable_time: Time taken for initial enable of regulator (in uS).
*/
struct regulator_desc {
const char *name;
@@ -201,6 +203,8 @@ struct regulator_desc {
unsigned int vsel_mask;
unsigned int enable_reg;
unsigned int enable_mask;
+
+ unsigned int enable_time;
};
/**
--
1.7.10
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/4] regulator: fixed: Set enable enable_time in regulator_desc
2012-06-27 14:10 [PATCH 1/4] regulator: core: Allow fixed enable_time to be set in the regulator_desc Mark Brown
@ 2012-06-27 14:10 ` Mark Brown
2012-06-27 14:10 ` [PATCH 3/4] regulator: wm8994: Set enable_time in descriptor Mark Brown
2012-06-27 14:10 ` [PATCH 4/4] regulator: wm831x-ldo: Specify enable time for alive LDO Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2012-06-27 14:10 UTC (permalink / raw)
To: Liam Girdwood; +Cc: linux-kernel, Mark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
drivers/regulator/fixed.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c
index 8bda365..f7b2642 100644
--- a/drivers/regulator/fixed.c
+++ b/drivers/regulator/fixed.c
@@ -36,7 +36,6 @@ struct fixed_voltage_data {
struct regulator_dev *dev;
int microvolts;
int gpio;
- unsigned startup_delay;
bool enable_high;
bool is_enabled;
};
@@ -123,13 +122,6 @@ static int fixed_voltage_disable(struct regulator_dev *dev)
return 0;
}
-static int fixed_voltage_enable_time(struct regulator_dev *dev)
-{
- struct fixed_voltage_data *data = rdev_get_drvdata(dev);
-
- return data->startup_delay;
-}
-
static int fixed_voltage_get_voltage(struct regulator_dev *dev)
{
struct fixed_voltage_data *data = rdev_get_drvdata(dev);
@@ -155,7 +147,6 @@ static struct regulator_ops fixed_voltage_gpio_ops = {
.is_enabled = fixed_voltage_is_enabled,
.enable = fixed_voltage_enable,
.disable = fixed_voltage_disable,
- .enable_time = fixed_voltage_enable_time,
.get_voltage = fixed_voltage_get_voltage,
.list_voltage = fixed_voltage_list_voltage,
};
@@ -197,12 +188,13 @@ static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
drvdata->desc.type = REGULATOR_VOLTAGE;
drvdata->desc.owner = THIS_MODULE;
+ drvdata->desc.enable_time = config->startup_delay;
+
if (config->microvolts)
drvdata->desc.n_voltages = 1;
drvdata->microvolts = config->microvolts;
drvdata->gpio = config->gpio;
- drvdata->startup_delay = config->startup_delay;
if (gpio_is_valid(config->gpio)) {
int gpio_flag;
--
1.7.10
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 3/4] regulator: wm8994: Set enable_time in descriptor
2012-06-27 14:10 [PATCH 1/4] regulator: core: Allow fixed enable_time to be set in the regulator_desc Mark Brown
2012-06-27 14:10 ` [PATCH 2/4] regulator: fixed: Set enable enable_time in regulator_desc Mark Brown
@ 2012-06-27 14:10 ` Mark Brown
2012-06-27 14:10 ` [PATCH 4/4] regulator: wm831x-ldo: Specify enable time for alive LDO Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2012-06-27 14:10 UTC (permalink / raw)
To: Liam Girdwood; +Cc: linux-kernel, Mark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
drivers/regulator/wm8994-regulator.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/regulator/wm8994-regulator.c b/drivers/regulator/wm8994-regulator.c
index 0e2028b..7a1fd77 100644
--- a/drivers/regulator/wm8994-regulator.c
+++ b/drivers/regulator/wm8994-regulator.c
@@ -70,18 +70,10 @@ static int wm8994_ldo_is_enabled(struct regulator_dev *rdev)
return ldo->is_enabled;
}
-static int wm8994_ldo_enable_time(struct regulator_dev *rdev)
-{
- /* 3ms is fairly conservative but this shouldn't be too performance
- * critical; can be tweaked per-system if required. */
- return 3000;
-}
-
static struct regulator_ops wm8994_ldo1_ops = {
.enable = wm8994_ldo_enable,
.disable = wm8994_ldo_disable,
.is_enabled = wm8994_ldo_is_enabled,
- .enable_time = wm8994_ldo_enable_time,
.list_voltage = regulator_list_voltage_linear,
.map_voltage = regulator_map_voltage_linear,
@@ -137,6 +129,7 @@ static const struct regulator_desc wm8994_ldo_desc[] = {
.ops = &wm8994_ldo1_ops,
.min_uV = 2400000,
.uV_step = 100000,
+ .enable_time = 3000,
.owner = THIS_MODULE,
},
{
@@ -147,6 +140,7 @@ static const struct regulator_desc wm8994_ldo_desc[] = {
.vsel_reg = WM8994_LDO_2,
.vsel_mask = WM8994_LDO2_VSEL_MASK,
.ops = &wm8994_ldo2_ops,
+ .enable_time = 3000,
.owner = THIS_MODULE,
},
};
--
1.7.10
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 4/4] regulator: wm831x-ldo: Specify enable time for alive LDO
2012-06-27 14:10 [PATCH 1/4] regulator: core: Allow fixed enable_time to be set in the regulator_desc Mark Brown
2012-06-27 14:10 ` [PATCH 2/4] regulator: fixed: Set enable enable_time in regulator_desc Mark Brown
2012-06-27 14:10 ` [PATCH 3/4] regulator: wm8994: Set enable_time in descriptor Mark Brown
@ 2012-06-27 14:10 ` Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2012-06-27 14:10 UTC (permalink / raw)
To: Liam Girdwood; +Cc: linux-kernel, Mark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
drivers/regulator/wm831x-ldo.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/regulator/wm831x-ldo.c b/drivers/regulator/wm831x-ldo.c
index 04d8a41..5cb70ca 100644
--- a/drivers/regulator/wm831x-ldo.c
+++ b/drivers/regulator/wm831x-ldo.c
@@ -701,6 +701,7 @@ static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev)
ldo->desc.enable_mask = 1 << id;
ldo->desc.min_uV = 800000;
ldo->desc.uV_step = 50000;
+ ldo->desc.enable_time = 1000;
config.dev = pdev->dev.parent;
if (pdata)
--
1.7.10
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-06-27 14:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-27 14:10 [PATCH 1/4] regulator: core: Allow fixed enable_time to be set in the regulator_desc Mark Brown
2012-06-27 14:10 ` [PATCH 2/4] regulator: fixed: Set enable enable_time in regulator_desc Mark Brown
2012-06-27 14:10 ` [PATCH 3/4] regulator: wm8994: Set enable_time in descriptor Mark Brown
2012-06-27 14:10 ` [PATCH 4/4] regulator: wm831x-ldo: Specify enable time for alive LDO Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®