On 11/03/2024 08:33, Chancel Liu wrote:
@@ -127,6 +126,22 @@ static int imx_rpmsg_probe(struct
platform_device
*pdev)
goto fail; }
if (!strcmp(pdev->dev.platform_data, "rpmsg-micfil-channel"))
np = of_find_node_by_name(NULL, "rpmsg_micfil");
else
np = of_find_node_by_name(NULL, "rpmsg_audio");
Why do you create ABI on node names? Where is it documented? Why
can't
you use phandles?
Best regards, Krzysztof
Thanks for your reminder. Truly I shouldn't use undocumented bindings. I
will
use “fsl,rpmsg-channel-name” to refine patch set. Please help review next version.
Instead of hard-coding node names in the driver you want to put it in "fsl,rpmsg-channel-name" property? I don't follow. I recommended instead using phandles, care to address that?
imx-rpmsg is ASoC machine driver and fsl_rpmsg is ASoC CPU DAI driver. In imx-rpmsg, driver needs to get CPU DAI DT node for hardware configuration. So imx-rpmsg needs some "information" to find the correct DT node. As you recommended, it's not wise to use hard-coding node name. Also the device of imx-rpmsg is created by imx-audio-rpmsg so it can't directly get phandle of CPU DAI node.
Sorry for unclear statement. "fsl,rpmsg-channel-name" is the property of rpmsg channel name. Each rpmsg sound card sits on one rpmsg channel. So I decide to use rpmsg channel name to connect all parts of this sound card. If the CPU DAI is registerd with rpmsg channel name then imx-rpmsg can easily get the DT node by this name.
Regards, Chancel Liu