[alsa-devel] [PATCH] ASoC: generic: add generic compound card with DT support

Jean-Francois Moine moinejf at free.fr
Thu Jan 2 10:26:47 CET 2014


On Wed, 01 Jan 2014 21:11:23 +0100
Lars-Peter Clausen <lars at metafoo.de> wrote:

> On 01/01/2014 09:08 PM, Jean-Francois Moine wrote:
> > On Wed, 01 Jan 2014 20:05:05 +0100
> > Lars-Peter Clausen <lars at 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)
> 
> http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/media/video-interfaces.txt

I see the idea. So here is a proposal of DT for the Cubox (audio + video)
which should work without too many difficulties.

/* video / audio transmitter */

	tda998x: hdmi-encoder {
		compatible = "nxp,tda998x";
		...

		/* video */
		port at 0 {
			tda998x_0: endpoint {
				reg = <0x230145>;
				remote-endpoint = <&lcd0_0>;
			};
		};

		/* audio */
		port at 1 {
			hdmi_i2s_audio: endpoint at 0 {
				reg = <0x03>;
				remote-endpoint = <&audio_hdmi_i2s>;
			};
			hdmi_spdif_audio: endpoint at 1 {
				reg = <0x04>;
				remote-endpoint = <&audio_hdmi_spdif>;
			};
		};
	};

	toslink: spdif {
		compatible = "linux,spdif-dit";
		port {
			spdif_audio: endpoint {
				remote-endpoint = <&audio_spdif>;
			};
		};
	};

/* video */

	lcd0: video-controller {
		compatible = "marvell,dove-lcd";
		...
		port {
			lcd0_0: endpoint {
				remote-endpoint = <&tda998x_0>;
			};
		};
	};

	video {
		compatible = "media-video";
		video-controller = <&lcd0>;
	};

/* audio */

	audio1: audio-controller {
		compatible = "marvell,dove-audio";
		...
		port at 0 {
			audio_hdmi_i2s: endpoint {
				remote-endpoint = <&hdmi_i2s_audio>;
			};
		};

		port at 1 {
			audio_hdmi_spdif: endpoint at 0 {
				remote-endpoint = <&hdmi_spdif_audio>;
			};
			audio_spdif: endpoint at 1 {
				remote-endpoint = <&spdif_audio>;
			};
		};
	};

	sound {
		compatible = "media-audio";
		audio-controller = <&audio1>;
	};

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


More information about the Alsa-devel mailing list