summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-06-27 14:23:10 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-03 20:28:33 +0100
commit79511ed3225a64f6b7fc749f4f9c1ed82f24f729 (patch)
treed800dbefea3fc15dde99d1ad6f024cfc63e441a7
parent5260cd2bc97318b8477b1d1e99c5a2c53764135b (diff)
downloadblackbird-op-linux-79511ed3225a64f6b7fc749f4f9c1ed82f24f729.tar.gz
blackbird-op-linux-79511ed3225a64f6b7fc749f4f9c1ed82f24f729.zip
regulator: core: Allow fixed enable_time to be set in the regulator_desc
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>
-rw-r--r--drivers/regulator/core.c2
-rw-r--r--include/linux/regulator/driver.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index aa82c0465f4f..6e488aa6f1e8 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1189,7 +1189,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 84f999ed394b..176bd4335581 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;
};
/**
OpenPOWER on IntegriCloud