diff options
author | Axel Lin <axel.lin@gmail.com> | 2012-05-15 22:11:13 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-05-16 04:46:58 -0400 |
commit | dde2b724e6bd6a6ea8516345398d3b8fe06a031b (patch) | |
tree | d0697dcfafc2a03f1e6e4ac4ec5659bbb3e0fa3c | |
parent | a9b2899b9deeae0f83a1a1f5761ee8d2fd7824cd (diff) |
regulator: isl6271a: Convert to set_voltage_sel and regulator_map_voltage_linear
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | drivers/regulator/isl6271a-regulator.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/regulator/isl6271a-regulator.c b/drivers/regulator/isl6271a-regulator.c index 00cb28816725..56d273f25603 100644 --- a/drivers/regulator/isl6271a-regulator.c +++ b/drivers/regulator/isl6271a-regulator.c | |||
@@ -50,25 +50,15 @@ static int isl6271a_get_voltage_sel(struct regulator_dev *dev) | |||
50 | return idx; | 50 | return idx; |
51 | } | 51 | } |
52 | 52 | ||
53 | static int isl6271a_set_voltage(struct regulator_dev *dev, | 53 | static int isl6271a_set_voltage_sel(struct regulator_dev *dev, |
54 | int minuV, int maxuV, | 54 | unsigned selector) |
55 | unsigned *selector) | ||
56 | { | 55 | { |
57 | struct isl_pmic *pmic = rdev_get_drvdata(dev); | 56 | struct isl_pmic *pmic = rdev_get_drvdata(dev); |
58 | int err, data; | 57 | int err; |
59 | |||
60 | if (minuV < ISL6271A_VOLTAGE_MIN || minuV > ISL6271A_VOLTAGE_MAX) | ||
61 | return -EINVAL; | ||
62 | if (maxuV < ISL6271A_VOLTAGE_MIN || maxuV > ISL6271A_VOLTAGE_MAX) | ||
63 | return -EINVAL; | ||
64 | |||
65 | data = DIV_ROUND_UP(minuV - ISL6271A_VOLTAGE_MIN, | ||
66 | ISL6271A_VOLTAGE_STEP); | ||
67 | *selector = data; | ||
68 | 58 | ||
69 | mutex_lock(&pmic->mtx); | 59 | mutex_lock(&pmic->mtx); |
70 | 60 | ||
71 | err = i2c_smbus_write_byte(pmic->client, data); | 61 | err = i2c_smbus_write_byte(pmic->client, selector); |
72 | if (err < 0) | 62 | if (err < 0) |
73 | dev_err(&pmic->client->dev, "Error setting voltage\n"); | 63 | dev_err(&pmic->client->dev, "Error setting voltage\n"); |
74 | 64 | ||
@@ -78,8 +68,9 @@ static int isl6271a_set_voltage(struct regulator_dev *dev, | |||
78 | 68 | ||
79 | static struct regulator_ops isl_core_ops = { | 69 | static struct regulator_ops isl_core_ops = { |
80 | .get_voltage_sel = isl6271a_get_voltage_sel, | 70 | .get_voltage_sel = isl6271a_get_voltage_sel, |
81 | .set_voltage = isl6271a_set_voltage, | 71 | .set_voltage_sel = isl6271a_set_voltage_sel, |
82 | .list_voltage = regulator_list_voltage_linear, | 72 | .list_voltage = regulator_list_voltage_linear, |
73 | .map_voltage = regulator_map_voltage_linear, | ||
83 | }; | 74 | }; |
84 | 75 | ||
85 | static int isl6271a_get_fixed_voltage(struct regulator_dev *dev) | 76 | static int isl6271a_get_fixed_voltage(struct regulator_dev *dev) |