summaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch')
-rw-r--r--target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch90
1 files changed, 0 insertions, 90 deletions
diff --git a/target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch b/target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch
deleted file mode 100644
index 8da3de3b47..0000000000
--- a/target/linux/gemini/patches-6.1/0010-fotg210-udc-Handle-PCLK.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 772ea3ec2b9363b45ef9a4768ea205f758c3debc Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Mon, 14 Nov 2022 12:52:00 +0100
-Subject: [PATCH 10/29] fotg210-udc: Handle PCLK
-
-This adds optional handling of the peripheral clock PCLK.
-
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Link: https://lore.kernel.org/r/20221114115201.302887-3-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
-@@ -15,6 +15,7 @@
- #include <linux/platform_device.h>
- #include <linux/usb/ch9.h>
- #include <linux/usb/gadget.h>
-+#include <linux/clk.h>
- #include <linux/usb/otg.h>
- #include <linux/usb/phy.h>
-
-@@ -1145,6 +1146,10 @@ int fotg210_udc_remove(struct platform_d
- fotg210_ep_free_request(&fotg210->ep[0]->ep, fotg210->ep0_req);
- for (i = 0; i < FOTG210_MAX_NUM_EP; i++)
- kfree(fotg210->ep[i]);
-+
-+ if (!IS_ERR(fotg210->pclk))
-+ clk_disable_unprepare(fotg210->pclk);
-+
- kfree(fotg210);
-
- return 0;
-@@ -1180,17 +1185,34 @@ int fotg210_udc_probe(struct platform_de
-
- fotg210->dev = dev;
-
-+ /* It's OK not to supply this clock */
-+ fotg210->pclk = devm_clk_get(dev, "PCLK");
-+ if (!IS_ERR(fotg210->pclk)) {
-+ ret = clk_prepare_enable(fotg210->pclk);
-+ if (ret) {
-+ dev_err(dev, "failed to enable PCLK\n");
-+ return ret;
-+ }
-+ } else if (PTR_ERR(fotg210->pclk) == -EPROBE_DEFER) {
-+ /*
-+ * Percolate deferrals, for anything else,
-+ * just live without the clocking.
-+ */
-+ ret = -EPROBE_DEFER;
-+ goto err;
-+ }
-+
- fotg210->phy = devm_usb_get_phy_by_phandle(dev->parent, "usb-phy", 0);
- if (IS_ERR(fotg210->phy)) {
- ret = PTR_ERR(fotg210->phy);
- if (ret == -EPROBE_DEFER)
-- goto err;
-+ goto err_pclk;
- dev_info(dev, "no PHY found\n");
- fotg210->phy = NULL;
- } else {
- ret = usb_phy_init(fotg210->phy);
- if (ret)
-- goto err;
-+ goto err_pclk;
- dev_info(dev, "found and initialized PHY\n");
- }
-
-@@ -1292,6 +1314,10 @@ err_map:
- err_alloc:
- for (i = 0; i < FOTG210_MAX_NUM_EP; i++)
- kfree(fotg210->ep[i]);
-+err_pclk:
-+ if (!IS_ERR(fotg210->pclk))
-+ clk_disable_unprepare(fotg210->pclk);
-+
- kfree(fotg210);
-
- err:
---- a/drivers/usb/fotg210/fotg210-udc.h
-+++ b/drivers/usb/fotg210/fotg210-udc.h
-@@ -231,6 +231,7 @@ struct fotg210_ep {
- struct fotg210_udc {
- spinlock_t lock; /* protect the struct */
- void __iomem *reg;
-+ struct clk *pclk;
-
- unsigned long irq_trigger;
-