Re: [RFC PATCH v3 net-next 01/11] net: ethernet: ti: cpts: use devm_get_clk_from_child

From: Grygorii Strashko
Date: Thu Apr 25 2019 - 06:05:24 EST




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