Commit bd2e9714 authored by Vignesh R's avatar Vignesh R Committed by Tom Rini

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: default avatarVignesh R <vigneshr@ti.com>
Acked-by: default avatarSimon Glass <sjg@chromium.org>
parent d26a38fd
......@@ -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;
};
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment