Commit 212fbf2c authored by Sandeep Sheriker Mallikarjun's avatar Sandeep Sheriker Mallikarjun Committed by Marc Zyngier
Browse files

irqchip/atmel-aic5: Add support for sam9x60 irqchip



Add support for SAM9X60 irqchip.

Signed-off-by: default avatarSandeep Sheriker Mallikarjun <sandeepsheriker.mallikarjun@microchip.com>
Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/1568026835-6646-1-git-send-email-claudiu.beznea@microchip.com

[claudiu.beznea@microchip.com: update aic5_irq_fixups[], update
 documentation]
parent 9c426b77
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
* Advanced Interrupt Controller (AIC)
* Advanced Interrupt Controller (AIC)


Required properties:
Required properties:
- compatible: Should be "atmel,<chip>-aic"
- compatible: Should be:
  <chip> can be "at91rm9200", "sama5d2", "sama5d3" or "sama5d4"
    - "atmel,<chip>-aic" where  <chip> can be "at91rm9200", "sama5d2",
      "sama5d3" or "sama5d4"
    - "microchip,<chip>-aic" where <chip> can be "sam9x60"

- interrupt-controller: Identifies the node as an interrupt controller.
- interrupt-controller: Identifies the node as an interrupt controller.
- #interrupt-cells: The number of cells to define the interrupts. It should be 3.
- #interrupt-cells: The number of cells to define the interrupts. It should be 3.
  The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
  The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
+10 −0
Original line number Original line Diff line number Diff line
@@ -313,6 +313,7 @@ static void __init sama5d3_aic_irq_fixup(void)
static const struct of_device_id aic5_irq_fixups[] __initconst = {
static const struct of_device_id aic5_irq_fixups[] __initconst = {
	{ .compatible = "atmel,sama5d3", .data = sama5d3_aic_irq_fixup },
	{ .compatible = "atmel,sama5d3", .data = sama5d3_aic_irq_fixup },
	{ .compatible = "atmel,sama5d4", .data = sama5d3_aic_irq_fixup },
	{ .compatible = "atmel,sama5d4", .data = sama5d3_aic_irq_fixup },
	{ .compatible = "microchip,sam9x60", .data = sama5d3_aic_irq_fixup },
	{ /* sentinel */ },
	{ /* sentinel */ },
};
};


@@ -390,3 +391,12 @@ static int __init sama5d4_aic5_of_init(struct device_node *node,
	return aic5_of_init(node, parent, NR_SAMA5D4_IRQS);
	return aic5_of_init(node, parent, NR_SAMA5D4_IRQS);
}
}
IRQCHIP_DECLARE(sama5d4_aic5, "atmel,sama5d4-aic", sama5d4_aic5_of_init);
IRQCHIP_DECLARE(sama5d4_aic5, "atmel,sama5d4-aic", sama5d4_aic5_of_init);

#define NR_SAM9X60_IRQS		50

static int __init sam9x60_aic5_of_init(struct device_node *node,
				       struct device_node *parent)
{
	return aic5_of_init(node, parent, NR_SAM9X60_IRQS);
}
IRQCHIP_DECLARE(sam9x60_aic5, "microchip,sam9x60-aic", sam9x60_aic5_of_init);