On 25.04.19 01:46, Andrew Lunn wrote: > On Thu, Apr 25, 2019 at 01:24:17AM +0300, Grygorii Strashko wrote: >> 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. >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx> >> --- >> drivers/net/ethernet/ti/cpts.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c >> index 499806ce4cd5..aad118e71b61 100644 >> --- a/drivers/net/ethernet/ti/cpts.c >> +++ b/drivers/net/ethernet/ti/cpts.c >> @@ -572,7 +572,7 @@ 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)) { >> dev_err(dev, "Failed to get cpts refclk\n"); >> return ERR_CAST(cpts->refclk); > > Hi Grygorii > > Does this break backwards compatibility for existing DT blobs? > Maybe you need to look in both the old and new locations? No. It doesn't - default node is cpsw->dev->of_node. Then Patch 7 changes it fro new driver to - cpsw->cpts = cpts_create(cpsw->dev, cpts_regs, cpsw->dev->of_node); + cpts_node = of_get_child_by_name(cpsw->dev->of_node, "cpts"); + if (!cpts_node) + cpts_node = cpsw->dev->of_node; + + cpsw->cpts = cpts_create(cpsw->dev, cpts_regs, cpts_node); -- Best regards, grygorii