[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMRc=MfPTtdFtE63UKfbuK3h1mLEk2aUGazBsbRS-OLZzm7e9g@mail.gmail.com>
Date: Mon, 25 Aug 2025 14:56:39 +0200
From: Bartosz Golaszewski <brgl@...ev.pl>
To: Christophe Leroy <christophe.leroy@...roup.eu>
Cc: Qiang Zhao <qiang.zhao@....com>, Linus Walleij <linus.walleij@...aro.org>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-arm-kernel@...ts.infradead.org, linux-gpio@...r.kernel.org,
devicetree@...r.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
Subject: Re: [PATCH v3 2/6] soc: fsl: qe: Change GPIO driver to a proper
platform driver
On Mon, Aug 25, 2025 at 8:53 AM Christophe Leroy
<christophe.leroy@...roup.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@...roup.eu>
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@...aro.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
>
Powered by blists - more mailing lists