[PATCH] regulator: fixed: add always-on property
Steffen Trumtrar
s.trumtrar at pengutronix.de
Mon Jun 30 00:51:56 PDT 2014
Support the "regulator-always-on" property for fixed regulators.
The regulator gets enabled on probe and subsequent disable calls are
ignored.
Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
---
drivers/regulator/fixed.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c
index 7e64919..2515d3e 100644
--- a/drivers/regulator/fixed.c
+++ b/drivers/regulator/fixed.c
@@ -27,6 +27,7 @@
struct regulator_fixed {
int gpio;
int active_low;
+ int always_on;
struct regulator_dev rdev;
};
@@ -44,6 +45,9 @@ static int regulator_fixed_disable(struct regulator_dev *rdev)
{
struct regulator_fixed *fix = container_of(rdev, struct regulator_fixed, rdev);
+ if (fix->always_on)
+ return 0;
+
if (!gpio_is_valid(fix->gpio))
return 0;
@@ -79,6 +83,11 @@ static int regulator_fixed_probe(struct device_d *dev)
fix->rdev.ops = &fixed_ops;
+ if (of_find_property(dev->device_node, "regulator-always-on", NULL)) {
+ fix->always_on = 1;
+ regulator_fixed_enable(&fix->rdev);
+ }
+
ret = of_regulator_register(&fix->rdev, dev->device_node);
if (ret)
return ret;
--
2.0.0
More information about the barebox
mailing list