|
@@ -36,14 +36,8 @@ struct ehci_mxc_priv {
|
|
|
static int ehci_mxc_setup(struct usb_hcd *hcd)
|
|
|
{
|
|
|
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
|
|
- struct device *dev = hcd->self.controller;
|
|
|
- struct mxc_usbh_platform_data *pdata = dev_get_platdata(dev);
|
|
|
int retval;
|
|
|
|
|
|
- /* EHCI registers start at offset 0x100 */
|
|
|
- ehci->caps = hcd->regs + 0x100;
|
|
|
- ehci->regs = hcd->regs + 0x100 +
|
|
|
- HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
|
|
|
dbg_hcs_params(ehci, "reset");
|
|
|
dbg_hcc_params(ehci, "reset");
|
|
|
|
|
@@ -65,12 +59,6 @@ static int ehci_mxc_setup(struct usb_hcd *hcd)
|
|
|
|
|
|
ehci_reset(ehci);
|
|
|
|
|
|
- /* set up the PORTSCx register */
|
|
|
- ehci_writel(ehci, pdata->portsc, &ehci->regs->port_status[0]);
|
|
|
-
|
|
|
- /* is this really needed? */
|
|
|
- msleep(10);
|
|
|
-
|
|
|
ehci_port_power(ehci, 0);
|
|
|
return 0;
|
|
|
}
|
|
@@ -128,6 +116,7 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
|
|
|
int irq, ret;
|
|
|
struct ehci_mxc_priv *priv;
|
|
|
struct device *dev = &pdev->dev;
|
|
|
+ struct ehci_hcd *ehci;
|
|
|
|
|
|
dev_info(&pdev->dev, "initializing i.MX USB Controller\n");
|
|
|
|
|
@@ -204,6 +193,19 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
|
|
|
if (ret < 0)
|
|
|
goto err_init;
|
|
|
|
|
|
+ ehci = hcd_to_ehci(hcd);
|
|
|
+
|
|
|
+ /* EHCI registers start at offset 0x100 */
|
|
|
+ ehci->caps = hcd->regs + 0x100;
|
|
|
+ ehci->regs = hcd->regs + 0x100 +
|
|
|
+ HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
|
|
|
+
|
|
|
+ /* set up the PORTSCx register */
|
|
|
+ ehci_writel(ehci, pdata->portsc, &ehci->regs->port_status[0]);
|
|
|
+
|
|
|
+ /* is this really needed? */
|
|
|
+ msleep(10);
|
|
|
+
|
|
|
/* Initialize the transceiver */
|
|
|
if (pdata->otg) {
|
|
|
pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET;
|