summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2012-12-12 17:55:22 -0800
committerMarek Vasut <marex@denx.de>2013-03-16 21:12:01 +0100
commit2982837e36e56584b0ab0256dd82d306e4ba1249 (patch)
treec77952f78486d03852f29a837633e18aa9902c42
parent7c38e90aff5f5b8b7f7ebc27d8d07c51aececde3 (diff)
downloadu-boot-imx-2982837e36e56584b0ab0256dd82d306e4ba1249.zip
u-boot-imx-2982837e36e56584b0ab0256dd82d306e4ba1249.tar.gz
u-boot-imx-2982837e36e56584b0ab0256dd82d306e4ba1249.tar.bz2
usb: ehci: Add 64-bit controller support
On EHCI controller with 64-bit address space support, we must initialize properly the high word for the PCI bus master accesses. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/usb/host/ehci-hcd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 7f98a63..20309ad 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -870,6 +870,9 @@ int usb_lowlevel_init(int index, void **controller)
if (ehci_hcd_init(index, &ehcic[index].hccr, &ehcic[index].hcor))
return -1;
#endif
+ /* Set the high address word (aka segment) for 64-bit controller */
+ if (ehci_readl(&ehcic[index].hccr->cr_hccparams) & 1)
+ ehci_writel(ehcic[index].hcor->or_ctrldssegment, 0);
qh_list = &ehcic[index].qh_list;