Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4395999ybv; Sun, 16 Feb 2020 21:27:13 -0800 (PST) X-Google-Smtp-Source: APXvYqx+Gwhr/TVFvasYVVGst5PgoWoUnOdmosMJxW4JtkX57VFnDFDW3/yzGrvxyBUcbf0yoPN/ X-Received: by 2002:aca:f354:: with SMTP id r81mr8611393oih.90.1581917233604; Sun, 16 Feb 2020 21:27:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581917233; cv=none; d=google.com; s=arc-20160816; b=NTbOe4oOHTYWR94L1r1I8ywcNjEX5f4iayS/Qg4M0mVU9ZWpjJfoEXgmd91P7aKKRb Um3P1YAHGzwGl0KVYg/QPyBrutJ0MX3M0MBkmSQjd7dUEKCyrcbxYa+eUm40Db4QsyVr bgwhhpH48Fk9/DTEFctOc8Buw60lIERqOanRqaX367dqPXF4v3HM39SuVxCvoyxjyzfz nMAlGHBmM+tGTZrLwZVbcN8p4IOLcTj2pm/m/QQ8s3MT3BpdFuU8aDCsQMkBjDO9VePj 8/09PGcLUeT5D3WExA6YNyoB0vpSeeHw9zIQfYm5QXjEI10CVOmL4eL+anQWQI2FZH3U i5WQ== 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=faTcmCguHfOzuE9Enl2KfBwzTmnDPDKiYyZklByyFRc=; b=eCbKJW8wO+SqOsfyzhcfqyCba1DXq2emGRl3flSYajSarDJYgr0arNBmAqbKRgGDI5 SheI4HJ/niE50xzMX+5NxQaoQCs5WbRyGXIhShzEDpSyJirGavYlrBbLmaXaa4lNgW3q r/hgX2Ou8tFOxueglF/0jqnBginkXVJ+uv2GePL7saH1J9sWpAQVpugzH674QNUXCMEd SFRoK2gwFwULiYU++F/67Y1qBxbYLpIo9kPAu80xapPBDlYTOC4WwZxshZe6EnieBe5l 7bJzIU794CMlAyHbGiHiqpb15mM5WBhfNSSm1rluNIUKGv1iVGovLWOhmR6zZYOIC5Tk hr9g== 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 p83si5838431oih.198.2020.02.16.21.27.00; Sun, 16 Feb 2020 21:27:13 -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 S1726054AbgBQFZY convert rfc822-to-8bit (ORCPT + 99 others); Mon, 17 Feb 2020 00:25:24 -0500 Received: from relmlor1.renesas.com ([210.160.252.171]:33257 "EHLO relmlie5.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725855AbgBQFZY (ORCPT ); Mon, 17 Feb 2020 00:25:24 -0500 Date: 17 Feb 2020 14:25:22 +0900 X-IronPort-AV: E=Sophos;i="5.70,451,1574089200"; d="scan'208";a="39471410" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie5.idc.renesas.com with ESMTP; 17 Feb 2020 14:25:22 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 7A35F400754F; Mon, 17 Feb 2020 14:25:22 +0900 (JST) Message-ID: <87h7zpaiq7.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto To: Kuninori Morimoto Cc: Tony Lindgren , 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: <87eeuuat85.wl-kuninori.morimoto.gx@renesas.com> References: <20200211171645.41990-1-tony@atomide.com> <20200212143543.GI64767@atomide.com> <346dfd2b-23f8-87e0-6f45-27a5099b1066@ti.com> <20200214170322.GZ64767@atomide.com> <87eeuuat85.wl-kuninori.morimoto.gx@renesas.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 > I confirmed attached patch on my local platform (= Renesas ULCB + KF board), > and it works well for me on at least v5.5 kernel. Maybe my DT patch was not good for port vs endpoint. I attached new one. -------------------------- From a222375f826f650d1181646cc79b8b89b364da2a Mon Sep 17 00:00:00 2001 From: Kuninori Morimoto Date: Fri, 14 Dec 2018 09:47:47 +0900 Subject: [PATCH 1/2] 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 | 116 ++++++++++++++++++++--- 1 file changed, 105 insertions(+), 11 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi index 202177706cde..2c3bd62d13ff 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>; + }; }; }; }; @@ -299,28 +320,86 @@ /* rsnd_port0/1 are on salvator-common */ rsnd_port2: port@2 { reg = <2>; - rsnd_for_pcm3168a_play: endpoint { + rsnd_for_pcm3168a_play: endpoint@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_port3: port@3 { reg = <3>; - rsnd_for_pcm3168a_capture: endpoint { + rsnd_for_pcm3168a_play2: endpoint@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_port4: port@4 { + reg = <4>; + rsnd_for_pcm3168a_play3: endpoint@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_port5: port@5 { + reg = <5>; + rsnd_for_pcm3168a_play4: endpoint@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_port6: port@6 { + reg = <6>; + rsnd_for_pcm3168a_capture: endpoint@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_port7: port@7 { + reg = <7>; + rsnd_for_pcm3168a_capture2: endpoint@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_port8: port@8 { + reg = <8>; + rsnd_for_pcm3168a_capture3: endpoint@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,10 +438,25 @@ }; &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_port2 /* pcm3168a playback */ - &rsnd_port3 /* pcm3168a capture */ +// &rsnd_port1 /* HDMI0 */ + &rsnd_port2 /* pcm3168a playback 1ch/2ch */ + &rsnd_port3 /* 3ch/4ch */ + &rsnd_port4 /* 5ch/6ch */ + &rsnd_port5 /* 7ch/8ch */ + &rsnd_port6 /* pcm3168a capture 1ch/2ch */ + &rsnd_port7 /* 3ch/4ch */ + &rsnd_port8 /* 5ch/6ch */ >; }; -- 2.17.1 Thank you for your help !! Best regards --- Kuninori Morimoto