mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-11-09 12:24:07 -05:00
regulator: tps51632: Ensure [base|max]_voltage_uV pdata settings are valid
If pdata->base_voltage_uV is missing or the settings of pdata->base_voltage_uV and pdata->max_voltage_uV are out of range, TPS51632_VOLT_VSEL macro returns wrong vsel. Thus add checking [base|max]_voltage_uV pdata settings in probe. Signed-off-by: Axel Lin <[email protected]> Acked-by: Laxman Dewangan <[email protected]> Signed-off-by: Mark Brown <[email protected]>
This commit is contained in:
parent
9997f3ffbb
commit
dbc705183a
1 changed files with 15 additions and 0 deletions
|
|
@ -242,6 +242,21 @@ static int __devinit tps51632_probe(struct i2c_client *client,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (pdata->enable_pwm_dvfs) {
|
||||
if ((pdata->base_voltage_uV < TPS51632_MIN_VOLATGE) ||
|
||||
(pdata->base_voltage_uV > TPS51632_MAX_VOLATGE)) {
|
||||
dev_err(&client->dev, "Invalid base_voltage_uV setting\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((pdata->max_voltage_uV) &&
|
||||
((pdata->max_voltage_uV < TPS51632_MIN_VOLATGE) ||
|
||||
(pdata->max_voltage_uV > TPS51632_MAX_VOLATGE))) {
|
||||
dev_err(&client->dev, "Invalid max_voltage_uV setting\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL);
|
||||
if (!tps) {
|
||||
dev_err(&client->dev, "Memory allocation failed\n");
|
||||
|
|
|
|||
Loading…
Reference in a new issue