OSDN Git Service

usb: chipidea: usb2: make clock optional
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Sat, 4 Apr 2020 00:00:05 +0000 (02:00 +0200)
committerPeter Chen <peter.chen@nxp.com>
Wed, 8 Apr 2020 01:37:24 +0000 (09:37 +0800)
Allow clock to be missing from DT (assume it's enabled then).

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/chipidea/ci_hdrc_usb2.c

index bf300a2..9086514 100644 (file)
@@ -64,13 +64,14 @@ static int ci_hdrc_usb2_probe(struct platform_device *pdev)
        if (!priv)
                return -ENOMEM;
 
-       priv->clk = devm_clk_get(dev, NULL);
-       if (!IS_ERR(priv->clk)) {
-               ret = clk_prepare_enable(priv->clk);
-               if (ret) {
-                       dev_err(dev, "failed to enable the clock: %d\n", ret);
-                       return ret;
-               }
+       priv->clk = devm_clk_get_optional(dev, NULL);
+       if (IS_ERR(priv->clk))
+               return PTR_ERR(priv->clk);;
+
+       ret = clk_prepare_enable(priv->clk);
+       if (ret) {
+               dev_err(dev, "failed to enable the clock: %d\n", ret);
+               return ret;
        }
 
        ci_pdata->name = dev_name(dev);
@@ -94,8 +95,7 @@ static int ci_hdrc_usb2_probe(struct platform_device *pdev)
        return 0;
 
 clk_err:
-       if (!IS_ERR(priv->clk))
-               clk_disable_unprepare(priv->clk);
+       clk_disable_unprepare(priv->clk);
        return ret;
 }