> On 12.11.2017, at 16:41, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: >> + >> + can0: mcp2517fd@0 { >> + reg = <0>; >> + compatible = "microchip,mcp2517fd"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&can0_pins>; >> + spi-max-frequency = <12500000>; >> + interrupt-parent = <&gpio>; >> + interrupts = <16 0x2>; > > This indicates a falling edge. No wonder the kernel is confused (I > don't know why this isn't enforced the first time though, probably an > issue in the GPIO irqchip driver...). Replacing this 2 with a 8 should > allow you to make some progress. Thanks for the clarification - with that change it works! For a better understanding: Isn’t the interrupt type to use more of a driver decision than a HW implementation detail that needs to get defined in the device tree? In my case I probably could write some more code that would allow edge interrupts to work (without race-conditions on spi transfers - probably by using spi_async to reenable interrupts on the HW device), but it would not be as straight-forward and a bit more complex. Summary: Essentially the driver has to match the interrupt type - otherwise it will fail (on second initialization). Thanks, Martin -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html