Hi Stephen, again
Can I confirm ?? Was I misunderstanding ??
I understand your point, but I think devm_get_clk_from_child() needs new DT setings, and it can't keep compatibility, or it makes driver complex. I think it is nice to have. but, I want to keep current style. Thus, I will try to use current of_clk_get() as-is, and call clk_free() somehow in this driver.
------ Pattern1 ----------- sound_soc { clocks = <&xxx>, <&xxx>; clock-names = "cpu", "codec"; ... cpu { /* of_cpu_node */ ... }; codec { /* of_codec_node */ ... }; }; ----------------------------
Do you mean, this case we can use
devm_get_clk_from_child(dev, of_cpu_node, "cpu"); devm_get_clk_from_child(dev, of_codec_node, "codec");
------ Pattern2 ----------- sound_soc { ... cpu { /* of_cpu_node */ clocks = <&xxx>; ... }; codec { /* of_codec_node */ clocks = <&xxx>; ... }; }; ----------------------------
And, this case, we can use
devm_get_clk_from_child(dev, of_cpu_node, NULL); devm_get_clk_from_child(dev, of_codec_node, NULL);
If so, I can use it without DT change.