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

Daniel Santos daniel.santos at pobox.com
Mon Nov 5 16:36:49 EST 2018


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".

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?

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