mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-12 23:33:55 +08: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 <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;
|
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);
|
tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL);
|
||||||
if (!tps) {
|
if (!tps) {
|
||||||
dev_err(&client->dev, "Memory allocation failed\n");
|
dev_err(&client->dev, "Memory allocation failed\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user