diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2013-10-10 15:27:57 -0700 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2013-10-20 23:46:27 +0200 |
commit | 127efc4fe8cfc3ed525650b1ccbad9c3402e8d5d (patch) | |
tree | dae3ff98422aaeeb5813efc572e6e9f7fa8554ab /drivers/usb/host/ehci-hcd.c | |
parent | 06d513ecb61a6711157707ebe10b968aacc0f2a8 (diff) | |
download | u-boot-imx-127efc4fe8cfc3ed525650b1ccbad9c3402e8d5d.zip u-boot-imx-127efc4fe8cfc3ed525650b1ccbad9c3402e8d5d.tar.gz u-boot-imx-127efc4fe8cfc3ed525650b1ccbad9c3402e8d5d.tar.bz2 |
usb: ehci-hcd: add enum usb_init_type parameter to ehci_hcd_init.
This paramter will later be used to initialize OTG ports in
host or device mode.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 6c21f47..8bd1eb8 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -926,17 +926,22 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller) struct QH *qh_list; struct QH *periodic; int i; + int rc; - if (ehci_hcd_init(index, &ehcic[index].hccr, &ehcic[index].hcor)) - return -1; + rc = ehci_hcd_init(index, init, &ehcic[index].hccr, &ehcic[index].hcor); + if (rc) + return rc; + if (init == USB_INIT_DEVICE) + goto done; /* EHCI spec section 4.1 */ if (ehci_reset(index)) return -1; #if defined(CONFIG_EHCI_HCD_INIT_AFTER_RESET) - if (ehci_hcd_init(index, &ehcic[index].hccr, &ehcic[index].hcor)) - return -1; + rc = ehci_hcd_init(index, init, &ehcic[index].hccr, &ehcic[index].hcor); + if (rc) + return rc; #endif /* Set the high address word (aka segment) for 64-bit controller */ if (ehci_readl(&ehcic[index].hccr->cr_hccparams) & 1) @@ -1037,7 +1042,7 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller) printf("USB EHCI %x.%02x\n", reg >> 8, reg & 0xff); ehcic[index].rootdev = 0; - +done: *controller = &ehcic[index]; return 0; } |