Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Nicolas Ferre <[email protected]>
---
drivers/of/irq.c | 15 +++++++++++++++
include/linux/of_irq.h | 1 +
2 files changed, 16 insertions(+)
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index d1c5825..4426223 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -362,6 +362,21 @@ int of_irq_to_resource(struct device_node *dev, int index,
struct resource *r)
EXPORT_SYMBOL_GPL(of_irq_to_resource);
/**
+ * of_irq_count - Count the number of IRQs a node uses
+ * @dev: pointer to device tree node
+ */
+int of_irq_count(struct device_node *dev)
+{
+ struct of_irq oirq;
+ int nr = 0;
+
+ while (!of_irq_map_one(dev, nr, &oirq))
+ nr++;
+
+ return nr;
+}
+
+/**
* of_irq_valid_count - Count the number of mapped IRQs a node uses
* @dev: pointer to device tree node
*/
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
index 88bb58c..86b78ef 100644
--- a/include/linux/of_irq.h
+++ b/include/linux/of_irq.h
@@ -68,6 +68,7 @@ extern unsigned int irq_create_of_mapping(struct device_node
*controller,
unsigned int intsize);
extern int of_irq_to_resource(struct device_node *dev, int index,
struct resource *r);
+extern int of_irq_count(struct device_node *dev);
extern int of_irq_valid_count(struct device_node *dev);
extern int of_irq_to_resource_table(struct device_node *dev,
struct resource *res, int nr_irqs);
--
1.7.10.4
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss