[U-Boot] [PATCH] regulator: fixed: Add support to handle enable-active-high DT property

Add support to handle enable-active-high DT property. This property is used to drive the gpio controlling fixed regulator as active high when claiming gpio line.
Signed-off-by: Vignesh R vigneshr@ti.com --- doc/device-tree-bindings/regulator/fixed.txt | 4 ++++ drivers/power/regulator/fixed.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/doc/device-tree-bindings/regulator/fixed.txt b/doc/device-tree-bindings/regulator/fixed.txt index 8a0d002688d8..5fd9033fea2d 100644 --- a/doc/device-tree-bindings/regulator/fixed.txt +++ b/doc/device-tree-bindings/regulator/fixed.txt @@ -12,6 +12,9 @@ Optional properties: - gpio: GPIO to use for enable control - startup-delay-us: startup time in microseconds - regulator constraints (binding info: regulator.txt) +- enable-active-high: Polarity of GPIO is Active high. If this property + is missing, the default assumed is Active low. +
Other kernel-style properties, are currently not used.
@@ -36,4 +39,5 @@ fixed_regulator@0 { regulator-max-microamp = <15000>; regulator-always-on; regulator-boot-on; + enable-active-high; }; diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c index 62dc47f76985..3d2d9081c1b1 100644 --- a/drivers/power/regulator/fixed.c +++ b/drivers/power/regulator/fixed.c @@ -27,6 +27,8 @@ static int fixed_regulator_ofdata_to_platdata(struct udevice *dev) struct dm_regulator_uclass_platdata *uc_pdata; struct fixed_regulator_platdata *dev_pdata; struct gpio_desc *gpio; + const void *blob = gd->fdt_blob; + int node = dev->of_offset, flags = GPIOD_IS_OUT; int ret;
dev_pdata = dev_get_platdata(dev); @@ -37,9 +39,12 @@ static int fixed_regulator_ofdata_to_platdata(struct udevice *dev) /* Set type to fixed */ uc_pdata->type = REGULATOR_TYPE_FIXED;
+ if (fdtdec_get_bool(blob, node, "enable-active-high")) + flags |= GPIOD_IS_OUT_ACTIVE; + /* Get fixed regulator optional enable GPIO desc */ gpio = &dev_pdata->gpio; - ret = gpio_request_by_name(dev, "gpio", 0, gpio, GPIOD_IS_OUT); + ret = gpio_request_by_name(dev, "gpio", 0, gpio, flags); if (ret) { debug("Fixed regulator optional enable GPIO - not found! Error: %d\n", ret);

On 7 December 2016 at 06:25, Vignesh R vigneshr@ti.com wrote:
Add support to handle enable-active-high DT property. This property is used to drive the gpio controlling fixed regulator as active high when claiming gpio line.
Signed-off-by: Vignesh R vigneshr@ti.com
doc/device-tree-bindings/regulator/fixed.txt | 4 ++++ drivers/power/regulator/fixed.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-)
Acked-by: Simon Glass sjg@chromium.org

On Wed, Dec 07, 2016 at 04:55:06PM +0530, Vignesh R wrote:
Add support to handle enable-active-high DT property. This property is used to drive the gpio controlling fixed regulator as active high when claiming gpio line.
Signed-off-by: Vignesh R vigneshr@ti.com Acked-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
participants (3)
-
Simon Glass
-
Tom Rini
-
Vignesh R