aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lapa <chris@lapa.com.au>2016-06-23 22:26:10 -0400
committerSebastian Reichel <sre@kernel.org>2016-06-28 14:05:41 -0400
commit3525e5c5b3dea03ff999c53be6392819165df820 (patch)
tree000cf21a53dad6c897a23081e4d9e9648ccdc5ed
parent88a469bbb2012448db266f3783448c673be7208a (diff)
max8903: removes non zero validity checks on gpios.
Prior to this commit a zero gpio was treated as invalid. Whereas gpio_is_valid() will treat a zero gpio as valid. This commit removes the confusion and explicitly uses gpio_is_valid() throughout. Which in turn results in several of the error messages becoming redundant and thus removed. Signed-off-by: Chris Lapa <chris@lapa.com.au> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Sebastian Reichel <sre@kernel.org>
-rw-r--r--drivers/power/max8903_charger.c115
1 files changed, 47 insertions, 68 deletions
diff --git a/drivers/power/max8903_charger.c b/drivers/power/max8903_charger.c
index 3f35593443b3..643a87aac60f 100644
--- a/drivers/power/max8903_charger.c
+++ b/drivers/power/max8903_charger.c
@@ -53,7 +53,7 @@ static int max8903_get_property(struct power_supply *psy,
53 switch (psp) { 53 switch (psp) {
54 case POWER_SUPPLY_PROP_STATUS: 54 case POWER_SUPPLY_PROP_STATUS:
55 val->intval = POWER_SUPPLY_STATUS_UNKNOWN; 55 val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
56 if (data->pdata->chg) { 56 if (gpio_is_valid(data->pdata->chg)) {
57 if (gpio_get_value(data->pdata->chg) == 0) 57 if (gpio_get_value(data->pdata->chg) == 0)
58 val->intval = POWER_SUPPLY_STATUS_CHARGING; 58 val->intval = POWER_SUPPLY_STATUS_CHARGING;
59 else if (data->usb_in || data->ta_in) 59 else if (data->usb_in || data->ta_in)
@@ -93,11 +93,11 @@ static irqreturn_t max8903_dcin(int irq, void *_data)
93 data->ta_in = ta_in; 93 data->ta_in = ta_in;
94 94
95 /* Set Current-Limit-Mode 1:DC 0:USB */ 95 /* Set Current-Limit-Mode 1:DC 0:USB */
96 if (pdata->dcm) 96 if (gpio_is_valid(pdata->dcm))
97 gpio_set_value(pdata->dcm, ta_in ? 1 : 0); 97 gpio_set_value(pdata->dcm, ta_in ? 1 : 0);
98 98
99 /* Charger Enable / Disable (cen is negated) */ 99 /* Charger Enable / Disable (cen is negated) */
100 if (pdata->cen) 100 if (gpio_is_valid(pdata->cen))
101 gpio_set_value(pdata->cen, ta_in ? 0 : 101 gpio_set_value(pdata->cen, ta_in ? 0 :
102 (data->usb_in ? 0 : 1)); 102 (data->usb_in ? 0 : 1));
103 103
@@ -136,7 +136,7 @@ static irqreturn_t max8903_usbin(int irq, void *_data)
136 /* Do not touch Current-Limit-Mode */ 136 /* Do not touch Current-Limit-Mode */
137 137
138 /* Charger Enable / Disable (cen is negated) */ 138 /* Charger Enable / Disable (cen is negated) */
139 if (pdata->cen) 139 if (gpio_is_valid(pdata->cen))
140 gpio_set_value(pdata->cen, usb_in ? 0 : 140 gpio_set_value(pdata->cen, usb_in ? 0 :
141 (data->ta_in ? 0 : 1)); 141 (data->ta_in ? 0 : 1));
142 142
@@ -190,7 +190,7 @@ static int max8903_setup_gpios(struct platform_device *pdev)
190 int usb_in = 0; 190 int usb_in = 0;
191 191
192 if (pdata->dc_valid) { 192 if (pdata->dc_valid) {
193 if (pdata->dok && gpio_is_valid(pdata->dok)) { 193 if (gpio_is_valid(pdata->dok)) {
194 ret = devm_gpio_request(dev, pdata->dok, 194 ret = devm_gpio_request(dev, pdata->dok,
195 data->psy_desc.name); 195 data->psy_desc.name);
196 if (ret) { 196 if (ret) {
@@ -208,27 +208,21 @@ static int max8903_setup_gpios(struct platform_device *pdev)
208 } 208 }
209 } 209 }
210 210
211 if (pdata->dcm) { 211 if (gpio_is_valid(pdata->dcm)) {
212 if (gpio_is_valid(pdata->dcm)) { 212 ret = devm_gpio_request(dev, pdata->dcm, data->psy_desc.name);
213 ret = devm_gpio_request(dev, pdata->dcm, 213 if (ret) {
214 data->psy_desc.name); 214 dev_err(dev,
215 if (ret) { 215 "Failed GPIO request for dcm: %d err %d\n",
216 dev_err(dev, 216 pdata->dcm, ret);
217 "Failed GPIO request for dcm: %d err %d\n", 217 return ret;
218 pdata->dcm, ret);
219 return ret;
220 }
221
222 gpio = pdata->dcm; /* Output */
223 gpio_set_value(gpio, ta_in);
224 } else {
225 dev_err(dev, "Invalid pin: dcm.\n");
226 return -EINVAL;
227 } 218 }
219
220 gpio = pdata->dcm; /* Output */
221 gpio_set_value(gpio, ta_in);
228 } 222 }
229 223
230 if (pdata->usb_valid) { 224 if (pdata->usb_valid) {
231 if (pdata->uok && gpio_is_valid(pdata->uok)) { 225 if (gpio_is_valid(pdata->uok)) {
232 ret = devm_gpio_request(dev, pdata->uok, 226 ret = devm_gpio_request(dev, pdata->uok,
233 data->psy_desc.name); 227 data->psy_desc.name);
234 if (ret) { 228 if (ret) {
@@ -247,60 +241,45 @@ static int max8903_setup_gpios(struct platform_device *pdev)
247 } 241 }
248 } 242 }
249 243
250 if (pdata->cen) { 244 if (gpio_is_valid(pdata->cen)) {
251 if (gpio_is_valid(pdata->cen)) { 245 ret = devm_gpio_request(dev, pdata->cen, data->psy_desc.name);
252 ret = devm_gpio_request(dev, pdata->cen, 246 if (ret) {
253 data->psy_desc.name); 247 dev_err(dev,
254 if (ret) { 248 "Failed GPIO request for cen: %d err %d\n",
255 dev_err(dev, 249 pdata->cen, ret);
256 "Failed GPIO request for cen: %d err %d\n", 250 return ret;
257 pdata->cen, ret);
258 return ret;
259 }
260
261 gpio_set_value(pdata->cen, (ta_in || usb_in) ? 0 : 1);
262 } else {
263 dev_err(dev, "Invalid pin: cen.\n");
264 return -EINVAL;
265 } 251 }
252
253 gpio_set_value(pdata->cen, (ta_in || usb_in) ? 0 : 1);
266 } 254 }
267 255
268 if (pdata->chg) { 256 if (gpio_is_valid(pdata->chg)) {
269 if (gpio_is_valid(pdata->chg)) { 257 ret = devm_gpio_request(dev, pdata->chg, data->psy_desc.name);
270 ret = devm_gpio_request(dev, pdata->chg, 258 if (ret) {
271 data->psy_desc.name); 259 dev_err(dev,
272 if (ret) { 260 "Failed GPIO request for chg: %d err %d\n",
273 dev_err(dev, 261 pdata->chg, ret);
274 "Failed GPIO request for chg: %d err %d\n", 262 return ret;
275 pdata->chg, ret);
276 return ret;
277 }
278 } 263 }
279 } 264 }
280 265
281 if (pdata->flt) { 266 if (gpio_is_valid(pdata->flt)) {
282 if (gpio_is_valid(pdata->flt)) { 267 ret = devm_gpio_request(dev, pdata->flt, data->psy_desc.name);
283 ret = devm_gpio_request(dev, pdata->flt, 268 if (ret) {
284 data->psy_desc.name); 269 dev_err(dev,
285 if (ret) { 270 "Failed GPIO request for flt: %d err %d\n",
286 dev_err(dev, 271 pdata->flt, ret);
287 "Failed GPIO request for flt: %d err %d\n", 272 return ret;
288 pdata->flt, ret);
289 return ret;
290 }
291 } 273 }
292 } 274 }
293 275
294 if (pdata->usus) { 276 if (gpio_is_valid(pdata->usus)) {
295 if (gpio_is_valid(pdata->usus)) { 277 ret = devm_gpio_request(dev, pdata->usus, data->psy_desc.name);
296 ret = devm_gpio_request(dev, pdata->usus, 278 if (ret) {
297 data->psy_desc.name); 279 dev_err(dev,
298 if (ret) { 280 "Failed GPIO request for usus: %d err %d\n",
299 dev_err(dev, 281 pdata->usus, ret);
300 "Failed GPIO request for usus: %d err %d\n", 282 return ret;
301 pdata->usus, ret);
302 return ret;
303 }
304 } 283 }
305 } 284 }
306 285
@@ -385,7 +364,7 @@ static int max8903_probe(struct platform_device *pdev)
385 } 364 }
386 } 365 }
387 366
388 if (pdata->flt) { 367 if (gpio_is_valid(pdata->flt)) {
389 ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->flt), 368 ret = devm_request_threaded_irq(dev, gpio_to_irq(pdata->flt),
390 NULL, max8903_fault, 369 NULL, max8903_fault,
391 IRQF_TRIGGER_FALLING | 370 IRQF_TRIGGER_FALLING |