diff options
Diffstat (limited to 'drivers/irqchip/irq-atmel-aic.c')
-rw-r--r-- | drivers/irqchip/irq-atmel-aic.c | 15 |
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 | ||
214 | static void __init at91sam9_aic_irq_fixup(struct device_node *root) | ||
215 | { | ||
216 | aic_common_rtc_irq_fixup(root); | ||
217 | } | ||
218 | |||
219 | static 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 | |||
214 | static int __init aic_of_init(struct device_node *node, | 227 | static 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 | ||