regulator: wm831x-isink: Select maximum current in specific range
authorAxel Lin <axel.lin@ingics.com>
Tue, 12 Mar 2019 16:33:54 +0000 (00:33 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 13 Mar 2019 15:13:30 +0000 (15:13 +0000)
.set_current_limit callback should select the current closest to max_uA.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/wm831x-isink.c

index 11f351191dba9fe797f676009ee1ffa9d70ecd04..5611890a724b461fbf9e287bf92f9a5d88c1b80c 100644 (file)
@@ -99,7 +99,7 @@ static int wm831x_isink_set_current(struct regulator_dev *rdev,
        struct wm831x *wm831x = isink->wm831x;
        int ret, i;
 
-       for (i = 0; i < ARRAY_SIZE(wm831x_isinkv_values); i++) {
+       for (i = ARRAY_SIZE(wm831x_isinkv_values) - 1; i >= 0; i--) {
                int val = wm831x_isinkv_values[i];
                if (min_uA <= val && val <= max_uA) {
                        ret = wm831x_set_bits(wm831x, isink->reg,