usb: phy: omap-usb2: enable 960Mhz clock for omap5
"usb_otg_ss_refclk960m" is needed for usb2 phy present in omap5. For omap4, the clk_get of this clock will fail since it does not have this clock. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Родитель
b16604f2c1
Коммит
0c4c8bbbfd
|
@ -166,6 +166,12 @@ static int omap_usb2_probe(struct platform_device *pdev)
|
|||
}
|
||||
clk_prepare(phy->wkupclk);
|
||||
|
||||
phy->optclk = devm_clk_get(phy->dev, "usb_otg_ss_refclk960m");
|
||||
if (IS_ERR(phy->optclk))
|
||||
dev_vdbg(&pdev->dev, "unable to get refclk960m\n");
|
||||
else
|
||||
clk_prepare(phy->optclk);
|
||||
|
||||
usb_add_phy_dev(&phy->phy);
|
||||
|
||||
platform_set_drvdata(pdev, phy);
|
||||
|
@ -180,6 +186,8 @@ static int omap_usb2_remove(struct platform_device *pdev)
|
|||
struct omap_usb *phy = platform_get_drvdata(pdev);
|
||||
|
||||
clk_unprepare(phy->wkupclk);
|
||||
if (!IS_ERR(phy->optclk))
|
||||
clk_unprepare(phy->optclk);
|
||||
usb_remove_phy(&phy->phy);
|
||||
|
||||
return 0;
|
||||
|
@ -193,6 +201,8 @@ static int omap_usb2_runtime_suspend(struct device *dev)
|
|||
struct omap_usb *phy = platform_get_drvdata(pdev);
|
||||
|
||||
clk_disable(phy->wkupclk);
|
||||
if (!IS_ERR(phy->optclk))
|
||||
clk_disable(phy->optclk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -204,9 +214,25 @@ static int omap_usb2_runtime_resume(struct device *dev)
|
|||
struct omap_usb *phy = platform_get_drvdata(pdev);
|
||||
|
||||
ret = clk_enable(phy->wkupclk);
|
||||
if (ret < 0)
|
||||
if (ret < 0) {
|
||||
dev_err(phy->dev, "Failed to enable wkupclk %d\n", ret);
|
||||
goto err0;
|
||||
}
|
||||
|
||||
if (!IS_ERR(phy->optclk)) {
|
||||
ret = clk_enable(phy->optclk);
|
||||
if (ret < 0) {
|
||||
dev_err(phy->dev, "Failed to enable optclk %d\n", ret);
|
||||
goto err1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err1:
|
||||
clk_disable(phy->wkupclk);
|
||||
|
||||
err0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче