pinctrl: sh-pfc: Convert to devm_gpiochip_add_data()
This allows to remove the .remove() callback, and all functions and data it needed for its own bookkeeping. Suggested-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
07d36d2908
commit
c29e2f2cb6
@ -598,15 +598,6 @@ static int sh_pfc_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sh_pfc_remove(struct platform_device *pdev)
|
||||
{
|
||||
#ifdef CONFIG_PINCTRL_SH_PFC_GPIO
|
||||
sh_pfc_unregister_gpiochip(platform_get_drvdata(pdev));
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct platform_device_id sh_pfc_id_table[] = {
|
||||
#ifdef CONFIG_PINCTRL_PFC_SH7203
|
||||
{ "pfc-sh7203", (kernel_ulong_t)&sh7203_pinmux_info },
|
||||
@ -650,7 +641,6 @@ static const struct platform_device_id sh_pfc_id_table[] = {
|
||||
|
||||
static struct platform_driver sh_pfc_driver = {
|
||||
.probe = sh_pfc_probe,
|
||||
.remove = sh_pfc_remove,
|
||||
.id_table = sh_pfc_id_table,
|
||||
.driver = {
|
||||
.name = DRV_NAME,
|
||||
|
@ -20,7 +20,6 @@ struct sh_pfc_pin_range {
|
||||
};
|
||||
|
||||
int sh_pfc_register_gpiochip(struct sh_pfc *pfc);
|
||||
int sh_pfc_unregister_gpiochip(struct sh_pfc *pfc);
|
||||
|
||||
int sh_pfc_register_pinctrl(struct sh_pfc *pfc);
|
||||
|
||||
|
@ -318,7 +318,7 @@ sh_pfc_add_gpiochip(struct sh_pfc *pfc, int(*setup)(struct sh_pfc_chip *),
|
||||
if (ret < 0)
|
||||
return ERR_PTR(ret);
|
||||
|
||||
ret = gpiochip_add_data(&chip->gpio_chip, chip);
|
||||
ret = devm_gpiochip_add_data(pfc->dev, &chip->gpio_chip, chip);
|
||||
if (unlikely(ret < 0))
|
||||
return ERR_PTR(ret);
|
||||
|
||||
@ -399,18 +399,7 @@ int sh_pfc_register_gpiochip(struct sh_pfc *pfc)
|
||||
chip = sh_pfc_add_gpiochip(pfc, gpio_function_setup, NULL);
|
||||
if (IS_ERR(chip))
|
||||
return PTR_ERR(chip);
|
||||
|
||||
pfc->func = chip;
|
||||
#endif /* CONFIG_SUPERH */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sh_pfc_unregister_gpiochip(struct sh_pfc *pfc)
|
||||
{
|
||||
gpiochip_remove(&pfc->gpio->gpio_chip);
|
||||
#ifdef CONFIG_SUPERH
|
||||
gpiochip_remove(&pfc->func->gpio_chip);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
@ -207,9 +207,6 @@ struct sh_pfc {
|
||||
unsigned int nr_gpio_pins;
|
||||
|
||||
struct sh_pfc_chip *gpio;
|
||||
#ifdef CONFIG_SUPERH
|
||||
struct sh_pfc_chip *func;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct sh_pfc_soc_operations {
|
||||
|
Loading…
Reference in New Issue
Block a user