power: regulator: Introduce regulator_set_value_force function

In case we want to force a particular value on a regulator
irrespective of the min/max constraints for testing purposes
one can call regulator_set_value_force function.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
master
Keerthy 8 years ago committed by Simon Glass
parent 543bd27353
commit 2f5d532f3b
  1. 5
      cmd/regulator.c
  2. 14
      drivers/power/regulator/regulator-uclass.c
  3. 10
      include/power/regulator.h

@ -292,7 +292,10 @@ static int do_value(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return CMD_RET_FAILURE;
}
ret = regulator_set_value(dev, value);
if (!force)
ret = regulator_set_value(dev, value);
else
ret = regulator_set_value_force(dev, value);
if (ret) {
printf("Regulator: %s - can't set the Voltage!\n",
uc_pdata->name);

@ -48,6 +48,20 @@ int regulator_set_value(struct udevice *dev, int uV)
return ops->set_value(dev, uV);
}
/*
* To be called with at most caution as there is no check
* before setting the actual voltage value.
*/
int regulator_set_value_force(struct udevice *dev, int uV)
{
const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);
if (!ops || !ops->set_value)
return -ENOSYS;
return ops->set_value(dev, uV);
}
int regulator_get_current(struct udevice *dev)
{
const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);

@ -261,6 +261,16 @@ int regulator_get_value(struct udevice *dev);
int regulator_set_value(struct udevice *dev, int uV);
/**
* regulator_set_value_force: set the microvoltage value of a given regulator
* without any min-,max condition check
*
* @dev - pointer to the regulator device
* @uV - the output value to set [micro Volts]
* @return - 0 on success or -errno val if fails
*/
int regulator_set_value_force(struct udevice *dev, int uV);
/**
* regulator_get_current: get microampere value of a given regulator
*
* @dev - pointer to the regulator device

Loading…
Cancel
Save