aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/max8660.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2012-05-15 09:42:12 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-05-15 13:35:30 -0400
commit9392c4f06ad81b3fe8c3af0027c337e4222e73db (patch)
tree2e43c840ea7d13126a051697d753ec8127656779 /drivers/regulator/max8660.c
parent134d34a835293456fb704a6378a4411a1a12cba9 (diff)
regulator: max8660: Convert to get_voltage_sel
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator/max8660.c')
-rw-r--r--drivers/regulator/max8660.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
index 67ec6ad7eb5e..93bcfc8d58ee 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
@@ -126,12 +126,13 @@ static int max8660_dcdc_disable(struct regulator_dev *rdev)
126 return max8660_write(max8660, MAX8660_OVER1, mask, 0); 126 return max8660_write(max8660, MAX8660_OVER1, mask, 0);
127} 127}
128 128
129static int max8660_dcdc_get(struct regulator_dev *rdev) 129static int max8660_dcdc_get_voltage_sel(struct regulator_dev *rdev)
130{ 130{
131 struct max8660 *max8660 = rdev_get_drvdata(rdev); 131 struct max8660 *max8660 = rdev_get_drvdata(rdev);
132
132 u8 reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2; 133 u8 reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2;
133 u8 selector = max8660->shadow_regs[reg]; 134 u8 selector = max8660->shadow_regs[reg];
134 return MAX8660_DCDC_MIN_UV + selector * MAX8660_DCDC_STEP; 135 return selector;
135} 136}
136 137
137static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV, 138static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
@@ -169,7 +170,7 @@ static struct regulator_ops max8660_dcdc_ops = {
169 .is_enabled = max8660_dcdc_is_enabled, 170 .is_enabled = max8660_dcdc_is_enabled,
170 .list_voltage = regulator_list_voltage_linear, 171 .list_voltage = regulator_list_voltage_linear,
171 .set_voltage = max8660_dcdc_set, 172 .set_voltage = max8660_dcdc_set,
172 .get_voltage = max8660_dcdc_get, 173 .get_voltage_sel = max8660_dcdc_get_voltage_sel,
173}; 174};
174 175
175 176
@@ -177,12 +178,12 @@ static struct regulator_ops max8660_dcdc_ops = {
177 * LDO5 functions 178 * LDO5 functions
178 */ 179 */
179 180
180static int max8660_ldo5_get(struct regulator_dev *rdev) 181static int max8660_ldo5_get_voltage_sel(struct regulator_dev *rdev)
181{ 182{
182 struct max8660 *max8660 = rdev_get_drvdata(rdev); 183 struct max8660 *max8660 = rdev_get_drvdata(rdev);
183 u8 selector = max8660->shadow_regs[MAX8660_MDTV2];
184 184
185 return MAX8660_LDO5_MIN_UV + selector * MAX8660_LDO5_STEP; 185 u8 selector = max8660->shadow_regs[MAX8660_MDTV2];
186 return selector;
186} 187}
187 188
188static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV, 189static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
@@ -217,7 +218,7 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
217static struct regulator_ops max8660_ldo5_ops = { 218static struct regulator_ops max8660_ldo5_ops = {
218 .list_voltage = regulator_list_voltage_linear, 219 .list_voltage = regulator_list_voltage_linear,
219 .set_voltage = max8660_ldo5_set, 220 .set_voltage = max8660_ldo5_set,
220 .get_voltage = max8660_ldo5_get, 221 .get_voltage_sel = max8660_ldo5_get_voltage_sel,
221}; 222};
222 223
223 224
@@ -247,13 +248,13 @@ static int max8660_ldo67_disable(struct regulator_dev *rdev)
247 return max8660_write(max8660, MAX8660_OVER2, mask, 0); 248 return max8660_write(max8660, MAX8660_OVER2, mask, 0);
248} 249}
249 250
250static int max8660_ldo67_get(struct regulator_dev *rdev) 251static int max8660_ldo67_get_voltage_sel(struct regulator_dev *rdev)
251{ 252{
252 struct max8660 *max8660 = rdev_get_drvdata(rdev); 253 struct max8660 *max8660 = rdev_get_drvdata(rdev);
254
253 u8 shift = (rdev_get_id(rdev) == MAX8660_V6) ? 0 : 4; 255 u8 shift = (rdev_get_id(rdev) == MAX8660_V6) ? 0 : 4;
254 u8 selector = (max8660->shadow_regs[MAX8660_L12VCR] >> shift) & 0xf; 256 u8 selector = (max8660->shadow_regs[MAX8660_L12VCR] >> shift) & 0xf;
255 257 return selector;
256 return MAX8660_LDO67_MIN_UV + selector * MAX8660_LDO67_STEP;
257} 258}
258 259
259static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV, 260static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV,
@@ -288,7 +289,7 @@ static struct regulator_ops max8660_ldo67_ops = {
288 .enable = max8660_ldo67_enable, 289 .enable = max8660_ldo67_enable,
289 .disable = max8660_ldo67_disable, 290 .disable = max8660_ldo67_disable,
290 .list_voltage = regulator_list_voltage_linear, 291 .list_voltage = regulator_list_voltage_linear,
291 .get_voltage = max8660_ldo67_get, 292 .get_voltage_sel = max8660_ldo67_get_voltage_sel,
292 .set_voltage = max8660_ldo67_set, 293 .set_voltage = max8660_ldo67_set,
293}; 294};
294 295