Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d3fc884 authored by Laxman Dewangan's avatar Laxman Dewangan Committed by Linus Walleij
Browse files

pinctrl: at91-pio4: Use devm_pinctrl_register() for pinctrl registration



Use devm_pinctrl_register() for pin control registration and clean
error path.

Signed-off-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 4d106c22
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1034,18 +1034,19 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)
		goto clk_prepare_enable_error;
	}

	atmel_pioctrl->pinctrl_dev = pinctrl_register(&atmel_pinctrl_desc,
						      &pdev->dev,
	atmel_pioctrl->pinctrl_dev = devm_pinctrl_register(&pdev->dev,
							   &atmel_pinctrl_desc,
							   atmel_pioctrl);
	if (!atmel_pioctrl->pinctrl_dev) {
	if (IS_ERR(atmel_pioctrl->pinctrl_dev)) {
		ret = PTR_ERR(atmel_pioctrl->pinctrl_dev);
		dev_err(dev, "pinctrl registration failed\n");
		goto pinctrl_register_error;
		goto clk_unprep;
	}

	ret = gpiochip_add_data(atmel_pioctrl->gpio_chip, atmel_pioctrl);
	if (ret) {
		dev_err(dev, "failed to add gpiochip\n");
		goto gpiochip_add_error;
		goto clk_unprep;
	}

	ret = gpiochip_add_pin_range(atmel_pioctrl->gpio_chip, dev_name(dev),
@@ -1059,15 +1060,15 @@ static int atmel_pinctrl_probe(struct platform_device *pdev)

	return 0;

clk_prepare_enable_error:
	irq_domain_remove(atmel_pioctrl->irq_domain);
pinctrl_register_error:
	clk_disable_unprepare(atmel_pioctrl->clk);
gpiochip_add_error:
	pinctrl_unregister(atmel_pioctrl->pinctrl_dev);
gpiochip_add_pin_range_error:
	gpiochip_remove(atmel_pioctrl->gpio_chip);

clk_unprep:
	clk_disable_unprepare(atmel_pioctrl->clk);

clk_prepare_enable_error:
	irq_domain_remove(atmel_pioctrl->irq_domain);

	return ret;
}

@@ -1077,7 +1078,6 @@ int atmel_pinctrl_remove(struct platform_device *pdev)

	irq_domain_remove(atmel_pioctrl->irq_domain);
	clk_disable_unprepare(atmel_pioctrl->clk);
	pinctrl_unregister(atmel_pioctrl->pinctrl_dev);
	gpiochip_remove(atmel_pioctrl->gpio_chip);

	return 0;