Merge branch 'topic/discharge' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-max77620
This commit is contained in:
@@ -1140,6 +1140,17 @@ static int set_machine_constraints(struct regulator_dev *rdev,
|
||||
}
|
||||
}
|
||||
|
||||
if (rdev->constraints->active_discharge && ops->set_active_discharge) {
|
||||
bool ad_state = (rdev->constraints->active_discharge ==
|
||||
REGULATOR_ACTIVE_DISCHARGE_ENABLE) ? true : false;
|
||||
|
||||
ret = ops->set_active_discharge(rdev, ad_state);
|
||||
if (ret < 0) {
|
||||
rdev_err(rdev, "failed to set active discharge\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
print_constraints(rdev);
|
||||
return 0;
|
||||
out:
|
||||
|
@@ -465,3 +465,26 @@ int regulator_get_bypass_regmap(struct regulator_dev *rdev, bool *enable)
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regulator_get_bypass_regmap);
|
||||
|
||||
/**
|
||||
* regulator_set_active_discharge_regmap - Default set_active_discharge()
|
||||
* using regmap
|
||||
*
|
||||
* @rdev: device to operate on.
|
||||
* @enable: state to set, 0 to disable and 1 to enable.
|
||||
*/
|
||||
int regulator_set_active_discharge_regmap(struct regulator_dev *rdev,
|
||||
bool enable)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
if (enable)
|
||||
val = rdev->desc->active_discharge_on;
|
||||
else
|
||||
val = rdev->desc->active_discharge_off;
|
||||
|
||||
return regmap_update_bits(rdev->regmap,
|
||||
rdev->desc->active_discharge_reg,
|
||||
rdev->desc->active_discharge_mask, val);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regulator_set_active_discharge_regmap);
|
||||
|
@@ -93,6 +93,12 @@ static void of_get_regulation_constraints(struct device_node *np,
|
||||
|
||||
constraints->soft_start = of_property_read_bool(np,
|
||||
"regulator-soft-start");
|
||||
ret = of_property_read_u32(np, "regulator-active-discharge", &pval);
|
||||
if (!ret) {
|
||||
constraints->active_discharge =
|
||||
(pval) ? REGULATOR_ACTIVE_DISCHARGE_ENABLE :
|
||||
REGULATOR_ACTIVE_DISCHARGE_DISABLE;
|
||||
}
|
||||
|
||||
if (!of_property_read_u32(np, "regulator-initial-mode", &pval)) {
|
||||
if (desc && desc->of_map_mode) {
|
||||
|
Reference in New Issue
Block a user