--- /dev/null
+From eda686d41e298a9d16708d2ec8d12d8e682dd7ca Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Mon, 14 Nov 2022 12:52:01 +0100
+Subject: [PATCH 11/29] fotg210-udc: Get IRQ using platform_get_irq()
+
+The platform_get_irq() is necessary to use to get dynamic
+IRQ resolution when instantiating the device from the
+device tree. IRQs are not passed as resources in that
+case.
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20221114115201.302887-4-linus.walleij@linaro.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+--- a/drivers/usb/fotg210/fotg210-udc.c
++++ b/drivers/usb/fotg210/fotg210-udc.c
+@@ -1157,10 +1157,11 @@ int fotg210_udc_remove(struct platform_d
+
+ int fotg210_udc_probe(struct platform_device *pdev)
+ {
+- struct resource *res, *ires;
++ struct resource *res;
+ struct fotg210_udc *fotg210 = NULL;
+ struct fotg210_ep *_ep[FOTG210_MAX_NUM_EP];
+ struct device *dev = &pdev->dev;
++ int irq;
+ int ret = 0;
+ int i;
+
+@@ -1170,9 +1171,9 @@ int fotg210_udc_probe(struct platform_de
+ return -ENODEV;
+ }
+
+- ires = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+- if (!ires) {
+- pr_err("platform_get_resource IORESOURCE_IRQ error.\n");
++ irq = platform_get_irq(pdev, 0);
++ if (irq < 0) {
++ pr_err("could not get irq\n");
+ return -ENODEV;
+ }
+
+@@ -1202,7 +1203,7 @@ int fotg210_udc_probe(struct platform_de
+ goto err;
+ }
+
+- fotg210->phy = devm_usb_get_phy_by_phandle(dev->parent, "usb-phy", 0);
++ fotg210->phy = devm_usb_get_phy_by_phandle(dev, "usb-phy", 0);
+ if (IS_ERR(fotg210->phy)) {
+ ret = PTR_ERR(fotg210->phy);
+ if (ret == -EPROBE_DEFER)
+@@ -1282,7 +1283,7 @@ int fotg210_udc_probe(struct platform_de
+
+ fotg210_disable_unplug(fotg210);
+
+- ret = request_irq(ires->start, fotg210_irq, IRQF_SHARED,
++ ret = request_irq(irq, fotg210_irq, IRQF_SHARED,
+ udc_name, fotg210);
+ if (ret < 0) {
+ dev_err(dev, "request_irq error (%d)\n", ret);
+@@ -1303,7 +1304,7 @@ int fotg210_udc_probe(struct platform_de
+ err_add_udc:
+ if (!IS_ERR_OR_NULL(fotg210->phy))
+ usb_unregister_notifier(fotg210->phy, &fotg210_phy_notifier);
+- free_irq(ires->start, fotg210);
++ free_irq(irq, fotg210);
+
+ err_req:
+ fotg210_ep_free_request(&fotg210->ep[0]->ep, fotg210->ep0_req);