mirror of https://github.com/torvalds/linux.git
irqchip/meson-gpio: Make it possible to build as a module
In order to reduce the kernel Image size on multi-platform distributions, make it possible to build the Amlogic GPIO IRQ controller as a module by switching it to a platform driver. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Acked-by: Saravana Kannan <saravanak@google.com> Reported-by: kernel test robot <lkp@intel.com> Reviewed-by: Lee Jones <lee.jones@linaro.org> Reviewed-by: Kevin Hilman <khilman@baylibre.com> Tested-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20210902134914.176986-2-narmstrong@baylibre.com
This commit is contained in:
parent
f198500283
commit
a947aa00ed
|
|
@ -400,8 +400,9 @@ config IRQ_UNIPHIER_AIDET
|
||||||
Support for the UniPhier AIDET (ARM Interrupt Detector).
|
Support for the UniPhier AIDET (ARM Interrupt Detector).
|
||||||
|
|
||||||
config MESON_IRQ_GPIO
|
config MESON_IRQ_GPIO
|
||||||
bool "Meson GPIO Interrupt Multiplexer"
|
tristate "Meson GPIO Interrupt Multiplexer"
|
||||||
depends on ARCH_MESON
|
depends on ARCH_MESON || COMPILE_TEST
|
||||||
|
default ARCH_MESON
|
||||||
select IRQ_DOMAIN_HIERARCHY
|
select IRQ_DOMAIN_HIERARCHY
|
||||||
help
|
help
|
||||||
Support Meson SoC Family GPIO Interrupt Multiplexer
|
Support Meson SoC Family GPIO Interrupt Multiplexer
|
||||||
|
|
|
||||||
|
|
@ -436,8 +436,7 @@ static const struct irq_domain_ops meson_gpio_irq_domain_ops = {
|
||||||
.translate = meson_gpio_irq_domain_translate,
|
.translate = meson_gpio_irq_domain_translate,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init meson_gpio_irq_parse_dt(struct device_node *node,
|
static int meson_gpio_irq_parse_dt(struct device_node *node, struct meson_gpio_irq_controller *ctl)
|
||||||
struct meson_gpio_irq_controller *ctl)
|
|
||||||
{
|
{
|
||||||
const struct of_device_id *match;
|
const struct of_device_id *match;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -463,8 +462,7 @@ static int __init meson_gpio_irq_parse_dt(struct device_node *node,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init meson_gpio_irq_of_init(struct device_node *node,
|
static int meson_gpio_irq_of_init(struct device_node *node, struct device_node *parent)
|
||||||
struct device_node *parent)
|
|
||||||
{
|
{
|
||||||
struct irq_domain *domain, *parent_domain;
|
struct irq_domain *domain, *parent_domain;
|
||||||
struct meson_gpio_irq_controller *ctl;
|
struct meson_gpio_irq_controller *ctl;
|
||||||
|
|
@ -521,5 +519,10 @@ static int __init meson_gpio_irq_of_init(struct device_node *node,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
IRQCHIP_DECLARE(meson_gpio_intc, "amlogic,meson-gpio-intc",
|
IRQCHIP_PLATFORM_DRIVER_BEGIN(meson_gpio_intc)
|
||||||
meson_gpio_irq_of_init);
|
IRQCHIP_MATCH("amlogic,meson-gpio-intc", meson_gpio_irq_of_init)
|
||||||
|
IRQCHIP_PLATFORM_DRIVER_END(meson_gpio_intc)
|
||||||
|
|
||||||
|
MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
|
||||||
|
MODULE_LICENSE("GPL v2");
|
||||||
|
MODULE_ALIAS("platform:meson-gpio-intc");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue