Re: [alsa-devel] [PATCH] ASoC: generic: add generic compound cardwith DT support

From: Jean-Francois Moine
Date: Thu Jan 02 2014 - 04:27:51 EST


On Wed, 01 Jan 2014 21:11:23 +0100
Lars-Peter Clausen <lars@xxxxxxxxxx> 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@xxxxxxxxxx> 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@0 {
tda998x_0: endpoint {
reg = <0x230145>;
remote-endpoint = <&lcd0_0>;
};
};

/* audio */
port@1 {
hdmi_i2s_audio: endpoint@0 {
reg = <0x03>;
remote-endpoint = <&audio_hdmi_i2s>;
};
hdmi_spdif_audio: endpoint@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@0 {
audio_hdmi_i2s: endpoint {
remote-endpoint = <&hdmi_i2s_audio>;
};
};

port@1 {
audio_hdmi_spdif: endpoint@0 {
remote-endpoint = <&hdmi_spdif_audio>;
};
audio_spdif: endpoint@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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/