From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>,
Marc Zyngier <marc.zyngier@arm.com>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Simon Horman <horms@verge.net.au>,
Magnus Damm <magnus.damm@gmail.com>,
Chris Brandt <chris.brandt@renesas.com>
Cc: devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-kernel@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH 0/5] ARM: rskrza1: Add RZ/A1 IRQC and input switches
Date: Mon, 29 Apr 2019 11:36:26 +0200 [thread overview]
Message-ID: <20190429093631.10799-1-geert+renesas@glider.be> (raw)
Hi all,
Unlike on most other Renesas SoCs, the GPIO controller block on RZ/A1
SoCs lack interrupt functionality. While the GPIOs can be routed to the
GIC as pin interrupts, this is of limited use, as the PL390 GIC supports
rising edge and high-level interrupts only.
Fortunately RZ/A1 SoCs contain a small front-end for the GIC, allowing
to use up to 8 external interrupts, with configurable sense select.
Hence this patch series adds DT bindings and a driver for this
front-end, adds a device node for it in the RZ/A1H DTS, and uses it to
enable support for the 3 input switches on the Renesas RSK+RZA1
development board.
I expect this driver to be reusable for RZ/A2, after adding a match
entry with .gic_spi_base = 4.
- Should this information come from DT instead?
- Originally I had interrupts properties in DT to define the mapping
from external interrupts to GIC interrupts (cfr. "renesas,irqc",
which also calls request_irq()), but other similar drivers seem to
hardcode this information in the driver, so I went that route.
Dependencies:
- Patch 3 depends on patch 2,
- Patch 4 can be applied as soon as the DT bindings in patch 1 have
been accepted,
- Patch 5 depends on patch 4.
This has been tested on RSK+RZA1 with evtest and s2ram wake-up.
I have verified proper operation of low-level and rising/falling sense
select, too.
Thanks for your comments!
Geert Uytterhoeven (5):
dt-bindings: interrupt-controller: Add Renesas RZ/A1 Interrupt
Controller
irqchip: Add Renesas RZ/A1 Interrupt Controller driver
soc: renesas: Enable RZ/A1 IRQC on RZ/A1H
ARM: dts: r7s72100: Add IRQC device node
ARM: dts: rskrza1: Add input switches
.../renesas,rza1-irqc.txt | 27 ++
arch/arm/boot/dts/r7s72100-rskrza1.dts | 38 +++
arch/arm/boot/dts/r7s72100.dtsi | 8 +
drivers/irqchip/Kconfig | 4 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-renesas-rza1.c | 238 ++++++++++++++++++
drivers/soc/renesas/Kconfig | 1 +
7 files changed, 317 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,rza1-irqc.txt
create mode 100644 drivers/irqchip/irq-renesas-rza1.c
--
2.17.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
next reply other threads:[~2019-04-29 9:36 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-29 9:36 Geert Uytterhoeven [this message]
2019-04-29 9:36 ` [PATCH 1/5] dt-bindings: interrupt-controller: Add Renesas RZ/A1 Interrupt Controller Geert Uytterhoeven
2019-04-29 9:36 ` [PATCH 2/5] irqchip: Add Renesas RZ/A1 Interrupt Controller driver Geert Uytterhoeven
2019-04-29 10:06 ` Marc Zyngier
2019-04-29 11:21 ` Geert Uytterhoeven
2019-04-29 11:36 ` Marc Zyngier
2019-04-29 17:31 ` Chris Brandt
2019-04-29 12:25 ` Chris Brandt
2019-04-29 9:36 ` [PATCH 3/5] soc: renesas: Enable RZ/A1 IRQC on RZ/A1H Geert Uytterhoeven
2019-04-29 12:58 ` Simon Horman
2019-04-29 9:36 ` [PATCH 4/5] ARM: dts: r7s72100: Add IRQC device node Geert Uytterhoeven
2019-04-29 13:11 ` Simon Horman
2019-04-29 9:36 ` [PATCH 5/5] ARM: dts: rskrza1: Add input switches Geert Uytterhoeven
2019-04-29 12:21 ` [PATCH 0/5] ARM: rskrza1: Add RZ/A1 IRQC and " Chris Brandt
2019-04-29 12:49 ` Geert Uytterhoeven
2019-04-29 13:14 ` Chris Brandt
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=20190429093631.10799-1-geert+renesas@glider.be \
--to=geert+renesas@glider.be \
--cc=chris.brandt@renesas.com \
--cc=devicetree@vger.kernel.org \
--cc=horms@verge.net.au \
--cc=jason@lakedaemon.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).