]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/regulator/wm831x-dcdc.c
Merge tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
[karo-tx-linux.git] / drivers / regulator / wm831x-dcdc.c
index 64111f4935a46868f90eaf533ef29150ac1274d7..782c228a19bd503ccda868ac67f46cce7fbba2e7 100644 (file)
@@ -339,16 +339,15 @@ static int wm831x_buckv_set_current_limit(struct regulator_dev *rdev,
        u16 reg = dcdc->base + WM831X_DCDC_CONTROL_2;
        int i;
 
-       for (i = 0; i < ARRAY_SIZE(wm831x_dcdc_ilim); i++) {
+       for (i = ARRAY_SIZE(wm831x_dcdc_ilim) - 1; i >= 0; i--) {
                if ((min_uA <= wm831x_dcdc_ilim[i]) &&
                    (wm831x_dcdc_ilim[i] <= max_uA))
-                       break;
+                       return wm831x_set_bits(wm831x, reg,
+                                              WM831X_DC1_HC_THR_MASK,
+                                               i << WM831X_DC1_HC_THR_SHIFT);
        }
-       if (i == ARRAY_SIZE(wm831x_dcdc_ilim))
-               return -EINVAL;
 
-       return wm831x_set_bits(wm831x, reg, WM831X_DC1_HC_THR_MASK,
-                              i << WM831X_DC1_HC_THR_SHIFT);
+       return -EINVAL;
 }
 
 static int wm831x_buckv_get_current_limit(struct regulator_dev *rdev)