mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
regulator: pm8008: fix probe failure due to negative voltage selector
In the current design, the `pm8008_regulator_get_voltage_sel()` callback can return a negative value if the raw voltage value is read as 0 uV from the PMIC HW register. This can cause the probe to fail when the `machine_constraints_voltage()` check is called during the regulator registration flow. Fix this by using the helper `regulator_map_voltage_linear_range()` to convert the raw value to a voltage selector inside the mentioned get voltage selector function. This ensures that the value returned is always within the defined range. Signed-off-by: Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com> Message-ID: <20250823-pm8008-negitive-selector-v1-1-52b026a4b5e8@quicinc.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1b237f190e
commit
ef3e9c91ed
1 changed files with 1 additions and 1 deletions
|
@ -96,7 +96,7 @@ static int pm8008_regulator_get_voltage_sel(struct regulator_dev *rdev)
|
|||
|
||||
uV = le16_to_cpu(val) * 1000;
|
||||
|
||||
return (uV - preg->desc.min_uV) / preg->desc.uV_step;
|
||||
return regulator_map_voltage_linear_range(rdev, uV, INT_MAX);
|
||||
}
|
||||
|
||||
static const struct regulator_ops pm8008_regulator_ops = {
|
||||
|
|
Loading…
Add table
Reference in a new issue