diff options
author | Tom Rini <trini@konsulko.com> | 2016-10-12 08:31:08 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-10-12 08:31:08 -0400 |
commit | f812574e61e9bfe37e76e620606fd1a65cc9cdc2 (patch) | |
tree | 56abd6abbf0bf15c000e8b6dcf5e106239d9ea75 /drivers/power | |
parent | c14d4b0051df5f569fa33d9937af1db267ed6d34 (diff) | |
parent | d40d69ee350b62af90c2b522e05cbb3eb5f27112 (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-tegra
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/regulator/fixed.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c index 37b8400903..62dc47f769 100644 --- a/drivers/power/regulator/fixed.c +++ b/drivers/power/regulator/fixed.c @@ -37,11 +37,15 @@ static int fixed_regulator_ofdata_to_platdata(struct udevice *dev) /* Set type to fixed */ uc_pdata->type = REGULATOR_TYPE_FIXED; - /* Get fixed regulator gpio desc */ + /* Get fixed regulator optional enable GPIO desc */ gpio = &dev_pdata->gpio; ret = gpio_request_by_name(dev, "gpio", 0, gpio, GPIOD_IS_OUT); - if (ret) - debug("Fixed regulator gpio - not found! Error: %d", ret); + if (ret) { + debug("Fixed regulator optional enable GPIO - not found! Error: %d\n", + ret); + if (ret != -ENOENT) + return ret; + } /* Get optional ramp up delay */ dev_pdata->startup_delay_us = fdtdec_get_uint(gd->fdt_blob, @@ -87,8 +91,9 @@ static bool fixed_regulator_get_enable(struct udevice *dev) { struct fixed_regulator_platdata *dev_pdata = dev_get_platdata(dev); + /* Enable GPIO is optional */ if (!dev_pdata->gpio.dev) - return false; + return true; return dm_gpio_get_value(&dev_pdata->gpio); } @@ -98,8 +103,12 @@ static int fixed_regulator_set_enable(struct udevice *dev, bool enable) struct fixed_regulator_platdata *dev_pdata = dev_get_platdata(dev); int ret; - if (!dev_pdata->gpio.dev) - return -ENOSYS; + /* Enable GPIO is optional */ + if (!dev_pdata->gpio.dev) { + if (!enable) + return -ENOSYS; + return 0; + } ret = dm_gpio_set_value(&dev_pdata->gpio, enable); if (ret) { |