diff mbox series

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

Message ID 20181105024813.23472-1-daniel.santos@pobox.com
State Accepted
Delegated to: John Crispin
Headers show
Series [OpenWrt-Devel] ralink: Add support for GPIO as interrupt-controller | expand

Commit Message

Daniel Santos Nov. 5, 2018, 2:48 a.m. UTC
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.

Signed-off-by: Daniel Santos <daniel.santos@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

Comments

Rosen Penev Nov. 5, 2018, 4:27 a.m. UTC | #1
On Sun, Nov 4, 2018 at 6:49 PM Daniel Santos <daniel.santos@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.
>
> Signed-off-by: Daniel Santos <daniel.santos@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@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@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@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Daniel Santos Nov. 5, 2018, 9:36 p.m. UTC | #2
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@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@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@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@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@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@lists.openwrt.org
>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Rosen Penev Nov. 5, 2018, 9:46 p.m. UTC | #3
On Mon, Nov 5, 2018 at 1:38 PM Daniel Santos <daniel.santos@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@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@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@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@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@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@lists.openwrt.org
> >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
Daniel Santos Nov. 5, 2018, 10:06 p.m. UTC | #4
On 11/05/2018 03:46 PM, Rosen Penev wrote:
> On Mon, Nov 5, 2018 at 1:38 PM Daniel Santos <daniel.santos@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@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.

Oh yeah! I should probably just rename 0028 to 0029


>> On 11/04/2018 10:27 PM, Rosen Penev wrote:
>>> On Sun, Nov 4, 2018 at 6:49 PM Daniel Santos <daniel.santos@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.

Not really.  In fact, the goal should be getting most of these patches
accepted upstream:

/home/daniel/proj/kernel/next
(daniel@love)$ ll arch/mips/ralink/
total 120
-rw-r--r-- 1 daniel daniel  1069 Oct 28 11:49 bootrom.c
-rw-r--r-- 1 daniel daniel  3859 Oct 28 11:49 cevt-rt3352.c
-rw-r--r-- 1 daniel daniel  1656 Oct 28 11:49 clk.c
-rw-r--r-- 1 daniel daniel   914 Oct 28 11:49 common.h
-rw-r--r-- 1 daniel daniel  2030 Oct 28 11:49 early_printk.c
-rw-r--r-- 1 daniel daniel  2146 Oct 28 11:49 ill_acc.c
-rw-r--r-- 1 daniel daniel  4893 Oct 28 11:49 irq.c
-rw-r--r-- 1 daniel daniel   580 Oct 28 11:49 irq-gic.c
-rw-r--r-- 1 daniel daniel  1590 Oct 28 11:49 Kconfig
-rw-r--r-- 1 daniel daniel   861 Oct 28 11:49 Makefile
-rw-r--r-- 1 daniel daniel 20178 Oct 28 11:49 mt7620.c
-rw-r--r-- 1 daniel daniel  6864 Oct 28 11:49 mt7621.c
-rw-r--r-- 1 daniel daniel  2557 Oct 28 11:49 of.c
-rw-r--r-- 1 daniel daniel   917 Oct 28 11:49 Platform
-rw-r--r-- 1 daniel daniel  1630 Oct 28 11:49 prom.c
-rw-r--r-- 1 daniel daniel  2269 Oct 28 11:49 reset.c
-rw-r--r-- 1 daniel daniel  3543 Oct 28 11:49 rt288x.c
-rw-r--r-- 1 daniel daniel  8796 Oct 28 11:49 rt305x.c
-rw-r--r-- 1 daniel daniel  4978 Oct 28 11:49 rt3883.c
-rw-r--r-- 1 daniel daniel  3607 Oct 28 11:49 timer.c
-rw-r--r-- 1 daniel daniel   539 Oct 28 11:49 timer-gic.c


Thanks,
Daniel

>> Thanks,
>> Daniel
>>
>>>> Signed-off-by: Daniel Santos <daniel.santos@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@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@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@lists.openwrt.org
>>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
diff mbox series

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@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@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
+