Hi Rob
type = "sound";
I'm still not convinced this is necessary. This is implied either by the fact there is only one port or perhaps the compatible string.
Do you mean "on this sample" ? or in general ? Indeed this sample is definitely for sound, so type is very clear without property. But in general, for example HDMI, it want to know port type. Anyway, I can remove above "type" from this new sound driver.
+rcar_sound {
...
port {
compatible = "asoc-simple-graph-card";
simple-audio-card,format = "left_j";
simple-audio-card,bitclock-master = <&ak4643_port>;
simple-audio-card,frame-master = <&ak4643_port>;
Don't add a bunch of properties with in port and endpoint nodes. The purpose is to describe the graph. Put these in the parent node or perhaps the codec node.
These properties are needed on each ports/endpoints on sound at this point. If ports/endpoints can't include these, I need to separate these, is it correct approach ? ?? see below
-- current style --
ports { compatible = "asoc-simple-graph-card"; simple-audio-card,name = "graph-sound";
port@0 { simple-audio-card,format = "left_j"; simple-audio-card,bitclock-master = <&rcar_ak4613_port>; simple-audio-card,frame-master = <&rcar_ak4613_port>;
type = "sound"; rcar_ak4613_port: endpoint { remote-endpoint = <&ak4613_port>; playback = <&ssi0 &src0 &dvc0>; capture = <&ssi1 &src1 &dvc1>; }; }; port@1 { simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&rcar_hdmi0_port>; simple-audio-card,frame-master = <&rcar_hdmi0_port>; type = "sound"; rcar_hdmi0_port: endpoint { remote-endpoint = <&du_out_hdmi_snd0>; playback = <&ssi2>; }; }; port@2 { simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&rcar_hdmi1_port>; simple-audio-card,frame-master = <&rcar_hdmi1_port>; type = "sound"; rcar_hdmi1_port: endpoint { remote-endpoint = <&du_out_hdmi_snd1>; playback = <&ssi3>; }; }; };
-- separate style --
ports { port@0 { rcar_ak4613_port: endpoint { } }; port@1 { rcar_hdmi0_port: endpoint { } }; port@2 { rcar_hdmi1_port: endpoint { } }; };
sound-xxx { compatible = "asoc-simple-graph-card";
port@0 { simple-audio-card,format = "left_j"; simple-audio-card,bitclock-master = <&rcar_ak4613_port>; simple-audio-card,frame-master = <&rcar_ak4613_port>; }; port@1 { simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&rcar_hdmi0_port>; simple-audio-card,frame-master = <&rcar_hdmi0_port>; }; port@2 { simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&rcar_hdmi1_port>; simple-audio-card,frame-master = <&rcar_hdmi1_port>; }; };
Best regards --- Kuninori Morimoto