Re: [PATCH 20/23] ASoC: add simple-graph-card document

From: Kuninori Morimoto
Date: Wed Oct 19 2016 - 02:14:01 EST



Hi Rob

Thank you for your feedback

> > 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.
>
> For HDMI, the port number should dictate which one is video and which is audio.

Hmm.. I will consider about that.

> > ports {
> > compatible = "asoc-simple-graph-card";
>
> I think your problems start with trying to extend simple-card. This
> binding is anything but simple. I think using OF graph is a good idea,
> but trying to make it completely generic is not.

Current ALSA SoC basically needs CPU/Codec/Card drivers.
If we use this new simple sound card, DT needs only CPU/Codec.
Card part will be created from CPU by using compatible = "xxx"
(= Card driver itself is needed, but no DT)

This "Card" part is related to its whole sound system.
If you want to use normal sound system, it will be "simple-card",
if you want to use feature sound system, it will be "xxxx-card".
This time, I'm focusing to simple one, someone will create xxxx-card,
but it is not me :)

> > port@0 {
> > simple-audio-card,format = "left_j";
> > simple-audio-card,bitclock-master = <&rcar_ak4613_port>;
> > simple-audio-card,frame-master = <&rcar_ak4613_port>;
>
> These look like properties of the ak4613 to me, so put them in the
> ak4613 node. If they are standard property names, then you just walk
> the graph and get them.

These were "Card" part property, not ak4613 property.
It indicates which can be master (CPU or Codec) on sound system.

> > type = "sound";
> > rcar_ak4613_port: endpoint {
> > remote-endpoint = <&ak4613_port>;
> > playback = <&ssi0 &src0 &dvc0>;
> > capture = <&ssi1 &src1 &dvc1>;
>
> Not really sure how you are using these to comment.

I'm sorry, maybe your confusing is because this sample.
This playback/capture are Renesas CPU specific properties.
Renesas CPU port needs to know CPU-inside connection.

> > 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>;
>
> If you are trying to describe a connection between hdmi_snd0 and ssi2,
> then do just that. Add a port to ssi2 and connect it to hdmi_snd0.

I'm sorry, same comment.
This "playback" is Renesas CPU specific property.
It indicating Renesas CPU inside connection