usb: ehci-msm: Add init_after_reset for CI_UDC
authorRamon Fried <ramon.fried@gmail.com>
Fri, 21 Sep 2018 10:35:53 +0000 (13:35 +0300)
committerTom Rini <trini@konsulko.com>
Sun, 30 Sep 2018 17:00:37 +0000 (13:00 -0400)
MSM uses the chipidea controller IP, however it requires
to reinit the phy after controller reset. in EHCI mode there's a
dedicated callback for it.
In device mode however there's no such callback.
Add implementaion of ci_init_after_reset() to implement the above
requirement in case CI_UDC driver is used.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
drivers/usb/host/ehci-msm.c

index 00d6bb823113e0d86439de5a9bb713edc042d21e..5c257ccf4d226b04772f34601b65e673f2810cd5 100644 (file)
@@ -121,6 +121,18 @@ static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
        return 0;
 }
 
+#if defined(CONFIG_CI_UDC)
+/* Little quirk that MSM needs with Chipidea controller
+ * Must reinit phy after reset
+ */
+void ci_init_after_reset(struct ehci_ctrl *ctrl)
+{
+       struct msm_ehci_priv *p = ctrl->priv;
+
+       generic_phy_reset(&p->phy);
+}
+#endif
+
 static const struct udevice_id ehci_usb_ids[] = {
        { .compatible = "qcom,ehci-host", },
        { }