diff options
Diffstat (limited to 'drivers/power/max8903_charger.c')
-rw-r--r-- | drivers/power/max8903_charger.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/power/max8903_charger.c b/drivers/power/max8903_charger.c index 0a5b0e142788..6ec705f7a9d9 100644 --- a/drivers/power/max8903_charger.c +++ b/drivers/power/max8903_charger.c | |||
@@ -211,27 +211,23 @@ static int max8903_probe(struct platform_device *pdev) | |||
211 | } | 211 | } |
212 | 212 | ||
213 | if (pdata->dc_valid) { | 213 | if (pdata->dc_valid) { |
214 | if (pdata->dok && gpio_is_valid(pdata->dok) && | 214 | if (pdata->dok && gpio_is_valid(pdata->dok)) { |
215 | pdata->dcm && gpio_is_valid(pdata->dcm)) { | ||
216 | gpio = pdata->dok; /* PULL_UPed Interrupt */ | 215 | gpio = pdata->dok; /* PULL_UPed Interrupt */ |
217 | ta_in = gpio_get_value(gpio) ? 0 : 1; | 216 | ta_in = gpio_get_value(gpio) ? 0 : 1; |
217 | } else { | ||
218 | dev_err(dev, "When DC is wired, DOK should be wired as well.\n"); | ||
219 | return -EINVAL; | ||
220 | } | ||
221 | } | ||
218 | 222 | ||
223 | if (pdata->dcm) { | ||
224 | if (gpio_is_valid(pdata->dcm)) { | ||
219 | gpio = pdata->dcm; /* Output */ | 225 | gpio = pdata->dcm; /* Output */ |
220 | gpio_set_value(gpio, ta_in); | 226 | gpio_set_value(gpio, ta_in); |
221 | } else { | 227 | } else { |
222 | dev_err(dev, "When DC is wired, DOK and DCM should" | 228 | dev_err(dev, "Invalid pin: dcm.\n"); |
223 | " be wired as well.\n"); | ||
224 | return -EINVAL; | 229 | return -EINVAL; |
225 | } | 230 | } |
226 | } else { | ||
227 | if (pdata->dcm) { | ||
228 | if (gpio_is_valid(pdata->dcm)) | ||
229 | gpio_set_value(pdata->dcm, 0); | ||
230 | else { | ||
231 | dev_err(dev, "Invalid pin: dcm.\n"); | ||
232 | return -EINVAL; | ||
233 | } | ||
234 | } | ||
235 | } | 231 | } |
236 | 232 | ||
237 | if (pdata->usb_valid) { | 233 | if (pdata->usb_valid) { |