Add support for SAM9X60 RTT fixup. Signed-off-by: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> --- drivers/irqchip/irq-atmel-aic-common.c | 36 +++++++++++++++++++++------------- drivers/irqchip/irq-atmel-aic5.c | 8 +++++++- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/drivers/irqchip/irq-atmel-aic-common.c b/drivers/irqchip/irq-atmel-aic-common.c index 072bd227b6c6..e8681133162b 100644 --- a/drivers/irqchip/irq-atmel-aic-common.c +++ b/drivers/irqchip/irq-atmel-aic-common.c @@ -169,21 +169,29 @@ void __init aic_common_rtt_irq_fixup(void) { struct device_node *np; void __iomem *regs; + static const struct of_device_id aic_rtt_fixup_ids[] = { + { .compatible = "atmel,at91sam9260-rtt", }, + { .compatible = "microchip,sam9x60-rtt", }, + }; + int i; - /* - * The at91sam9263 SoC has 2 instances of the RTT block, hence we - * iterate over the DT to find each occurrence. - */ - for_each_compatible_node(np, NULL, "atmel,at91sam9260-rtt") { - regs = of_iomap(np, 0); - if (!regs) - continue; - - writel(readl(regs + AT91_RTT_MR) & - ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN), - regs + AT91_RTT_MR); - - iounmap(regs); + for (i = 0; i < ARRAY_SIZE(aic_rtt_fixup_ids); i++) { + /* + * The at91sam9263 SoC has 2 instances of the RTT block, hence + * we iterate over the DT to find each occurrence. + */ + for_each_compatible_node(np, NULL, + aic_rtt_fixup_ids[i].compatible) { + regs = of_iomap(np, 0); + if (!regs) + continue; + + writel(readl(regs + AT91_RTT_MR) & + ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN), + regs + AT91_RTT_MR); + + iounmap(regs); + } } } diff --git a/drivers/irqchip/irq-atmel-aic5.c b/drivers/irqchip/irq-atmel-aic5.c index 29333497ba10..74a66cd05553 100644 --- a/drivers/irqchip/irq-atmel-aic5.c +++ b/drivers/irqchip/irq-atmel-aic5.c @@ -310,10 +310,16 @@ static void __init sama5d3_aic_irq_fixup(void) aic_common_rtc_irq_fixup(); } +static void __init sam9x60_aic_irq_fixup(void) +{ + aic_common_rtc_irq_fixup(); + aic_common_rtt_irq_fixup(); +} + static const struct of_device_id aic5_irq_fixups[] __initconst = { { .compatible = "atmel,sama5d3", .data = sama5d3_aic_irq_fixup }, { .compatible = "atmel,sama5d4", .data = sama5d3_aic_irq_fixup }, - { .compatible = "microchip,sam9x60", .data = sama5d3_aic_irq_fixup }, + { .compatible = "microchip,sam9x60", .data = sam9x60_aic_irq_fixup }, { /* sentinel */ }, }; -- 2.7.4