[PATCH v3 2/6] soc: fsl: qe: Change GPIO driver to a proper platform driver

Bartosz Golaszewski brgl at bgdev.pl
Mon Aug 25 22:56:39 AEST 2025


On Mon, Aug 25, 2025 at 8:53 AM Christophe Leroy
<christophe.leroy at csgroup.eu> wrote:
>
> In order to be able to add interrupts to the GPIOs, first change the
> QE GPIO driver to the proper platform driver in order to allow
> initialisation to be done in the right order, otherwise the GPIOs
> get added before the interrupts are registered.
>
> Signed-off-by: Christophe Leroy <christophe.leroy at csgroup.eu>
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski at linaro.org>

Hi! I retracted my review tag under v1 because...

[snip]

> -       return 0;
> +       qe_gc = devm_kzalloc(dev, sizeof(*qe_gc), GFP_KERNEL);
> +       if (!qe_gc)
> +               return -ENOMEM;
> +
> +       spin_lock_init(&qe_gc->lock);
> +
> +       mm_gc = &qe_gc->mm_gc;
> +       gc = &mm_gc->gc;
> +
> +       mm_gc->save_regs = qe_gpio_save_regs;
> +       gc->ngpio = QE_PIO_PINS;
> +       gc->direction_input = qe_gpio_dir_in;
> +       gc->direction_output = qe_gpio_dir_out;
> +       gc->get = qe_gpio_get;
> +       gc->set = qe_gpio_set;
> +       gc->set_multiple = qe_gpio_set_multiple;
> +
> +       return of_mm_gpiochip_add_data(np, mm_gc, qe_gc);

... I believe this can be dropped now and replaced with
devm_gpiochip_add_data().

Bart

> +}
> +
> +static const struct of_device_id qe_gpio_match[] = {
> +       {
> +               .compatible = "fsl,mpc8323-qe-pario-bank",
> +       },
> +       {},
> +};
> +MODULE_DEVICE_TABLE(of, qe_gpio_match);
> +
> +static struct platform_driver qe_gpio_driver = {
> +       .probe          = qe_gpio_probe,
> +       .driver         = {
> +               .name   = "qe-gpio",
> +               .of_match_table = qe_gpio_match,
> +       },
> +};
> +
> +static int __init qe_gpio_init(void)
> +{
> +       return platform_driver_register(&qe_gpio_driver);
>  }
> -arch_initcall(qe_add_gpiochips);
> +arch_initcall(qe_gpio_init);
> --
> 2.49.0
>


More information about the Linuxppc-dev mailing list