Thread (65 messages) 65 messages, 5 authors, 2016-08-26

[PATCH v2 06/22] usb: chipidea: Add platform flag for wrapper phy management

flat view

From: Stephen Boyd <hidden>
Date: 2016-08-05 21:46:00
Also in: linux-arm-msm

Quoting Peter Chen (2016-07-08 02:25:35)
On Thu, Jul 07, 2016 at 03:20:57PM -0700, Stephen Boyd wrote:
quoted
The ULPI phy on qcom platforms needs to be initialized and
powered on after a USB reset and before we toggle the run/stop
bit. Otherwise, the phy locks up and doesn't work properly.
Therefore, add a flag to skip any phy power management in the
core layer, leaving it up to the glue driver to manage.

Cc: Peter Chen <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stephen Boyd <redacted>
---
 drivers/usb/chipidea/core.c  | 6 ++++++
 include/linux/usb/chipidea.h | 1 +
 2 files changed, 7 insertions(+)
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 01390e02ee53..532085a096d9 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -361,6 +361,9 @@ static int _ci_usb_phy_init(struct ci_hdrc *ci)
  */
 static void ci_usb_phy_exit(struct ci_hdrc *ci)
 {
+     if (ci->platdata->flags & CI_HDRC_OVERRIDE_PHY_CONTROL)
+             return;
+
      if (ci->phy) {
              phy_power_off(ci->phy);
              phy_exit(ci->phy);
@@ -379,6 +382,9 @@ static int ci_usb_phy_init(struct ci_hdrc *ci)
 {
      int ret;
 
+     if (ci->platdata->flags & CI_HDRC_OVERRIDE_PHY_CONTROL)
+             return 0;
+
How you handle the code for PHY getting at probe?
Which probe? Glue layer probe? In my case I'm not using the phy until
the RESET/STOPPED event so I just rely on the chipidea core to get the
phy and then control the phy manually in the glue layer.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help