CAN MCP2515 GPIO IRQ problem

I'm trying to setup a MCP2515 CAN controller on the second SPI channel on an Onion Omega2 using the actual OpenWRT master (Kernel 5.4) . The SPI part is fine (half duplex mcp251x patch will be mainlined soon) as the controller initialization works:

root@Omega2:~# insmod mcp251x
[44967.908881] mcp251x spi0.1 can0: MCP2515 successfully initialized.

but I'm struggeling with the GPIO IRQ part. I want to use GPIO16 for the MCP2515 interrupt.The DTS part looks like (according to the mcp251x devictree binding docs):

#
/ {
        compatible = "onion,omega2", "mediatek,mt7628an-soc";
       ...
};

&spi0 {
        status = "okay";

        pinctrl-names = "default";
        pinctrl-0 = <&spi_pins>, <&spi_cs1_pins>;

        flash@0 {
                regs = <0>;
                ...
        };
        can0: can@1 {
                compatible = "microchip,mcp2515";
                reg = <1>;
                clock-frequency = <8000000>;
                interrupt-parent = <&gpio>;
                interrupts = <16 0x8>;
                spi-max-frequency = <10000000>;
        };
};

Setting up the CAN interface (ip link set can0 up type can bitrate 250000 loopback on) runs into following Ooops:

[45798.219321] irq 41: nobody cared (try booting with the "irqpoll" option)
[45798.226135] CPU: 0 PID: 3094 Comm: ip Not tainted 5.4.108 #0
[45798.231866] Stack : 80580000 8052bba8 00000000 00000000 8052ad88 83c0bca4 83d62c80 80562c63
[45798.240344]         804d9398 00000c16 806b33bc 8056d6f0 804d333c 00000001 83c0bc58 b5de4858
[45798.248818]         00000000 00000000 806e0000 00000000 00000030 000000e2 746f4e20 69617420
[45798.257291]         00000000 000008e6 00000000 00037357 80000000 00000000 00000029 83c0be4c
[45798.265763]         0000000e 8056d6f0 804d333c 80570000 00000003 8026c64c 00000000 806b0000
[45798.274237]         ...
[45798.276714] Call Trace:
[45798.279218] [<80009b70>] show_stack+0x30/0x100
[45798.283734] [<80058ab8>] __report_bad_irq+0x58/0xf8
[45798.288680] [<80058e8c>] note_interrupt+0x2c4/0x314
[45798.293625] [<80056238>] handle_irq_event_percpu+0x60/0x78
[45798.299185] [<8005628c>] handle_irq_event+0x3c/0x64
[45798.304131] [<8005954c>] handle_simple_irq+0x94/0xbc
[45798.309164] [<80055950>] generic_handle_irq+0x38/0x50
[45798.314305] [<8022bb88>] mediatek_gpio_irq_handler+0x74/0xf0
[45798.320042] [<80056098>] __handle_irq_event_percpu+0x78/0x1b8
[45798.325867] [<800561f8>] handle_irq_event_percpu+0x20/0x78
[45798.331425] [<8005628c>] handle_irq_event+0x3c/0x64
[45798.336371] [<80059a18>] handle_level_irq+0xc8/0x164
[45798.341403] [<80055950>] generic_handle_irq+0x38/0x50
[45798.346524] [<80055950>] generic_handle_irq+0x38/0x50
[45798.351663] [<80459f1c>] do_IRQ+0x1c/0x2c
[45798.355729] [<80005670>] except_vec_vi_end+0xb8/0xc4
[45798.360764] [<80005670>] except_vec_vi_end+0xb8/0xc4
[45798.365793] handlers:
[45798.368102] [<b274c36f>] irq_default_primary_handler threaded [<148b743b>] 0x81d11110
[45798.376045] Disabling IRQ #41

So there is now interaction between mcp251x driver and the GPIO IRQ

Some more informations:

root@Omega2:~# cat /proc/interrupts  ; ./io.sh 
           CPU0       
  5:      71612      MIPS   5  10100000.ethernet
  6:         21      MIPS   6  mt7603e
  7:   11852071      MIPS   7  timer
 14:     100001      INTC   6  10000600.gpio-bank0, 10000600.gpio-bank1, 10000600.gpio-bank2
 22:          0      INTC  14  10130000.sdhci
 25:          5      INTC  17  esw
 26:          1      INTC  18  ehci_hcd:usb1, ohci_hcd:usb2
 28:        504      INTC  20  ttyS0
 40:          0  10000600.gpio   6  keys
 41:     100001  10000600.gpio  16  spi0.1
ERR:          0

MT7688 GPIO IRQ regs:
10000650:  00000000 00000040 00000000 ffffffff
10000660:  00000000 00000040 00000000 ffffffff
10000670:  00000000 00000000 00000000 ffffffff
10000680:  00000000 00000000 00000000 ffffffff
10000690:  00000000 00000000 00000000 ffffffff
100006a0:  00000000 00000000 00000000 ffffffff

Does anybody have a hint howto fix it ?

The problem is still present. I'm using the 21.02 branch and made some tests.
Using the GPIO 16 with IRQ on Falling Edge:
interrupts = <16 0x02>
the IRQ appears on the right position but on wrong GPIO bank:

           GPIO
           0-31     32-63    64-95
10000650:  00000000 00000040 00000000 ffffffff GPIO IRQ Risng Edge
10000660:  00000000 00000040 00010000 ffffffff GPIO IRQ Falling Edge
10000670:  00000000 00000000 00000000 ffffffff GPIO IRQ Level High
10000680:  00000000 00000000 00000000 ffffffff GPIO IRQ Level Low
10000690:  00000000 00000000 00000000 ffffffff GPIO Interrupt Status
100006a0:  00000000 00000000 00000000 ffffffff GPIO Edge Status

The interrupt appears on GPIO 16 on the third bank (0x00010000).
I tried GPIO 15 and the value changed to 0x00008000. So it's all
about the GPIO bank.

It looks like that the problem is located in gpio-mt7621.c, where the GPIO
banks are not corresponding correctly with device tree settings.

To be honest I'm not very familiar with device tree bindings to the kernel.
Does anybody have a hint how I could fix it ?