Lines Matching +full:enable +full:- +full:gpio

6  * SPDX-License-Identifier:	GPL-2.0+
13 #include <asm/gpio.h>
20 struct gpio_desc gpio; /* GPIO for regulator enable control */ member
28 struct gpio_desc *gpio; in fixed_regulator_ofdata_to_platdata() local
35 return -ENXIO; in fixed_regulator_ofdata_to_platdata()
38 uc_pdata->type = REGULATOR_TYPE_FIXED; in fixed_regulator_ofdata_to_platdata()
39 if (!dev_read_bool(dev, "enable-active-high")) in fixed_regulator_ofdata_to_platdata()
41 if (dev_read_bool(dev, "regulator-boot-on")) in fixed_regulator_ofdata_to_platdata()
44 /* Get fixed regulator optional enable GPIO desc */ in fixed_regulator_ofdata_to_platdata()
45 gpio = &dev_pdata->gpio; in fixed_regulator_ofdata_to_platdata()
46 ret = gpio_request_by_name(dev, "gpio", 0, gpio, flags); in fixed_regulator_ofdata_to_platdata()
48 ret = gpio_request_by_name(dev, "gpios", 0, gpio, flags); in fixed_regulator_ofdata_to_platdata()
50 debug("Fixed regulator optional enable GPIO - not found! Error: %d\n", ret); in fixed_regulator_ofdata_to_platdata()
51 if (ret != -ENOENT) in fixed_regulator_ofdata_to_platdata()
57 dev_pdata->startup_delay_us = dev_read_u32_default(dev, in fixed_regulator_ofdata_to_platdata()
58 "startup-delay-us", 0); in fixed_regulator_ofdata_to_platdata()
69 return -ENXIO; in fixed_regulator_get_value()
71 if (uc_pdata->min_uV != uc_pdata->max_uV) { in fixed_regulator_get_value()
72 debug("Invalid constraints for: %s\n", uc_pdata->name); in fixed_regulator_get_value()
73 return -EINVAL; in fixed_regulator_get_value()
76 return uc_pdata->min_uV; in fixed_regulator_get_value()
85 return -ENXIO; in fixed_regulator_get_current()
87 if (uc_pdata->min_uA != uc_pdata->max_uA) { in fixed_regulator_get_current()
88 debug("Invalid constraints for: %s\n", uc_pdata->name); in fixed_regulator_get_current()
89 return -EINVAL; in fixed_regulator_get_current()
92 return uc_pdata->min_uA; in fixed_regulator_get_current()
99 /* Enable GPIO is optional */ in fixed_regulator_get_enable()
100 if (!dev_pdata->gpio.dev) in fixed_regulator_get_enable()
103 return dm_gpio_get_value(&dev_pdata->gpio); in fixed_regulator_get_enable()
106 static int fixed_regulator_set_enable(struct udevice *dev, bool enable) in fixed_regulator_set_enable() argument
111 debug("%s: dev='%s', enable=%d, delay=%d, has_gpio=%d\n", __func__, in fixed_regulator_set_enable()
112 dev->name, enable, dev_pdata->startup_delay_us, in fixed_regulator_set_enable()
113 dm_gpio_is_valid(&dev_pdata->gpio)); in fixed_regulator_set_enable()
114 /* Enable GPIO is optional */ in fixed_regulator_set_enable()
115 if (!dm_gpio_is_valid(&dev_pdata->gpio)) { in fixed_regulator_set_enable()
116 if (!enable) in fixed_regulator_set_enable()
117 return -ENOSYS; in fixed_regulator_set_enable()
121 ret = dm_gpio_set_value(&dev_pdata->gpio, enable); in fixed_regulator_set_enable()
123 pr_err("Can't set regulator : %s gpio to: %d\n", dev->name, in fixed_regulator_set_enable()
124 enable); in fixed_regulator_set_enable()
128 if (enable && dev_pdata->startup_delay_us) in fixed_regulator_set_enable()
129 udelay(dev_pdata->startup_delay_us); in fixed_regulator_set_enable()
143 { .compatible = "regulator-fixed" },