Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4251514ybv; Sun, 16 Feb 2020 17:42:08 -0800 (PST) X-Google-Smtp-Source: APXvYqxXAunA51K1xENErjTeBStcTx5csZ17mA8hYTNxNlpqyqkqbwM4WTnF9SLA0uK8VtOMhIgw X-Received: by 2002:a05:6830:22e2:: with SMTP id t2mr10740627otc.129.1581903728795; Sun, 16 Feb 2020 17:42:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581903728; cv=none; d=google.com; s=arc-20160816; b=bcRoYcTccT9okjr3XZVWxkqlxIV721UIvCs8jANCBgrm4RZMkdrhOznriTHLPq9fEs KFKbkCI+AZ0dXEbEH9x0+MUrSswb7jcQK8Kmo4SvQ/rQAQpwz4qOreYpOHIzWhbiGHcs OLJ6rWwvPd0K/uHSRQQfn/sJMDV8clpkEL26PgnUsKUIFKuD+95qpOlM0GnLR5B0ujcf zJoxc2/uKqk15EsN5awajBso4mjlfApdHxb7LrZssS/FEobn4cDJU5WXIdue7oIJAu4Z /Rgx+k1KxTDRXHdh4JwBvqztuJrZJMa8CSWSGH9nVRcApc772oqpQ/zsaboz1SdzotlV z8LA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:subject:cc:to:from:message-id :date; bh=Um+fMuxCJBg1Q/nszwfE14CpNK4TzKafJt9bwxmfWWc=; b=r2tIIF63wqePdUFd2xYUYsT4SLpSfxQH2j7snxhqBw+xxdyQO7+nJv754XcPcHXiEI TRTwzVaNBvsieNK4XhzE3c9ar0WzWoFrp4fUtR+jkf7qkNkR6KuWjRlsS006vN0pQopm p7a51AOsNZkd5ifY1Q3dxWqKnOQVhOY5rbNlIGZ/BHIk8DfhovTjSLsoNg0Z3koqVDYy yUUyRQarxqPOqnBm30BfaA73AuemdbEMgGM3JcW0ajhFETrjqgW+k129Kufb7Gc1jeWL nHucb4G8yys1xLsXBqFrBFy0MY4ngdAfCKCe+SOVkApiKdojwqE+nx+9gPQs8Smc+Xqb 3kQQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l17si6305933otk.218.2020.02.16.17.41.42; Sun, 16 Feb 2020 17:42:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726380AbgBQBij convert rfc822-to-8bit (ORCPT + 99 others); Sun, 16 Feb 2020 20:38:39 -0500 Received: from relmlor1.renesas.com ([210.160.252.171]:54642 "EHLO relmlie5.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726240AbgBQBij (ORCPT ); Sun, 16 Feb 2020 20:38:39 -0500 Date: 17 Feb 2020 10:38:37 +0900 X-IronPort-AV: E=Sophos;i="5.70,450,1574089200"; d="scan'208";a="39444273" Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie5.idc.renesas.com with ESMTP; 17 Feb 2020 10:38:37 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id E24BD4121503; Mon, 17 Feb 2020 10:38:36 +0900 (JST) Message-ID: <87eeuuat85.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto To: Tony Lindgren Cc: Peter Ujfalusi , Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, Aaro Koskinen , "Arthur D ." , Jarkko Nikula , Merlijn Wajer , Pavel Machek , Sebastian Reichel Subject: Re: [PATCH] ASoC: ti: Allocate dais dynamically for TDM and audio graph card In-Reply-To: <20200214170322.GZ64767@atomide.com> References: <20200211171645.41990-1-tony@atomide.com> <20200212143543.GI64767@atomide.com> <346dfd2b-23f8-87e0-6f45-27a5099b1066@ti.com> <20200214170322.GZ64767@atomide.com> User-Agent: Wanderlust/2.15.9 Emacs/25.2 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi > > 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>; > > }; > > }; > > }; > > }; (snip) > > I guess Morimoto-san can explain if he carries out of tree patches to > > get the described setup working on top of mainline... # I think ALSA ML is rejecting mail (?), # I couldn't find original patch / Mail and Discussion at ALSA ML. # Thus, I'm not 100% understanding what is the issue... I confirmed attached patch on my local platform (= Renesas ULCB + KF board), and it works well for me on at least v5.5 kernel. --- kernel log -------------- ... [ 2.184193] rcar_sound ec500000.sound: probed ... [ 2.227837] asoc-audio-graph-card sound: ak4613-hifi <-> rsnd-dai.0 mapping ok [ 2.235474] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.2 mapping ok [ 2.243472] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.3 mapping ok [ 2.251463] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.4 mapping ok [ 2.259451] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.5 mapping ok [ 2.267448] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.6 mapping ok [ 2.275439] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.7 mapping ok [ 2.283429] asoc-audio-graph-card sound: snd-soc-dummy-dai <-> rsnd-dai.8 mapping ok [ 2.291460] asoc-audio-graph-card sound: pcm3168a-dac <-> snd-soc-dummy-dai mapping ok [ 2.299460] asoc-audio-graph-card sound: pcm3168a-adc <-> snd-soc-dummy-dai mapping ok ... [ 5.479675] ALSA device list: [ 5.482694] #0: rcar-sound ... --- local patch ------------------- From 8d25a2ce640ec5be506584ab50e685d0a962aa2d Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 14 Dec 2018 09:47:47 +0900 Subject: [PATCH] Local v5.4: ulcb-kf: add TDM Split support CPU0 ------ ak4613 CPU1 ------ PCM3168A-p /* 1ch/2ch */ CPU2 --/ /* 3ch/4ch */ CPU3 --/ /* 5ch/6ch */ CPU4 --/ /* 7ch/8ch */ CPU5 ------ PCM3168A-c /* 1ch/2ch */ CPU6 --/ /* 3ch/4ch */ CPU7 --/ /* 5ch/6ch */ aplay -D plughw:0,0 xxx.wav // ak4613 aplay -D plughw:0,1 xxx.wav // PCM3168A playback 1ch/2ch aplay -D plughw:0,2 xxx.wav // PCM3168A playback 3ch/4ch aplay -D plughw:0,3 xxx.wav // PCM3168A playback 5ch/6ch aplay -D plughw:0,4 xxx.wav // PCM3168A playback 7ch/8ch arecord -D plughw:0,5 xxx // PCM8168A capture 1ch/2ch arecord -D plughw:0,6 xxx // PCM8168A capture 3ch/4ch arecord -D plughw:0,7 xxx // PCM8168A capture 5ch/6ch It seems 1 sound card DAI number is limited by SNDRV_MINOR(). Because of this size limit, total 8 DAI seems maximam. So, this patch removes HDMI so far. Signed-off-by: Kuninori Morimoto --- arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 103 +++++++++++++++++++++-- 1 file changed, 94 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi index 202177706cde..5eaf97ea7480 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi @@ -115,18 +115,39 @@ #size-cells = <0>; mclk-fs = <512>; port@0 { + prefix = "pcm3168a"; + convert-channels = <8>; /* TDM Split */ reg = <0>; - pcm3168a_endpoint_p: endpoint { + pcm3168a_endpoint_p: endpoint@0 { remote-endpoint = <&rsnd_for_pcm3168a_play>; clocks = <&clksndsel>; }; + pcm3168a_endpoint_p2: endpoint@1 { + remote-endpoint = <&rsnd_for_pcm3168a_play2>; + }; + pcm3168a_endpoint_p3: endpoint@2 { + remote-endpoint = <&rsnd_for_pcm3168a_play3>; + }; + pcm3168a_endpoint_p4: endpoint@3 { + remote-endpoint = <&rsnd_for_pcm3168a_play4>; + }; }; port@1 { + prefix = "pcm3168a"; + convert-channels = <6>; /* TDM Split */ reg = <1>; - pcm3168a_endpoint_c: endpoint { + pcm3168a_endpoint_c: endpoint@0 { remote-endpoint = <&rsnd_for_pcm3168a_capture>; clocks = <&clksndsel>; }; + pcm3168a_endpoint_c2: endpoint@1 { + remote-endpoint = <&rsnd_for_pcm3168a_capture2>; + clocks = <&clksndsel>; + }; + pcm3168a_endpoint_c3: endpoint@2 { + remote-endpoint = <&rsnd_for_pcm3168a_capture3>; + clocks = <&clksndsel>; + }; }; }; }; @@ -298,29 +319,83 @@ ports { /* rsnd_port0/1 are on salvator-common */ rsnd_port2: port@2 { + #address-cells = <1>; + #size-cells = <0>; reg = <2>; - rsnd_for_pcm3168a_play: endpoint { + rsnd_for_pcm3168a_play: endpoint@2 { + reg = <2>; remote-endpoint = <&pcm3168a_endpoint_p>; dai-format = "i2s"; bitclock-master = <&rsnd_for_pcm3168a_play>; frame-master = <&rsnd_for_pcm3168a_play>; - dai-tdm-slot-num = <8>; - playback = <&ssi3>; + playback = <&ssiu30 &ssi3>; + }; + rsnd_for_pcm3168a_play2: endpoint@3 { + reg = <3>; + remote-endpoint = <&pcm3168a_endpoint_p2>; + + dai-format = "i2s"; + bitclock-master = <&rsnd_for_pcm3168a_play2>; + frame-master = <&rsnd_for_pcm3168a_play2>; + + playback = <&ssiu31 &ssi3>; + }; + rsnd_for_pcm3168a_play3: endpoint@4 { + reg = <4>; + remote-endpoint = <&pcm3168a_endpoint_p3>; + + dai-format = "i2s"; + bitclock-master = <&rsnd_for_pcm3168a_play3>; + frame-master = <&rsnd_for_pcm3168a_play3>; + + playback = <&ssiu32 &ssi3>; + }; + rsnd_for_pcm3168a_play4: endpoint@5 { + reg = <5>; + remote-endpoint = <&pcm3168a_endpoint_p4>; + + dai-format = "i2s"; + bitclock-master = <&rsnd_for_pcm3168a_play4>; + frame-master = <&rsnd_for_pcm3168a_play4>; + + playback = <&ssiu33 &ssi3>; }; }; rsnd_port3: port@3 { + #address-cells = <1>; + #size-cells = <0>; reg = <3>; - rsnd_for_pcm3168a_capture: endpoint { + rsnd_for_pcm3168a_capture: endpoint@6 { + reg = <6>; remote-endpoint = <&pcm3168a_endpoint_c>; dai-format = "i2s"; bitclock-master = <&rsnd_for_pcm3168a_capture>; frame-master = <&rsnd_for_pcm3168a_capture>; - dai-tdm-slot-num = <6>; - capture = <&ssi4>; + capture = <&ssiu40 &ssi4>; + }; + rsnd_for_pcm3168a_capture2: endpoint@7 { + reg = <7>; + remote-endpoint = <&pcm3168a_endpoint_c2>; + + dai-format = "i2s"; + bitclock-master = <&rsnd_for_pcm3168a_capture2>; + frame-master = <&rsnd_for_pcm3168a_capture2>; + + capture = <&ssiu41 &ssi4>; + }; + rsnd_for_pcm3168a_capture3: endpoint@8 { + reg = <8>; + remote-endpoint = <&pcm3168a_endpoint_c3>; + + dai-format = "i2s"; + bitclock-master = <&rsnd_for_pcm3168a_capture3>; + frame-master = <&rsnd_for_pcm3168a_capture3>; + + capture = <&ssiu42 &ssi4>; }; }; }; @@ -359,8 +434,18 @@ }; &sound_card { + compatible = "audio-graph-scu-card"; + + routing = "pcm3168a Playback", "DAI2 Playback", + "pcm3168a Playback", "DAI3 Playback", + "pcm3168a Playback", "DAI4 Playback", + "pcm3168a Playback", "DAI5 Playback", + "DAI6 Capture", "pcm3168a Capture", + "DAI7 Capture", "pcm3168a Capture", + "DAI8 Capture", "pcm3168a Capture"; + dais = <&rsnd_port0 /* ak4613 */ - &rsnd_port1 /* HDMI0 */ +// &rsnd_port1 /* HDMI0 */ &rsnd_port2 /* pcm3168a playback */ &rsnd_port3 /* pcm3168a capture */ >; -- 2.17.1 Thank you for your help !! Best regards --- Kuninori Morimoto