diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/820-usb-0004-usb-dwc3-use-suspend-clock-from-dt-to-set-power-down.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/820-usb-0004-usb-dwc3-use-suspend-clock-from-dt-to-set-power-down.patch | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0004-usb-dwc3-use-suspend-clock-from-dt-to-set-power-down.patch b/target/linux/layerscape/patches-5.4/820-usb-0004-usb-dwc3-use-suspend-clock-from-dt-to-set-power-down.patch deleted file mode 100644 index a60167e945..0000000000 --- a/target/linux/layerscape/patches-5.4/820-usb-0004-usb-dwc3-use-suspend-clock-from-dt-to-set-power-down.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 0d4749abb6f7d042643ba1aa27a7388e8290b6f5 Mon Sep 17 00:00:00 2001 -From: Li Jun <jun.li@nxp.com> -Date: Tue, 16 Apr 2019 14:02:38 +0800 -Subject: [PATCH] usb: dwc3: use suspend clock from dt to set power down scale - -Since the new dwc3 use bulk clks including the suspend clk, so we can -use it to calculate the power down scale value. - -Acked-by: Peter Chen <peter.chen@nxp.com> -Signed-off-by: Li Jun <jun.li@nxp.com> ---- - drivers/usb/dwc3/core.c | 21 +++++++++++++++++++++ - drivers/usb/dwc3/core.h | 1 + - 2 files changed, 22 insertions(+) - ---- a/drivers/usb/dwc3/core.c -+++ b/drivers/usb/dwc3/core.c -@@ -900,6 +900,25 @@ static void dwc3_set_incr_burst_type(str - dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, cfg); - } - -+static void dwc3_set_power_down_clk_scale(struct dwc3 *dwc) -+{ -+ u32 reg, scale; -+ -+ if (dwc->num_clks == 0) -+ return; -+ -+ /* -+ * The power down scale field specifies how many suspend_clk -+ * periods fit into a 16KHz clock period. When performing -+ * the division, round up the remainder. -+ */ -+ scale = DIV_ROUND_UP(clk_get_rate(dwc->clks[2].clk), 16384); -+ reg = dwc3_readl(dwc->regs, DWC3_GCTL); -+ reg &= ~(DWC3_GCTL_PWRDNSCALE_MASK); -+ reg |= DWC3_GCTL_PWRDNSCALE(scale); -+ dwc3_writel(dwc->regs, DWC3_GCTL, reg); -+} -+ - /** - * dwc3_core_init - Low-level initialization of DWC3 Core - * @dwc: Pointer to our controller context structure -@@ -924,6 +943,8 @@ static int dwc3_core_init(struct dwc3 *d - dwc->maximum_speed = USB_SPEED_HIGH; - } - -+ dwc3_set_power_down_clk_scale(dwc); -+ - ret = dwc3_phy_setup(dwc); - if (ret) - goto err0; ---- a/drivers/usb/dwc3/core.h -+++ b/drivers/usb/dwc3/core.h -@@ -224,6 +224,7 @@ - - /* Global Configuration Register */ - #define DWC3_GCTL_PWRDNSCALE(n) ((n) << 19) -+#define DWC3_GCTL_PWRDNSCALE_MASK DWC3_GCTL_PWRDNSCALE(0x1fff) - #define DWC3_GCTL_U2RSTECN BIT(16) - #define DWC3_GCTL_RAMCLKSEL(x) (((x) & DWC3_GCTL_CLK_MASK) << 6) - #define DWC3_GCTL_CLK_BUS (0) |