All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org>
To: linux-arm-kernel@lists.infradead.org,
	Imre Kaloz <kaloz@openwrt.org>,
	Krzysztof Halasa <khalasa@piap.pl>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>
Subject: [PATCH 11/31 v3] irqchip: ixp4xx: Add OF initialization support
Date: Mon,  8 Apr 2019 08:28:11 +0200	[thread overview]
Message-ID: <20190408062831.16422-12-linus.walleij@linaro.org> (raw)
In-Reply-To: <20190408062831.16422-1-linus.walleij@linaro.org>

This adds support for probing and settin up the IXP4xx
irqchip from device tree.

Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ChangeLog v2->v3:
- Drop a superfluous NULL check in fwnode
- Collect Marc's ACK.
---
 drivers/irqchip/irq-ixp4xx.c | 41 ++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/drivers/irqchip/irq-ixp4xx.c b/drivers/irqchip/irq-ixp4xx.c
index 89c80ce047a7..d576809429ac 100644
--- a/drivers/irqchip/irq-ixp4xx.c
+++ b/drivers/irqchip/irq-ixp4xx.c
@@ -15,6 +15,9 @@
 #include <linux/irqchip.h>
 #include <linux/irqchip/irq-ixp4xx.h>
 #include <linux/irqdomain.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
 #include <linux/platform_device.h>
 #include <linux/cpu.h>
 
@@ -360,3 +363,41 @@ void __init ixp4xx_irq_init(resource_size_t irqbase,
 	}
 }
 EXPORT_SYMBOL_GPL(ixp4xx_irq_init);
