Skip to content

Commit

Permalink
regulator: Add regulator voltage range check API
Browse files Browse the repository at this point in the history
Simplify checking of support for voltage ranges by providing an API which
wraps the existing count and list operations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
  • Loading branch information
Mark Brown authored and Liam Girdwood committed Sep 22, 2009
1 parent 5ffbd13 commit a7a1ad9
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
29 changes: 29 additions & 0 deletions drivers/regulator/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1441,6 +1441,35 @@ int regulator_list_voltage(struct regulator *regulator, unsigned selector)
}
EXPORT_SYMBOL_GPL(regulator_list_voltage);

/**
* regulator_is_supported_voltage - check if a voltage range can be supported
*
* @regulator: Regulator to check.
* @min_uV: Minimum required voltage in uV.
* @max_uV: Maximum required voltage in uV.
*
* Returns a boolean or a negative error code.
*/
int regulator_is_supported_voltage(struct regulator *regulator,
int min_uV, int max_uV)
{
int i, voltages, ret;

ret = regulator_count_voltages(regulator);
if (ret < 0)
return ret;
voltages = ret;

for (i = 0; i < voltages; i++) {
ret = regulator_list_voltage(regulator, i);

if (ret >= min_uV && ret <= max_uV)
return 1;
}

return 0;
}

/**
* regulator_set_voltage - set regulator output voltage
* @regulator: regulator source
Expand Down
2 changes: 2 additions & 0 deletions include/linux/regulator/consumer.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ void regulator_bulk_free(int num_consumers,

int regulator_count_voltages(struct regulator *regulator);
int regulator_list_voltage(struct regulator *regulator, unsigned selector);
int regulator_is_supported_voltage(struct regulator *regulator,
int min_uV, int max_uV);
int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV);
int regulator_get_voltage(struct regulator *regulator);
int regulator_set_current_limit(struct regulator *regulator,
Expand Down

0 comments on commit a7a1ad9

Please sign in to comment.