Loading drivers/regulator/core.c +0 −86 Original line number Diff line number Diff line Loading @@ -1988,92 +1988,6 @@ int regulator_count_voltages(struct regulator *regulator) } EXPORT_SYMBOL_GPL(regulator_count_voltages); /** * regulator_list_voltage_linear - List voltages with simple calculation * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a simple linear mapping between voltages and * selectors can set min_uV and uV_step in the regulator descriptor * and then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear(struct regulator_dev *rdev, unsigned int selector) { if (selector >= rdev->desc->n_voltages) return -EINVAL; if (selector < rdev->desc->linear_min_sel) return 0; selector -= rdev->desc->linear_min_sel; return rdev->desc->min_uV + (rdev->desc->uV_step * selector); } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear); /** * regulator_list_voltage_linear_range - List voltages for linear ranges * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a series of simple linear mappings between voltages * and selectors can set linear_ranges in the regulator descriptor and * then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear_range(struct regulator_dev *rdev, unsigned int selector) { const struct regulator_linear_range *range; int i; if (!rdev->desc->n_linear_ranges) { BUG_ON(!rdev->desc->n_linear_ranges); return -EINVAL; } for (i = 0; i < rdev->desc->n_linear_ranges; i++) { range = &rdev->desc->linear_ranges[i]; if (!(selector >= range->min_sel && selector <= range->max_sel)) continue; selector -= range->min_sel; return range->min_uV + (range->uV_step * selector); } return -EINVAL; } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear_range); /** * regulator_list_voltage_table - List voltages with table based mapping * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with table based mapping between voltages and * selectors can set volt_table in the regulator descriptor * and then use this function as their list_voltage() operation. */ int regulator_list_voltage_table(struct regulator_dev *rdev, unsigned int selector) { if (!rdev->desc->volt_table) { BUG_ON(!rdev->desc->volt_table); return -EINVAL; } if (selector >= rdev->desc->n_voltages) return -EINVAL; return rdev->desc->volt_table[selector]; } EXPORT_SYMBOL_GPL(regulator_list_voltage_table); /** * regulator_list_voltage - enumerate supported voltages * @regulator: regulator source Loading drivers/regulator/helpers.c +86 −0 Original line number Diff line number Diff line Loading @@ -319,6 +319,92 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev, } EXPORT_SYMBOL_GPL(regulator_map_voltage_linear_range); /** * regulator_list_voltage_linear - List voltages with simple calculation * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a simple linear mapping between voltages and * selectors can set min_uV and uV_step in the regulator descriptor * and then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear(struct regulator_dev *rdev, unsigned int selector) { if (selector >= rdev->desc->n_voltages) return -EINVAL; if (selector < rdev->desc->linear_min_sel) return 0; selector -= rdev->desc->linear_min_sel; return rdev->desc->min_uV + (rdev->desc->uV_step * selector); } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear); /** * regulator_list_voltage_linear_range - List voltages for linear ranges * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a series of simple linear mappings between voltages * and selectors can set linear_ranges in the regulator descriptor and * then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear_range(struct regulator_dev *rdev, unsigned int selector) { const struct regulator_linear_range *range; int i; if (!rdev->desc->n_linear_ranges) { BUG_ON(!rdev->desc->n_linear_ranges); return -EINVAL; } for (i = 0; i < rdev->desc->n_linear_ranges; i++) { range = &rdev->desc->linear_ranges[i]; if (!(selector >= range->min_sel && selector <= range->max_sel)) continue; selector -= range->min_sel; return range->min_uV + (range->uV_step * selector); } return -EINVAL; } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear_range); /** * regulator_list_voltage_table - List voltages with table based mapping * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with table based mapping between voltages and * selectors can set volt_table in the regulator descriptor * and then use this function as their list_voltage() operation. */ int regulator_list_voltage_table(struct regulator_dev *rdev, unsigned int selector) { if (!rdev->desc->volt_table) { BUG_ON(!rdev->desc->volt_table); return -EINVAL; } if (selector >= rdev->desc->n_voltages) return -EINVAL; return rdev->desc->volt_table[selector]; } EXPORT_SYMBOL_GPL(regulator_list_voltage_table); /** * regulator_set_bypass_regmap - Default set_bypass() using regmap * Loading Loading
drivers/regulator/core.c +0 −86 Original line number Diff line number Diff line Loading @@ -1988,92 +1988,6 @@ int regulator_count_voltages(struct regulator *regulator) } EXPORT_SYMBOL_GPL(regulator_count_voltages); /** * regulator_list_voltage_linear - List voltages with simple calculation * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a simple linear mapping between voltages and * selectors can set min_uV and uV_step in the regulator descriptor * and then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear(struct regulator_dev *rdev, unsigned int selector) { if (selector >= rdev->desc->n_voltages) return -EINVAL; if (selector < rdev->desc->linear_min_sel) return 0; selector -= rdev->desc->linear_min_sel; return rdev->desc->min_uV + (rdev->desc->uV_step * selector); } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear); /** * regulator_list_voltage_linear_range - List voltages for linear ranges * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a series of simple linear mappings between voltages * and selectors can set linear_ranges in the regulator descriptor and * then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear_range(struct regulator_dev *rdev, unsigned int selector) { const struct regulator_linear_range *range; int i; if (!rdev->desc->n_linear_ranges) { BUG_ON(!rdev->desc->n_linear_ranges); return -EINVAL; } for (i = 0; i < rdev->desc->n_linear_ranges; i++) { range = &rdev->desc->linear_ranges[i]; if (!(selector >= range->min_sel && selector <= range->max_sel)) continue; selector -= range->min_sel; return range->min_uV + (range->uV_step * selector); } return -EINVAL; } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear_range); /** * regulator_list_voltage_table - List voltages with table based mapping * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with table based mapping between voltages and * selectors can set volt_table in the regulator descriptor * and then use this function as their list_voltage() operation. */ int regulator_list_voltage_table(struct regulator_dev *rdev, unsigned int selector) { if (!rdev->desc->volt_table) { BUG_ON(!rdev->desc->volt_table); return -EINVAL; } if (selector >= rdev->desc->n_voltages) return -EINVAL; return rdev->desc->volt_table[selector]; } EXPORT_SYMBOL_GPL(regulator_list_voltage_table); /** * regulator_list_voltage - enumerate supported voltages * @regulator: regulator source Loading
drivers/regulator/helpers.c +86 −0 Original line number Diff line number Diff line Loading @@ -319,6 +319,92 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev, } EXPORT_SYMBOL_GPL(regulator_map_voltage_linear_range); /** * regulator_list_voltage_linear - List voltages with simple calculation * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a simple linear mapping between voltages and * selectors can set min_uV and uV_step in the regulator descriptor * and then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear(struct regulator_dev *rdev, unsigned int selector) { if (selector >= rdev->desc->n_voltages) return -EINVAL; if (selector < rdev->desc->linear_min_sel) return 0; selector -= rdev->desc->linear_min_sel; return rdev->desc->min_uV + (rdev->desc->uV_step * selector); } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear); /** * regulator_list_voltage_linear_range - List voltages for linear ranges * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with a series of simple linear mappings between voltages * and selectors can set linear_ranges in the regulator descriptor and * then use this function as their list_voltage() operation, */ int regulator_list_voltage_linear_range(struct regulator_dev *rdev, unsigned int selector) { const struct regulator_linear_range *range; int i; if (!rdev->desc->n_linear_ranges) { BUG_ON(!rdev->desc->n_linear_ranges); return -EINVAL; } for (i = 0; i < rdev->desc->n_linear_ranges; i++) { range = &rdev->desc->linear_ranges[i]; if (!(selector >= range->min_sel && selector <= range->max_sel)) continue; selector -= range->min_sel; return range->min_uV + (range->uV_step * selector); } return -EINVAL; } EXPORT_SYMBOL_GPL(regulator_list_voltage_linear_range); /** * regulator_list_voltage_table - List voltages with table based mapping * * @rdev: Regulator device * @selector: Selector to convert into a voltage * * Regulators with table based mapping between voltages and * selectors can set volt_table in the regulator descriptor * and then use this function as their list_voltage() operation. */ int regulator_list_voltage_table(struct regulator_dev *rdev, unsigned int selector) { if (!rdev->desc->volt_table) { BUG_ON(!rdev->desc->volt_table); return -EINVAL; } if (selector >= rdev->desc->n_voltages) return -EINVAL; return rdev->desc->volt_table[selector]; } EXPORT_SYMBOL_GPL(regulator_list_voltage_table); /** * regulator_set_bypass_regmap - Default set_bypass() using regmap * Loading