gpio: stmpe: Allow to compile as a module

Add the necessary boilerplate to also make this driver modular.
Keep the subsys_initcall to not change registration order for built-in.
Also add OF match table for module autoloading.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Link: https://lore.kernel.org/r/20250728060544.18169-1-alexander.stein@ew.tq-group.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
Alexander Stein 2025-07-28 08:05:43 +02:00 committed by Bartosz Golaszewski
parent 8f5ae30d69
commit 03db20aaa3
2 changed files with 19 additions and 3 deletions

View File

@ -1559,7 +1559,7 @@ config GPIO_SL28CPLD
called gpio-sl28cpld.
config GPIO_STMPE
bool "STMPE GPIOs"
tristate "STMPE GPIOs"
depends on MFD_STMPE
depends on OF_GPIO
select GPIOLIB_IRQCHIP

View File

@ -534,10 +534,16 @@ static int stmpe_gpio_probe(struct platform_device *pdev)
return devm_gpiochip_add_data(dev, &stmpe_gpio->chip, stmpe_gpio);
}
static const struct of_device_id stmpe_gpio_of_matches[] = {
{ .compatible = "st,stmpe-gpio", },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, stmpe_gpio_of_matches);
static struct platform_driver stmpe_gpio_driver = {
.driver = {
.suppress_bind_attrs = true,
.name = "stmpe-gpio",
.name = "stmpe-gpio",
.of_match_table = stmpe_gpio_of_matches,
},
.probe = stmpe_gpio_probe,
};
@ -547,3 +553,13 @@ static int __init stmpe_gpio_init(void)
return platform_driver_register(&stmpe_gpio_driver);
}
subsys_initcall(stmpe_gpio_init);
static void __exit stmpe_gpio_exit(void)
{
platform_driver_unregister(&stmpe_gpio_driver);
}
module_exit(stmpe_gpio_exit);
MODULE_DESCRIPTION("STMPE expander GPIO");
MODULE_AUTHOR("Rabin Vincent <rabin.vincent@stericsson.com>");
MODULE_LICENSE("GPL");