diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-01-13 02:37:24 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-01-13 02:37:24 -0500 |
commit | 6db9a0f326d3144d790d9479309df480a8f562e4 (patch) | |
tree | 650a8950c35c087278ecee1b8d123f75f601ebc8 /drivers/regulator | |
parent | c400c9e23feb5bb3fbe8a8d4581ecce3b19a2f38 (diff) | |
parent | 18b022eb117e7f70c191267551ff865f278a9258 (diff) |
Merge branch 'topic/asoc' into for-linus
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/wm8994-regulator.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/regulator/wm8994-regulator.c b/drivers/regulator/wm8994-regulator.c index 03713bc66e4a..21fefef02a43 100644 --- a/drivers/regulator/wm8994-regulator.c +++ b/drivers/regulator/wm8994-regulator.c | |||
@@ -131,10 +131,19 @@ static struct regulator_ops wm8994_ldo1_ops = { | |||
131 | static int wm8994_ldo2_list_voltage(struct regulator_dev *rdev, | 131 | static int wm8994_ldo2_list_voltage(struct regulator_dev *rdev, |
132 | unsigned int selector) | 132 | unsigned int selector) |
133 | { | 133 | { |
134 | struct wm8994_ldo *ldo = rdev_get_drvdata(rdev); | ||
135 | |||
134 | if (selector > WM8994_LDO2_MAX_SELECTOR) | 136 | if (selector > WM8994_LDO2_MAX_SELECTOR) |
135 | return -EINVAL; | 137 | return -EINVAL; |
136 | 138 | ||
137 | return (selector * 100000) + 900000; | 139 | switch (ldo->wm8994->type) { |
140 | case WM8994: | ||
141 | return (selector * 100000) + 900000; | ||
142 | case WM8958: | ||
143 | return (selector * 100000) + 1000000; | ||
144 | default: | ||
145 | return -EINVAL; | ||
146 | } | ||
138 | } | 147 | } |
139 | 148 | ||
140 | static int wm8994_ldo2_get_voltage(struct regulator_dev *rdev) | 149 | static int wm8994_ldo2_get_voltage(struct regulator_dev *rdev) |
@@ -157,7 +166,17 @@ static int wm8994_ldo2_set_voltage(struct regulator_dev *rdev, | |||
157 | struct wm8994_ldo *ldo = rdev_get_drvdata(rdev); | 166 | struct wm8994_ldo *ldo = rdev_get_drvdata(rdev); |
158 | int selector, v; | 167 | int selector, v; |
159 | 168 | ||
160 | selector = (min_uV - 900000) / 100000; | 169 | switch (ldo->wm8994->type) { |
170 | case WM8994: | ||
171 | selector = (min_uV - 900000) / 100000; | ||
172 | break; | ||
173 | case WM8958: | ||
174 | selector = (min_uV - 1000000) / 100000; | ||
175 | break; | ||
176 | default: | ||
177 | return -EINVAL; | ||
178 | } | ||
179 | |||
161 | v = wm8994_ldo2_list_voltage(rdev, selector); | 180 | v = wm8994_ldo2_list_voltage(rdev, selector); |
162 | if (v < 0 || v > max_uV) | 181 | if (v < 0 || v > max_uV) |
163 | return -EINVAL; | 182 | return -EINVAL; |