public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean-Francois Moine <moinejf@free.fr>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
	alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [alsa-devel] [PATCH] ASoC: generic: add generic compound card with DT support
Date: Wed, 1 Jan 2014 21:08:14 +0100	[thread overview]
Message-ID: <20140101210814.31e3f3a9@armhf> (raw)
In-Reply-To: <52C466E1.3030302@metafoo.de>

On Wed, 01 Jan 2014 20:05:05 +0100
Lars-Peter Clausen <lars@metafoo.de> wrote:

> As Mark also said, this binding definitely leaks way too much internals of
> the current ASoC implementation. In my opinion the way forward for ASoC is
> to stop to distinguish between different types of components. This is on one
> hand CODECS and CPU-DAIs and on the other hand also front-end and beck-end
> DAIs. The first steps in this direction have already been take by the start
> of the component-fication, but its still a long way to go. Exposing those
> concepts via the devicetree will only make it harder to get rid of them
> later. The bindings for a compound card should essentially describe which
> components are involved and how the fabric between and around them looks
> like. If the type of the component is needed in the ASoC implementation it
> should be possible to auto-discover it. Also I think we want to align the
> devicetree bindings with what the media people have been doing[1].

(you forgot the [1] reference)

> Audio and
> video are not that different in this regard and there will also be boards
> where the audio and video fabric will be intermingled  (e.g. like on your
> board with HDMI).

I found a way to discover the DAI link types for my system: when simple
DAPM, the kirkwood CPU DAIs have an ID != 0. For the Cubox, the CPU DAI
of the first link (system playback) has the ID 0, so I can move to DPCM
setting the 'dynamic' and 'no_pcm' flags in the DAI links at snd
platform probe time.

Then, after some extensions of the simple-card, the DT would look like
(not tested yet):

	sound {
		compatible = "simple-audio-card";
		simple-audio-routing =
			"HDMI I2S Playback",	"System Playback",
			"HDMI SPDIF Playback",	"System Playback",
			"SPDIF Playback",	"System Playback",

			"hdmi-out-i2s",		"HDMI I2S Playback",
			"hdmi-out-spdif",	"HDMI SPDIF Playback",
			"spdif-out",		"SPDIF Playback";

		simple-audio-card,cpu@0 {
			link-name = "System audio";	/* extension */
			sound-dai = <&audio1 0>;
			playback;			/* extension */
			format = "i2s";
		};
		simple-audio-card,codec@0 {
			sound-dai-name = "snd-soc-dummy-dai";
		};

							/* multi-links extension */
		simple-audio-card,cpu@1 {
			link-name = "hdmi-i2s";
			platform-name = "snd-soc-dummy"; /* extension */
			sound-dai = <&audio1 1>;
			playback;
		};
		simple-audio-card,codec@1 {
			sound-dai = <&hdmi_codec 0>;
		};

		simple-audio-card,cpu@2 {
			link-name = "hdmi-spdif";
			platform-name = "snd-soc-dummy";
			sound-dai = <&audio1 2>;
			playback;
		};
		simple-audio-card,codec@2 {
			sound-dai = <&hdmi_codec 1>;
		};

		simple-audio-card,cpu@3 {
			link-name = "spdif";
			platform-name = "snd-soc-dummy";
			sound-dai = <&audio1 1>;
			playback;
		};
		simple-audio-card,codec@3 {
			sound-dai = <&spdif_codec>;
		};
	};

May I go to this direction?

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

  reply	other threads:[~2014-01-01 20:09 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-31 10:31 [PATCH] ASoC: generic: add generic compound card with DT support Jean-Francois Moine
2013-12-31 11:59 ` Mark Brown
2013-12-31 12:36   ` Jean-Francois Moine
2013-12-31 12:47     ` Mark Brown
2014-01-01 19:05 ` [alsa-devel] " Lars-Peter Clausen
2014-01-01 20:08   ` Jean-Francois Moine [this message]
2014-01-01 20:11     ` Lars-Peter Clausen
2014-01-02  9:26       ` Jean-Francois Moine
2014-01-02 11:10         ` Mark Brown
2014-01-02 11:43           ` Jean-Francois Moine
2014-01-02 11:56             ` Mark Brown
2014-01-02 12:44               ` Jean-Francois Moine
2014-01-02 13:10                 ` Mark Brown
2014-01-02 17:50                   ` Jean-Francois Moine
2014-01-02 18:35                     ` Mark Brown

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=20140101210814.31e3f3a9@armhf \
    --to=moinejf@free.fr \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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