Linux Tegra architecture development
 help / color / mirror / Atom feed
From: Sameer Pujar <spujar@nvidia.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Thierry Reding <thierry.reding@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
	robh+dt@kernel.org, Jon Hunter <jonathanh@nvidia.com>,
	linux-tegra@vger.kernel.org
Subject: Re: Query on audio-graph-card DT binding
Date: Tue, 9 Jan 2024 17:19:36 +0530	[thread overview]
Message-ID: <e7f9085d-9db1-4c5e-9940-e461835b20aa@nvidia.com> (raw)
In-Reply-To: <875y03i739.wl-kuninori.morimoto.gx@renesas.com>



On 09-01-2024 07:47, Kuninori Morimoto wrote:
>>                /-----> codec1 endpoint
>>               /
>> CPU endpoint \
>>                \-----> codec2 endpoint
> It sounds "Single CPU - Mult Codec" connection, and if my understanding
> was correct, current ASoC is not supporting it so far.

Yes, this is a typical TDM use case.
__soc_pcm_hw_params() call in soc-pcm.c loops over all CODECs for a 
given rtd. So is there something else you are referring to which makes 
ASoC core doesn't support it?

> But dummy CPU with Multi-CPU/Codec connection helps you ?
> I'm not 100% sure though...
> See
>          ${LINUX}/sound/soc/generic/audio-graph-card2-custom-sample.dtsi
>
> DT looks like
>
>          [Multi-CPU/Codec]
>                           +-+             +-+
>                  cpu   <--| |<-@--------->| |-> codec1
>                  dummy <--| |             | |-> codec2
>                           +-+             +-+
>
> Use Multi-CPU/Codec connection with dummy.
>
>          audio-graph-card2 {
>                  compatible = "audio-graph-card2";
>                  links = <&mcpu>;
>
>                  multi {
>                          ports@0 {
>                          /* [Multi-CPU] */
>                          mcpu:   port@0 { mcpu0_ep: endpoint { remote-endpoint = <&mcodec0_ep>; }; };
>                                  port@1 { mcpu1_ep: endpoint { remote-endpoint = <&cpu_ep>;     }; };
>                                  port@2 { mcpu2_ep: endpoint { remote-endpoint = <&dummy_ep>;   }; };
>                          };
>
>                          /* [Multi-Codec] */
>                          ports@1 {
>                                  port@0 { mcodec0_ep: endpoint { remote-endpoint = <&mcpu0_ep>;  }; };
>                                  port@1 { mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; };
>                                  port@2 { mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; };
>                          };
>                  };
>          };
>
>          test_cpu {
>                  compatible = "test-cpu";
>                  port { dummy_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; };
>          };

I looked at the 1:N (Semi-Multi) example in the references you shared. 
Seems like this is broken into multiple 1:1 links. Is this correct 
understanding?

Also the binding properties of "audio-graph-card2" seem to be different 
from "audio-graph-card". I am looking at a simpler extension of existing 
bindings for Tegra audio without having to re-write the whole bindings. 
If "remote-endpoint" can take phandle array it would be simpler from DT 
point of view.

  reply	other threads:[~2024-01-09 11:49 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-26 16:28 Query on audio-graph-card DT binding Sameer Pujar
2024-01-03  7:02 ` ASoC: dt-bindings: " Sameer Pujar
2024-01-04 17:07 ` Thierry Reding
2024-01-04 17:22   ` Mark Brown
2024-01-05  4:54     ` Sameer Pujar
2024-01-05  8:11       ` Thierry Reding
2024-01-05 11:19         ` Sameer Pujar
2024-01-09  2:17           ` Kuninori Morimoto
2024-01-09 11:49             ` Sameer Pujar [this message]
2024-01-09 23:15               ` Kuninori Morimoto
2024-01-10  5:01                 ` Sameer Pujar
2024-01-11  0:44                   ` Kuninori Morimoto
2024-01-11  4:28                     ` Sameer Pujar
2024-01-11  4:56                       ` Kuninori Morimoto
2024-01-11  5:09                         ` Sameer Pujar
2024-01-11  5:32                           ` Kuninori Morimoto
2024-01-11  6:49                             ` Sameer Pujar
2024-01-11 22:59                               ` Kuninori Morimoto
2024-01-12  8:09                                 ` Sameer Pujar
2024-01-15  1:43                                   ` Kuninori Morimoto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e7f9085d-9db1-4c5e-9940-e461835b20aa@nvidia.com \
    --to=spujar@nvidia.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jonathanh@nvidia.com \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-tegra@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox