Hello, I have taken another look at the implementation of the function “fsl_udc_probe”. A software analysis approach points the following source code out for further development considerations. https://elixir.bootlin.com/linux/v5.6.2/source/drivers/usb/gadget/udc/fsl_udc_core.c#L2443 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/gadget/udc/fsl_udc_core.c?id=f5e94d10e4c468357019e5c28d48499f677b284f#n2442 udc_controller->irq = platform_get_irq(pdev, 0); if (!udc_controller->irq) { ret = -ENODEV; goto err_iounmap; } The software documentation is providing the following information for the used programming interface. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/base/platform.c?id=f5e94d10e4c468357019e5c28d48499f677b284f#n221 https://elixir.bootlin.com/linux/v5.6.2/source/drivers/base/platform.c#L202 “… * Return: IRQ number on success, negative error number on failure. …” Would you like to reconsider the shown condition check? Regards, Markus