[v2 01/11] irqchip: ls-extirq: Add LS1043A, LS1088A external interrupt

From: Biwen Li
Date: Tue Oct 27 2020 - 00:56:01 EST


From: Hou Zhiqiang <Zhiqiang.Hou@xxxxxxx>

Add an new IRQ chip declaration for LS1043A and LS1088A
- compatible "fsl,ls1043a-extirq" for LS1043A, LS1046A. SCFG_INTPCR[31:0]
of these SoCs is stored/read as SCFG_INTPCR[0:31] defaultly(bit
reverse)
- compatible "fsl,ls1088a-extirq" for LS1088A, LS208xA, LX216xA

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@xxxxxxx>
Signed-off-by: Biwen Li <biwen.li@xxxxxxx>
---
Change in v2:
- add despcription of bit reverse
- update copyright

drivers/irqchip/irq-ls-extirq.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-ls-extirq.c b/drivers/irqchip/irq-ls-extirq.c
index 4d1179fed77c..9587bc2607fc 100644
--- a/drivers/irqchip/irq-ls-extirq.c
+++ b/drivers/irqchip/irq-ls-extirq.c
@@ -1,5 +1,8 @@
// SPDX-License-Identifier: GPL-2.0
-
+/*
+ * Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
+ * Copyright 2020 NXP
+ */
#define pr_fmt(fmt) "irq-ls-extirq: " fmt

#include <linux/irq.h>
@@ -183,6 +186,9 @@ ls_extirq_of_init(struct device_node *node, struct device_node *parent)
priv->bit_reverse = (revcr != 0);
}

+ if (of_device_is_compatible(node, "fsl,ls1043a-extirq"))
+ priv->bit_reverse = true;
+
domain = irq_domain_add_hierarchy(parent_domain, 0, priv->nirq, node,
&extirq_domain_ops, priv);
if (!domain)
@@ -195,3 +201,5 @@ ls_extirq_of_init(struct device_node *node, struct device_node *parent)
}

IRQCHIP_DECLARE(ls1021a_extirq, "fsl,ls1021a-extirq", ls_extirq_of_init);
+IRQCHIP_DECLARE(ls1043a_extirq, "fsl,ls1043a-extirq", ls_extirq_of_init);
+IRQCHIP_DECLARE(ls1088a_extirq, "fsl,ls1088a-extirq", ls_extirq_of_init);
--
2.17.1