|
@@ -162,6 +162,17 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
|
|
|
goto err_ioremap;
|
|
|
}
|
|
|
|
|
|
+ /* call platform specific init function */
|
|
|
+ if (pdata->init) {
|
|
|
+ ret = pdata->init(pdev);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(dev, "platform init failed\n");
|
|
|
+ goto err_init;
|
|
|
+ }
|
|
|
+ /* platforms need some time to settle changed IO settings */
|
|
|
+ mdelay(10);
|
|
|
+ }
|
|
|
+
|
|
|
/* enable clocks */
|
|
|
priv->usbclk = clk_get(dev, "usb");
|
|
|
if (IS_ERR(priv->usbclk)) {
|
|
@@ -192,18 +203,6 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev)
|
|
|
if (ret < 0)
|
|
|
goto err_init;
|
|
|
|
|
|
- /* call platform specific init function */
|
|
|
- if (pdata->init) {
|
|
|
- ret = pdata->init(pdev);
|
|
|
- if (ret) {
|
|
|
- dev_err(dev, "platform init failed\n");
|
|
|
- goto err_init;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /* most platforms need some time to settle changed IO settings */
|
|
|
- mdelay(10);
|
|
|
-
|
|
|
/* Initialize the transceiver */
|
|
|
if (pdata->otg) {
|
|
|
pdata->otg->io_priv = hcd->regs + ULPI_VIEWPORT_OFFSET;
|