aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/radio
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2015-03-26 16:47:53 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-08 05:40:33 -0400
commitb36ae8532f48916d46f92c048d4866ee50e5fc67 (patch)
tree701bc977648c1dc699eb178bc318ebfb322e0acb /drivers/media/radio
parent4a203349593a636bff46c49be3f955e0a0c0b0d2 (diff)
[media] media: radio-si4713: improve usage of gpiod API
Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify accordingly. Moreover use the _optional variant which has tighter error checking, but is simpler to use which allows further simplification. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r--drivers/media/radio/si4713/si4713.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/media/radio/si4713/si4713.c b/drivers/media/radio/si4713/si4713.c
index c90004dac170..e9d03ac69a27 100644
--- a/drivers/media/radio/si4713/si4713.c
+++ b/drivers/media/radio/si4713/si4713.c
@@ -383,7 +383,7 @@ static int si4713_powerup(struct si4713_device *sdev)
383 } 383 }
384 } 384 }
385 385
386 if (!IS_ERR(sdev->gpio_reset)) { 386 if (sdev->gpio_reset) {
387 udelay(50); 387 udelay(50);
388 gpiod_set_value(sdev->gpio_reset, 1); 388 gpiod_set_value(sdev->gpio_reset, 1);
389 } 389 }
@@ -407,8 +407,7 @@ static int si4713_powerup(struct si4713_device *sdev)
407 SI4713_STC_INT | SI4713_CTS); 407 SI4713_STC_INT | SI4713_CTS);
408 return err; 408 return err;
409 } 409 }
410 if (!IS_ERR(sdev->gpio_reset)) 410 gpiod_set_value(sdev->gpio_reset, 0);
411 gpiod_set_value(sdev->gpio_reset, 0);
412 411
413 412
414 if (sdev->vdd) { 413 if (sdev->vdd) {
@@ -447,7 +446,7 @@ static int si4713_powerdown(struct si4713_device *sdev)
447 v4l2_dbg(1, debug, &sdev->sd, "Power down response: 0x%02x\n", 446 v4l2_dbg(1, debug, &sdev->sd, "Power down response: 0x%02x\n",
448 resp[0]); 447 resp[0]);
449 v4l2_dbg(1, debug, &sdev->sd, "Device in reset mode\n"); 448 v4l2_dbg(1, debug, &sdev->sd, "Device in reset mode\n");
450 if (!IS_ERR(sdev->gpio_reset)) 449 if (sdev->gpio_reset)
451 gpiod_set_value(sdev->gpio_reset, 0); 450 gpiod_set_value(sdev->gpio_reset, 0);
452 451
453 if (sdev->vdd) { 452 if (sdev->vdd) {
@@ -1460,14 +1459,9 @@ static int si4713_probe(struct i2c_client *client,
1460 goto exit; 1459 goto exit;
1461 } 1460 }
1462 1461
1463 sdev->gpio_reset = devm_gpiod_get(&client->dev, "reset"); 1462 sdev->gpio_reset = devm_gpiod_get_optional(&client->dev, "reset",
1464 if (!IS_ERR(sdev->gpio_reset)) { 1463 GPIOD_OUT_LOW);
1465 gpiod_direction_output(sdev->gpio_reset, 0); 1464 if (IS_ERR(sdev->gpio_reset)) {
1466 } else if (PTR_ERR(sdev->gpio_reset) == -ENOENT) {
1467 dev_dbg(&client->dev, "No reset GPIO assigned\n");
1468 } else if (PTR_ERR(sdev->gpio_reset) == -ENOSYS) {
1469 dev_dbg(&client->dev, "No reset GPIO support\n");
1470 } else {
1471 rval = PTR_ERR(sdev->gpio_reset); 1465 rval = PTR_ERR(sdev->gpio_reset);
1472 dev_err(&client->dev, "Failed to request gpio: %d\n", rval); 1466 dev_err(&client->dev, "Failed to request gpio: %d\n", rval);
1473 goto exit; 1467 goto exit;