[U-Boot] [PATCH 1/2] drivers: usb: fsl: Add support for two USB XHCI controllers
Nikhil Badola
nikhil.badola at freescale.com
Mon Mar 16 04:32:50 CET 2015
Add support for two USB XHCI controllers for fsl platforms
Signed-off-by: Nikhil Badola <nikhil.badola at freescale.com>
---
Depends on "fsl/usb: Add USB XHCI support"
drivers/usb/host/xhci-fsl.c | 17 ++++++++++++++---
include/linux/usb/xhci-fsl.h | 5 -----
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/drivers/usb/host/xhci-fsl.c b/drivers/usb/host/xhci-fsl.c
index 381c322..1d25084 100644
--- a/drivers/usb/host/xhci-fsl.c
+++ b/drivers/usb/host/xhci-fsl.c
@@ -113,8 +113,19 @@ int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor)
struct fsl_xhci *ctx = &fsl_xhci;
int ret = 0;
- ctx->hcd = (struct xhci_hccr *)FSL_XHCI_BASE;
- ctx->dwc3_reg = (struct dwc3 *)(FSL_XHCI_BASE + DWC3_REG_OFFSET);
+ switch (index) {
+ case 0:
+ ctx->hcd = (struct xhci_hccr *)CONFIG_SYS_FSL_XHCI_USB1_ADDR;
+ break;
+ case 1:
+ ctx->hcd = (struct xhci_hccr *)CONFIG_SYS_FSL_XHCI_USB2_ADDR;
+ break;
+ default:
+ printf("ERROR: wrong controller index!!\n");
+ break;
+ };
+
+ ctx->dwc3_reg = (struct dwc3 *)((char *)(ctx->hcd) + DWC3_REG_OFFSET);
ret = board_usb_init(index, USB_INIT_HOST);
if (ret != 0) {
@@ -128,7 +139,7 @@ int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor)
return ret;
}
- *hccr = (struct xhci_hccr *)(FSL_XHCI_BASE);
+ *hccr = (ctx->hcd);
*hcor = (struct xhci_hcor *)((uint32_t) *hccr
+ HC_LENGTH(xhci_readl(&(*hccr)->cr_capbase)));
diff --git a/include/linux/usb/xhci-fsl.h b/include/linux/usb/xhci-fsl.h
index 1dc1e12..0019a16 100644
--- a/include/linux/usb/xhci-fsl.h
+++ b/include/linux/usb/xhci-fsl.h
@@ -10,9 +10,6 @@
#ifndef _ASM_ARCH_XHCI_FSL_H_
#define _ASM_ARCH_XHCI_FSL_H_
-/* Default to the FSL XHCI defines */
-#define FSL_XHCI_BASE 0x3100000
-
/* USBOTGSS_WRAPPER definitions */
#define USBOTGSS_WRAPRESET (1 << 17)
#define USBOTGSS_DMADISABLE (1 << 16)
@@ -38,8 +35,6 @@
#define USBOTGSS_IRQ_SET_1_OEVT_EN (1 << 16)
#define USBOTGSS_IRQ_SET_1_DMADISABLECLR_EN (1 << 17)
-#define DWC3_REG_OFFSET 0xc100
-
struct fsl_xhci {
struct xhci_hccr *hcd;
struct dwc3 *dwc3_reg;
--
1.7.11.7
More information about the U-Boot
mailing list