aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2016-02-22 07:13:28 -0500
committerLaxman Dewangan <ldewangan@nvidia.com>2016-02-23 10:05:43 -0500
commitc7c8a8fc1eb74cecdee5b7d91feaaa638194eb78 (patch)
tree7e918deab6626392fad500171c662d81580a325c
parent1a20cb2d7da02d13888fb3bd8a5dc7b2a8be3181 (diff)
gpio: sx150x: Use devm_gpiochip_add_data() for gpio registration
Use devm_gpiochip_add_data() for GPIO registration and remove the need of driver callback .remove. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
-rw-r--r--drivers/gpio/gpio-sx150x.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/gpio/gpio-sx150x.c b/drivers/gpio/gpio-sx150x.c
index e6cff1cabd0c..d387eb524bf3 100644
--- a/drivers/gpio/gpio-sx150x.c
+++ b/drivers/gpio/gpio-sx150x.c
@@ -687,7 +687,7 @@ static int sx150x_probe(struct i2c_client *client,
687 if (rc < 0) 687 if (rc < 0)
688 return rc; 688 return rc;
689 689
690 rc = gpiochip_add_data(&chip->gpio_chip, chip); 690 rc = devm_gpiochip_add_data(&client->dev, &chip->gpio_chip, chip);
691 if (rc) 691 if (rc)
692 return rc; 692 return rc;
693 693
@@ -696,25 +696,12 @@ static int sx150x_probe(struct i2c_client *client,
696 pdata->irq_summary, 696 pdata->irq_summary,
697 pdata->irq_base); 697 pdata->irq_base);
698 if (rc < 0) 698 if (rc < 0)
699 goto probe_fail_post_gpiochip_add; 699 return rc;
700 } 700 }
701 701
702 i2c_set_clientdata(client, chip); 702 i2c_set_clientdata(client, chip);
703 703
704 return 0; 704 return 0;
705probe_fail_post_gpiochip_add:
706 gpiochip_remove(&chip->gpio_chip);
707 return rc;
708}
709
710static int sx150x_remove(struct i2c_client *client)
711{
712 struct sx150x_chip *chip;
713
714 chip = i2c_get_clientdata(client);
715 gpiochip_remove(&chip->gpio_chip);
716
717 return 0;
718} 705}
719 706
720static struct i2c_driver sx150x_driver = { 707static struct i2c_driver sx150x_driver = {
@@ -723,7 +710,6 @@ static struct i2c_driver sx150x_driver = {
723 .of_match_table = of_match_ptr(sx150x_of_match), 710 .of_match_table = of_match_ptr(sx150x_of_match),
724 }, 711 },
725 .probe = sx150x_probe, 712 .probe = sx150x_probe,
726 .remove = sx150x_remove,
727 .id_table = sx150x_id, 713 .id_table = sx150x_id,
728}; 714};
729 715