aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-atmel-aic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/irqchip/irq-atmel-aic.c')
-rw-r--r--drivers/irqchip/irq-atmel-aic.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-atmel-aic.c b/drivers/irqchip/irq-atmel-aic.c
index b15b5667991c..a82869e9fb26 100644
--- a/drivers/irqchip/irq-atmel-aic.c
+++ b/drivers/irqchip/irq-atmel-aic.c
@@ -211,6 +211,19 @@ static const struct irq_domain_ops aic_irq_ops = {
211 .xlate = aic_irq_domain_xlate, 211 .xlate = aic_irq_domain_xlate,
212}; 212};
213 213
214static void __init at91sam9_aic_irq_fixup(struct device_node *root)
215{
216 aic_common_rtc_irq_fixup(root);
217}
218
219static const struct of_device_id __initdata aic_irq_fixups[] = {
220 { .compatible = "atmel,at91sam9g45", .data = at91sam9_aic_irq_fixup },
221 { .compatible = "atmel,at91sam9n12", .data = at91sam9_aic_irq_fixup },
222 { .compatible = "atmel,at91sam9rl", .data = at91sam9_aic_irq_fixup },
223 { .compatible = "atmel,at91sam9x5", .data = at91sam9_aic_irq_fixup },
224 { /* sentinel */ },
225};
226
214static int __init aic_of_init(struct device_node *node, 227static int __init aic_of_init(struct device_node *node,
215 struct device_node *parent) 228 struct device_node *parent)
216{ 229{
@@ -225,6 +238,8 @@ static int __init aic_of_init(struct device_node *node,
225 if (IS_ERR(domain)) 238 if (IS_ERR(domain))
226 return PTR_ERR(domain); 239 return PTR_ERR(domain);
227 240
241 aic_common_irq_fixup(aic_irq_fixups);
242
228 aic_domain = domain; 243 aic_domain = domain;
229 gc = irq_get_domain_generic_chip(domain, 0); 244 gc = irq_get_domain_generic_chip(domain, 0);
230 245