devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jean-Francois Moine <moinejf@free.fr>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	Andrew Jackson <Andrew.Jackson@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Jyri Sarha <jsarha@ti.com>, Mark Brown <broonie@kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio
Date: Wed, 14 Jan 2015 08:55:01 +0100	[thread overview]
Message-ID: <20150114085501.677dc4d2@armhf> (raw)
In-Reply-To: <20150113195415.GV12302@n2100.arm.linux.org.uk>

On Tue, 13 Jan 2015 19:54:15 +0000
Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:

> On Tue, Jan 13, 2015 at 09:41:01PM +0200, Jyri Sarha wrote:
> > On 01/13/2015 09:26 PM, Russell King - ARM Linux wrote:
> > >SCLK: _~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_
> > >   WS: __~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~________________________________~
> > >I2S1: llmm............................llmm............................llm
> > >I2S2: llmm............................llmm............................llm
> > >I2S3: llmm............................llmm............................llm
> > >I2S4: llmm............................llmm............................llm
> > >
> > >So, what I'm saying is that it is_impossible_  to drive the TDA998x using
> > >multiple I2S streams which are not produced by the same I2S block.
> > 
> > This is besides the point, but it is possible that one of the multiple I2S
> > blocks is the bit-clock and frame-clock master to the i2s bus and the others
> > are slaves to it (banging their bits according to SCLK and WS of the I2S
> > master). However, in this situation there really is only one i2s bus with
> > multiple data pins.
> > 
> > Just my 0.02€ to this discussion.
> 
> Right, that's about the only way it could work.
> 
> To represent that in DT, I would imagine we'd need something like this:
> 
> 	#address-cells = <1>;
> 	#size-cells = <0>;
> 	...
>         port@1 {                        /* AP1,2 = I2S */
> 		#address-cells = <1>;
> 		#size-cells = <0>;
>                 port-type = "i2s";
>                 reg = <0x01>;		/* WS */
>                 tda998x_i2s1: endpoint@2 {
> 			reg = <0x02>;	/* AP1 */
>                         remote-endpoint = <&audio1_i2s>;
>                 };
>                 tda998x_i2s2: endpoint@4 {
> 			reg = <0x04>;	/* AP2 */
>                         remote-endpoint = <&audio2_i2s>;
>                 };
>         };
> 
> where audio1_i2s is operating in master mode, and audio2_i2s is
> operating in slave mode for both WS and SCLK.
> 
> If we can agree on that, then I'm happy with the proposed binding.
> (Remember that #address-cells and #size-cells are required in the
> parent where we have reg= in the child.)

#address-cells and #size-cells may be defined in any of the upper
parent, so, as it is defined in the device, it is not needed in the
port (see of_n_addr_cells in drivers/of/base.c).

Well, I am a bit lost between (only one source / many channels - I2S
busses) and (many sources / one I2s bus!).

Anyway, I don't understand your example.
I'd expect that a port would be a DAI.

If yes, when playing is active, both endpoints receive an audio stream
from the remote audio devices, and the AP register is always set to
0x07 (= 0x01 | 0x02 | 0x04).
Then, it would have been simpler to have:

 	#address-cells = <1>;
 	#size-cells = <0>;
 	...
         port@7 {                        /* AP1,2 = I2S */
                 port-type = "i2s";
                 reg = <0x07>;		/* WS + AP1 + AP2 */
                 tda998x_i2s1: endpoint@1 {
                         remote-endpoint = <&audio1_i2s>;
                 };
                 tda998x_i2s2: endpoint@2 {
                         remote-endpoint = <&audio2_i2s>;
                 };
         };

If no, the two DAIs must be created from the endpoints, permitting
streaming on i2s1 alone, i2s2 alone or both i2s1+i2s2 at the same time.
Then, it would have been simpler to define the DAIs from the ports:

	#address-cells = <1>;
 	#size-cells = <0>;
 	...
         port@3 {                        /* AP1 = I2S */
                 port-type = "i2s";
                 reg = <0x03>;		/* WS + AP1 */
                 tda998x_i2s1: endpoint {
                         remote-endpoint = <&audio1_i2s>;
                 };
         };
         port@5 {                        /* AP2 = I2S */
                 port-type = "i2s";
                 reg = <0x05>;		/* WS + AP2 */
                 tda998x_i2s1: endpoint {
                         remote-endpoint = <&audio1_i2s>;
                 };
	};

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-01-14  7:55 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-07 11:06 [PATCH v9 0/4] ASoC: tda998x: add a codec to the HDMI transmitter Jean-Francois Moine
2015-01-07  9:10 ` [PATCH v9 1/4] drm/i2c: tda998x: Add DT support for audio Jean-Francois Moine
2015-01-07 14:39   ` Andrew Jackson
2015-01-07 17:08     ` Jean-Francois Moine
2015-01-07 17:18       ` Andrew Jackson
2015-01-07 17:33         ` Mark Brown
     [not found]   ` <0084acea5a3475a77531d6a77483f36d3469111a.1420628786.git.moinejf-GANU6spQydw@public.gmane.org>
