Re: [PATCH v2] gpio: palmas: Allow building as a module

From: Bartosz Golaszewski
Date: Mon Jun 02 2025 - 05:49:23 EST


On Fri, May 23, 2025 at 12:22 AM Aaron Kling via B4 Relay
<devnull+webgeek1234.gmail.com@xxxxxxxxxx> wrote:
>
> From: Aaron Kling <webgeek1234@xxxxxxxxx>
>
> The driver works fine as a module, so allowing building as such. This
> drops the driver specific init in favor of the module macro which does
> the same, plus handling exit.
>
> Signed-off-by: Aaron Kling <webgeek1234@xxxxxxxxx>
> ---
> Changes in v2:
> - Drop module alias and add module device table
> - Link to v1: https://lore.kernel.org/r/20250522-gpio-palmas-gpio-v1-1-d6b1a3776ef5@xxxxxxxxx
> ---
> drivers/gpio/Kconfig | 2 +-
> drivers/gpio/gpio-palmas.c | 10 +++++-----
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> index f2c39bbff83a33dcb12b2d32aa3ebc358a0dd949..be5d823516d0e2bff4b4231dac6a82bf10887118 100644
> --- a/drivers/gpio/Kconfig
> +++ b/drivers/gpio/Kconfig
> @@ -1464,7 +1464,7 @@ config GPIO_MAX77650
> These chips have a single pin that can be configured as GPIO.
>
> config GPIO_PALMAS
> - bool "TI PALMAS series PMICs GPIO"
> + tristate "TI PALMAS series PMICs GPIO"
> depends on MFD_PALMAS
> help
> Select this option to enable GPIO driver for the TI PALMAS
> diff --git a/drivers/gpio/gpio-palmas.c b/drivers/gpio/gpio-palmas.c
> index 28dba7048509a3ef9c7972c1be53ea30adddabb0..eaef29f59292de5281f31e196961d90974e65b75 100644
> --- a/drivers/gpio/gpio-palmas.c
> +++ b/drivers/gpio/gpio-palmas.c
> @@ -140,6 +140,7 @@ static const struct of_device_id of_palmas_gpio_match[] = {
> { .compatible = "ti,tps80036-gpio", .data = &tps80036_dev_data,},
> { },
> };
> +MODULE_DEVICE_TABLE(of, of_palmas_gpio_match);
>
> static int palmas_gpio_probe(struct platform_device *pdev)
> {
> @@ -191,9 +192,8 @@ static struct platform_driver palmas_gpio_driver = {
> .driver.of_match_table = of_palmas_gpio_match,
> .probe = palmas_gpio_probe,
> };
> +module_platform_driver(palmas_gpio_driver);
>
> -static int __init palmas_gpio_init(void)
> -{
> - return platform_driver_register(&palmas_gpio_driver);
> -}
> -subsys_initcall(palmas_gpio_init);

This being put into an earlier initcall than device_initcall() makes
me think, someone had a reason for it and this change can break this.
I'm Cc'ing the original author who seems to still be active in the
kernel.

Laxman: can you verify that this can be safely moved to module_initcall()?

Bartosz

> +MODULE_DESCRIPTION("TI PALMAS series GPIO driver");
> +MODULE_AUTHOR("Laxman Dewangan <ldewangan@xxxxxxxxxx>");
> +MODULE_LICENSE("GPL");
>
> ---
> base-commit: b36ddb9210e6812eb1c86ad46b66cc46aa193487
> change-id: 20250520-gpio-palmas-gpio-a99fc046dc7f
>
> Best regards,
> --
> Aaron Kling <webgeek1234@xxxxxxxxx>
>
>