+
+#ifdef CONFIG_OF
+int __init ixp4xx_of_init_irq(struct device_node *np,
+			      struct device_node *parent)
+{
+	struct ixp4xx_irq *ixi = &ixirq;
+	void __iomem *base;
+	struct fwnode_handle *fwnode;
+	bool is_356;
+	int ret;
+
+	base = of_iomap(np, 0);
+	if (!base) {
+		pr_crit("IXP4XX: could not ioremap interrupt controller\n");
+		return -ENODEV;
+	}
+	fwnode = of_node_to_fwnode(np);
+
+	/* These chip variants have 64 interrupts */
+	is_356 = of_device_is_compatible(np, "intel,ixp43x-interrupt") ||
+		of_device_is_compatible(np, "intel,ixp45x-interrupt") ||
+		of_device_is_compatible(np, "intel,ixp46x-interrupt");
+
+	ret = ixp4xx_irq_setup(ixi, base, fwnode, is_356);
+	if (ret)
+		pr_crit("IXP4XX: failed to set up irqchip\n");
+
+	return ret;
+}
+IRQCHIP_DECLARE(ixp42x, "intel,ixp42x-interrupt",
+		ixp4xx_of_init_irq);
+IRQCHIP_DECLARE(ixp43x, "intel,ixp43x-interrupt",
+		ixp4xx_of_init_irq);
+IRQCHIP_DECLARE(ixp45x, "intel,ixp45x-interrupt",
+		ixp4xx_of_init_irq);
+IRQCHIP_DECLARE(ixp46x, "intel,ixp46x-interrupt",
+		ixp4xx_of_init_irq);
+#endif
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-04-08  6:30 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08  6:28 [PATCH 00/31 v3] ARM: ixp4xx: Modernize and DT support Linus Walleij
2019-04-08  6:28 ` [PATCH 01/31 v3] ARM: ixp4xx: Add myself as maintainer Linus Walleij
2019-04-08  6:28 ` [PATCH 02/31 v3] ARM: ixp4xx: Convert to MULTI_IRQ_HANDLER Linus Walleij
2019-04-08  6:28 ` [PATCH 03/31 v3] ARM: ixp4xx: Pass IRQ resource to beeper Linus Walleij
2019-04-08  6:28 ` [PATCH 04/31 v3] ARM: ixp4xx: Convert to SPARSE_IRQ Linus Walleij
2019-04-08  6:28 ` [PATCH 05/31 v3] irqchip: Add driver for IXP4xx Linus Walleij
2019-04-08  6:28 ` [PATCH 06/31 v3] gpio: ixp4xx: Add driver for the IXP4xx GPIO Linus Walleij
2019-04-08  6:28 ` [PATCH 07/31 v3] ARM: ixp4xx: Switch to use new IRQ+GPIO drivers Linus Walleij
2019-04-08  6:28 ` [PATCH 08/31 v3] clocksource/drivers/ixp4xx: Add driver Linus Walleij
2019-04-08  6:28 ` [PATCH 09/31 v3] ARM: ixp4xx: Switch to use new timer driver Linus Walleij
2019-04-08  6:28 ` [PATCH 10/31 v3] irqchip: ixp4xx: Add DT bindings Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-08  6:28 ` Linus Walleij [this message]
2019-04-08  6:28 ` [PATCH 12/31 v3] clocksource/drivers/ixp4xx: " Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-08  6:28 ` [PATCH 13/31 v3] clocksource/drivers/ixp4xx: Add OF initialization support Linus Walleij
2019-04-08  6:28 ` [PATCH 14/31 v3] gpio: ixp4xx: Add DT bindings Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-08  6:28 ` [PATCH 15/31 v3] gpio: ixp4xx: Add OF probing support Linus Walleij
2019-04-08  6:28 ` [PATCH 16/31 v3] ARM: ixp4xx: Add DT bindings Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-08  6:28 ` [PATCH 17/31 v3] ARM: ixp4xx: Add device tree boot support Linus Walleij
2019-04-08  6:28 ` [PATCH 18/31 v3] ARM: dts: Add some initial IXP4xx device trees Linus Walleij
2019-04-08  6:28 ` [PATCH 19/31 v3] ARM: ixp4xx: Move NPE and QMGR to drivers/soc Linus Walleij
2019-04-08  6:28 ` [PATCH 20/31 v3] ARM: ixp4xx: Move IXP4xx QMGR and NPE headers Linus Walleij
2019-04-08  6:28 ` [PATCH 21/31 v3] ARM: ixp4xx: Turn the NPE into a platform device Linus Walleij
2019-04-08  6:28 ` [PATCH 22/31 v3] ARM: ixp4xx: Turn the QMGR " Linus Walleij
2019-04-08  6:28 ` [PATCH 23/31 v3] soc: ixp4xx: npe: Pass addresses as resources Linus Walleij
2019-04-08  6:28 ` [PATCH 24/31 v3] soc: ixp4xx: Uninline several functions Linus Walleij
2019-04-08  6:28 ` [PATCH 25/31 v3] soc: ixp4xx: Remove unused functions Linus Walleij
2019-04-08  6:28 ` [PATCH 26/31 v3] soc: ixp4xx: qmgr: Pass resources Linus Walleij
2019-04-08  6:28 ` [PATCH 27/31 v3] soc: ixp4xx: Add DT bindings for IXP4xx NPE Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-09 13:44   ` Rob Herring
2019-04-09 13:44     ` Rob Herring
2019-04-08  6:28 ` [PATCH 28/31 v3] soc: ixp4xx: npe: Add DT probe code Linus Walleij
2019-04-08  6:28 ` [PATCH 29/31 v3] soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr Linus Walleij
2019-04-08  6:28   ` Linus Walleij
2019-04-09 13:12   ` Rob Herring
2019-04-09 13:12     ` Rob Herring
2019-04-08  6:28 ` [PATCH 30/31 v3] soc: ixp4xx: qmgr: Add DT probe code Linus Walleij
2019-04-08  6:28 ` [PATCH 31/31 v3] ARM: dts: Add queue manager and NPE to the IXP4xx DTSI Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190408062831.16422-12-linus.walleij@linaro.org \
    --to=linus.walleij@linaro.org \
    --cc=jason@lakedaemon.net \
    --cc=kaloz@openwrt.org \
    --cc=khalasa@piap.pl \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.