2015-01-08 14:53     ` Jyri Sarha
     [not found]       ` <54AE99F5.1010404-l0cyMroinI0@public.gmane.org>
2015-01-08 16:42         ` Jean-Francois Moine
2015-01-08 20:04           ` Mark Brown
2015-01-09  9:25             ` Andrew Jackson
2015-01-09 10:13           ` Jyri Sarha
2015-01-09 11:30             ` Jean-Francois Moine
2015-01-09 11:45               ` Russell King - ARM Linux
2015-01-09 12:54                 ` Jean-Francois Moine
2015-01-09 13:07                   ` Russell King - ARM Linux
     [not found]                     ` <20150109130725.GN12302-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-09 13:58                       ` Andrew Jackson
2015-01-09 14:57                         ` Russell King - ARM Linux
2015-01-09 17:38                           ` Jean-Francois Moine
2015-01-09 20:01                             ` Russell King - ARM Linux
     [not found]                               ` <20150109200127.GD12302-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-01-10 15:47                                 ` [alsa-devel] " Jean-Francois Moine
2015-01-12  9:25                               ` Philipp Zabel
2015-01-12 12:25                                 ` Russell King - ARM Linux
2015-01-12 13:59                                   ` Philipp Zabel
2015-01-12 14:04                                     ` Russell King - ARM Linux
2015-01-12 17:13                                       ` Jean-Francois Moine
2015-01-12 17:57                                         ` Russell King - ARM Linux
2015-01-12 19:14                                           ` Jean-Francois Moine
2015-01-13 12:21                                           ` Philipp Zabel
2015-01-13 12:27                                             ` Russell King - ARM Linux
2015-01-13 15:54                                               ` Jean-Francois Moine
2015-01-13 16:03                                                 ` Russell King - ARM Linux
2015-01-13 19:02                                                   ` Jean-Francois Moine
2015-01-13 19:26                                                     ` Russell King - ARM Linux
2015-01-13 19:41                                                       ` Jyri Sarha
2015-01-13 19:54                                                         ` Russell King - ARM Linux
2015-01-14  7:55                                                           ` Jean-Francois Moine [this message]
2015-01-14 12:12                                                             ` Russell King - ARM Linux
2015-01-14 10:46                                                           ` Philipp Zabel
2015-01-14 12:50                                                             ` Mark Brown
2015-01-14 14:23                                                               ` Russell King - ARM Linux
2015-01-07 10:00 ` [PATCH v9 2/4] drm/i2c: tda998x: Change drvdata for audio extension Jean-Francois Moine
2015-01-07 10:51 ` [PATCH v9 3/4] ASoC: tda998x: add a codec to the HDMI transmitter Jean-Francois Moine
2015-01-07 15:10   ` Andrew Jackson
2015-01-07 15:41     ` Russell King - ARM Linux
2015-01-07 18:02       ` Jean-Francois Moine
2015-01-09 10:24         ` Jyri Sarha
2015-01-09 11:15           ` Jean-Francois Moine
2015-01-09 11:19           ` Russell King - ARM Linux
2015-01-09 11:45             ` Jean-Francois Moine
2015-01-09 11:48               ` Russell King - ARM Linux
2015-01-07 17:34     ` Mark Brown
2015-01-08 14:55   ` Jyri Sarha
2015-01-09 17:39   ` Andrew Jackson
     [not found]     ` <54B0123C.9070800-5wv7dgnIgG8@public.gmane.org>
2015-01-09 17:54       ` Mark Brown
2015-01-13  9:24     ` Jean-Francois Moine
2015-01-11 21:03   ` Jyri Sarha
2015-01-13  7:41     ` Jean-Francois Moine
2015-01-07 11:01 ` [PATCH v9 4/4] drm/i2c: tda998x: set cts_n according to the sample width Jean-Francois Moine
2015-01-08 14:53 ` [PATCH v9 0/4] ASoC: tda998x: add a codec to the HDMI transmitter Jyri Sarha
2015-01-08 20:05   ` Mark Brown
2015-01-09 10:15     ` Jyri Sarha

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=20150114085501.677dc4d2@armhf \
    --to=moinejf@free.fr \
    --cc=Andrew.Jackson@arm.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    /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;
as well as URLs for NNTP newsgroup(s).