regulator: add REGULATOR_LINEAR_VRANGE macro

REGULATOR_LINEAR_VRANGE is similar to REGULATOR_LINEAR_RANGE, but
allows a more natural declaration of a voltage range for a regulator,
in that it expects the minimum and maximum values as voltages rather
than as selectors.

Using voltages arguably makes this macro easier to use by drivers and
code using it can become easier to read compared to
REGULATOR_LINEAR_RANGE.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Link: https://patch.msgid.link/20260122-s2mpg1x-regulators-v7-10-3b1f9831fffd@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
André Draszik 2026-01-22 15:43:37 +00:00 committed by Mark Brown
parent 030158c052
commit 7d33c0a4c6
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -53,6 +53,11 @@ enum regulator_detection_severity {
#define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV) \
LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV)
/* Initialize struct linear_range using voltages, not selectors */
#define REGULATOR_LINEAR_VRANGE(_offs_uV, _min_uV, _max_uV, _step_uV) \
LINEAR_RANGE(_min_uV, ((_min_uV) - (_offs_uV)) / (_step_uV), \
((_max_uV) - (_offs_uV)) / (_step_uV), _step_uV)
/**
* struct regulator_ops - regulator operations.
*