Lines Matching +full:power +full:- +full:off +full:- +full:delay +full:- +full:us
1 // SPDX-License-Identifier: GPL-2.0+
13 #include <power/pmic.h>
14 #include <power/regulator.h>
33 return -ENXIO; in fixed_regulator_ofdata_to_platdata()
36 uc_pdata->type = REGULATOR_TYPE_FIXED; in fixed_regulator_ofdata_to_platdata()
38 if (dev_read_bool(dev, "enable-active-high")) in fixed_regulator_ofdata_to_platdata()
42 gpio = &dev_pdata->gpio; in fixed_regulator_ofdata_to_platdata()
45 debug("Fixed regulator optional enable GPIO - not found! Error: %d\n", in fixed_regulator_ofdata_to_platdata()
47 if (ret != -ENOENT) in fixed_regulator_ofdata_to_platdata()
51 /* Get optional ramp up delay */ in fixed_regulator_ofdata_to_platdata()
52 dev_pdata->startup_delay_us = dev_read_u32_default(dev, in fixed_regulator_ofdata_to_platdata()
53 "startup-delay-us", 0); in fixed_regulator_ofdata_to_platdata()
54 dev_pdata->off_on_delay_us = in fixed_regulator_ofdata_to_platdata()
55 dev_read_u32_default(dev, "u-boot,off-on-delay-us", 0); in fixed_regulator_ofdata_to_platdata()
66 return -ENXIO; in fixed_regulator_get_value()
68 if (uc_pdata->min_uV != uc_pdata->max_uV) { in fixed_regulator_get_value()
69 debug("Invalid constraints for: %s\n", uc_pdata->name); in fixed_regulator_get_value()
70 return -EINVAL; in fixed_regulator_get_value()
73 return uc_pdata->min_uV; in fixed_regulator_get_value()
82 return -ENXIO; in fixed_regulator_get_current()
84 if (uc_pdata->min_uA != uc_pdata->max_uA) { in fixed_regulator_get_current()
85 debug("Invalid constraints for: %s\n", uc_pdata->name); in fixed_regulator_get_current()
86 return -EINVAL; in fixed_regulator_get_current()
89 return uc_pdata->min_uA; in fixed_regulator_get_current()
97 if (!dev_pdata->gpio.dev) in fixed_regulator_get_enable()
100 return dm_gpio_get_value(&dev_pdata->gpio); in fixed_regulator_get_enable()
108 debug("%s: dev='%s', enable=%d, delay=%d, has_gpio=%d\n", __func__, in fixed_regulator_set_enable()
109 dev->name, enable, dev_pdata->startup_delay_us, in fixed_regulator_set_enable()
110 dm_gpio_is_valid(&dev_pdata->gpio)); in fixed_regulator_set_enable()
112 if (!dm_gpio_is_valid(&dev_pdata->gpio)) { in fixed_regulator_set_enable()
114 return -ENOSYS; in fixed_regulator_set_enable()
118 ret = dm_gpio_set_value(&dev_pdata->gpio, enable); in fixed_regulator_set_enable()
120 pr_err("Can't set regulator : %s gpio to: %d\n", dev->name, in fixed_regulator_set_enable()
125 if (enable && dev_pdata->startup_delay_us) in fixed_regulator_set_enable()
126 udelay(dev_pdata->startup_delay_us); in fixed_regulator_set_enable()
129 if (!enable && dev_pdata->off_on_delay_us) in fixed_regulator_set_enable()
130 udelay(dev_pdata->off_on_delay_us); in fixed_regulator_set_enable()
143 { .compatible = "regulator-fixed" },