pinctrl: iproc-gpio: Use devm_pinctrl_register() for pinctrl registration
authorLaxman Dewangan <ldewangan@nvidia.com>
Wed, 24 Feb 2016 09:14:07 +0000 (14:44 +0530)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 20 Apr 2016 22:02:05 +0000 (00:02 +0200)
Use devm_pinctrl_register() for pin control registration and clean
the error path.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Cc: Ray Jui <rjui@broadcom.com>
Cc: Scott Branden <sbranden@broadcom.com>
Cc: Jon Mason <jonmason@broadcom.com>
Acked-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c

index 9ed98813c7d0a1bde8143c365c5c1afbdb6c570a..3670f5ea7a12ff3958c1e16105e03c848077778e 100644 (file)
@@ -623,7 +623,7 @@ static int iproc_gpio_register_pinconf(struct iproc_gpio *chip)
        pctldesc->npins = gc->ngpio;
        pctldesc->confops = &iproc_pconf_ops;
 
-       chip->pctl = pinctrl_register(pctldesc, chip->dev, chip);
+       chip->pctl = devm_pinctrl_register(chip->dev, pctldesc, chip);
        if (IS_ERR(chip->pctl)) {
                dev_err(chip->dev, "unable to register pinctrl device\n");
                return PTR_ERR(chip->pctl);
@@ -632,11 +632,6 @@ static int iproc_gpio_register_pinconf(struct iproc_gpio *chip)
        return 0;
 }
 
-static void iproc_gpio_unregister_pinconf(struct iproc_gpio *chip)
-{
-       pinctrl_unregister(chip->pctl);
-}
-
 static const struct of_device_id iproc_gpio_of_match[] = {
        { .compatible = "brcm,cygnus-ccm-gpio" },
        { .compatible = "brcm,cygnus-asiu-gpio" },
@@ -720,7 +715,7 @@ static int iproc_gpio_probe(struct platform_device *pdev)
                                           handle_simple_irq, IRQ_TYPE_NONE);
                if (ret) {
                        dev_err(dev, "no GPIO irqchip\n");
-                       goto err_unregister_pinconf;
+                       goto err_rm_gpiochip;
                }
 
                gpiochip_set_chained_irqchip(gc, &iproc_gpio_irq_chip, irq,
@@ -729,9 +724,6 @@ static int iproc_gpio_probe(struct platform_device *pdev)
 
        return 0;
 
-err_unregister_pinconf:
-       iproc_gpio_unregister_pinconf(chip);
-
 err_rm_gpiochip:
        gpiochip_remove(gc);