[PATCH v7 04/12] irqchip/atmel-aic5: Add support for sam9x7 aic

Varshini Rajendran posted 12 patches 2 weeks, 2 days ago
[PATCH v7 04/12] irqchip/atmel-aic5: Add support for sam9x7 aic
Posted by Varshini Rajendran 2 weeks, 2 days ago
From: Hari Prasath <Hari.PrasathGE@microchip.com>

Add support for the Advanced interrupt controller(AIC) chip in the sam9x7.

Signed-off-by: Hari Prasath <Hari.PrasathGE@microchip.com>
Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
---
Changes in v7:

- Removed the line break in the function.
---
 drivers/irqchip/irq-atmel-aic5.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/irqchip/irq-atmel-aic5.c b/drivers/irqchip/irq-atmel-aic5.c
index 145535bd7560..f9168efa4160 100644
--- a/drivers/irqchip/irq-atmel-aic5.c
+++ b/drivers/irqchip/irq-atmel-aic5.c
@@ -320,6 +320,7 @@ 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 = sam9x60_aic_irq_fixup },
+	{ .compatible = "microchip,sam9x7", .data = sam9x60_aic_irq_fixup },
 	{ /* sentinel */ },
 };
 
@@ -406,3 +407,11 @@ static int __init sam9x60_aic5_of_init(struct device_node *node,
 	return aic5_of_init(node, parent, NR_SAM9X60_IRQS);
 }
 IRQCHIP_DECLARE(sam9x60_aic5, "microchip,sam9x60-aic", sam9x60_aic5_of_init);
+
+#define NR_SAM9X7_IRQS		70
+
+static int __init sam9x7_aic5_of_init(struct device_node *node, struct device_node *parent)
+{
+	return aic5_of_init(node, parent, NR_SAM9X7_IRQS);
+}
+IRQCHIP_DECLARE(sam9x7_aic5, "microchip,sam9x7-aic", sam9x7_aic5_of_init);
-- 
2.25.1
Re: [PATCH v7 04/12] irqchip/atmel-aic5: Add support for sam9x7 aic
Posted by Nicolas Ferre 2 weeks, 2 days ago
On 03/09/2024 at 08:42, Varshini Rajendran wrote:
> From: Hari Prasath <Hari.PrasathGE@microchip.com>
> 
> Add support for the Advanced interrupt controller(AIC) chip in the sam9x7.
> 
> Signed-off-by: Hari Prasath <Hari.PrasathGE@microchip.com>
> Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>

After several investigations to make this "smarter" (see on previous 
versions posts), we figured out this historic way of handling NR_XXX_IRQ 
is the best/simplest one.

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Best regards,
   Nicolas

> ---
> Changes in v7:
> 
> - Removed the line break in the function.
> ---
>   drivers/irqchip/irq-atmel-aic5.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/irqchip/irq-atmel-aic5.c b/drivers/irqchip/irq-atmel-aic5.c
> index 145535bd7560..f9168efa4160 100644
> --- a/drivers/irqchip/irq-atmel-aic5.c
> +++ b/drivers/irqchip/irq-atmel-aic5.c
> @@ -320,6 +320,7 @@ 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 = sam9x60_aic_irq_fixup },
> +	{ .compatible = "microchip,sam9x7", .data = sam9x60_aic_irq_fixup },
>   	{ /* sentinel */ },
>   };
>   
> @@ -406,3 +407,11 @@ static int __init sam9x60_aic5_of_init(struct device_node *node,
>   	return aic5_of_init(node, parent, NR_SAM9X60_IRQS);
>   }
>   IRQCHIP_DECLARE(sam9x60_aic5, "microchip,sam9x60-aic", sam9x60_aic5_of_init);
> +
> +#define NR_SAM9X7_IRQS		70
> +
> +static int __init sam9x7_aic5_of_init(struct device_node *node, struct device_node *parent)
> +{
> +	return aic5_of_init(node, parent, NR_SAM9X7_IRQS);
> +}
> +IRQCHIP_DECLARE(sam9x7_aic5, "microchip,sam9x7-aic", sam9x7_aic5_of_init);