diff options
author | Axel Lin <axel.lin@gmail.com> | 2012-03-02 03:23:39 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-03-11 16:48:50 -0400 |
commit | ab353c2375258fced2967dfe66ff109098797cf1 (patch) | |
tree | 1b6a12e32c8b335689f6e4b29a459ff886b4d0de /drivers/regulator | |
parent | 7d530d32b0b71f1735a73f5b03e22955a5460b7f (diff) |
regulator: max8660: Use DIV_ROUND_UP macro to calculate selector
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/max8660.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c index a838e664569f..4c5b05311f47 100644 --- a/drivers/regulator/max8660.c +++ b/drivers/regulator/max8660.c | |||
@@ -153,14 +153,15 @@ static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV, | |||
153 | if (max_uV < MAX8660_DCDC_MIN_UV || max_uV > MAX8660_DCDC_MAX_UV) | 153 | if (max_uV < MAX8660_DCDC_MIN_UV || max_uV > MAX8660_DCDC_MAX_UV) |
154 | return -EINVAL; | 154 | return -EINVAL; |
155 | 155 | ||
156 | selector = (min_uV - (MAX8660_DCDC_MIN_UV - MAX8660_DCDC_STEP + 1)) | 156 | selector = DIV_ROUND_UP(min_uV - MAX8660_DCDC_MIN_UV, |
157 | / MAX8660_DCDC_STEP; | 157 | MAX8660_DCDC_STEP); |
158 | *s = selector; | ||
159 | 158 | ||
160 | ret = max8660_dcdc_list(rdev, selector); | 159 | ret = max8660_dcdc_list(rdev, selector); |
161 | if (ret < 0 || ret > max_uV) | 160 | if (ret < 0 || ret > max_uV) |
162 | return -EINVAL; | 161 | return -EINVAL; |
163 | 162 | ||
163 | *s = selector; | ||
164 | |||
164 | reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2; | 165 | reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2; |
165 | ret = max8660_write(max8660, reg, 0, selector); | 166 | ret = max8660_write(max8660, reg, 0, selector); |
166 | if (ret) | 167 | if (ret) |
@@ -210,8 +211,9 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV, | |||
210 | if (max_uV < MAX8660_LDO5_MIN_UV || max_uV > MAX8660_LDO5_MAX_UV) | 211 | if (max_uV < MAX8660_LDO5_MIN_UV || max_uV > MAX8660_LDO5_MAX_UV) |
211 | return -EINVAL; | 212 | return -EINVAL; |
212 | 213 | ||
213 | selector = (min_uV - (MAX8660_LDO5_MIN_UV - MAX8660_LDO5_STEP + 1)) | 214 | selector = DIV_ROUND_UP(min_uV - MAX8660_LDO5_MIN_UV, |
214 | / MAX8660_LDO5_STEP; | 215 | MAX8660_LDO5_STEP); |
216 | |||
215 | ret = max8660_ldo5_list(rdev, selector); | 217 | ret = max8660_ldo5_list(rdev, selector); |
216 | if (ret < 0 || ret > max_uV) | 218 | if (ret < 0 || ret > max_uV) |
217 | return -EINVAL; | 219 | return -EINVAL; |
@@ -287,8 +289,8 @@ static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV, | |||
287 | if (max_uV < MAX8660_LDO67_MIN_UV || max_uV > MAX8660_LDO67_MAX_UV) | 289 | if (max_uV < MAX8660_LDO67_MIN_UV || max_uV > MAX8660_LDO67_MAX_UV) |
288 | return -EINVAL; | 290 | return -EINVAL; |
289 | 291 | ||
290 | selector = (min_uV - (MAX8660_LDO67_MIN_UV - MAX8660_LDO67_STEP + 1)) | 292 | selector = DIV_ROUND_UP(min_uV - MAX8660_LDO67_MIN_UV, |
291 | / MAX8660_LDO67_STEP; | 293 | MAX8660_LDO67_STEP); |
292 | 294 | ||
293 | ret = max8660_ldo67_list(rdev, selector); | 295 | ret = max8660_ldo67_list(rdev, selector); |
294 | if (ret < 0 || ret > max_uV) | 296 | if (ret < 0 || ret > max_uV) |