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 <axel.lin@ingics.com> Acked-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
9997f3ffbb
commit
dbc705183a
|
@ -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 New Issue