[OpenWrt-Devel] [PATCH] ralink: Add support for GPIO as interrupt-controller

Rosen Penev rosenp at gmail.com
Mon Nov 5 16:46:41 EST 2018


On Mon, Nov 5, 2018 at 1:38 PM Daniel Santos <daniel.santos at pobox.com> wrote:
>
> Hello,
>
> First my apologies for not CCing you John, I'm not sure which address to
> use as I got a bounce from the blogic at openwrt.org address before.
>
> Rosen,
>
> I'm not too familiar with the mt7621 yet, I'm using an mt7620.  All I
> know is that it has two cores and some crypto engine instead of wifi.
> Being that this is the drivers/gpio/gpio-ralink.c (a nice bland name)
> I'm going assume we're just talking about two different drivers.  The
> compatible string for this one is "ralink,rt2880-gpio".
Ah I see. I think what threw me off was the patch name being 0029 as
0028 is the mt7621 patch.
>
> On 11/04/2018 10:27 PM, Rosen Penev wrote:
> > On Sun, Nov 4, 2018 at 6:49 PM Daniel Santos <daniel.santos at pobox.com> wrote:
> >> The gpio-ralink driver has everything it needs to be used as an
> >> interrupt controller except for device tree support.  This simple patch
> >> adds that support by configuring the irq domain to use two cells and
> >> adding the appropriate documentation to the devicetree bindings.
> > Note that there is a mainline driver that does this already:
> > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/gpio/gpio-mt7621.c?h=v4.19.1
> >
> > I've backported it in my tree as well:
> > https://github.com/neheb/source/commit/aa3a57cdcf91a4483cfd511f8a34fb9a595f4af2
> >
> > I have not submitted as I don't have hardware to test that uses GPIO
> > beyond a simple push button.
> >
> > I think ramips maintainer currently wants to wait until 4.19 to make
> > such changes.
>
> Are you referring to the rampis Linux maintainer or OpenWRT?
ramips is an OpenWrt specific platform.
>
> Thanks,
> Daniel
>
> >> Signed-off-by: Daniel Santos <daniel.santos at pobox.com>
> >> ---
> >>  ...-Add-support-for-GPIO-as-interrupt-contro.patch | 51 ++++++++++++++++++++++
> >>  1 file changed, 51 insertions(+)
> >>  create mode 100644 target/linux/ramips/patches-4.14/0029-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch
> >>
> >> diff --git a/target/linux/ramips/patches-4.14/0029-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch b/target/linux/ramips/patches-4.14/0029-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch
> >> new file mode 100644
> >> index 0000000000..d93f39c746
> >> --- /dev/null
> >> +++ b/target/linux/ramips/patches-4.14/0029-gpio-ralink-Add-support-for-GPIO-as-interrupt-contro.patch
> >> @@ -0,0 +1,51 @@
> >> +From 57fa7f2f4ef6f78ce1d30509c0d111aa3791b524 Mon Sep 17 00:00:00 2001
> >> +From: Daniel Santos <daniel.santos at pobox.com>
> >> +Date: Sun, 4 Nov 2018 20:24:32 -0600
> >> +Subject: gpio-ralink: Add support for GPIO as interrupt-controller
> >> +
> >> +Signed-off-by: Daniel Santos <daniel.santos at pobox.com>
> >> +---
> >> + Documentation/devicetree/bindings/gpio/gpio-ralink.txt | 6 ++++++
> >> + drivers/gpio/gpio-ralink.c                             | 2 +-
> >> + 2 files changed, 7 insertions(+), 1 deletion(-)
> >> +
> >> +diff --git a/Documentation/devicetree/bindings/gpio/gpio-ralink.txt b/Documentation/devicetree/bindings/gpio/gpio-ralink.txt
> >> +index 5cd17f225fe3..2775449614d4 100644
> >> +--- a/Documentation/devicetree/bindings/gpio/gpio-ralink.txt
> >> ++++ b/Documentation/devicetree/bindings/gpio/gpio-ralink.txt
> >> +@@ -17,6 +17,9 @@ Required properties:
> >> +
> >> + Optional properties:
> >> + - ralink,gpio-base : Specify the GPIO chips base number
> >> ++- interrupt-controller : marks this as an interrupt controller
> >> ++- #interrupt-cells : a standard two-cell interrupt flag, see
> >> ++  interrupt-controller/interrupts.txt
> >> +
> >> + Example:
> >> +
> >> +@@ -28,6 +31,9 @@ Example:
> >> +
> >> +               reg = <0x600 0x34>;
> >> +
> >> ++              interrupt-controller;
> >> ++              #interrupt-cells = <2>;
> >> ++
> >> +               interrupt-parent = <&intc>;
> >> +               interrupts = <6>;
> >> +
> >> +diff --git a/drivers/gpio/gpio-ralink.c b/drivers/gpio/gpio-ralink.c
> >> +index 27910e384013..b6e30083d012 100644
> >> +--- a/drivers/gpio/gpio-ralink.c
> >> ++++ b/drivers/gpio/gpio-ralink.c
> >> +@@ -220,7 +220,7 @@ static int gpio_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
> >> + }
> >> +
> >> + static const struct irq_domain_ops irq_domain_ops = {
> >> +-      .xlate = irq_domain_xlate_onecell,
> >> ++      .xlate = irq_domain_xlate_twocell,
> >> +       .map = gpio_map,
> >> + };
> >> +
> >> +--
> >> +2.16.4
> >> +
> >> --
> >> 2.16.4
> >>
> >>
> >> _______________________________________________
> >> openwrt-devel mailing list
> >> openwrt-devel at lists.openwrt.org
> >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list