Add callback to ehci_hcd.c to prepare
for solving the problem with VBUS reset on Efika.

Signed-off-by: Jana Rapava <ferma...@gmail.com>
Cc: Marek Vasut <marek.va...@gmail.com>
Cc: Remy Bohmer <li...@bohmer.net>
Cc: Stefano Babic <sba...@denx.de>

Acked-by: Marek Vasut <marek.va...@gmail.com>
---
Changes for v1:
   - split into patchset
   - add callback ehci_fixup
Changes for v2:
     - make this the second patch in series
     - add comment to alias ehci_fixup
     - no actual changes
Changes for v3:
      - no actual changes
      - make the comment a sentence
      - rebase patch on top of u-boot-imx/next
Changes for v4:
       - no actual changes
       - change the versioning of changelog
       from per patchset to per patch
       - fix the appearance of comment
Changes for v5:
        - no actual changes
        - reword the comment

 drivers/usb/host/ehci-hcd.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index bdadd46..fb64f23 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -536,6 +536,18 @@ static inline int min3(int a, int b, int c)
        return a;
 }
 
+inline void __ehci_fixup(uint32_t *status_reg, uint32_t *reg_ref)
+{
+       wait_ms(50);
+}
+
+/*
+ * This is an alias to __ehci_fixup
+ * unless user provides other definition of ehci_fixup function.
+ */
+void ehci_fixup(uint32_t *status_reg, uint32_t *reg_ref)
+        __attribute__((weak, alias("__ehci_fixup")));
+
 int
 ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
                 int length, struct devrequest *req)
@@ -709,7 +721,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long 
pipe, void *buffer,
                                 * usb 2.0 specification say 50 ms resets on
                                 * root
                                 */
-                               wait_ms(50);
+                               ehci_fixup(status_reg, &reg);
                                /* terminate the reset */
                                ehci_writel(status_reg, reg & ~EHCI_PS_PR);
                                /*
-- 
1.7.6.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to