diff options
Diffstat (limited to 'drivers/usb/host/ehci-mxc.c')
| -rw-r--r-- | drivers/usb/host/ehci-mxc.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c index 35c56f40bdbb..23cd917088b4 100644 --- a/drivers/usb/host/ehci-mxc.c +++ b/drivers/usb/host/ehci-mxc.c | |||
| @@ -162,6 +162,17 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev) | |||
| 162 | goto err_ioremap; | 162 | goto err_ioremap; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | /* call platform specific init function */ | ||
| 166 | if (pdata->init) { | ||
| 167 | ret = pdata->init(pdev); | ||
| 168 | if (ret) { | ||
| 169 | dev_err(dev, "platform init failed\n"); | ||
| 170 | goto err_init; | ||
| 171 | } | ||
| 172 | /* platforms need some time to settle changed IO settings */ | ||
| 173 | mdelay(10); | ||
| 174 | } | ||
| 175 | |||
| 165 | /* enable clocks */ | 176 | /* enable clocks */ |
| 166 | priv->usbclk = clk_get(dev, "usb"); | 177 | priv->usbclk = clk_get(dev, "usb"); |
| 167 | if (IS_ERR(priv->usbclk)) { | 178 | if (IS_ERR(priv->usbclk)) { |
| @@ -192,18 +203,6 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev) | |||
| 192 | if (ret < 0) | 203 | if (ret < 0) |
| 193 | goto err_init; | 204 | goto err_init; |
| 194 | 205 | ||
| 195 | /* call platform specific init function */ | ||
| 196 | if (pdata->init) { | ||
| 197 | ret = pdata->init(pdev); | ||
| 198 | if (ret) { | ||
| 199 | dev_err(dev, "platform init failed\n"); | ||
| 200 | goto err_init; | ||
| 201 | } | ||
| 202 | } | ||
| 203 | |||
| 204 | /* most platforms need some time to settle changed IO settings */ | ||
| 205 | mdelay(10); | ||
| 206 | |||
| 207 | /* Initialize the transceiver */ | 206 | /* Initialize the transceiver */ |
| 208 | if (pdata->otg) { | 207 | if (pdata->otg) { |
| 209 | pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET; | 208 | pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET; |
