staging: mt7621-gpio: update #interrupt-cells for the gpio node
authorSergio Paracuellos <sergio.paracuellos@gmail.com>
Fri, 1 Jun 2018 09:30:51 +0000 (11:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Jun 2018 11:16:23 +0000 (13:16 +0200)
Most gpio chips have two cells for interrupts and this should be also.
Set this property in the device tree accordly fixing this up. In order
to make this working properly the xlate function for the irq_domain must
be updated to use the  'irq_domain_xlate_twocell' one in the driver.
One more minimal change is needed two refer gpio's interrupt-parent from
other nodes which is to add new 'gpio' label in the device tree.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-dts/mt7621.dtsi
drivers/staging/mt7621-gpio/gpio-mt7621.c

index d7e49810f9e3e8b4f06b6e5ecef187e73f709930..eb3966b7f03333de887fffed687a9fd1b78f7c17 100644 (file)
@@ -60,7 +60,7 @@
                        reg = <0x100 0x100>;
                };
 
-               gpio@600 {
+               gpio: gpio@600 {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
@@ -70,7 +70,7 @@
                        interrupt-parent = <&gic>;
                        interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-controller;
-                       #interrupt-cells = <1>;
+                       #interrupt-cells = <2>;
 
                        gpio0: bank@0 {
                                reg = <0>;
index c96ae678e91f418a4b076711a38f2efde88b9cea..79b8c5868e1ea6f56e04da35882f3f4e88fa4234 100644 (file)
@@ -317,7 +317,7 @@ mediatek_gpio_gpio_map(struct irq_domain *d, unsigned int irq,
 }
 
 static const struct irq_domain_ops irq_domain_ops = {
-       .xlate = irq_domain_xlate_onecell,
+       .xlate = irq_domain_xlate_twocell,
        .map = mediatek_gpio_gpio_map,
 };