Hi Tony, On 12/02/2020 16.35, Tony Lindgren wrote: > * Peter Ujfalusi <peter.ujfalusi@xxxxxx> [200212 08:02]: >> >> >> On 11/02/2020 19.16, Tony Lindgren wrote: >>> We can have multiple connections on a single McBSP instance configured >>> with audio graph card when using TDM (Time Division Multiplexing). Let's >>> allow that by configuring dais dynamically. >> >> It is still one DAI... >> If you have multiple codec connected to the same I2S lines, but the >> codecs communicate within different time slots, you still have one DAI >> on the CPU side, but multiple codecs (codec DAIs) with different TDM slot. > > OK so subject should say "dodec DAIs" then I guess? > >>> See Documentation/devicetree/bindings/sound/audio-graph-card.txt and >>> Documentation/devicetree/bindings/graph.txt for more details for >>> multiple endpoints. >> >> See the example for 'Multi DAI with DPCM' in audio-graph-card.txt >> The PCM3168a have 2 DAIs: playback and capture, but you can have >> multiple endpoints within a DAI. > > Yes this should follow the audio-graph-card.txt example. We end up with > mcbsp3 dts node as below on droid4: > > &mcbsp3 { > #sound-dai-cells = <0>; > pinctrl-names = "default"; > pinctrl-0 = <&mcbsp3_pins>; > status = "okay"; > > ports { > mcbsp3_port: port@0 { > #address-cells = <1>; > #size-cells = <0>; > > cpu_dai3: endpoint@0 { > reg = <0>; > dai-format = "dsp_a"; > frame-master = <&cpcap_audio_codec1>; > bitclock-master = <&cpcap_audio_codec1>; > remote-endpoint = <&cpcap_audio_codec1>; > }; > > cpu_dai_mdm: endpoint@1 { > reg = <1>; > dai-format = "dsp_a"; > frame-master = <&cpcap_audio_codec1>; > bitclock-master = <&cpcap_audio_codec1>; > remote-endpoint = <&mot_mdm6600_audio_codec0>; > }; > }; > }; > }; According to Documentation/devicetree/bindings/sound/audio-graph-card.txt it should be something like this: &mcbsp3 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&mcbsp3_pins>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; cpu_dai3: endpoint@0 { dai-format = "dsp_a"; frame-master = <&cpcap_audio_codec1>; bitclock-master = <&cpcap_audio_codec1>; remote-endpoint = <&cpcap_audio_codec1>; }; cpu_dai_mdm: endpoint@1 { dai-format = "dsp_a"; frame-master = <&cpcap_audio_codec1>; bitclock-master = <&cpcap_audio_codec1>; remote-endpoint = <&mot_mdm6600_audio_codec0>; }; }; }; }; If you span out dummy DAIs got dai1+ then how you will get anything working via endpoint1+? There will be no ops for McBSP, so it is not going to do anything... > That is pretty much the same as the 'Multi DAI with DPCM' example, with > dne dai, and multiple endpoints. I think we still have just one port > for one i2s transport on the mcbsp :) > > Does the above look as what you would expect based on the binding? The audio-graph-card.txt example shows pcm3168a which have two DAIs, one for playback and one for capture. I guess Morimoto-san can explain if he carries out of tree patches to get the described setup working on top of mainline... But, no, based on the documentation I don't ;) >>> I've tested this with droid4 where cpcap pmic and modem voice are both >>> both wired to mcbsp3. I've also tested this on droid4 both with and >>> without the pending modem audio codec driver that is waiting for n_gsm >>> serdev dependencies to clear. >> >> What this patch you effectively just creating dummy-dais on top of the >> real McBSP DAI. > > Yes I think this is needed for snd-soc-audio-graph-card, and this allows > configuring whatever is needed for the i2s slot. But maybe you have some > better way of doing it in mind? > >> You also rename the DAIs, which might break ams-delta. > > Oops, that's not good. So should we just keep the old naming if there's > only one endpoint? That's an option, yes, if we really need extra dummy McBSP DAIs at all, again, let's hear from Morimoto-san or Mark. >> We still have legacy support in >> omap-twl4030.c >> omap3pandora.c >> osk5912.c >> rx51.c >> >> which will break with the renamed DAI. On the other hand I think the >> legacy support can be dropped from them. > > I'm not sure what all that would take. For some it should not be a big deal as they only boot in DT mode. /me adds this to the TODO list. >> I know it was discussed, but can not find the mail: >> Can you brief again on the audio connection? > > Below is a link to a mailing list thread where Sebastian describes > the audio connection: > > https://lkml.org/lkml/2018/3/28/881 Thanks! >> Do you have branch with working code? > > Yeah I have slightly older set of the patches in my droid4-pending-v5.5 > kernel.org git branch with voice calls working. I think I should put my droid4 out and try to get it working... Do you have a link for dummies to follow to get started? ;) > > Regards, > > Tony > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel