net: ethernet: ti: cpts: use devm_get_clk_from_child
authorGrygorii Strashko <grygorii.strashko@ti.com>
Thu, 6 Jun 2019 16:30:39 +0000 (19:30 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 9 Jun 2019 19:53:06 +0000 (12:53 -0700)
Use devm_get_clk_from_child() instead of devm_clk_get() and this way allow
to group CPTS DT properties in sub-node for better code readability and
maintenance. Roll-back to devm_clk_get() if devm_get_clk_from_child()
fails for backward compatibility.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpts.c

index e257018..0e79f97 100644 (file)
@@ -572,9 +572,14 @@ struct cpts *cpts_create(struct device *dev, void __iomem *regs,
        if (ret)
                return ERR_PTR(ret);
 
-       cpts->refclk = devm_clk_get(dev, "cpts");
+       cpts->refclk = devm_get_clk_from_child(dev, node, "cpts");
+       if (IS_ERR(cpts->refclk))
+               /* try get clk from dev node for compatibility */
+               cpts->refclk = devm_clk_get(dev, "cpts");
+
        if (IS_ERR(cpts->refclk)) {
-               dev_err(dev, "Failed to get cpts refclk\n");
+               dev_err(dev, "Failed to get cpts refclk %ld\n",
+                       PTR_ERR(cpts->refclk));
                return ERR_CAST(cpts->refclk);
        }