[PATCH v5 7/9] irqchip/imx-irqsteer: Allow building as module
Radu Rendec
radu at rendec.net
Wed Sep 2 18:16:34 PDT 2026
On Fri, 2026-08-21 at 19:10 +0900, Zhipeng.wang_1 at oss.nxp.com wrote:
> From: Jindong Yue <jindong.yue at nxp.com>
>
> Make the driver buildable as a module by turning the Kconfig symbol into
> a tristate and using module_platform_driver() instead of
> builtin_platform_driver(), and add the MODULE_DEVICE_TABLE() and module
> metadata needed for autoloading.
>
> The clock, runtime PM and IRQ domain are already owned by devres, so no
> further teardown is needed to support unbind and reload.
>
> Signed-off-by: Jindong Yue <jindong.yue at nxp.com>
> Signed-off-by: Zhipeng Wang <zhipeng.wang_1 at nxp.com>
> ---
> drivers/irqchip/Kconfig | 2 +-
> drivers/irqchip/irq-imx-irqsteer.c | 7 ++++++-
> 2 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index 20b77fbc51ee..105108d2e6ff 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -555,7 +555,7 @@ config CSKY_APB_INTC
> the controller's register.
>
> config IMX_IRQSTEER
> - bool "i.MX IRQSTEER support"
> + tristate "i.MX IRQSTEER support"
> depends on ARCH_MXC || ARCH_S32 || COMPILE_TEST
> default y if ARCH_MXC || ARCH_S32
> select IRQ_DOMAIN
> diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c
> index c2f58787f9a8..dad09e095ed1 100644
> --- a/drivers/irqchip/irq-imx-irqsteer.c
> +++ b/drivers/irqchip/irq-imx-irqsteer.c
> @@ -10,6 +10,7 @@
> #include <linux/irqchip/chained_irq.h>
> #include <linux/irqdomain.h>
> #include <linux/kernel.h>
> +#include <linux/module.h>
> #include <linux/of.h>
> #include <linux/of_irq.h>
> #include <linux/platform_device.h>
> @@ -370,6 +371,7 @@ static const struct of_device_id imx_irqsteer_dt_ids[] = {
> { .compatible = "nxp,s32n79-irqsteer", .data = &s32n79_data },
> {},
> };
> +MODULE_DEVICE_TABLE(of, imx_irqsteer_dt_ids);
>
> static struct platform_driver imx_irqsteer_driver = {
> .driver = {
> @@ -380,4 +382,7 @@ static struct platform_driver imx_irqsteer_driver = {
> .probe = imx_irqsteer_probe,
> .remove = imx_irqsteer_remove,
> };
> -builtin_platform_driver(imx_irqsteer_driver);
> +module_platform_driver(imx_irqsteer_driver);
> +
> +MODULE_DESCRIPTION("i.MX IRQSTEER interrupt multiplexer/remapper driver");
> +MODULE_LICENSE("GPL");
Reviewed-by: Radu Rendec <radu at rendec.net>
More information about the linux-arm-kernel
mailing list