[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