usb: mx6: add fuse check
[oweals/u-boot.git] / drivers / usb / host / ehci-fsl.c
index 23e7e7125fd2f2426fc4cc9a75be984f41f9f6d1..ced295ef0fa40166228b1360f6f4b8364fb3352e 100644 (file)
@@ -8,6 +8,7 @@
  */
 
 #include <common.h>
+#include <env.h>
 #include <pci.h>
 #include <usb.h>
 #include <asm/io.h>
@@ -75,8 +76,12 @@ static int ehci_fsl_init_after_reset(struct ehci_ctrl *ctrl)
        struct usb_ehci *ehci = NULL;
        struct ehci_fsl_priv *priv = container_of(ctrl, struct ehci_fsl_priv,
                                                   ehci);
-
+#ifdef CONFIG_PPC
+       ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base);
+#else
        ehci = (struct usb_ehci *)priv->hcd_base;
+#endif
+
        if (ehci_fsl_init(priv, ehci, priv->ehci.hccr, priv->ehci.hcor) < 0)
                return -ENXIO;
 
@@ -103,7 +108,11 @@ static int ehci_fsl_probe(struct udevice *dev)
                debug("Can't get the EHCI register base address\n");
                return -ENXIO;
        }
+#ifdef CONFIG_PPC
+       ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base);
+#else
        ehci = (struct usb_ehci *)priv->hcd_base;
+#endif
        hccr = (struct ehci_hccr *)(&ehci->caplength);
        hcor = (struct ehci_hcor *)
                ((void *)hccr + HC_LENGTH(ehci_readl(&hccr->cr_capbase)));